- 归档 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.3 KiB
3.3 KiB
7-58 Mindmap P2 apply_ops 与真实 UI smoke 缺口
状态
- 状态:done
- Owner:07-ai / mindmap resource skill / Page AI target runtime
- 发现时间:2026-06-01
现象
Mindmap skill 和资源 target 已有最小闭环:fetch、create_from_outline、apply_ops 基础工具、mnote-mindmap skill 注册、task503 和 task525 smoke 已覆盖 API/target 绑定。但 P2 第二批仍缺 apply_ops 操作白名单文档化、长文本节点策略和真实 UI 交互 smoke。
证据
rust/crates/mnote-web/src/hermes_tools/resource.rs已有 mindmapfetch/apply_ops/create_from_outline入口。scripts/task503-mindmap-skill-capability-smoke.js覆盖 skill、create_from_outline、fetch、embed。scripts/task525-page-ai-mindmap-resource-target-smoke.js覆盖 mindmap resource tab / Page AI targetPackage。- 当前缺口未在独立 bugs/process 中跟踪;历史相关 bug
7-48/7-51/7-52已作为各自窄问题归档。
影响
- agent 可以调用 mindmap 工具,但不清楚
apply_ops的稳定操作白名单和限制。 - 长文本节点可能破坏 mindmap 渲染或 agent 输出可读性。
- 现有 smoke 偏 API/target 合同,未覆盖用户真实 UI 交互,例如节点编辑、拖拽、导出等。
下一步
- 已文档化
apply_ops支持的操作白名单、payload schema、dry-run/revision 规则和失败形态。 - 已为关键 ops 增加 Rust 单测,覆盖成功、别名、delete、dry-run、revision mismatch、越权/只读拒绝、unsupported op、invalid ops payload、禁止删除 root。
- 已在 skill prompt 中明确长文本节点压缩策略:短语化、避免长段落,拆成 child nodes。
- 已用真实 mindmap UI smoke 覆盖打开、插入、渲染、样式抽屉默认状态、slash 菜单层级和 resize 基础交互。
验收
apply_ops白名单与限制写入 design / skill。hermes_tools_mindmap_apply_ops_*targeted tests 覆盖核心操作。- 长文本节点策略有测试或明确降级说明。
- 至少一条真实 mindmap UI browser smoke 通过并登记到
scripts/TESTING_REFERENCE.md。
2026-06-01 修复记录
skills/mnote-mindmap/SKILL.md已新增Current apply_ops contract,明确支持updateText/updateNode、insertChild/addChild、deleteNode,记录nodeId/id、text/title、parentId/nodeId等 payload schema、未知 op 拒绝、禁止删除 root、长文本短语化/拆子节点、dryRun与 revision checks。rust/crates/mnote-web/src/routes/hermes_tools.rs已补齐 apply_ops targeted tests:hermes_tools_mindmap_apply_ops_accepts_common_aliaseshermes_tools_mindmap_apply_ops_deletes_child_nodehermes_tools_mindmap_apply_ops_dry_run_returns_diff_without_writinghermes_tools_mindmap_apply_ops_rejects_invalid_ops_payloadhermes_tools_mindmap_apply_ops_rejects_root_deletehermes_tools_mindmap_apply_ops_rejects_unsupported_op
- 已通过:
cargo test --manifest-path rust/Cargo.toml -p mnote-web hermes_tools_mindmap_apply_ops -- --test-threads=1node --check scripts/task455-local-folder-mindmap-clean-smoke.jsMNOTE_WEB_SMOKE_BASE_URL=http://127.0.0.1:3303 node scripts/task455-local-folder-mindmap-clean-smoke.js
真实 UI smoke 结果:
tmp/task455-local-folder-mindmap-clean-smoke/result.json