- 统一 local-first MVP 后阶段架构口径,补充 process 执行总序和 Reasonix 协作记录 - 归档已完成的 design checklist,标注参考型 process,更新 AGENTS/REASONIX/架构文档 - 补充文件树/主编辑器下载与上下文菜单相关实现、bug 记录和 smoke 脚本 验证:git diff --check;codegraph sync .;cargo test -p mnote-web;node --check scripts/task476-filetree-editor-context-menu-download-smoke.js
272 lines
14 KiB
Markdown
272 lines
14 KiB
Markdown
# Design Governance Report — Worker A
|
||
|
||
审查范围:`design/01-tree-first-graph-kernel/process/`、`design/02-convex-rust-long-term-architecture/process/`、`design/03-rust-web/process/`
|
||
|
||
审查时间:2026-06-17
|
||
|
||
上位依据:`design/01-05-current-priority-overview.md`(2026-05-21 口径)
|
||
|
||
---
|
||
|
||
## 总览
|
||
|
||
| 域 | 文件 | 建议状态 | 高风险项 |
|
||
|----|------|---------|---------|
|
||
| 01 | 1-tree-first-graph-kernel-v1.md | **keep-process** | 无 |
|
||
| 01 | 1-1-tree-first-graph-kernel-checklist-v2.md | **keep-process** | 无 |
|
||
| 01 | 1-2-tree-first-graph-product-vision-progress-v1.md | **keep-process** | 无 |
|
||
| 01 | 1-3-current-priority-execution-checklist-v1.md | **keep-process** | 无 |
|
||
| 01 | 1-4-next-phase-execution-roadmap-v1.md | **keep-process** | 无 |
|
||
| 01 | 1-5-next-phase-sequential-execution-checklist-v1.md | **keep-process** | ⚠ 多数 items 未勾选 |
|
||
| 01 | 1-6-next-phase-gap-closure-checklist-v1.md | **keep-process** | ⚠ browser smokes 未复跑 |
|
||
| 01 | 1-7-local-workspace-root-page-bundle-checklist-v1.md | **archive-done** | 无 |
|
||
| 02 | 2-3-local-workspace-access-control-productization-v1.md | **archive-done** | 无 |
|
||
| 03 | 3-rust-web-long-term-architecture-v1.md | **keep-process** | 无 |
|
||
| 03 | 3-1-rust-web-long-term-checklist-v2.md | **keep-process** | 无 |
|
||
| 03 | 3-3-rust-web-tree-realtime-event-stream-v1.md | **keep-process** | 无 |
|
||
| 03 | 3-13-rust-web-local-markdown-gfm-ast-parser-migration-v1.md | **keep-process** | ⚠ 3 unsub items |
|
||
| 03 | 3-15-local-markdown-asset-upload-relative-path-v1.md | **keep-process** | ⚠ browser smoke 待补 |
|
||
| 03 | 3-17-convex-export-web-entry-v1.md | **needs-human-confirmation** | ⚡ 设计稿但未落码 |
|
||
|
||
---
|
||
|
||
## 逐文件审查
|
||
|
||
---
|
||
|
||
### 1. `01-tree-first-graph-kernel/process/1-tree-first-graph-kernel-v1.md`
|
||
|
||
**建议状态:keep-process**
|
||
|
||
**证据:** `01-05-current-priority-overview.md` §1 明确列为当前仍然有效的 3 份上位主线之一。文档更新于 2026-04-22,全文固定 "tree-first graph kernel" 长期方向,不使用旧 Convex 默认存储 / Next 主入口 / BlockNote 默认编辑器口径。
|
||
|
||
**归档/保留原因:** 仍是 tree-first kernel 方向的权威定义文档,所有后续设计以此为基础。
|
||
|
||
---
|
||
|
||
### 2. `01-tree-first-graph-kernel/process/1-1-tree-first-graph-kernel-checklist-v2.md`
|
||
|
||
**建议状态:keep-process**
|
||
|
||
**证据:** `01-05-current-priority-overview.md` §3 明确列为"仍然有效但不在第一线"的 process 文档。文档头部已标注优先级转移说明,使用 `DONE / PARTIAL / NOT_STARTED` 状态体系,反映真实代码状态而非乐观口径。
|
||
|
||
**归档/保留原因:** 仍是 Kernel Phase 全景参考,Phase 0-3 已 DONE,Phase 4-9 进度清晰。
|
||
|
||
---
|
||
|
||
### 3. `01-tree-first-graph-kernel/process/1-2-tree-first-graph-product-vision-progress-v1.md`
|
||
|
||
**建议状态:keep-process**
|
||
|
||
**证据:** 更新于 2026-05-19,引用 `01-05-current-priority-overview.md` 作为上位依据。使用 local-first MVP 后阶段口径。包含对照 Wolai 帮助中心的详细块类型覆盖率、AI 操作能力缺口分析,以及三条架构收口主线的进度百分比。
|
||
|
||
**归档/保留原因:** 唯一一份产品愿景 vs 实现进展的对照文档,提供 gap analysis(AI 操作思维导图 / Office 文件),对产品规划仍有参考价值。
|
||
|
||
---
|
||
|
||
### 4. `01-tree-first-graph-kernel/process/1-3-current-priority-execution-checklist-v1.md`
|
||
|
||
**建议状态:keep-process**
|
||
|
||
**证据:** `01-05-current-priority-overview.md` §6 明确引用为"持续推进 checklist"。文档 P0-P6 全部勾选且有验证证据(单测命令 + smoke 脚本),P7 已完成阶段性瘦身。迁移到 done/ 的标准清晰列出并已满足。
|
||
|
||
**归档/保留原因:** 当前最活跃的执行清单,`1-3` 本身作为持续执行清单保留在 process/,已完成的上位设计各自在 done/。
|
||
|
||
---
|
||
|
||
### 5. `01-tree-first-graph-kernel/process/1-4-next-phase-execution-roadmap-v1.md`
|
||
|
||
**建议状态:keep-process**
|
||
|
||
**证据:** 更新于 2026-05-19,引用 `01-05` 和 `1-3`。全文核心论点是"架构收口为主,产品化闭环为辅",与当前 local-first MVP 后阶段口径完全一致。
|
||
|
||
**归档/保留原因:** 定义了下一阶段路线图(WorkspacePath → BufferStore → Page Aggregate kernel-native → command context → live cache),仍有效。
|
||
|
||
---
|
||
|
||
### 6. `01-tree-first-graph-kernel/process/1-5-next-phase-sequential-execution-checklist-v1.md`
|
||
|
||
**建议状态:keep-process**
|
||
|
||
**证据:** 更新于 2026-05-19,引用 `1-4` 和 `1-3`。所有执行原则和 Phase A0-A7 定义仍符合当前架构方向。
|
||
|
||
**归档/保留原因:** 提供了顺序执行的详细清单,且多数 items 尚未勾选,说明它是未来的工作计划而非已完成的文档。
|
||
|
||
**⚠ 风险:** 全场 687 行,大多数 checkbox 未勾选。如果团队当前执行顺序已不按此 checklist 推进(例如优先做 BufferStore 而非 smokes),应降级为 `mark-process-reference` 或更新本文件。当前保留但需关注执行偏差。
|
||
|
||
---
|
||
|
||
### 7. `01-tree-first-graph-kernel/process/1-6-next-phase-gap-closure-checklist-v1.md`
|
||
|
||
**建议状态:keep-process**
|
||
|
||
**证据:** 创建于 2026-05-19,状态 `PARTIALLY_DONE`。引用 `1-5` 和 `1-4`。基于 Reasonix 执行汇总的缺口补齐文档。
|
||
|
||
**归档/保留原因:** 记录了哪些缺口已由 Reasonix 执行填补(BufferStore、CommandContext、export/rollback),哪些仍未完成(browser smokes、conflict UI)。仍有跟踪价值。
|
||
|
||
**⚠ 风险:** §6.2 列出 6 个未复跑的 browser smokes。这些 smokes 如果长期不跑,本文件的剩余项跟踪价值下降。
|
||
|
||
---
|
||
|
||
### 8. `01-tree-first-graph-kernel/process/1-7-local-workspace-root-page-bundle-checklist-v1.md`
|
||
|
||
**建议状态:archive-done**
|
||
|
||
**证据:**
|
||
- 所有 checklist items 全部勾选并附验证命令
|
||
- 8 个 Rust 单测通过(`create_default_local_workspace_uses_managed_data_root`、`local_tree_command_create_page_creates_timestamped_markdown_and_sibling_folder` 等)
|
||
- HTTP smoke 通过:`node scripts/task443-local-markdown-asset-upload-smoke.js`
|
||
- 浏览器验收完成(截图保存到 `tmp/page-bundle-*`)
|
||
- 磁盘结构验证通过:无默认 `pages/`、`assets/`、`mindmaps/` 顶层目录,新建页面带 `HHMMSS` 时间戳
|
||
|
||
**代码证据:**
|
||
- `create_default_local_workspace_for_actor_at_base` — `local_folder_source.rs:1494`
|
||
- 同名目录作为页面子容器 — 单测 `local_page_tree_uses_sibling_directory_as_page_children_container`
|
||
- 文件树不合并 `.md` 和同名目录 — 单测 `local_file_tree_keeps_markdown_and_sibling_folder_as_separate_rows`
|
||
|
||
**归档/保留原因:** 所有目标已实现且有验收证据。设计稿的收口方向是"默认工作区只保留用户内容根目录和 `.mnote/` 系统目录"——已落地。
|
||
|
||
---
|
||
|
||
### 9. `02-convex-rust-long-term-architecture/process/2-3-local-workspace-access-control-productization-v1.md`
|
||
|
||
**建议状态:archive-done**
|
||
|
||
**证据:**
|
||
- A1-A5 (P0 管理员控制面 API):全部完成,`GET/POST/DELETE /api/admin/access-policy/*` 已实现并有单测覆盖
|
||
- B1-B5 (P1 权限覆盖审计):全部完成,覆盖 local folder open、page body write、tree command、Hermes/Reasonix、shared AI session
|
||
- `01-05-current-priority-overview.md` §5 已将"管理员目录授权 UI/API"列为"已有最小实现与验证证据,不再作为当前第一优先级"
|
||
|
||
**代码证据:**
|
||
- `rust/crates/mnote-web/src/routes/local_folder_source.rs` — `add_local_access_grant_for_context`、`create_local_access_grant`、`ensure_local_workspace_access_for_actor`
|
||
- `rust/crates/mnote-web/src/ssr/pages/admin.rs` — 管理员 UI
|
||
- `rust/crates/mnote-web/src/routes/mod.rs` — route registration
|
||
|
||
**归档/保留原因:** 所有 checklist items 已勾选并有单测/代码证据。文档中定义的产品化目标(管理员可管理、agent 可复用、全入口不绕过)已实现。后续 access control 扩展可在新文档中推进。
|
||
|
||
---
|
||
|
||
### 10. `03-rust-web/process/3-rust-web-long-term-architecture-v1.md`
|
||
|
||
**建议状态:keep-process**
|
||
|
||
**证据:** `01-05-current-priority-overview.md` §1 明确列为当前仍然有效的 3 份上位主线之一。更新于 2026-05-09,定义了 Rust Web 分层方案(axum + Leptos Islands + Hermes)。
|
||
|
||
**归档/保留原因:** 仍是 Rust Web 架构的权威定义文档。
|
||
|
||
---
|
||
|
||
### 11. `03-rust-web/process/3-1-rust-web-long-term-checklist-v2.md`
|
||
|
||
**建议状态:keep-process**
|
||
|
||
**证据:** `01-05-current-priority-overview.md` §3 明确列为"仍然有效但不在第一线"。文档头部已标注优先级转移说明(2026-04-22 + 2026-04-29 复核补充)。Phase 0-8 状态清晰(DONE / PARTIAL / NOT_STARTED),反映真实代码状态。
|
||
|
||
**归档/保留原因:** 仍是 Rust Web 实施全景参考。Phase 1 接近 DONE、Phase 8 接近 DONE、Phase 3/4/5/7 为 PARTIAL。
|
||
|
||
---
|
||
|
||
### 12. `03-rust-web/process/3-3-rust-web-tree-realtime-event-stream-v1.md`
|
||
|
||
**建议状态:keep-process**
|
||
|
||
**证据:** `01-05-current-priority-overview.md` §2.3 引用为 Tree Realtime 当前状态文档。2026-05-18 补充 local-first 口径,明确 Convex realtime substrate 仅适用于 convex_workspace。有明确 §9.2 "仍未完成" 说明不能移到 done/。
|
||
|
||
**归档/保留原因:** 有明确 §9.2 未完成项(Sidebar/page subtree/filetree 未全部统一到同一条 live stream cache;WS 尚未成为主实时链路)。README 中明确了 done/ 迁移前必须完成的验收标准。无风险。
|
||
|
||
---
|
||
|
||
### 13. `03-rust-web/process/3-13-rust-web-local-markdown-gfm-ast-parser-migration-v1.md`
|
||
|
||
**建议状态:keep-process**
|
||
|
||
**证据:** 文档自身 §11.9 明确标注 "[ ] 迁移完成后把设计稿状态从 process 移到 done" 未勾选。剩余 3 项未完成:
|
||
1. "[ ] 新增 web shell 单测,验证 legacy <-> Tiptap 转换不丢 marks"
|
||
2. "[ ] 把手写 parser 标记为过渡实现"
|
||
3. "[ ] 移除 web_shell.rs 中只为补丁存在的临时适配分支"
|
||
|
||
**归档/保留原因:** 迁移工作未完成。当前读侧 AST 已就位,写侧回 Markdown 仍部分依赖手写规则。无口径冲突。
|
||
|
||
**⚠ 风险:** 3 个未完成项如果长期无人推进,应降级为 `mark-process-reference`。但当前准确。
|
||
|
||
---
|
||
|
||
### 14. `03-rust-web/process/3-15-local-markdown-asset-upload-relative-path-v1.md`
|
||
|
||
**建议状态:keep-process**
|
||
|
||
**证据:** 文档状态头明确标注"(代码、单测和 HTTP smoke 已完成;真实浏览器 smoke 待补)"。§9 checklist 中除浏览器 smoke 外所有项目已勾选。实现与缺陷闭环在 `bugs/03-rust-web/done/3-16`。
|
||
|
||
**代码证据:**
|
||
- `local_markdown_asset_upload_copies_next_to_markdown_with_relative_path` 单测通过
|
||
- HTTP smoke 覆盖 `/api/local-folder/assets/upload` 真实 multipart 上传
|
||
|
||
**归档/保留原因:** 代码实现已完成,仅缺浏览器 smoke 这一最终验收。应该保持 process 直到 browser smoke 通过。
|
||
|
||
**⚠ 风险:** 缺少浏览器 smoke 意味着编辑器上传面板的实际用户体验未验证。低风险。
|
||
|
||
---
|
||
|
||
### 15. `03-rust-web/process/3-17-convex-export-web-entry-v1.md`
|
||
|
||
**建议状态:needs-human-confirmation → 候选人:mark-process-reference**
|
||
|
||
**证据:** 状态标记为 `process`,但文档是一份 Web 控制台 UI 的设计提案("后续落码顺序"列出 5 步尚未实现的落码步骤)。CLI 工具已存在:
|
||
- `scripts/export-convex-workspace-to-local.js` 支持 `--dry-run`、`--manifest`、`--conflict-report`、`--rollback`
|
||
- `task444` 和 `task455` smoke 通过
|
||
|
||
`01-05-current-priority-overview.md` §5 已将 P6 (Convex 导出) 列为"已有最小实现与验证证据,不再作为当前第一优先级"。
|
||
|
||
**建议补充说明:** 文档作为 Web 入口设计稿保留在 process/ 会产生"这是当前待办"的误导。建议:
|
||
|
||
- **选项 A (推荐):mark-process-reference** — 保持文档但标记为参考设计,不误认为待办。保留 CLI 设计供后续 Web 入口实现时参考。
|
||
- **选项 B:keep-process** — 如果团队明确要在短期内实现 Web 入口。
|
||
- **选项 C:archive-old-process** — 如果决定 CLI 能力已足够,不优先做 Web UI。
|
||
|
||
**⚠ 风险:** 如果标记为 process,用户可能误以为 Web 入口已进入实施状态。实际上 5 个落码步骤均未开始。
|
||
|
||
---
|
||
|
||
## 汇总统计
|
||
|
||
| 建议状态 | 数量 | 文件 |
|
||
|---------|------|------|
|
||
| keep-process | 11 | 1, 1-1, 1-2, 1-3, 1-4, 1-5, 1-6, 3, 3-1, 3-3, 3-13, 3-15 |
|
||
| archive-done | 2 | 1-7, 2-3 |
|
||
| needs-human-confirmation | 1 | 3-17 |
|
||
|
||
> 注:3-15 虽推荐 keep-process,但其代码实现已完成,仅缺浏览器 smoke;在 browser smoke 通过后应自动进入 archive-done。
|
||
|
||
---
|
||
|
||
## 最高风险项
|
||
|
||
1. **`3-17-convex-export-web-entry-v1.md` (needs-human-confirmation)** — 被标记为 process 但实质是未落码的设计稿,可能误导读者以为 Web 入口在实施中。需人工确认是降级为参考、归档、还是推进落地。
|
||
|
||
2. **`1-5-next-phase-sequential-execution-checklist-v1.md` (keep-process, ⚠)** — 全场 687 行,大多数 checkbox 未勾选。如果执行计划已偏离此 checklist,内容可能过时。
|
||
|
||
3. **`1-6-next-phase-gap-closure-checklist-v1.md` (keep-process, ⚠)** — 6 个 browser smokes 长期未复跑降低剩余项跟踪价值。
|
||
|
||
4. **`3-13-rust-web-local-markdown-gfm-ast-parser-migration-v1.md` (keep-process, ⚠)** — 3 个未完成项如果无人认领,迁移工作将停滞在 partial 状态。
|
||
|
||
---
|
||
|
||
## 验证命令
|
||
|
||
```bash
|
||
# 确认文件存在
|
||
find design/01-tree-first-graph-kernel/process design/02-convex-rust-long-term-architecture/process design/03-rust-web/process -maxdepth 1 -type f -name '*.md' | sort
|
||
# 确认归档建议的文件已落地代码
|
||
cargo test -p mnote-web create_default_local_workspace_uses_managed_data_root -- --nocapture
|
||
cargo test -p mnote-web local_tree_command_create_page_creates_timestamped_markdown_and_sibling_folder -- --nocapture
|
||
cargo test -p mnote-web local_workspace_access -- --nocapture
|
||
```
|
||
|
||
---
|
||
|
||
## 未完成项
|
||
|
||
- 本报告仅为只读审查,未移动任何 `design/` 文件。
|
||
- 如果审核通过,`1-7` 和 `2-3` 应移至各自域的 `done/`。
|
||
- `3-17` 需人工确认最终状态。
|