# 1-14 [process] Batch H P2 live cache / command context 收口 checklist v1

> 创建时间：2026-05-21
>
> 当前状态：`DONE`
>
> 上位入口：`design/01-tree-first-graph-kernel/process/1-8-mvp-post-process-execution-order-v1.md`
>
> 阶段：Batch H / P2 文档状态与浏览器证据收口

## 1. 目标

本批次只处理 `1-8` Batch D 中仍会干扰后续判断的两类尾项：

1. `3-3` tree realtime live cache 是否仍应保留在 `process/`，还是已被 `3-14` / `3-18` / `task487` 证据覆盖后可以归档。
2. `1-5` / `1-6` command context 文档状态是否仍把 FileTree 菜单、快捷键、AI 写入守卫标成未完成。

本批次不新增 runtime 功能，不扩 AI 产品面，不实现 Phase C Review Mode，不恢复 Convex 正文主存储。

## 2. Reasonix Worker 拆分

### Worker A：`3-3` live cache 可归档性复核

Owner：

- `design/03-rust-web/process/3-3-rust-web-tree-realtime-event-stream-v1.md`
- 如确认可归档，可移动到 `design/03-rust-web/done/3-3-rust-web-tree-realtime-event-stream-v1.md`

目标：

- 对照 `3-14` WS push、`3-18` local folder tree live consumer、`task123/task432/task446/task447/task448/task449/task487` 证据，判断 `3-3` 的 9.2 未完成项是否已经过期。
- 如果可归档，只更新 `3-3` 文档状态并移动到 `done/`。
- 如果不可归档，只在 `3-3` 写明最小剩余缺口，不改 runtime 代码。

验收：

- `node --check scripts/task123-rust-web-tree-live-stream-consumer-smoke.js`
- `node --check scripts/task487-local-folder-tree-live-consumer-smoke.js`
- `git diff --check`

### Worker B：`1-5` / `1-6` command context 状态收口

Owner：

- `design/01-tree-first-graph-kernel/reference/1-5-next-phase-sequential-execution-checklist-v1.md`
- `design/01-tree-first-graph-kernel/done/1-6-next-phase-gap-closure-checklist-v1.md`

目标：

- 只更新 command context / context key 相关 checklist 状态。
- 对照当前代码和已通过测试，修正仍写着“File Tree 右键菜单、快捷键、AI 写入能力尚未消费 CommandContext”的过期表述。
- 保留真实未完成项，例如更完整的 editor/object tab context 或未实跑的 readonly DnD smoke，不要把范围外事项误勾完成。

验收：

- `cargo test --manifest-path rust/Cargo.toml -p core-protocol command_context -- --test-threads=1`
- `cargo test --manifest-path rust/Cargo.toml -p mnote-web ensure_write_authorized -- --test-threads=1`
- `node --check scripts/task471-local-folder-bulk-resource-trash-smoke.js`
- `node --check scripts/task476-filetree-editor-context-menu-download-smoke.js`
- `git diff --check`

### Worker C：Batch D 浏览器 smoke 证据整理

Owner：

- `.codex/reasonix-tasks/results/batch-h-worker-c-browser-smoke-evidence.md`

目标：

- 不修改产品代码和设计主文档。
- 只读检查当前相关 smoke 脚本、已有 `tmp/` 结果和截图路径。
- 输出一份证据表，区分“已实跑通过”“仅 node --check 通过”“需要后续实跑”的 smoke。
- 优先覆盖：`task123`、`task432`、`task446`、`task447`、`task448`、`task449`、`task471`、`task476`、`task487`。

验收：

- 结果文件列出每个 smoke 的脚本路径、最近证据路径、是否可用于人工网页核查。
- 不改 runtime 代码。
- `git diff --check`

## 3. Codex 复核项

- [x] 读取 Worker A/B/C 的 `final.md` / `result.json` / diff，不凭文字结论直接验收。
- [x] 确认 Worker A 若移动 `3-3` 到 done，不会掩盖仍未完成的 live cache 缺口。
- [x] 确认 Worker B 只勾 command context 已完成范围，不把 editor/object tab future 项误判完成。
- [x] 根据 Worker C 的证据表决定本轮是否需要再实跑浏览器 smoke。
- [x] 更新 `1-8` / `1-13` / 本文件执行记录。
- [ ] 提交前运行 `codegraph sync .`、`codegraph status .`。

## 4. 本轮执行记录

- 2026-05-21：Codex 新建 Batch H checklist，准备派发 Worker A/B/C。
- 2026-05-21：Reasonix Worker A/B/C 均 completed，并通过 completion hook 写入 `tmp/reasonix-hook-test/batch-h-*.json`。
- 2026-05-21：Codex 复核 Worker A diff，确认 `3-3` 已移动到 `design/03-rust-web/done/`，9.2 未完成项已由 `3-14`、`3-18` 与 `task487` 覆盖。
- 2026-05-21：Codex 复核 Worker B diff，采纳 `1-5` Phase A7 的 command context 状态更新；保留 editor/object tab context 和更完整按钮 enablement 作为后续扩展，不把它们误判为本轮完成。
- 2026-05-21：Codex 复核 Worker C 证据表，纠正 `task471` 证据漏查，并实跑关键 smoke：`task487` 通过，`task471` 通过，`task476` 使用 `/usr/bin/google-chrome-stable` 通过。`/snap/bin/chromium` 下的 `download.saveAs ENOENT` 判定为 Playwright 下载临时文件噪音，不作为产品失败。
- 2026-05-21：验证命令已通过：
  - `git diff --check`
  - `cargo test --manifest-path rust/Cargo.toml -p core-protocol command_context -- --test-threads=1`
  - `cargo test --manifest-path rust/Cargo.toml -p mnote-web ensure_write_authorized -- --test-threads=1`
  - `node --check scripts/task123-rust-web-tree-live-stream-consumer-smoke.js`
  - `node --check scripts/task487-local-folder-tree-live-consumer-smoke.js`
  - `node --check scripts/task471-local-folder-bulk-resource-trash-smoke.js`
  - `node --check scripts/task476-filetree-editor-context-menu-download-smoke.js`
  - `PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH=/snap/bin/chromium PLAYWRIGHT_CHROME_EXECUTABLE=/snap/bin/chromium node scripts/task487-local-folder-tree-live-consumer-smoke.js`
  - `PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH=/snap/bin/chromium PLAYWRIGHT_CHROME_EXECUTABLE=/snap/bin/chromium node scripts/task471-local-folder-bulk-resource-trash-smoke.js`
  - `PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH=/usr/bin/google-chrome-stable PLAYWRIGHT_CHROME_EXECUTABLE=/usr/bin/google-chrome-stable node scripts/task476-filetree-editor-context-menu-download-smoke.js`
