Files
mnote/design/old/10-review/done/04-secondary-domains-and-design-governance-review.md
Agent Board b798f628ee chore: land tree view-state, vault, Pi module split, and repo hygiene
Persist PageTree expand state via control-plane view-state and align
chevron/DOM with restored expansion; keep Sidex-style shallow page-tree
scan and drop the unused recursive scanner that only added cargo noise.

Add password vault workbench routes/runtime/skill/CLI, split page_ai_pi
into a module package, and retire Hermes/ACP/OpenHub recycle + root
harness evidence from the index while gitignoring recycle and local
diag dumps.

Archive superseded design/bugs docs under old/, point architecture at
ARCHITECTURE.md, and refresh smokes for Pi S1–S7, vault, and editor
regressions so the working tree can stay clean.
2026-07-21 05:13:05 +08:00

9.4 KiB
Raw Permalink Blame History

[recycle] 次级域与设计治理实现偏差审查

执行状态:已归档到 design/10-review/done/。本文保留为历史审查快照,当前活跃口径以 ./06-execution-checklist-and-acceptance.md 为准。

范围

本次只审查 Mindmap、AI、OnlyOffice、Wolai-aline、SiYuan reference,以及 design/process/done 治理口径与当前实现方向的一致性。重点读取了 ARCHITECTURE.mddesign/README.mddesign/06-mindmap/process/*design/07-ai/process/*design/08-wolai-aline-test-flow/process/wolai-aline-test-flow-v1.mddesign/09-siyuan-reference/process/9-siyuan-reference-boundary-and-adoption-v1.mddesign/90-reference/*,并对照了 Mindmap、AI route/lib、OnlyOffice route/adapter 与相关 Convex/Rust runtime 代码。

结论

总体方向与当前主线基本一致:Mindmap 已明确降为 tree-first graph kernel 的视图/编辑挂件;AI 长期方向已从 mnote-cli 收口改为 Hermes 页面内客户端 + mnote Hermes skill/pluginOnlyOffice 仍是独立页面型编辑器边界,SiYuan 参考稿没有发现被提升为上位架构来源的证据。

主要风险集中在三处:OnlyOffice 在 mnote-web 主入口里的 callback/forcesave 仍是 no-op,而 legacy Next route 已有真实写回链;Mindmap 的导出 action 在 schema/action map 中暴露,但 bridge 安全命令集不支持;Mindmap AI 补完 route 当前硬返回 501,和 Rust tool 已登记的能力面不闭合。

关键发现表格

ID 分类 级别 发现 简短证据 建议
F-01 实现偏差 / 风险 P1 OnlyOffice mnote-web 主入口已挂载 callback/forcesave,但当前实现不写回,只返回成功或 noop,可能让 3000 主链下的 OnlyOffice 保存丢失。 rust/crates/mnote-web/src/routes/mod.rs:78-84 挂载 /api/onlyoffice/callback/api/onlyoffice/forcesaverust/crates/mnote-web/src/routes/onlyoffice.rs:717-759 callback 只记录日志并返回 {error:0}forcesave 返回 mnote-web-rust-noop;而 wolai-frontend/src/app/api/onlyoffice/callback/route.ts:93-192 有真实 Convex 写回链。 优先把 Rust route 接到 onlyoffice_prepare_callback / media asset writeback,或显式把该路由代理到 legacy Next,避免主入口 shadow 掉真实写回。
F-02 未完成 P2 Mindmap export 动作暴露给 UI action map,但 simple-mind-map 安全执行器不允许 EXPORT,默认路径可能显示能力却执行失败。 wolai-frontend/src/lib/mindmap/mindmap-action-map.ts:65export 映射为 runtimeCommand EXPORTwolai-frontend/src/lib/mindmap/simple-mind-map-bridge.ts:119-129SIMPLE_MIND_MAP_SAFE_COMMANDS 不包含 EXPORT 要么把 EXPORT 加入安全命令并补 smoke,要么在 UI state 中继续禁用导出并标注为延期。
F-03 未完成 / 方向变化 P2 Mindmap AI 补完 route 当前直接 501,后续大段旧 Supabase/在线 AI 实现被注释;但 Rust tool registry 已登记 mindmap_expand_node,形成“工具存在、产品入口不可用”的断层。 wolai-frontend/src/app/api/mindmap-ai/expand-node/route.ts:90-97 校验后直接返回 501;同文件后续注释块仍保留旧 Supabase/AI 逻辑;rust/crates/core-protocol/src/tool.rs:231-240rust/crates/bridge-runtime/src/lib.rs:3803-3812 已有 mindmap_expand_node 若该能力仍在 Phase 6/7 范围内,应按 CLI/Rust bridge 路线重接;若延期,应把 route 标成 retired/debug,避免前端或测试误以为可用。
F-04 方向变化 / 文档滞后 P2 AI 主 Web route 曾收口到 mnote-cli host,但新主线已改为 Hermes 页面内客户端;wolai-backend 仍暴露 openai_agents_python 文档 agent route 与旧工具面,旧 route / sidecar / host 的退场关系需重新明确。 wolai-frontend/src/app/api/ai-agent/run/route.ts:36-57 曾明确拒绝 codex/hermes/claudecode 并进入 startMnoteCliAgentHostRunwolai-backend/app/routers/ai_agent.py:34-57 仍暴露 /ai-agent/health/ai-agent/document/runhealth 返回 bridge: openai_agents_pythonwolai-backend/app/services/ai_document_agent.py:1174-1470 仍指令 agent 使用 doc_insert_blocksdoc_replace_rangeslash_run design/07-ai/done/7-3-page-ai-hermes-panel-and-mnote-plugin-v1.md 为上位依据,明确页面 AI 改走 Hermes client proxymnote 能力通过 Hermes skill/plugin 暴露;openai-agents-pythonmnote-cli host 只保留为历史/兼容/内部适配路径并补退场计划。

2026-05-14 复核:F-04 的长期方向已由 design/07-ai/done/7-4-page-ai-hermes-panel-execution-checklist-v1.md 继续落地到 mnote-web Hermes client proxy 与 mnote Hermes tool routes;旧 /api/ai-agent/run 已在 mnote-web 中收口为 legacy_ai_agent_run_retired guard,旧 openai-agents-python / mnote-cli host 只按历史/兼容/对照链处理,不再代表页面 AI 长期主入口。 | F-05 | 文档治理风险 | P3 | design/90-reference 符合“参考资料”目录定位,但内容仍带有问答式残留,容易被后续 worker 误用为正式设计结论。 | design/README.md 明确 90-reference/ 不参与 process/done 状态判断;design/90-reference/90-1-filetree.md 末尾保留“需要我给你...”类对话尾巴;design/90-reference/90-2-yemianshu.md 同样保留示例请求口吻。 | 低优先级清理为中性参考笔记,并在引用时强制以 ARCHITECTURE.md 和主线设计为上位依据。 |

证据

Mindmap

  • 设计口径清晰:design/06-mindmap/reference/6-mindmap-kernel-phase6-projection-editor-v1.md 明确 Phase 6 主线是 Rust kernel truth -> mindmap.simple_mind_map_scene.v1 -> leptos-mindmap editor island -> simple-mind-map runtime -> command bridge,并禁止把 runtime data 当唯一事实源。
  • 实现已对齐主线壳:rust/crates/mnote-web/src/routes/mindmap_shell.rs:105-123 输出 mnote.mindmap_shell.v1mindmap.simple_mind_map_scene.getmindmap.command.applyrust/crates/mnote-web/src/ssr/pages/mindmap.rs:50-56 提供 standalone island 挂载点。
  • 旧 React 块已自我标注为 legacy/compat/referencewolai-frontend/src/components/editor/blocks/MindmapBlock.tsx:3-5 明确 3000 文档页默认主链是 leptos-tiptap NodeView + leptos-mindmap adapter
  • 仍有 compat 数据层:wolai-frontend/convex/schema.ts:164-184mindmaps.data: v.any() 仍承载导图数据;这与当前过渡态兼容,但不应被描述为长期 canonical truth。

AI

  • 旧 CLI-first 入口曾基本对齐:wolai-frontend/src/app/api/ai-agent/run/route.ts:36-57 将默认执行入口限定到 mnote-cli host,拒绝旧 provider;但该口径已被 2026-05-13 的 Hermes 面板主线覆盖。
  • 结构化 artifact 设计应继续保留对象模型,但触发方改为 Hermes tool call -> mnote plugin -> Rust runtime / kernel,见 design/07-ai/done/7-3-page-ai-hermes-panel-and-mnote-plugin-v1.mddesign/07-ai/done/7-2-phase7-structured-artifact-write-chain-v1.md
  • 旧后端 agent 仍存在:wolai-backend/app/routers/ai_agent.py:47-57 仍提供 streaming run;这只能作为历史/兼容/对照链,不能被误认为长期默认主编排。

OnlyOffice

  • 正确边界已有:rust/crates/adapter-onlyoffice/src/lib.rs:124-126 明确 adapter 只定义资产定位、会话、签名、代理、callback/forcesave 边界,不把 OnlyOffice 变成主事实层。
  • mnote-web 页面是独立编辑页:rust/crates/mnote-web/src/routes/onlyoffice.rs:325-630 直接渲染 /onlyoffice,通过 DocsAPI 创建编辑器,未嵌入正文主编辑画布。
  • 关键风险是写回链 owner 分裂:Rust 主入口 no-op 与 legacy Next 真写回并存,见 F-01。

Wolai-aline

  • 流程文档严格要求“Wolai 基线 -> RED smoke -> 小范围实现 -> 本地验证 -> subagent 复测 -> 主线程截图复核”:design/08-wolai-aline-test-flow/process/wolai-aline-test-flow-v1.md
  • 本次不是具体 Wolai 对标实现任务,未执行浏览器对标;未发现该流程被错误提升为产品架构来源。

SiYuan Reference

  • design/09-siyuan-reference/process/9-siyuan-reference-boundary-and-adoption-v1.md 的边界与当前主线一致:思源只作为产品能力与交互参考,不替代 tree-first graph kernel、Rust kernel、Page Aggregate、tree command 与 tree realtime。
  • 当前只读检索未发现将 SiYuan .sy、SQL API 或前端 runtime 直接提升为 mnote 长期事实源的实现证据;若后续新增属性视图/数据库视图,应继续先做对象域评估。

建议优先级

  1. P1:补齐或明确代理 OnlyOffice Rust callback/forcesave 写回链,避免主入口下保存成功但内容未持久化。
  2. P2:收口 Mindmap action 可用性,先修 export 映射与安全命令不一致,再继续扩展 UI 能力。
  3. P2:处理 Mindmap AI route:要么按 Hermes plugin / Rust bridge 重接 mindmap_expand_node,要么显式退役该 Next route。
  4. P2:继续保持 wolai-backend AI agent、旧 /api/ai-agent/runmnote-cli host 的历史/兼容定位和访问边界;页面 AI 长期主链已经由 7-4 收口到 Hermes 面板 + mnote plugin,后续只在各自 legacy domain 里拆迁移。
  5. P3:清理 design/90-reference 的问答残留,并在引用规范里再次强调它不是 process/done 设计稿。

本次修改文件

  • /mnt/Data1T/mnote/design/10-review/done/04-secondary-domains-and-design-governance-review.md