Files
Agent-System/.doc/test-reports/2026-09-15-chatlog-contextasm-u10-test-report.md
T
weichenandCursor 6601583cbe docs(test): record U10 occupy-slot rebuild into agent-dev
health/ready schema 38;镜像已含 ChatLog 端口。停走结论仍是停止扩面。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-15 05:05:27 +00:00

6.5 KiB
Raw Blame History

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_WindowAndStatsSameSet PASS(激活前 + 当前阶段可见,报价阶段隐藏;window=2 且与 category/date 计数一致)
    • TestChatLog_RejectsNonOwnerAndQueryIdentity PASS
    • TestChatLog_RestoreAndDigestHideInvisible PASS
    • TestAssembler_OnlyAuthorizedDialogue PASS
  • 评价判定: 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-agent schema 38,ready ok
    • 闲聊 HTTP 200,耗时 3481ms
    • window_msgs=2,category_total=2,同集
    • guest HTTP 403,SESSION_FORBIDDEN
    • 文档任务激活链 PUT workflow-plan HTTP 400,未进入 intake run(不作为本端口切片停走项)
  • 评价判定: 刷新同集与跨用户负例 PASS;编制任务刷新 FAIL(未测完)
  • 性能与耗时: core 路径 3704ms。首次尝试曾因共享库演示账号被并发短测停用导致 window 401,恢复账号后重跑通过。

5.5 物理拆包判定

同类改动仍落在 ctxmgr.ChatMessageRecord 上,adapter 无 DTO 转换。拆包收益不成立,本轮不搬包。

5.6 浏览器 / rebuild

  • 浏览器:本轮未改 web 交互,未做页面回归。
  • rebuild:主仓占槽 ./scripts/env-service.sh dev rebuild PASS。health/ready schema_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 与发布门禁「激活后文档任务 + 重登/重启」仍开放,不构成本切片搬包理由。

停止扩面