chore: checkpoint turso and ai runtime work
This commit is contained in:
+20
-18
@@ -4,13 +4,13 @@
|
||||
>
|
||||
> 范围:`/mnt/Data1T/mnote` 当前可见实现、local-first MVP 后阶段主线口径、历史退役边界和后续功能缺口。
|
||||
>
|
||||
> 2026-06-28 口径更新:LightRAG / Hermes / Reasonix 已退出当前主线。知识库与 Page AI 融合方向以 WeKnora / OpenHub 为准;LightRAG 仅保留 legacy fallback / parse 兼容边界,Hermes / Reasonix 仅保留 legacy/debug/外部工作流边界。旧 `/api/hermes/*`、`hermes_tools/*`、ACP runtime 命名属于历史命名或迁移中的兼容层,不代表当前产品定义。
|
||||
> 2026-07-03 口径更新:当前 runtime 已收口为 OpenHub / native agent + LightRAG + Turso/libSQL。知识库与 Page AI 融合方向以 LightRAG + OpenHub 为准;WeKnora 仅保留为历史设计、参考实现或可选备用 provider 边界,Hermes / Reasonix 仅保留 legacy/debug/外部工作流边界。旧 `/api/hermes/*`、`hermes_tools/*`、ACP runtime 命名属于历史命名或迁移中的兼容层,不代表当前产品定义。
|
||||
|
||||
## 1. 当前产品形态
|
||||
|
||||
当前项目口径固定为:
|
||||
|
||||
> **MNote = VSCode 简化版工作区 + tiptap 的 Markdown 前端编辑器 + OpenHub / WeKnora AI + simplemindmap / office 插件 + Wolai 主题 Web 壳 + 鉴权控制面。**
|
||||
> **MNote = VSCode 简化版工作区 + tiptap 的 Markdown 前端编辑器 + OpenHub + LightRAG AI + simplemindmap / office 插件 + Wolai 主题 Web 壳 + 鉴权控制面。**
|
||||
|
||||
这意味着:
|
||||
|
||||
@@ -20,8 +20,8 @@
|
||||
- Rust kernel / projection / command 持有树、页面、资源和权限语义。
|
||||
- tiptap 是 Markdown 的前端显示与交互层,不是 agent 的主工作面。
|
||||
- OpenHub / native agent 默认应像 VSCode 中的 agent 一样,在授权目录白名单内用自身 patch / diff / 文件编辑能力修改文件。
|
||||
- WeKnora / OpenHub 是当前默认知识库与 Page AI 融合方向;MNote 负责 source registry、权限、FileTree 灯号、dashboard/status UI 和 citation/open-reference 映射。LightRAG 只保留 legacy fallback / parse 兼容边界。
|
||||
- Turso/libSQL + SQLite fallback control-plane 是默认 auth、membership、share grants、sync state、AI policy、OpenHub scope / AI policy 控制面;Convex / 服务端不再是默认正文、附件、AI 会话全文主存储,也不再是默认控制面,只保留历史迁移源、显式 cloud source、compat 和 sync replica 边界。旧 ACP/Hermes runtime session 属于迁移兼容层。
|
||||
- LightRAG + OpenHub 是当前默认知识库与 Page AI 融合方向;MNote 负责 source registry、权限、FileTree 灯号、dashboard/status UI 和 citation/open-reference 映射。WeKnora 仅保留为历史设计、参考实现或备用 provider 边界。
|
||||
- Turso/libSQL control-plane 是默认 auth、membership、share grants、sync state、AI policy、OpenHub scope / AI policy 控制面;Convex / 服务端不再是默认正文、附件、AI 会话全文主存储,也不再是默认控制面,只保留历史迁移源、显式 cloud source、compat 和 sync replica 边界。旧 ACP/Hermes runtime session 属于迁移兼容层。
|
||||
|
||||
上位设计已完成并迁入:
|
||||
|
||||
@@ -66,33 +66,35 @@
|
||||
|
||||
- `mnote.doc.fetch`、`mnote.doc.markdown_edit`、`mnote.doc.apply_block_ops`、`mnote.block.*` 和 `mnote.page.*` 保留为 cloud / remote agent / compat / 复杂结构辅助工具。
|
||||
- `/api/page-ai/block-edit-workflow` 不再作为 local-first 普通正文编辑主路径。
|
||||
- AI session 全文在 local source 下默认写入 `ai-sessions/private/*.jsonl` 或 `ai-sessions/shared/<share-id>/*.jsonl`;OpenHub scope / AI policy 默认落到 Turso/libSQL control-plane(SQLite fallback);旧 ACP/Hermes runtime session 仅为迁移兼容层;Convex 只作为显式 legacy/cloud metadata / audit / sync replica 边界。
|
||||
- AI session 全文在 local source 下默认写入 `ai-sessions/private/*.jsonl` 或 `ai-sessions/shared/<share-id>/*.jsonl`;OpenHub scope / AI policy 默认落到 Turso/libSQL control-plane;旧 ACP/Hermes runtime session 仅为迁移兼容层;Convex 只作为显式 legacy/cloud metadata / audit / sync replica 边界。
|
||||
|
||||
### 2.5 Knowledge RAG / WeKnora
|
||||
### 2.5 Knowledge RAG / LightRAG
|
||||
|
||||
- 知识库问答、资料 ingestion / query / citation / open-reference 当前主线转向 WeKnora / OpenHub。
|
||||
- 知识库问答、资料 ingestion / query / citation / open-reference 当前主线为 LightRAG + OpenHub tool facade。
|
||||
- MNote 不复制 provider 图谱或 chunk,不把 provider storage 当用户正文真相;原始 source 仍属于 local-folder / Resource Tree。
|
||||
- MNote 维护 provider-neutral source registry,用于映射 `workspaceId/rootUri/sourcePath/sourceHash/providerDocId/stale/deletedAt/status`;历史 `lightRagDocId` 字段只作为兼容字段。
|
||||
- FileTree 的资料库灯号来自 source registry:绿灯已索引、黄灯正在索引或删除提交中、红灯失败 / 过期、无灯未索引或已移除。
|
||||
- LightRAG 相关 dashboard、status bridge、`lightrag-source-registry` 和 MCP bridge 只保留为 legacy fallback;新增能力不得依赖 LightRAG 默认存在。
|
||||
- LightRAG 相关 dashboard、status bridge、source registry 和 MCP bridge 是当前默认 provider 边界;WeKnora 仅作为备用 provider / 历史设计参考,不得被新增能力假设为默认存在。
|
||||
- Agent 只通过 `mnote.knowledge_rag.status/query/open_reference` 访问知识库;旧 LiteParse、OCR sidecar、`mnote.evidence.*` 与本地资料索引工具已退役为历史 / recycle 边界。
|
||||
### 2.6 Control-plane 后端
|
||||
|
||||
当前 control-plane 存储后端已抽象为 `ControlPlaneStore` trait:
|
||||
当前 control-plane 存储后端已抽象为 `ControlPlaneStore` trait;mnote-web 运行时只允许 Turso/libSQL 系列后端:
|
||||
|
||||
- **SqliteControlPlaneStore**(`rusqlite`):本地 fallback,开发/离线/回滚默认。
|
||||
- **TursoControlPlaneStore**(`libsql`):默认目标后端,支持 remote URL + token 或 local replica + sync。
|
||||
- 启动时通过 `MNOTE_CONTROL_PLANE_BACKEND` 选择;`sqlite` 为当前默认,`turso-local-replica` 为开发优先推荐。
|
||||
- **TursoControlPlaneStore**(`libsql`):mnote-web 运行时后端,支持 local libSQL、remote URL + token、local replica + sync、synced database。
|
||||
- **SqliteControlPlaneStore**(`rusqlite`):仅用于 `control-plane-admin` 迁移/导出和 Rust 测试隔离,不再作为 mnote-web runtime fallback。
|
||||
- 启动时通过 `MNOTE_CONTROL_PLANE_BACKEND` 选择;默认 `libsql-local`,显式 `sqlite` 会被 mnote-web/dev-hot/desktop-hot/prod 启动链拒绝。
|
||||
|
||||
环境变量:
|
||||
|
||||
| 变量 | 用途 | 默认值 |
|
||||
|------|------|--------|
|
||||
| `MNOTE_CONTROL_PLANE_BACKEND` | 后端模式(sqlite/turso/turso-local-replica) | `sqlite` |
|
||||
| `MNOTE_CONTROL_PLANE_DB_PATH` | SQLite fallback 文件路径 | `/mnt/Data1T/Mnote_data/control-plane/control-plane.db` |
|
||||
| `MNOTE_CONTROL_PLANE_BACKEND` | 后端模式(libsql-local/turso-remote/turso-local-replica/turso-synced) | `libsql-local` |
|
||||
| `MNOTE_TURSO_LOCAL_PATH` | libSQL local 文件路径 | `/mnt/Data1T/Mnote_data/control-plane/control-plane-libsql.db` |
|
||||
| `MNOTE_TURSO_DATABASE_URL` | Turso remote URL | — |
|
||||
| `MNOTE_TURSO_AUTH_TOKEN` | Turso 认证 token | — |
|
||||
| `MNOTE_TURSO_LOCAL_REPLICA_PATH` | Turso local replica 路径 | `{MNOTE_CONTROL_PLANE_DB_PATH}-replica.db` |
|
||||
| `MNOTE_TURSO_LOCAL_REPLICA_PATH` | Turso local replica 路径 | `/mnt/Data1T/Mnote_data/control-plane/control-plane-replica.db` |
|
||||
| `MNOTE_TURSO_SYNCED_PATH` | libSQL synced 本地路径 | `/mnt/Data1T/Mnote_data/control-plane/control-plane-synced.db` |
|
||||
| `MNOTE_TURSO_SYNC_INTERVAL_MS` | replica/synced 同步间隔 | 未设置 |
|
||||
|
||||
第一阶段**只迁移 control-plane 元数据**(users、sessions、workspaces、directory grants、share links、
|
||||
sync state、AI policy/runtime、audit),本地 `.md` / 附件 / mindmap / OnlyOffice 文件不迁入 Turso。
|
||||
@@ -108,7 +110,7 @@ OpenHub 会话库后续作为单独阶段评估。
|
||||
- 本地 AI 会话已区分 private / shared / cloud,并在 UI 上显示来源。
|
||||
- Convex guard 已阻止 active 路径重新引入未标注的 Convex documents / media / aiSessions 默认主存储口径,并拦截根 `convex/` functions 源码回流默认控制面。
|
||||
- Runtime 可维护收口已完成:`document-editor-adapter-runtime.js`、`sidebar-tree-runtime.js`、`tree-shell-runtime.js` 与 `leptos-tiptap-spike/src/lib.rs` 已拆到模块级,`mnote-web --lib`、`leptos-tiptap-spike --lib`、格式化、diff check 与 CodeGraph pending 0 已作为 `design/10-review/done/16-*` 的验收记录。
|
||||
- 当前 smoke 分类与默认基线以 `scripts/TESTING_REFERENCE.md` 为准;默认入口是 `3000 Rust SSR + leptos-tiptap island + local-first workspace + Turso/libSQL + SQLite fallback control-plane auth`。
|
||||
- 当前 smoke 分类与默认基线以 `scripts/TESTING_REFERENCE.md` 为准;默认入口是 `3000 Rust SSR + leptos-tiptap island + local-first workspace + Turso/libSQL control-plane auth`。
|
||||
|
||||
## 4. MVP 后阶段功能缺口
|
||||
|
||||
@@ -151,7 +153,7 @@ OpenHub 会话库后续作为单独阶段评估。
|
||||
10. **本地轻量搜索与知识库 RAG 边界**
|
||||
- 本地 `.md` workspace 需要独立索引:全文搜索、反链、页面引用、资源引用、标签。
|
||||
- 不能依赖 Convex search 才能搜索本地工作区。
|
||||
- 多资料 OCR / parse / index / RAG 不再由本地 evidence / LiteParse 承担,默认走 WeKnora / OpenHub provider;LightRAG 仅 legacy fallback。
|
||||
- 多资料 OCR / parse / index / RAG 不再由本地 evidence / LiteParse 承担,默认走 LightRAG provider;WeKnora 仅备用。
|
||||
|
||||
11. **分享与同步闭环**
|
||||
- 需要把 share grants、shared workspace cache、shared AI session、只读/可写权限和冲突处理连成产品级闭环。
|
||||
@@ -180,7 +182,7 @@ OpenHub 会话库后续作为单独阶段评估。
|
||||
- “Next App Router / wolai-frontend 是 3000 主运行时。”
|
||||
- “LiteParse / 本地 OCR sidecar / evidence search 仍是资料库 RAG 默认 fallback。”
|
||||
- “MNote 需要为 LightRAG 结果再建一套 RAG 索引真相。”
|
||||
- “LightRAG 是当前默认知识库 provider。”
|
||||
- “WeKnora 是当前默认知识库 provider。”
|
||||
- “Hermes / Reasonix 是当前 Page AI 默认 agent runtime。”
|
||||
|
||||
历史文件如果需要保留这些说法,必须明确标注为 `[recycle]`、legacy、review snapshot 或 compat / cloud source 背景。
|
||||
|
||||
Reference in New Issue
Block a user