- wire SQLite control-plane access/session paths into Rust web local-folder routes - preserve local Markdown attachment semantics across upload, reload, and secondary-pane resource tabs - refresh design governance docs, Reasonix task templates, and bug records - retire root .mcp.json local MCP config
8.7 KiB
8.7 KiB
1-9 [recycle] Batch B P1 Identity / BufferStore / Page Aggregate Execution Checklist v1
创建时间:2026-05-21
上位入口:
design/01-tree-first-graph-kernel/process/1-8-mvp-post-process-execution-order-v1.md阶段:Batch B / P1 工作区身份、BufferStore、Page Aggregate 收口
当前状态:
recycle / old归档说明(2026-05-22):本文的 Batch B 尾项已被后续 Batch /
done/文档和1-6、5-6的当前缺口口径覆盖;保留为历史执行记录,不再作为 active process。
1. 目标
按 1-8 的 P1 顺序,把当前已经明确的 P1 缺口拆成可并行执行的小阶段:
5-26正文附件 open resolver 与 FileTree open resolver 收敛未执行。1-6Gap A2 的 BufferStore 运行时接入已完成,但保存后刷新读回仍有浏览器可见缺口。1-6Gap A0 browser smoke 已复跑,A2/A7/B2/C1 仍有证据尾项。5-6/3-13的 Page Aggregate / GFM AST 尾项状态需要继续拆小,避免大文档长期停在 process。- 本轮 smoke 复核后,
task443/task445/task452已确认是过期断言,不是当前业务回归。
本阶段优先处理“已实现但缺浏览器/测试证据”与“已有计划但未落地”的缺口,不扩新产品面,不改变 local-first / tree-first 口径。
2. 上游入口
design/01-tree-first-graph-kernel/process/1-5-next-phase-sequential-execution-checklist-v1.mddesign/01-tree-first-graph-kernel/process/1-6-next-phase-gap-closure-checklist-v1.mddesign/05-editor-mainline/process/5-26-resource-open-resolver-convergence-checklist-v1.mddesign/05-editor-mainline/process/5-6-page-aggregate-alignment-checklist-v1.mddesign/03-rust-web/process/3-13-rust-web-local-markdown-gfm-ast-parser-migration-v1.md
3. 不做事项
- 不把
documents/save重新描述为 local-first 长期正文主入口。 - 不把
md/text/code改成 OnlyOffice 或浏览器窗口默认打开。 - 不把 browser smoke 失败伪装成通过。
- 不移动
design/old/**。 - Reasonix worker 不提交 git;最终由 Codex 复核和提交。
4. Reasonix Worker 拆分
Worker A:5-26 resource open resolver convergence
Owner:
design/05-editor-mainline/process/5-26-resource-open-resolver-convergence-checklist-v1.mdrust/crates/mnote-web/src/routes/web_shell.rs- 可新增或修改一个
scripts/task48*-resource-open-resolver-*.jssmoke。
目标:
- 审查
resolveResourceOpen、openEditorAttachmentEditTab、openEditorAttachmentNewWindow、FileTree asset open/edit-mode 的重复判断。 - 如能小范围安全实现,抽出最小 shared resolver/helper,减少正文附件与 FileTree 分歧。
- 必须保持:正文附件
弹窗编辑进入 main resource tab,新窗口编辑进入浏览器窗口,md/text/code继续走 tiptap / text/code 渲染路径。
验收:
cargo test -p mnote-web sidebar_tree_runtime_opens_office_assets_through_resource_shell -- --test-threads=1node --check scripts/task463-onlyoffice-resolver-smoke.js- 如新增 smoke,则
node --check scripts/task48*-resource-open-resolver-*.js
Worker B:A2 BufferStore browser visible readback gap
Owner:
design/01-tree-first-graph-kernel/process/1-6-next-phase-gap-closure-checklist-v1.mdrust/crates/mnote-web/src/routes/web_shell.rsrust/crates/mnote-web/src/ssr/pages/layout.rs- 可新增或修改一个
scripts/task48*-bufferstore-*.jssmoke。
目标:
- 复现并定位
POST /api/page-body/write后磁盘与 Page Aggregate 已更新,但刷新后编辑器 DOM/截图未显示正文的问题。 - 优先做最小修复:让刷新后的主编辑器可见 DOM 消费最新 Page Aggregate / blockDocument。
- 若无法安全修复,必须输出可复现 bug 证据和具体源码定位,不把该项标完成。
验收:
cargo test -p mnote-web document_buffer -- --test-threads=1cargo test -p mnote-web page_aggregate -- --test-threads=1- 相关 browser smoke 能证明保存后刷新可见正文不丢失,或明确失败原因。
Worker C:A0/A2/B2/C1 baseline smoke evidence
Owner:
design/01-tree-first-graph-kernel/process/1-6-next-phase-gap-closure-checklist-v1.md- 可新增
.codex/reasonix-tasks/results/batch-b-worker-c-baseline-smokes.md - 不修改 Rust / JS 业务代码。
目标:
- 运行并记录
1-6中尚未复跑的 browser smokes:task451-local-markdown-conflict-resolution-ui-smoke.js
task452-local-search-index-browser-smoke.jstask453-local-folder-page-ai-changed-files-smoke.jstask443-filetree-mindmap-click-active-row-smoke.jstask445-filetree-mindmap-switch-no-flicker-smoke.js- 失败时记录为环境阻塞或业务 bug,附 stdout / result.json 路径。
- 不做业务修复。
验收:
- 每个 smoke 有明确
PASS/FAIL/BLOCKED。 - 对失败项给出
tmp/.../result.json或日志路径。
Worker D:Page Aggregate / GFM AST tail audit
Owner:
design/05-editor-mainline/process/5-6-page-aggregate-alignment-checklist-v1.mddesign/03-rust-web/process/3-13-rust-web-local-markdown-gfm-ast-parser-migration-v1.md- 可新增
.codex/reasonix-tasks/results/batch-b-worker-d-pageaggregate-gfm-tail.md - 默认只改文档和 smoke 建议;如需改代码,先只输出建议,不直接改核心 Rust。
目标:
- 审查
5-6中仍未勾选项是否已被后续实现覆盖,哪些应追认,哪些应拆新 checklist。 - 审查
3-13中 GFM AST 尾项:空段落/空表格、legacy <-> Tiptap mark、保存失败错误、过渡 parser 标记、web_shell 临时分支。 - 给出下一步最小执行包,不把未验证项移动到 done。
5. 本轮执行记录
- 2026-05-21:Batch B 仍保留为 process,原因是
5-26还未形成可复核实现,A2 的冲突 UI 数据源接 BufferStore 也尚未落地。 - 2026-05-21:
task443/task445/task452已在后续复核中修正为过期断言,不再作为当前业务回归证据。
验收:
- 输出明确表格:
已完成可追认/仍需代码修复/仅参考保留。 - 更新对应 process 文档的执行记录,但不归档。
5. Codex 复核项
- 逐个读取 Reasonix
final.md/result.json。 - 检查
git diff,确认 worker 没有越权修改。 - 运行 worker 涉及脚本的
node --check。 - 运行受影响 Rust targeted tests。
- 对 UI / browser 可见项派发或执行独立浏览器测试。
- 更新本 checklist 的执行记录。
6. 浏览器测试阶段
Batch B 代码 / smoke / 审查完成后,再按实际变更拆分浏览器测试 worker:
- Browser Worker 1:resource open resolver,验证正文附件 / FileTree asset / edit / new-window 分流。
- Browser Worker 2:BufferStore 保存后刷新可见读回。
- Browser Worker 3:Page Aggregate / GFM tail smoke,验证正文刷新、inline mark、task list 不回退。
Codex 必须复核浏览器测试结果;不能只相信 worker 文字总结。
7. 完成条件
5-26至少完成审查与最小实现,或明确不可安全实现的阻塞原因。1-6Gap A2 浏览器可见读回有明确结果:完成、失败 bug 或环境阻塞。1-6A0 browser smokes 有新的 PASS / FAIL / BLOCKED 证据。5-6/3-13尾项不再是模糊 TODO,已拆出下一步执行包。git diff --check通过。codegraph sync .已运行。- 本阶段完成后由 Codex 提交 git。
8. 本轮执行记录
- 2026-05-21:Codex 建立 Batch B P1 checklist,并准备派发 Reasonix Worker A/B/C/D。
- 2026-05-21:Reasonix Worker C 完成 baseline smoke 证据收集;
task451、task453PASS,task452初判为 page-settings 本地索引面板渲染回归,task443/task445初判为 mindmap smoke 仍按历史/mindmap/路由断言导致 false-negative。 - 2026-05-21:Reasonix Worker D 完成 Page Aggregate / GFM AST 尾项审计;只改文档,不改业务代码。关键结论:
3-13中标题优先级被误标为完成,列对齐 marker 可追认,legacy/Tiptap marks、空单元格、保存失败可解释错误、写侧过渡标记仍需后续小包。 - 2026-05-21:Reasonix Worker A/B 运行到 runner 超时后未生成
final.md/result.json,也未留下业务代码 diff;Codex 不采纳为完成项。A 的 transcript 只留下 resource open resolver 收敛计划,指出重复判断主要位于layout.rssidebar JS,原任务允许范围过窄;B 的 transcript 只留下 BufferStore / PageAggregate hydration 排查片段,未形成可复核结论。 - 2026-05-21:Codex 复核裁定:
task452实为旧断言假失败,task443/task445已改为 resourceTab 断言并实跑通过;本轮可采纳 C/D 的证据与审计,但 A/B 仍需拆成更小的后续任务,不把5-26或 Gap A2 标为完成。