Files
mnote/design/old/04-tree-domain/done/4-15-task-006-compat-host-thinning-execution-checklist-v1.md
T
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

2.7 KiB
Raw Blame History

[recycle] 4-15 [done] task-006 compat host thinning 执行清单 v1

口径修正(2026-04-28):本文件的 done 状态只表示本批可验证范围内的 compat host 收薄完成;不表示 compat host 已退为纯 debug/internal,也不表示 TreeShellIframeHost 的 JS DOM/state machine 已从默认真实流量删除。最终退场门禁以 4-18-tree-final-dom-shell-cutover-hard-gate-v1.md 为准;该硬门禁现已在同目录 done/ 收口。

最终清理更新(2026-05-16):本文以下关于 TreeShellIframeHost 仍在 3000 主路径或作为 legacy/debug 暂留的表述均为历史阶段记录;当前 active source 已删除 legacy iframe 入口,旧源码与测试已移动到 recycle/

目标

把本批可验证范围内的 compat host 继续收薄:默认 3000 主路径不再请求 mnote-web:3104 proxy,不回退旧 React renderer,不再通过 __MNOTE_TREE_SHELL_OVERRIDE__ 注入第二份主路径 itemspage/filetree/picker 的首屏 Rust initial DOM 与 rendererInput/state family 成为主路径合同。

当前边界

  • 本任务不声称已经完成完整 Rust runtime / wasm 替换。
  • 历史阶段中 TreeShellIframeHost 曾是 3000 主路径的 same-origin inline host;当前已退出 active source,不能再作为当前主路径或 debug/internal fallback。
  • 3104 /tree 只保留显式 debug/internal 验证边界,task112 中 direct tree shell debug 已默认跳过。

执行项

  • 主路径宿主边界:
    • page/filetree/picker 在 rust_family 下继续进入同源 iframe host,不回退旧 React renderer。
    • 缺少 workspaceId 时显示 renderer removed 占位,不恢复旧 React renderer。
    • 3000 inline srcDoc 主路径使用 state.items + rendererInput,不再依赖 __MNOTE_TREE_SHELL_OVERRIDE__ 作为第二输入真相。
  • 状态与事件收薄:
    • sidebar refresh/sync 保持事件与语义 key,而不是引入新的树结构重建真相。
    • file tree selection 只通过 renderer event snapshot 回宿主业务。
    • page/filetree/picker smoke 继续覆盖主路径 iframe host 的导航、右键、双击打开、picker 搜索/选中与 stream fallback。
  • 验证覆盖:
    • pnpm vitest run src/components/sidebar/tree-shell-surface.test.tsx src/components/sidebar/sidebar-events.test.ts src/components/sidebar/sidebar-sync.test.ts
    • node scripts/task112-tree-rust-family-regression-smoke.js

后续剩余

  • 完整“compat host 退为 debug/internal fallback”仍需要真正 Rust runtime/wasm 或等价正式 renderer 承接运行时 DOM 与状态机;当前已把本批可验证主路径收薄记录为阶段完成。