Files
mnote/design/01-tree-first-graph-kernel/process/1-2-tree-first-graph-product-vision-progress-v1.md
T
lix-2026 cdff672aa5 feat: align local-first workspace direction
Document the VSCode-like local-first product shape, demote Convex to a control-plane role, and retire stale architecture drafts.

Add local workspace migration/export references plus smoke coverage for no-Convex managed workspace startup, local markdown title/body/options persistence, asset upload behavior, and Convex fixture export.

Verification: git diff --cached --check; node scripts/check-local-first-convex-guard.js --staged; node scripts/task444-convex-workspace-export-local-fixture-smoke.js; node scripts/task166-local-first-managed-workspace-no-convex-smoke.js; node scripts/task167-local-markdown-title-body-options-no-convex-smoke.js
2026-05-19 08:11:58 +08:00

171 lines
9.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 1-2 [process] Tree-First Graph 产品愿景进展评估 v1
> 更新时间:2026-05-19
>
> **目的**:对照原始产品愿景(Wolai 编辑体验 + VSCode 文件树 + simple-mindmap + OnlyOffice + AI 操作一切),评估当前代码在 1.0 MVP 后的实际进展和剩余的缺口。
>
> 关联:
> - `design/01-05-current-priority-overview.md`
> - `design/10-review/done/11-current-full-architecture-review-v1.md`
> - `CURRENT_ARCHITECTURE.md`
> - `design/11-wolai/help-center-reference.md` — Wolai 帮助中心功能对照基准
## 1. 一句话结论
核心链路已经全部立住,但 AI 对思维导图和 Office 文件的操作是明确的功能缺口,其余模块处于"已可用、收口中"状态。
---
## 2. 各模块状态
### 2.1 Wolai 编辑体验 + UI — ✅ 收口中
#### 架构层
| 子能力 | 状态 | 关键证据 |
|--------|------|----------|
| 默认编辑器已切到 leptos-tiptap island | DONE | `design/05-editor-mainline/done/5-4-leptos-tiptap-mainline-correction-v1.md` |
| Page Aggregate 读链已切到 Rust projection | DONE | `design/05-editor-mainline/done/5-5-1-page-aggregate-contract-v1.md` |
| 文档页入口优先消费 Rust page-aggregate 快照 | DONE | `CURRENT_ARCHITECTURE.md` §2.5 |
| 前端壳已切换到 Rust SSR`:3000`| DONE | `CURRENT_ARCHITECTURE.md` §3.1 |
| Page Aggregate 写链(标题/正文/设置)smoke 通过 | DONE | `scripts/task110-*`, `task-page-aggregate-*-smoke.js` |
| 页面设置运行时语义 / 页头回流 / AI 设置面未完全闭环 | PROCESS | `design/05-editor-mainline/process/5-5-page-aggregate-single-truth-alignment-v1.md` |
| Wolai UI 行为持续对齐 | PROCESS | `design/05-editor-mainline/process/5-9-wolai-aline-continuous-checklist-v1.md` |
| `documents.content` 仍是兼容后备而非唯一真源 | PARTIAL | `CURRENT_ARCHITECTURE.md` §3.2 |
#### 基础块类型覆盖(对照 Wolai 帮助中心)
| 块类型 | Wolai | mnote | 备注 |
|--------|-------|-------|------|
| 文本 | ✅ | ✅ | |
| 标题 H1/H2/H3 | ✅ | ✅ | |
| 无序列表 | ✅ | ✅ | |
| 有序列表 | ✅ | ✅ | |
| 待办列表(checkbox| ✅ | ✅ | |
| **折叠列表(toggle** | ✅ | ❌ | 缺口 |
| 页面块(subpage| ✅ | Partial | Tiptap 嵌入页 |
| 引述文字(blockquote| ✅ | ✅ | |
| **着重文字(callout** | ✅ | ❌ | 缺口 |
| 代码片段 | ✅ | ✅ | |
| 数学公式 | ✅ | ✅ | LaTeX |
| 分割线 | ✅ | ✅ | |
#### 进阶块类型覆盖(仅基础级引用)
| 块类型 | Wolai | mnote | 备注 |
|--------|-------|-------|------|
| 简单表格 | ✅ | ✅ | Tiptap table |
| **数据表格(database** | ✅ | ❌ | 缺口,类似 Notion DB |
| 统计图表 | ✅ | ❌ | |
| Mermaid 绘图 | ✅ | ❌ | |
| 思维导图 | ✅ | ✅ | Phase 6 leptos-mindmap |
| 页面目录(TOC| ✅ | ❌ | |
| 网址书签 | ✅ | ✅ | |
| 嵌入第三方应用 | ✅ | Partial | OnlyOffice 已接,其他待定 |
| 文件附件 | ✅ | ✅ | OnlyOffice adapter |
| 按钮 / 进度条 / 仪表数字 | ✅ | ❌ | 基础缺口 |
#### 基础操作覆盖
| 操作 | Wolai | mnote | 备注 |
|------|-------|-------|------|
| 基本编辑(输入/换行/拖拽/缩进)| ✅ | ✅ | |
| `/` 快捷命令菜单 | ✅ | ✅ | Tiptap slash command |
| **模板创建页面** | ✅ | ❌ | 缺口 |
| 页面选项/设置 | ✅ | ✅ | Page Aggregate 写链已通 |
| **页面关系图** | ✅ | ❌ | 缺口 |
| 全局搜索(Ctrl+P| ✅ | ✅ | Search modal smoke 通过 |
| **导入/导出** | ✅ | ❌ | 缺口(Local/Cloud 桥接仅 P3 |
| 垃圾桶 | ✅ | ✅ | `tree.resource.*` 实现 |
| **回收站恢复位置+reveal** | ✅ | ✅ | 已实现(`design/04-tree-domain/process/4-28` |
| 个人设置(主题/语言)| ✅ | Partial | 暗色模式有,设置 UI 不全 |
| 图标/表情选择器 | ✅ | Partial | |
| **快捷方式/星标栏** | ✅ | ❌ | 缺口 |
完整对照表见 `design/11-wolai/help-center-reference.md`
### 2.2 VSCode 文件树 — ✅ 大部完成
| 子能力 | 状态 | 关键证据 |
|--------|------|----------|
| VSCode Explorer 对标设计 | DONE | `design/04-tree-domain/done/4-20-vscode-explorer-file-tree-alignment-v1.md` |
| 三层模型(Resource → File → Page Tree)固定 | DONE | `design/04-tree-domain/done/4-24-resource-tree-filetree-pagetree-source-contract-checklist-v1.md` |
| `tree.*` 命令切流(Stage 2| DONE | `design/04-tree-domain/done/4-6-tree-command-protocol-cutover-stage2-v1.md` |
| 文件树资源行与页面命令分离 | DONE | `bugs/04-tree-domain/done/4-46-filetree-resource-row-document-command-leak-v1.md` |
| 垃圾箱恢复位置记录 + reveal/focus | DONE | `design/04-tree-domain/process/4-28-trash-restore-location-reveal-focus-v1.md` §2 |
| 资源生命周期命令 `tree.resource.*`mindmap/table rename 未完成)| PARTIAL | `design/04-tree-domain/process/4-27-resource-lifecycle-command-cutover-v1.md` |
| 双浏览器 no-refresh(页面 + 文件 + 垃圾箱实时同步)| PROCESS | `design/04-tree-domain/process/4-34-filetree-trash-dual-browser-no-refresh-v1.md` |
| Local/Cloud 桥接 | P3 CANDIDATE | `design/04-tree-domain/process/4-23-local-cloud-explicit-bridge-p3-candidate-v1.md` |
### 2.3 Simple-mindmap — ✅ 编辑器完成,AI 未覆盖
| 子能力 | 状态 | 关键证据 |
|--------|------|----------|
| Phase 6 口径修正(Rust kernel + simple-mind-map adapter| DONE | `design/06-mindmap/process/6-mindmap-kernel-phase6-projection-editor-v1.md` §2 |
| Leptos UI shell | DONE | git `c64487c6` |
| 即时显示修复 | DONE | git `3be102a4` |
| Filetree 切换稳定 | DONE | git `b300562a` |
| KMind 级详细验收 | DONE | `design/06-mindmap/done/6-mindmap-phase6-kmind-parity-detail-checklist-v1.md` |
| **AI 读写思维导图(增删改节点)** | **GAP** | Hermes manifest 无 `mnote.mindmap.*` 工具 |
### 2.4 OnlyOffice — ✅ 打开/链路完成,AI 未覆盖
| 子能力 | 状态 | 关键证据 |
|--------|------|----------|
| adapter-onlyoffice crate | DONE | `rust/crates/adapter-onlyoffice/` |
| Rust 路由 | DONE | `rust/crates/mnote-web/src/routes/onlyoffice.rs` |
| Docker 部署 | DONE | `infra/onlyoffice/docker-compose.yml` |
| 附件打开链路修复 | DONE | git `7bd0c9e9` |
| Kernel 工具(session/签名/proxy/callback/forcesave| DONE | `core-protocol/src/tool.rs` `ONLYOFFICE_TOOL_*` |
| **AI 读写 Office 文件内容(.docx/.xlsx/.pptx** | **GAP** | 无 `mnote.office.*` Hermes 工具 |
### 2.5 AI 操作文档 — ✅ 主线已完成
| 子能力 | 状态 | 关键证据 |
|--------|------|----------|
| 在线文档 markdown 级读写 | DONE | `mnote.doc.markdown_edit` + `mnote.doc.fetch`smoke 验证通过 |
| 本地 `.md` 文件读/写 | DONE/PARTIAL | `mnote.doc.fetch` 已支持本地文件,写侧仍在过渡(`design/03-rust-web/process/3-13`|
| 结构性块操作(移动/插入/删除)| DONE | `mnote.block.*` 工具群,Hermes 完整 smoke |
| 工具权限 / dryRun / 幂等 / revision 约束 | DONE | `bugs/07-ai/done/7-22` ~ `7-30` |
| ACP runtime + UI | DONE | `design/07-ai/done/7-25-acp-session-runtime-enhancement-plan-v1.md` |
| Phase C(流式 apply / review session| FROZEN | `design/07-ai/process/7-14` — 当前不实施 |
---
## 3. 缺口汇总
| 缺口 | 分类 | 说明 |
|------|------|------|
| AI 操作思维导图 | 功能缺失 | Hermes 13 个工具没有 mindmap 操作。AI 无法在导图中增删改节点 |
| AI 操作 Office 文件 | 功能缺失 | 无 `mnote.office.*` 工具。OnlyOffice 可手动编辑,但 AI 无法读写 `.docx`/`.xlsx`/`.pptx` 内容 |
用户确认 "日记" 即当前主编辑区(Tiptap / `.md` 文件),不构成独立缺口。
---
## 4. 当前架构收口主线(已完成进度 ~70%)
```
第一优先:Page Aggregate 单一真源 ████████████░░░░░░ 70%
└─ EditorBlockDocument 原生落库 ██████░░░░░░░░░░░░ 40%
└─ 页面设置运行时闭环 ████████░░░░░░░░░░ 50%
└─ AI 写入链走统一 markdown_edit 口径 ██████████████░░░░ 80%
第二优先:Tree Command Cutover ████████████░░░░░░ 70%
└─ tree.resource.* 命令收口 ██████████░░░░░░░░ 60%
└─ 资源 rename 补全 ████░░░░░░░░░░░░░░ 30%
第三优先:Tree Realtime Event Stream ██████████████░░░░ 80%
└─ WS 主链已上线 (57ec8322) ████████████████░░ 90%
└─ 双浏览器 no-refresh 统一 live cache ██████░░░░░░░░░░░░ 45%
└─ SSE fallback / 补偿链减少 ██████████░░░░░░░░ 60%
```
---
## 5. 后续方向建议
1. **继续推进三条架构收口主线**Page Aggregate → Tree Command → Tree Realtime),这是当前最优先的工程投入点。
2. **确认两个功能缺口是否需要本轮填补**:AI 操作思维导图和 Office 文件。如果需要在 MVP 后立即补齐,需要为 `mnote.mindmap.*``mnote.office.*` 工具做设计;如果可推迟,则当前架构收口完成后再说。
3. Local/Cloud 桥接(P3 candidate)和 Phase C AI(流式 apply)属于明确的"下一轮"范围,不在此轮冲刺内。