Why: CF2 验收剧本(双态零页面走查)完成;证据入任务主记录。 Evidence: 无头 Chromium 9/9 通过(过程折叠不回退、锚点/展开全文/收件箱卡/D32 定位);各层测试与组合构建见记录。 Impact: 文档。 Refs: Dev 任务卡 feature/cardflow-r1。
2.8 KiB
2.8 KiB
2026-09-30 · cardflow-r1 验证记录(CF1 机制 + CF2 收尾)
任务:Dev 仓 feature/cardflow-r1(提案 2026-09-30-cardflow-and-process-split.md,D39–D43)。
证据矩阵
| 层 | 验证 | 结果 |
|---|---|---|
| Core 契约 | go test ./...(golden message.json 锁定 cardId 线格式) |
ok |
| Backend 机制 | internal/runtime(submit_card 门控/产卡/引用部件)、internal/ctxasm(回填/截断/占位/card(n) 观测) |
ok |
| Backend 全链路 | internal/server e2e TestMockCardflowFullLoop:#cardflow → result 卡入收件箱 → 助手消息含 cardId 引用部件 → finishRun 回填 AnchorMessageID |
ok |
| UI 组件 | npx tsc --noEmit 0 错误;npx vitest run 39/39(card-anchor 6 用例:摘要行/展开/收起/locate 不触发展开/无卡兜底/无 locate 不渲染按钮) |
ok |
| Frontend | npx tsc --noEmit 0 错误;npx vitest run 27/27(live 分桶/过程标记 + 既有回归) |
ok |
| Dev 组合 | make test 退出码 0;make build 版本串 core=bcfacee+backend=ef17ad0+frontend=832a2ad+ui=31019ad |
ok |
双态零页面走查(无头 Chromium 1680×1000,mock 服务 127.0.0.1:18923)
| # | 断言 | 结果 |
|---|---|---|
| 1 | 关闭态:普通消息出现过程折叠(行为不回退) | PASS |
| 2 | 关闭态:无卡流锚点 | PASS |
| 3 | 设置:ui.cardflow 写入 user scope 200 |
PASS |
| 4 | 设置:schema 含 ui.cardflow(ui 组,默认 false) | PASS |
| 5 | 开启态:#cardflow 后中栏出现卡流锚点 | PASS |
| 6 | 开启态:锚点内联展开全文(含决议正文——D38 中栏自足) | PASS |
| 7 | 开启态:收件箱出现 result 卡(会议纪要 · 第 12 次周会) | PASS |
| 8 | D32:收件箱卡「↙ 定位到对话」滚动中栏至产生消息(data-msg-id) | PASS |
| 9 | 锚点「↗ 收件箱」定位收件箱卡 | PASS |
合计 9/9 通过;构建组合:bin/agent-system(0c4e404+core=bcfacee+backend=ef17ad0+frontend=832a2ad)。
说明与剩余项
- backend/frontend 分支已 rebase 至并行任务
feature/chat-process-split-r1演进 tip(ae8e5d0 / 754ce83)之上,冲突双方语义均保留(fakeRunCtx 字段合并、两套测试并存)。 - 任务 1(chat-process-split-r1)的 review-fix 与 PR 归并行会话所有者;本任务卡与 PR 链只覆盖 cardflow-r1。
- PR 链(core→documents→ui→backend→frontend→Dev gitlink)依赖 Gitea 面板可用性:面板中断期间全部分支已推送(SSH),PR 创建与合入由
/tmp/cardflow-pr-chain.sh面板恢复后自动执行(含 Dev 分支落后基线检查,落后即中止转人工)。 - 远期(CF3):卡片内容流式、飞书/微信通道投影、与 artifact 统一、跨会话项目级收件箱。