Harden auth/vault path sanitization and clean WeKnora docs
This commit is contained in:
+4
-4
@@ -6,7 +6,7 @@
|
||||
>
|
||||
> 2026-05-22 口径补充:本文完成的是“local-first workspace + Convex 降级控制面”的阶段性方案;后续 `2-8` 已继续把默认控制面从 Convex 替换为 Rust SQLite `control-plane`。因此本文中“Convex / 服务端控制面”的表述只作为阶段性历史背景理解;当前默认 auth、membership、share grants、sync state、AI policy、Page AI runtime session 已由 SQLite control-plane 承接,Convex 仅保留历史迁移源、显式 cloud source / compat / sync replica 边界。
|
||||
>
|
||||
> 2026-06-28 口径补充:Hermes / Reasonix / LightRAG 已退出当前新增主线;当前 Page AI 与知识库融合方向按 OpenHub / opencode / WeKnora 理解,旧名称只作为历史命名、legacy route 或迁移对照。
|
||||
> 2026-06-28 口径补充:Hermes / Reasonix / LightRAG 已退出当前新增主线;当前 Page AI 与知识库融合方向按 OpenHub / opencode / LightRAG 理解,旧名称只作为历史命名、legacy route 或迁移对照。
|
||||
>
|
||||
> 本稿目的:
|
||||
> 1. 固定早期产品形态:10 人以内、用户笔记默认独立、可分享、AI 隔离且可共享。
|
||||
@@ -81,13 +81,13 @@ User
|
||||
|
||||
更准确的产品定义是:
|
||||
|
||||
> **MNote = VSCode 简化版工作区内核 + tiptap markdown 编辑器 + OpenHub / opencode agent + WeKnora 知识库融合 + simplemindmap / office 插件 + Wolai 风格 web 壳 + 鉴权控制面。**
|
||||
> **MNote = VSCode 简化版工作区内核 + tiptap markdown 编辑器 + OpenHub / opencode agent + LightRAG 知识库融合 + simplemindmap / office 插件 + Wolai 风格 web 壳 + 鉴权控制面。**
|
||||
|
||||
拆开看:
|
||||
|
||||
- **VSCode 简化版工作区内核**:本地文件夹、目录树、页面树、资源树、拖拽、重命名、移动、回收站、导入导出。
|
||||
- **tiptap markdown 编辑器**:页面正文的前端显示与交互层,消费本地文件投影,不承担 agent 主编辑面职责。
|
||||
- **OpenHub / opencode agent**:在 MNote 宿主授权 scope 内处理 Page AI 对话、文件引用和 WeKnora 知识库引用;旧 Hermes / Reasonix 只作为 legacy/debug 对照。
|
||||
- **OpenHub / opencode agent**:在 MNote 宿主授权 scope 内处理 Page AI 对话、文件引用和 LightRAG 知识库引用;旧 Hermes / Reasonix 只作为 legacy/debug 对照。
|
||||
- **simplemindmap / office 插件**:作为资源型编辑器或附件打开器存在,不把它们重新降格成 markdown 文本块。
|
||||
- **Wolai 风格 web 壳**:提供统一导航、主题、页面壳、AI 面板、侧边栏和分享入口。
|
||||
- **鉴权控制面**:负责登录、用户隔离、目录授权、分享授权、同步状态和审计,而不是默认正文存储。
|
||||
@@ -900,7 +900,7 @@ local-first 下,AI 的长期主路径不是继续发明一套 MNote 专用编
|
||||
|
||||
#### A. 防走偏护栏与口径同步
|
||||
|
||||
- [x] A1. 固定主路径口径:`MNote = VSCode 简化版工作区 + tiptap markdown 显示/编辑层 + OpenHub/opencode agent + WeKnora 知识库融合 + 插件 + Wolai web 壳 + 鉴权控制面`。
|
||||
- [x] A1. 固定主路径口径:`MNote = VSCode 简化版工作区 + tiptap markdown 显示/编辑层 + OpenHub/opencode agent + LightRAG 知识库融合 + 插件 + Wolai web 壳 + 鉴权控制面`。
|
||||
- 文档:本稿第 2.1、2.4、5、6 节。
|
||||
- 验收:普通 local-first Markdown 编辑不再被描述为必须走 `mnote.block.*`、`mnote.doc.markdown_edit` 或 Convex documents。
|
||||
- [x] A2. 建立 Convex 主存储新增检查。
|
||||
|
||||
+5
-5
@@ -67,7 +67,7 @@ Turso 的收益不在于“SQLite 语法换个驱动”本身,而在于把控
|
||||
- `.mnote/index/evidence.sqlite`。该库已从当前主线退役,本轮不迁移。
|
||||
- LightRAG 自身存储。知识库/RAG provider 存储不在 control-plane 切换范围内。
|
||||
- OpenHub 自身 SQLite 会话库。它可以作为第二阶段单独迁移,不应和 Rust control-plane 首次切换绑死。
|
||||
- WeKnora / RAGFlow。当前不作为主线迁移目标。
|
||||
- RAGFlow。当前不作为主线迁移目标。
|
||||
- 浏览器直连 Turso。所有读写仍必须经过 Rust / OpenHub API。
|
||||
|
||||
---
|
||||
@@ -435,7 +435,7 @@ MNOTE_TURSO_LOCAL_REPLICA_PATH=/mnt/Data1T/Mnote_data/control-plane/control-plan
|
||||
| P0 | Argon2id password hash migration | 未完成 | remote 成为长期默认前必须完成,避免把 `sha256-v1` 占位哈希带入云端。 |
|
||||
| P1 | 读写并发性能设计 | 仅完成安全基线,未实现性能优化 | 当前 `TursoControlPlaneStore` 是 `Mutex<TursoConnection>`,读写全部串行;这能保证简单安全,但不能发挥 remote / replica 的读并发优势。 |
|
||||
| P2 | CDC / change data capture | 未采用 | 当前 control-plane 已有显式 `audit_log` 和 `outbox_events`,CDC 只适合作为后续审计/同步 spike,不进入本轮。 |
|
||||
| P2 | Tantivy-powered full-text search | 未采用 | 当前 control-plane 表主要是元数据,全文搜索收益有限;正文和知识库搜索仍属于 OpenHub/WeKnora/local search 方向,不跟 control-plane 绑死。 |
|
||||
| P2 | Tantivy-powered full-text search | 未采用 | 当前 control-plane 表主要是元数据,全文搜索收益有限;正文和知识库搜索仍属于 OpenHub/LightRAG/local search 方向,不跟 control-plane 绑死。 |
|
||||
| P3 | Browser WASM / OPFS database | 未采用 | 对纯 Web 离线笔记有价值,但当前 MNote 主形态是本地文件夹 + Rust mnote-web + 文件系统 watcher;浏览器内 SQL 不能替代本地 `.md` 真相,也不适合作为 control-plane 权限真源。 |
|
||||
|
||||
### 11.4 读写并发设计原则
|
||||
@@ -486,9 +486,9 @@ Turso 文档显示 FTS 通过 `CREATE INDEX ... USING fts` 和 `fts_match` / `ft
|
||||
对 MNote 的判断:
|
||||
|
||||
- 当前 control-plane 不需要:users、workspaces、grants、recent、shortcuts、policy 都是轻量元数据,`LIKE` 或精确索引足够。
|
||||
- 不迁正文:页面正文 `.md` 仍在本地文件系统,知识库问答主线是 OpenHub/WeKnora,不把正文全文塞进 control-plane。
|
||||
- 不迁正文:页面正文 `.md` 仍在本地文件系统,知识库问答主线是 OpenHub/LightRAG,不把正文全文塞进 control-plane。
|
||||
- 可作为 P2/P3:如果以后要做轻量“标题 / 文件路径 / 页面摘要 / AI 会话标题”的本地快速搜索,可以单独设计 Turso FTS 索引。
|
||||
- 不替代 WeKnora/OpenHub RAG:Tantivy FTS 是关键词检索,不等于知识库引用、OCR、语义检索和 agent citation 链。
|
||||
- 不替代 LightRAG/OpenHub RAG:Tantivy FTS 是关键词检索,不等于知识库引用、OCR、语义检索和 agent citation 链。
|
||||
|
||||
结论:**对当前 control-plane 价值低;对未来轻量元数据搜索有价值;不进入本轮。**
|
||||
|
||||
@@ -662,7 +662,7 @@ cargo run --manifest-path rust/Cargo.toml -p control-plane --bin control-plane-a
|
||||
- `.mnote/index/evidence.sqlite`(已退役)→ 未迁移
|
||||
- LightRAG 自身存储 → 未迁移
|
||||
- OpenHub 自身 SQLite 会话库 → 未迁移(Phase 7 推迟)
|
||||
- WeKnora / RAGFlow → 未迁移
|
||||
- RAGFlow → 未迁移
|
||||
- 浏览器直连 Turso → 未实现(所有读写经过 Rust API)
|
||||
|
||||
### 2026-07-03 最终执行记录
|
||||
|
||||
Reference in New Issue
Block a user