docs(design): 固化 3000 主文档壳刷新验收口径

明确 File Tree / Page Tree 的 no-refresh 验收必须在 3000 /documents/<id> 主文档壳执行,不能再用 3001/Next 或 /tree debug route 替代。

补充页面 tree.node.create、页面 delete/purge、页面内 mindmap create 三条链路的独立验收;mindmap create 按 /api/mindmap/<doc>/<mindmap> 资产写入链路单独验证。

记录 task426 主入口 smoke 作为后续回归入口。
This commit is contained in:
lix-2026
2026-05-14 10:18:31 +08:00
parent ca9366232e
commit e9188716e6
4 changed files with 20 additions and 9 deletions
@@ -105,7 +105,7 @@
| Phase 0 | 边界冻结 | `DONE` | 文档、候选模块、边界口径已经成形,但性能基线更多还是文档定义,不是完整观测系统 |
| Phase 1 | Rust Web 基础层 | `PARTIAL` 接近 `DONE` | `mnote-web` 已成为 `3000` 主 Web 入口 owner,根页 / 文档页 SSR 产品壳、tree stream 与关键 API 接缝已落地;主 API 全量迁移、compat 清理与 legacy island source 清理仍未完成 |
| Phase 2 | 文档阅读页 server-first 化 | `PARTIAL` 接近 `DONE` | 阅读态/编辑态已明显分离,但仍有旧链回退和大量客户端状态集中在 `DocumentContent` |
| Phase 3 | Sidebar / 树结构 Rust 化 | `PARTIAL` 偏早期 | 主 Sidebar 已以 `kernelSidebarTree` 作为主树来源,但整体仍是超大客户端组件 |
| Phase 3 | Sidebar / 树结构 Rust 化 | `PARTIAL` | 主 Sidebar 已以 `kernelSidebarTree` 作为主树来源Rust 3000 主文档壳已完成 Page Tree / File Tree create/delete 与页面内 mindmap asset create 的 no-refresh 验收,但整体仍是超大客户端组件 |
| Phase 4 | 搜索 Rust 化与 island 化 | `PARTIAL` | host/runtime 懒加载拆分已做,结果形状也开始带 `nodeId` / `subtreeRootId` / `evidence`,但仍未完成 server-first 搜索页 |
| Phase 5 | AI 面板 Hermes client island 化 | `PARTIAL` | host/runtime 拆分已做,且已开始把 `node` / `subtree` / `outline` / `evidence` 送入 AI bridge;后续应把 Web 面板退成 Hermes 页面内客户端,把 mnote 能力注册为 Hermes skill/plugin,但 runtime 仍重,协议也未统一到 Hermes session/run/tool contract |
| Phase 6 | Mindmap 独立对象化 | `PARTIAL` | 独立页脱离 editor stub 主入口,并补出 `standalone` / `documentBridge` 边界,但仍是客户端重壳 |
@@ -220,7 +220,7 @@
## 8. Phase 3Sidebar / 页面树 / 文件树 Rust 化与 island 化
**当前状态:`PARTIAL` 偏早期**
**当前状态:`PARTIAL`3000 主文档壳 no-refresh 主链已闭环,Sidebar 瘦身仍未完成**
### 8.1 已落地事实
@@ -236,12 +236,15 @@
- [x] Rust Web 3000 workspace shell 已接入真实页面树 / 文件树 tab host、真实 row、UI 新建页面和 active page 链路
- [workspace_shell.rs](/mnt/Data1T/mnote/rust/crates/mnote-web/src/workspace_shell.rs)
- [layout.rs](/mnt/Data1T/mnote/rust/crates/mnote-web/src/ssr/pages/layout.rs)
- [x] Rust Web 3000 主文档壳已监听 `tree:local-command` 与同页 mindmap asset 写入,页面 create/delete 与页面内 mindmap create 均可在 Page Tree / File Tree 无刷新回显
- [layout.rs](/mnt/Data1T/mnote/rust/crates/mnote-web/src/ssr/pages/layout.rs)
- [task426-mnote-web-main-no-reload-smoke.js](/mnt/Data1T/mnote/scripts/task426-mnote-web-main-no-reload-smoke.js)
### 8.2 当前真实问题
- [ ] `Sidebar` 仍然是超大客户端组件
- [sidebar.tsx](/mnt/Data1T/mnote/wolai-frontend/src/components/sidebar/sidebar.tsx)
- [ ] 页面树 / 文件树虽然已统一协议,legacy Next 侧整体执行面仍主要在客户端;当前 Rust Web 3000 SSR 壳已接入 live EventSource,但 live cache、preferred snapshot 与补偿链还未完全统一
- [x] 页面树 / 文件树在 3000 主文档壳下的 create/delete 与页面内 mindmap create 无刷新链路已验证;后续不能再用 3001/Next 或 `/tree` debug route 替代主链验收
- [x] `buildDocumentTree(...)` 仅剩兼容 helper 与旧单测,不再位于树域主路径
- [ ] 主布局仍然默认常驻挂载 Sidebar
- [ ] 还不能叫“服务端输出 + 局部 island”,现在更像“服务端首包 + 超大客户端壳”
@@ -251,7 +254,7 @@
- [ ] 先拆 Sidebar 自身为 host / runtime 或分片 island
- [ ] 把树结构首包与交互态严格分层
- [x] 把主 Sidebar 之外的 page tree、file tree、embed/move picker 也统一切到 kernel projection
- [ ]局部刷新协议显式化
- [x] 3000 主文档壳内页面 create/delete 与页面内 mindmap create 的局部刷新协议显式化;后续新增资产类型时继续复用同一主入口验收口径
- [ ] 给 Sidebar 建立真正的切页重渲染基线
---