2026-07-21 05:13:05 +08:00
|
|
|
|
# [recycle] 1-10 [done] Batch C P1 Resource / BufferStore / GFM / Convex Evidence Checklist v1
|
2026-05-21 13:28:23 +08:00
|
|
|
|
|
|
|
|
|
|
> 创建时间:2026-05-21
|
|
|
|
|
|
>
|
|
|
|
|
|
> 上位入口:`design/01-tree-first-graph-kernel/process/1-8-mvp-post-process-execution-order-v1.md`
|
|
|
|
|
|
>
|
|
|
|
|
|
> 阶段:Batch C / P1 小尾项收口
|
|
|
|
|
|
>
|
2026-05-21 23:53:39 +08:00
|
|
|
|
> 当前状态:`DONE`
|
2026-05-21 13:28:23 +08:00
|
|
|
|
|
|
|
|
|
|
## 1. 目标
|
|
|
|
|
|
|
|
|
|
|
|
在 Batch B 已完成 baseline smoke 复核后,继续处理 P1 中仍会干扰后续判断的尾项:
|
|
|
|
|
|
|
|
|
|
|
|
1. `5-26` resource open resolver 仍未实际收敛。
|
|
|
|
|
|
2. `1-6` Gap A2 保存后刷新可见读回需要以真实 smoke 复核。
|
|
|
|
|
|
3. `3-13` GFM AST 迁移仍有若干可小步关闭的测试 / 过渡标记尾项。
|
|
|
|
|
|
4. `1-6` Gap C1 Convex export dry-run / conflict / rollback 仍缺独立 smoke 证据。
|
|
|
|
|
|
|
|
|
|
|
|
本批次不扩新产品面,不改 OnlyOffice 保存链路,不把 `documents/save` 重新升级为 local-first 长期正文入口。
|
|
|
|
|
|
|
|
|
|
|
|
## 2. Reasonix Worker 拆分
|
|
|
|
|
|
|
|
|
|
|
|
### Worker A:resource open resolver 最小收敛
|
|
|
|
|
|
|
|
|
|
|
|
Owner:
|
|
|
|
|
|
|
|
|
|
|
|
- `design/05-editor-mainline/process/5-26-resource-open-resolver-convergence-checklist-v1.md`
|
|
|
|
|
|
- `rust/crates/mnote-web/src/ssr/pages/layout.rs`
|
|
|
|
|
|
- `scripts/task463-onlyoffice-resolver-smoke.js`
|
|
|
|
|
|
|
|
|
|
|
|
目标:
|
|
|
|
|
|
|
|
|
|
|
|
- 审查并最小收敛 `buildLocalOnlyOfficeOpenUrl`、`openEditorAttachmentEditTab`、`openEditorAttachmentNewWindow`、`openConvexAssetFromFileTree` 与 `resolveResourceOpen` 的重复 local Office / resource open 判断。
|
|
|
|
|
|
- 若能安全实现,只改 `layout.rs` 与 `task463`。
|
|
|
|
|
|
- 必须保持:正文附件“弹窗编辑”进 main resource tab,“新窗口编辑”进浏览器窗口,md/text/code 继续走 tiptap/text/code 渲染路径。
|
|
|
|
|
|
|
|
|
|
|
|
验收:
|
|
|
|
|
|
|
|
|
|
|
|
- `cargo test --manifest-path rust/Cargo.toml -p mnote-web sidebar_tree_runtime_opens_office_assets_through_resource_shell -- --test-threads=1`
|
|
|
|
|
|
- `node --check scripts/task463-onlyoffice-resolver-smoke.js`
|
|
|
|
|
|
- 如 smoke 可运行,执行 `node scripts/task463-onlyoffice-resolver-smoke.js`
|
|
|
|
|
|
|
|
|
|
|
|
### Worker B:GFM AST 尾项小包
|
|
|
|
|
|
|
|
|
|
|
|
Owner:
|
|
|
|
|
|
|
2026-05-21 23:53:39 +08:00
|
|
|
|
- `design/03-rust-web/done/3-13-rust-web-local-markdown-gfm-ast-parser-migration-v1.md`
|
2026-05-21 13:28:23 +08:00
|
|
|
|
- `rust/crates/mnote-web/src/routes/local_folder_source.rs`
|
|
|
|
|
|
- `rust/crates/mnote-web/src/routes/web_shell.rs`
|
|
|
|
|
|
|
|
|
|
|
|
目标:
|
|
|
|
|
|
|
|
|
|
|
|
- 补充或追认 GFM AST 尾项中低风险项:空表格单元格 / 降级策略测试、legacy->Tiptap marks 验证测试、写侧手写 Markdown 函数过渡标记。
|
|
|
|
|
|
- 不修复 frontmatter title 优先级;该项是单独行为变更,保留给后续专项。
|
|
|
|
|
|
- 不移除 web_shell legacy 适配分支,只允许加过渡注释或测试。
|
|
|
|
|
|
|
|
|
|
|
|
验收:
|
|
|
|
|
|
|
|
|
|
|
|
- `cargo test --manifest-path rust/Cargo.toml -p mnote-web local_markdown -- --test-threads=1`
|
|
|
|
|
|
- `cargo test --manifest-path rust/Cargo.toml -p mnote-web web_shell -- --test-threads=1`
|
|
|
|
|
|
|
|
|
|
|
|
### Worker C:Convex export 产品化补 smoke
|
|
|
|
|
|
|
|
|
|
|
|
Owner:
|
|
|
|
|
|
|
2026-05-23 23:38:42 +08:00
|
|
|
|
- `design/01-tree-first-graph-kernel/done/1-6-next-phase-gap-closure-checklist-v1.md`
|
2026-05-21 13:28:23 +08:00
|
|
|
|
- `scripts/task444-convex-workspace-export-local-fixture-smoke.js`
|
|
|
|
|
|
- 可新增 `scripts/task48*-convex-export-*.js`
|
|
|
|
|
|
|
|
|
|
|
|
目标:
|
|
|
|
|
|
|
|
|
|
|
|
- 为 C1 已有能力补 smoke:dry-run 不写文件、同名冲突不覆盖、rollback 恢复导出前状态。
|
|
|
|
|
|
- 不修改 Convex runtime,不改 local-first 架构口径。
|
|
|
|
|
|
- 优先复用现有 fixture/export 脚本,新增脚本要可离线运行。
|
|
|
|
|
|
|
|
|
|
|
|
验收:
|
|
|
|
|
|
|
|
|
|
|
|
- `node --check scripts/task444-convex-workspace-export-local-fixture-smoke.js`
|
|
|
|
|
|
- `node scripts/task444-convex-workspace-export-local-fixture-smoke.js`
|
|
|
|
|
|
- 新增 smoke 的 `node --check` 与实跑通过。
|
|
|
|
|
|
|
|
|
|
|
|
## 3. Codex 本地关键路径
|
|
|
|
|
|
|
|
|
|
|
|
Codex 同步处理:
|
|
|
|
|
|
|
|
|
|
|
|
- A2 保存后刷新可见读回:复现 `POST /api/page-body/write` 后刷新 editor DOM 不显示正文的问题,判断是过期证据、hydration 问题,还是当前真实回归。
|
|
|
|
|
|
- 若是 smoke 缺失,补最小 browser smoke;若是真回归,优先修复 web shell / aggregate bootstrap。
|
|
|
|
|
|
|
|
|
|
|
|
## 4. 完成条件
|
|
|
|
|
|
|
|
|
|
|
|
- Reasonix worker 均有 `final.md` / `result.json` 或明确 `TIMEOUT` 记录。
|
|
|
|
|
|
- Codex 独立审查 diff,不直接相信 worker 总结。
|
|
|
|
|
|
- 相关 targeted tests 与 browser smoke 实跑通过或形成明确 bug。
|
|
|
|
|
|
- `1-6`、`1-9`、`3-13`、`5-26` 文档状态更新。
|
|
|
|
|
|
- 提交前运行 `codegraph sync .`、`codegraph status`、`git diff --check`。
|
|
|
|
|
|
|
|
|
|
|
|
## 5. 本轮执行记录
|
|
|
|
|
|
|
|
|
|
|
|
- 2026-05-21:Codex 建立 Batch C checklist,准备派发 Worker A/B/C,并本地排查 A2 刷新读回。
|
|
|
|
|
|
- 2026-05-21(Codex):新增并实跑 `task484-local-folder-page-body-refresh-readback-smoke.js`,验证 `POST /api/page-body/write` 后磁盘、Page Aggregate、刷新后 ProseMirror 均读回新正文;`1-6` Gap A2 浏览器可见读回改判为完成,剩余仅为 conflict UI 数据源接 BufferStore。
|
|
|
|
|
|
- 2026-05-21(Reasonix Batch C Worker A):worker 只提交 resource resolver 收敛计划,未生成 `final.md` / `result.json`,无业务代码 diff;记录为 `PLAN_ONLY_TIMEOUT`,`5-26` 保持 `process`。结果文件:`.codex/reasonix-tasks/results/batch-c-worker-a-resource-open-resolver-timeout.md`。
|
|
|
|
|
|
- 2026-05-21(Reasonix Batch C Worker B):完成 GFM AST 尾项小包,补空引用块 / 空表格单元格测试、web_shell marks 断言、写侧 Markdown 过渡注释,并更新 `3-13`;结果文件:`.codex/reasonix-tasks/results/batch-c-worker-b-gfm-tail.md`。
|
|
|
|
|
|
- 2026-05-21(Reasonix Batch C Worker C):`task455-convex-export-plan-rollback-smoke.js` 实跑通过,覆盖 dry-run/conflict/rollback 三个行为,`1-6` Gap C1 已可视为完成。结果文件:`.codex/reasonix-tasks/results/batch-c-worker-c-convex-export-smokes.md`。
|
2026-05-21 23:53:39 +08:00
|
|
|
|
- 2026-05-21(Codex Batch F 追认):`3-13` 已移动到 `design/03-rust-web/done/`,本文作为 Batch C 执行记录不再保持活跃 process。
|