docs: hand off B05 TodoWrite validation and remaining acceptance
This commit is contained in:
1 parent
d423d59b08
commit
590d7ae2fa
5 files changed
+891
No files matched your search
@@ -0,0 +1,53 @@
|
||||
# B05 / YC-009:TodoWrite 交付记录 01
|
||||
|
||||
日期:2026-10-21。状态:开发实现与离线验证完成,待验收;不预填验收通过。
|
||||
|
||||
- 需求来源:`9069c604e03505b91b5b9731d11d47727b168635`,`B05-需求.md`。
|
||||
- 开发基线:`8d10743fb2643b8e0aaf4495b38eb84f71b1e7f7`。
|
||||
- 完整代码提交:`d423d59b08395360cd7263709d4560ab436d7c0c`。
|
||||
- 本批不发布安装包,不调整模型桥、权限策略、项目数据库或其他计划卡设计。
|
||||
|
||||
## 实现与关键决定
|
||||
|
||||
1. 新增 `TodoWriteView.tsx`:只读规范化 args / `_rawInput`,兼容既有 todos / steps 及历史工具别名;保留 task ID、content、activeForm 和状态。完成数和总数按规范化列表计算。
|
||||
2. 使用现代 `cr-tool-plan-task*` 结构与专用头部,去掉重复标题。merge 显示“进度 completed/total”;空与错误仅显示相应头部,运行中空列表附接收中状态。
|
||||
3. 复用既有 `selectPlanTasks` 纯窗口算法,默认最多五项。优先第一个进行中任务,否则最后一个已完成任务,再否则从首项开始;不新增分页或更多按钮。
|
||||
4. 完成项删除线并弱化,进行中使用 activeForm 和加粗,状态使用 SVG / 圆点,不再使用 OK / > / - / x 占位。样式按照需求提供的 REA 静态契约实现。
|
||||
5. `SourceToolExpandable` 增加仅 Todo 使用的 retained expand-signal 开关和独立 disclosure key。真实 isLastContent 边沿控制展开;同值重挂载保留手动选择;session / tool / part 身份隔离。其他工具默认行为不变。
|
||||
6. 不向普通列表追加 SDK 原始成功文本;不改写持久化结果、不合并历史工具快照。
|
||||
7. 增加专用可选 `onTodoTaskClick`,字段为 toolCallId / toolName / taskId,支持点击、Enter、Space。当前没有证实的应用宿主目标,因此默认不传回调、不显示按钮角色或动作箭头,不复用计划预览冒充待办操作。
|
||||
|
||||
## 变更文件
|
||||
|
||||
- `src/renderer/src/workbuddy/conversation/TodoWriteView.tsx`(新增)
|
||||
- `src/renderer/src/workbuddy/conversation/todo-write.css`(新增)
|
||||
- `src/renderer/src/workbuddy/conversation/ToolCallRenderer.tsx`
|
||||
- `src/renderer/src/workbuddy/conversation/SourceToolHeader.tsx`
|
||||
- `src/renderer/src/workbuddy/conversation/source-labels.ts`
|
||||
- `scripts/todo-write-regression.tsx`(新增)
|
||||
- `scripts/todo-write-dom-regression.tsx`(新增)
|
||||
- `scripts/conversation-renderer-regression.tsx`
|
||||
- `scripts/run-alignment-regression.mjs`
|
||||
|
||||
## 验证
|
||||
|
||||
以下命令在 Linux 开发环境执行,没有启动真实 Claude SDK、外部模型服务或用户电脑,没有加载用户发布会话。
|
||||
|
||||
| 命令 | 结果 | 证据 |
|
||||
|---|---|---|
|
||||
| `npm run build` | exit 0,类型检查与生产构建通过 | `evidence/b05-01/build.log` |
|
||||
| `npm run test:conversation` | exit 0 | `evidence/b05-01/conversation.log` |
|
||||
| `npm run test:alignment` | exit 0,12 个离线套件;此单独运行明确跳过 DOM | `evidence/b05-01/alignment.log` |
|
||||
| `YCODE_TEST_DOM_MODULE=/tmp/ycode-b01-dom/node_modules/jsdom npm run test:alignment:dom` | exit 0,12 个离线套件与 10 个 DOM 套件 | `evidence/b05-01/alignment-dom.log` |
|
||||
|
||||
新增聚焦测试已接入上述 alignment 入口,共 29 项投影/SSR 检查与 42 项 DOM 断言:投影/SSR 覆盖窗口夹具、状态、标题、空/失败、别名、原始输入与非突变;DOM 覆盖真实 TodoWriteView 和 CompletedFold 组合、位置边沿、手动选择、相同信号重挂载、会话/工具隔离、合法历史快照和可选回调键盘事件。使用合成数据,不修改真实会话。
|
||||
|
||||
测试依赖按项目既有外置 jsdom 约定提供;上述绝对路径是本次环境路径,其他环境需替换为其已安装的 jsdom 模块路径。严格 DOM 入口缺少依赖会失败,不将跳过当通过。
|
||||
|
||||
## 剩余风险与验收边界
|
||||
|
||||
- AC9.8:组件可选回调已验证,但实际应用宿主任务点击目标未实现,不能宣称完整业务交互通过。默认非交互是刻意避免伪导航。
|
||||
- AC9.9:真实 Electron 浅色、深色、窄屏、长文本及七项任务截图未完成;DOM 不测真实像素、文本溢出和动画过程。当前浏览器执行环境受限,不绕过安全限制;由具备环境的验收端补测。
|
||||
- 复用了现有 recovered CheckIcon / LoaderIcon / FailedIcon。没有独立确认名为 TaskCheckIcon 的精确原版资产;不能声称图标逐像素一致。
|
||||
- 新 CSS 来自需求中已留存的 REA 静态数值,不代表当前原版 CSS 激活分支与实时动效已复核。仍需补原版 REA 运行证据。
|
||||
- 交付没有修改验收记录;验收端应固定完整代码 SHA 后记录实际结果。
|
||||
Reference in new issue
Block a user