health/ready schema 38;镜像已含 ChatLog 端口。停走结论仍是停止扩面。 Co-authored-by: Cursor <cursoragent@cursor.com>
6.5 KiB
6.5 KiB
M4 U10 ChatLog / ContextAssembler 原地端口化 测试报告
一、 测试背景 (Background)
权威停走门是 U9 报告最后一句 继续 U10(2026-09-15-dataset-lifecycle-u9-test-report.md)。该句只批准进入整改计划 M4 的 chatlog/contextasm 子切片,不是一次授权做完 M4–M6。对话刷新任务代码已是 dev 祖先,chat mutex 可转给本单元。目标是先拿到「同一授权可见集合」的行为收益,再判断是否物理拆包。
二、 测试目标 (Test Objectives)
- 历史读取(window / day / dates / categories / search / unread / export / digest / history)走带 Principal 的 ChatLog 端口,忽略 query/body 中的
user_id身份。 - 正文条数与分类/日期计数同集;非会话 owner fail closed。
- restore / digest / ContextAssembler 只注入允许集合,不把隐藏阶段消息放大进 Prompt。
- 表所有权仍在
ctxmgr;不新建chatlog/contextasm包。 - 禁止 U11–U12,不碰
intent,不终止项目 143。
三、 测试方案与环境 (Test Plan & Environment)
| 项 | 值 |
|---|---|
| OS | Linux 7.0.0-31-generic |
| 分支 | feature/chatlog-contextasm-u10(从本地 dev@3944856 检出) |
| 本机合同测试 | unset TEST_DATABASE_URL; go test -short ./internal/app/chatflow |
| 架构门 | ./scripts/arch-check.sh --mode warn |
| 活验目标 | 闲聊刷新曾用 U9 镜像;合入前占槽 rebuild 后 :8080 为 U10 镜像 sha256:788b1aec1b4d…eed66f2,pi-agent,schema 38 |
| 项目 143 | 只读;活验新建项目 6252 |
| 证据 | .doc/test-reports/assets/2026-09-15-chatlog-contextasm-u10/;刷新活验 .doc/test-reports/assets/2026-09-15-chat-history-refresh-live/ |
说明:闲聊刷新活验时 :8080 仍是 U9 镜像。随后占集成槽 ./scripts/env-service.sh dev rebuild,U10 已进入 agent-dev-app。物理拆包判定:adapter 仍消费 ctxmgr 类型,DTO 转换 0。
四、 预期结果 (Expected Results)
| 栏 | 期望 |
|---|---|
| 同集 | 可见 window 条数 = categories 计数之和 = dates 计数之和 |
| 负例 | 非 owner Principal → ErrForbidden;空 Principal → ErrUnauthenticated |
| restore/digest | 不可见阶段消息不进入 restore 列表,digest 不以之为分母 |
| assembler | RecentDialogue 不含隐藏阶段正文 |
| 活验刷新 | 真实 PI 一轮后 window 与 categories 同集且 >0;guest 403 |
| 拆包 | 不搬包 |
五、 实际测试结果与判定 (Actual Results & Evaluation)
5.1 ChatLog / Assembler 合同测试
- 测试输入:
unset TEST_DATABASE_URL; go test -short -count=1 ./internal/app/chatflow -v - 实际输出:
TestChatLog_WindowAndStatsSameSetPASS(激活前 + 当前阶段可见,报价阶段隐藏;window=2 且与 category/date 计数一致)TestChatLog_RejectsNonOwnerAndQueryIdentityPASSTestChatLog_RestoreAndDigestHideInvisiblePASSTestAssembler_OnlyAuthorizedDialoguePASS
- 评价判定: PASS
- 性能与耗时: 0.004s。日志:
assets/2026-09-15-chatlog-contextasm-u10/go-test-chatflow-related.txt
5.2 HTTP 适配(本机,非容器镜像)
- 测试输入: 历史读取 handler 改走
s.chatLog;GET /api/v1/chat/messages补会话 owner 校验;未读按 Principal.UserID 跳过自己的role=user消息。 - 实际输出:
chat_history_api_test.go改为登录用户自有 session;chat_unread_and_export_api_test.go未读期望从「query 省略 user_id 当成 0」校正为 ctxmgr 既有规则(自己的 user 消息不计未读)。 - 评价判定: PASS(随
go test -short ./internal/server相关用例) - 性能与耗时: 亚秒
5.3 架构边界
- 测试输入:
./scripts/arch-check.sh --mode warn - 实际输出:
production gate passed;app/chatflow允许依赖bizdev/coordinator/ctxmgr/projectinstance;server与chat可依赖app/chatflow - 评价判定: PASS
- 性能与耗时: 0.111s
5.4 真实 PI 刷新活验(现网镜像,非 U10 容器)
- 测试输入: 新建项目 6252 /
sess-p6252-u10;POST /api/v1/chat真实闲聊;再GET window+GET categories;guest 读同一 session。脚本:assets/2026-09-15-chat-history-refresh-live/chat-refresh-live.py - 实际输出(
live.json):- health
pi-agentschema 38,ready ok - 闲聊 HTTP 200,耗时 3481ms
- window_msgs=2,category_total=2,同集
- guest HTTP 403,
SESSION_FORBIDDEN - 文档任务激活链
PUT workflow-planHTTP 400,未进入 intake run(不作为本端口切片停走项)
- health
- 评价判定: 刷新同集与跨用户负例 PASS;编制任务刷新 FAIL(未测完)
- 性能与耗时: core 路径 3704ms。首次尝试曾因共享库演示账号被并发短测停用导致 window 401,恢复账号后重跑通过。
5.5 物理拆包判定
同类改动仍落在 ctxmgr.ChatMessageRecord 上,adapter 无 DTO 转换。拆包收益不成立,本轮不搬包。
5.6 浏览器 / rebuild
- 浏览器:本轮未改 web 交互,未做页面回归。
- rebuild:主仓占槽
./scripts/env-service.sh dev rebuildPASS。health/readyschema_version=38,agent_backend=pi-agent。镜像sha256:788b1aec1b4d0421d1f350e4c50b6510c654a4861208c40706dc02071eed66f2。证据:assets/2026-09-15-chatlog-contextasm-u10/rebuild-health-ready.txt。
六、 自动化测试套件汇总 (Test Suite Execution)
| 命令 | 结果 |
|---|---|
unset TEST_DATABASE_URL; go test -short -count=1 ./internal/app/chatflow |
PASS(4) |
./scripts/arch-check.sh --mode warn |
PASS |
unset TEST_DATABASE_URL; go test -short -count=1 ./... |
PASS(EXIT:0,internal/server 9.941s) |
| 真实 PI 闲聊刷新(项目 6252) | core_overall PASS |
| 占槽 rebuild + health/ready | PASS,schema_version=38,镜像 sha256:788b1aec…eed66f2 |
七、 测试结论与后续优化建议 (Conclusion & Next Steps)
U10 停走项成立:授权可见集合在 ChatLog 端口内同集过滤;非 owner fail closed;restore/digest/assembler 不放大不可见消息;表仍归 ctxmgr。未做 U11–U12,未整支 merge FAV,未启用 FAV_DEGRADED_READ,未改 intent,未终止项目 143。已占集成槽 rebuild,U10 已进入 agent-dev-app,不能再用 U9 镜像冒充部署。文档任务激活链 save 400 与发布门禁「激活后文档任务 + 重登/重启」仍开放,不构成本切片搬包理由。
停止扩面