- 归档 OnlyOffice live bridge、Page AI、mindmap、design governance 与相关 bug 条目 - 补齐 MinerU OCR 后端 runtime 合同与 smoke/test 基线 - 收口 ChatOnly/Doubao、ObjectIdentity、Page Aggregate compat 与 runtime owner 文档口径 验证: - cargo test --manifest-path rust/Cargo.toml -p mnote-web local_ocr -- --test-threads=1 - cargo test --manifest-path rust/Cargo.toml -p mnote-web onlyoffice_bridge -- --test-threads=1 - git diff --check - git diff --cached --check - codegraph index . --force && codegraph status . - codegraph sync . && codegraph status .
3.7 KiB
7-47 local-first Page AI 写入入口口径漂移
状态
- 状态:done
- Owner:07-ai / Page AI / design governance
- 发现时间:2026-05-31
现象
design/10-review/done/11-current-full-architecture-review-v1.md 保留了“mnote.doc.markdown_edit 已是简单正文编辑主路径”的历史结论。但当前 AGENTS、ARCHITECTURE、CURRENT_ARCHITECTURE 与 7-18 都已经把 local-first 普通 Markdown 编辑主路径改为:定位真实 .md 文件,Hermes/Reasonix 在 allowed roots 内使用自身 patch/diff/文件编辑能力写入,再由 watcher / BufferStore / Page Aggregate 同步。旧 review 结论容易误导后续 worker 继续扩 mnote.doc.markdown_edit。
证据
design/10-review/done/11-current-full-architecture-review-v1.md写明mnote.doc.markdown_edit是简单正文编辑主路径。AGENTS.md与ARCHITECTURE.md当前口径明确:mnote.doc.markdown_edit只作为 cloud / remote agent / compat fallback。design/07-ai/process/7-18-local-first-agent-file-editing-control-plane-v1.md明确要求 Agent Target Resolver、allowed roots/files、dirty guard 和 agent 原生 patch/diff 主路径。
影响
- 后续 Page AI 任务可能绕开
7-18的 target package / allowed roots / dirty conflict 模型。 - AI 写入审计、文件版本冲突和 watcher 同步难以统一。
mnote.page.save/mnote.doc.markdown_edit可能被继续当成 local-first 精确编辑入口扩张。
修复建议
- 在
11-current-full-architecture-review-v1.md补充“历史快照,local-first 主路径已被7-18覆盖”的说明,或在7-18中添加覆盖旧 review 的显式引用。 - Page AI 新任务默认从
7-18拆 checklist,不从11的旧 tool 主路径拆实现。 - 对 Hermes tool guidance 增加断言:local-first 普通 Markdown 编辑优先文件引用和 patch/diff,工具写入只作为 fallback。
本轮进展
-
2026-05-31:已在
design/10-review/done/11-current-full-architecture-review-v1.md顶部补充历史快照说明,明确当前 local-first 普通 Markdown 编辑主路径以AGENTS.md、CURRENT_ARCHITECTURE.md、ARCHITECTURE.md和7-18为准。 -
2026-06-01:已补 Page AI run 的
mnote.agent_target_package.v1输入和后端 sanitize / allowedFiles 派生,避免 local-first agent 只拿到目录级allowedRoots而缺少冻结目标文件。该进展只覆盖运行时输入合同,target chip / picker、真实 agent 写入回收和 dirty conflict 仍按7-18后续阶段推进。 -
2026-06-01:已检查 Hermes client runtime guidance。local-first 分支已经明确“普通 Markdown 编辑优先使用 agent 原生 patch/diff 写入真实文件”;remote/cloud/compat 分支中
mnote_doc_markdown_edit的描述已补上“远端 / cloud / compat”限定,测试名同步改为hermes_client_run_guidance_prefers_markdown_edit_only_for_remote_compat_plain_body_edits。 -
2026-06-01:已给
design/10-review/done/08、09、10补充历史快照说明,避免旧 review 结论继续覆盖7-18当前口径。
验收
rg -n "markdown_edit.*主路径|简单正文编辑主路径|应优先调用 mnote_doc_markdown_edit|mnote_doc_markdown_edit for plain" design AGENTS.md ARCHITECTURE.md CURRENT_ARCHITECTURE.md rust/crates/mnote-web/src/routes/hermes_client.rs -g '*.md' -g '*.rs'的剩余命中均属于历史快照说明、已退役/降级口径、old 目录或 remote/cloud/compat 分支。- Page AI task prompt / skill guidance 中明确区分 local-first 主路径与 cloud/remote/compat fallback。
cargo test -p mnote-web hermes_client_run_guidance_prefers_markdown_edit_only_for_remote_compat_plain_body_edits -- --test-threads=1