chore: checkpoint turso and ai runtime work

This commit is contained in:
Agent Board
2026-07-03 23:20:16 +08:00
parent a75b3d11f9
commit 36d027a4a1
67 changed files with 4224 additions and 914 deletions
@@ -1,4 +1,4 @@
> 状态补充(2026-06-25):本稿为 OpenHub 初步融合稿,已被 `7-68-openhub-weknora-mnote-deep-fusion-v1.md` 覆盖。路线从“抽取/重写 OpenHub 组件 + MNote Rust adapter”改为“嵌入 OpenHub AI 面板 + 保留 OpenHub FastAPI/Redis/opencode client + WeKnora 工具/知识底座”
> 状态补充(2026-07-03):本稿为 OpenHub 初步融合稿,OpenHub AI 面板 / FastAPI / Redis / opencode client 方向仍保留参考价值;其中 WeKnora 默认知识库底座口径已被当前 OpenHub / native agent + LightRAG + Turso/libSQL 主线覆盖。`7-68-openhub-weknora-mnote-deep-fusion-v1.md` 已标记 stale,不再作为当前默认 provider 依据
# 7-67 OpenHub Page AI 深度融合设计 v1
@@ -10,14 +10,14 @@ Owner07-ai / mnote-web / control-plane
`7-65` 的 opencode 官方 WebUI iframe 路线验证了 opencode runtime、同源反代、session binding、文件打开/刷新等接缝,但 UI 深度融合受 iframe 与官方 WebUI 结构限制。用户目标已经调整为:尽量复用成熟社区项目 OpenHub 的前端、消息库、权限、知识库 UI 和 opencode 接入模式,把 MNote Page AI 做成类似 VSCode + Cline 的一体化侧边栏,而不是 MNote 自研一个简陋聊天框。
当前 Page AI 主路径`7-68` 为准
当前 Page AI 主路径已回正为 OpenHub / native agent + LightRAG + Turso/libSQL
```text
MNote Rust SSR / control-plane / local workspace
-> OpenHub AI 面板(只暴露 AI 能力,裁剪非 AI 入口)
-> OpenHub FastAPI + Redis + OpenHub SQLite session/skill/tool permissionMCP 由 MNote/WeKnora/opencode 工具配置承接
-> OpenHub FastAPI + Redis + OpenHub SQLite session/skill/tool permissionMCP/tool 由 MNote/LightRAG/opencode 工具配置承接
-> OpenHub opencode client / opencode serve runtime
-> WeKnora knowledge provider唯一知识库底座)
-> LightRAG knowledge provider默认知识库底座)
```
`7-65` 降级为 opencode runtime / 官方 iframe fallback`7-66` 降级为 native UI fallback;本稿的 Rust adapter / 自建 message store 路线也冻结为参考,不再作为执行主线。
@@ -27,7 +27,7 @@ MNote Rust SSR / control-plane / local workspace
- 不恢复 Reasonix / ZCode / Hermes / Board / CodexMobile 为 Page AI 默认后端。
- 不新增 Page AI Leptos islandPage AI 仍属于 `mnote-web` host runtime 与普通前端资源。
- 不直接引入 OpenHub 登录、admin、FileManager、KnowledgeManager 等非 AI 入口;用户、权限、workspace 真相归 MNote control-plane。
- 不把 OpenHub 自带 SQLite 文本知识库当作 MNote 长期知识库底座;长期知识库 provider 是 WeKnora
- 不把 OpenHub 自带 SQLite 文本知识库当作 MNote 长期知识库底座;当前默认长期知识库 provider 是 LightRAG
- 不使用 `--dangerously-skip-permissions` 作为默认路径。
- 不把 opencode 原生 session 列表裸露给前端;所有 session 必须绑定 MNote 用户、rootUri、page path。
- 不通过高频轮询刷新消息或 changed files;优先使用 opencode event stream、MNote watcher、programmatic refresh。
@@ -103,7 +103,7 @@ MNote 采用:
- UI:复用 OpenHub `KnowledgeManager` 交互。
- API:提供 OpenHub-compatible `/api/knowledge/*`
- Provider:默认走 WeKnora
- Provider:默认走 LightRAG
- Fallback:未配置 WeKnora 时,可临时用 OpenHub-like SQLite 文本知识源做短知识。
- CitationWeKnora 结果必须保留 source/resource/open-reference 映射,方便点击回 MNote 文件或资源页。
@@ -137,12 +137,12 @@ MNote 采用:
- [ ] DiffViewer 中所有 file path 点击都映射到 MNote resource/file open。
- [ ] 文件路径必须限制在当前 rootUri / allowed roots 内。
### Phase EKnowledge / WeKnora adapter
### Phase EKnowledge / LightRAG adapter
- [ ] 兼容 OpenHub `knowledgeService` 的 list/create/upload/search/stats API。
- [ ] 后端默认调用 WeKnora ingestion/search。
- [ ]WeKnora 命中结果转成 OpenHub UI 可展示的 source/citation。
- [ ] 未配置 WeKnora 时启用 SQLite fallback,并在 UI 明确标注 fallback。
- [ ] 后端默认调用 LightRAG ingestion/search。
- [ ]LightRAG 命中结果转成 OpenHub UI 可展示的 source/citation。
- [ ] 未配置 LightRAG 时启用 SQLite fallback,并在 UI 明确标注 fallback。
### Phase F:浏览器真实验证
@@ -151,7 +151,7 @@ MNote 采用:
- [ ] Page AI 看到 OpenHub-derived UI,而不是旧简陋聊天框或官方 iframe。
- [ ] 发送真实消息,模型能识别当前 rootUri 内文件。
- [ ] 让 opencode 修改测试 MarkdownMNote changed chip 可打开,当前页可刷新。
- [ ] Knowledge UI 可上传/检索,WeKnora provider 有真实命中与引用。
- [ ] Knowledge UI 可上传/检索,LightRAG provider 有真实命中与引用。
- [ ] 保存截图与 smoke 输出。
## 6. 验收标准