Files
mnote/bugs/07-ai/done/7-58-mindmap-p2-apply-ops-and-ui-smoke-gap-v1.md
T
lix-2026 1882db7681 收口 MNote P0 P1 P2 审查尾项
- 归档 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 .
2026-06-01 09:29:12 +08:00

3.3 KiB
Raw Blame History

7-58 Mindmap P2 apply_ops 与真实 UI smoke 缺口

状态

  • 状态:done
  • Owner07-ai / mindmap resource skill / Page AI target runtime
  • 发现时间:2026-06-01

现象

Mindmap skill 和资源 target 已有最小闭环:fetchcreate_from_outlineapply_ops 基础工具、mnote-mindmap skill 注册、task503task525 smoke 已覆盖 API/target 绑定。但 P2 第二批仍缺 apply_ops 操作白名单文档化、长文本节点策略和真实 UI 交互 smoke。

证据

  • rust/crates/mnote-web/src/hermes_tools/resource.rs 已有 mindmap fetch/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 交互,例如节点编辑、拖拽、导出等。

下一步

  1. 已文档化 apply_ops 支持的操作白名单、payload schema、dry-run/revision 规则和失败形态。
  2. 已为关键 ops 增加 Rust 单测,覆盖成功、别名、delete、dry-run、revision mismatch、越权/只读拒绝、unsupported op、invalid ops payload、禁止删除 root。
  3. 已在 skill prompt 中明确长文本节点压缩策略:短语化、避免长段落,拆成 child nodes。
  4. 已用真实 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/updateNodeinsertChild/addChilddeleteNode,记录 nodeId/idtext/titleparentId/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_aliases
    • hermes_tools_mindmap_apply_ops_deletes_child_node
    • hermes_tools_mindmap_apply_ops_dry_run_returns_diff_without_writing
    • hermes_tools_mindmap_apply_ops_rejects_invalid_ops_payload
    • hermes_tools_mindmap_apply_ops_rejects_root_delete
    • hermes_tools_mindmap_apply_ops_rejects_unsupported_op
  • 已通过:
    • cargo test --manifest-path rust/Cargo.toml -p mnote-web hermes_tools_mindmap_apply_ops -- --test-threads=1
    • node --check scripts/task455-local-folder-mindmap-clean-smoke.js
    • MNOTE_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