集成 OpenHub 与 WeKnora Page AI

This commit is contained in:
Agent Board
2026-06-26 20:01:02 +08:00
parent dabaf03bd7
commit e433c07061
63 changed files with 12678 additions and 332 deletions
@@ -1,4 +1,4 @@
> 状态补充(2026-06-25):本稿为 OpenHub 初步融合稿;更完整的 OpenHub + WeKnora + MNote 取舍与实施主线由 `7-68-openhub-weknora-mnote-deep-fusion-v1.md` 接管
> 状态补充(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 工具/知识底座”
# 7-67 OpenHub Page AI 深度融合设计 v1
@@ -10,23 +10,23 @@ 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 主路径:
当前 Page AI 主路径`7-68` 为准
```text
MNote Rust SSR / control-plane / local workspace
-> OpenHub Chat 子系统 UI(裁剪融合
-> MNote Rust adapter(兼容 OpenHub API 形状)
-> opencode serve runtime
-> WeKnora knowledge provider长期知识库底座)
-> OpenHub AI 面板(只暴露 AI 能力,裁剪非 AI 入口
-> OpenHub FastAPI + Redis + OpenHub SQLite session/skill/tool permissionMCP 由 MNote/WeKnora/opencode 工具配置承接
-> OpenHub opencode client / opencode serve runtime
-> WeKnora knowledge provider唯一知识库底座)
```
`7-65` 降级为 opencode runtime spike / fallback;不再把官方 opencode WebUI iframe 作为默认产品 UI
`7-65` 降级为 opencode runtime / 官方 iframe fallback`7-66` 降级为 native UI fallback;本稿的 Rust adapter / 自建 message store 路线也冻结为参考,不再作为执行主线
## 2. 硬边界
- 不恢复 Reasonix / ZCode / Hermes / Board / CodexMobile 为 Page AI 默认后端。
- 不新增 Page AI Leptos islandPage AI 仍属于 `mnote-web` host runtime 与普通前端资源。
- 不直接引入 OpenHub 登录、用户管理、admin 整站后端;用户、权限、workspace 真相归 MNote control-plane。
- 不直接引入 OpenHub 登录、admin、FileManager、KnowledgeManager 等非 AI 入口;用户、权限、workspace 真相归 MNote control-plane。
- 不把 OpenHub 自带 SQLite 文本知识库当作 MNote 长期知识库底座;长期知识库 provider 是 WeKnora。
- 不使用 `--dangerously-skip-permissions` 作为默认路径。
- 不把 opencode 原生 session 列表裸露给前端;所有 session 必须绑定 MNote 用户、rootUri、page path。
@@ -53,7 +53,7 @@ MNote Rust SSR / control-plane / local workspace
- SmartEntity / Team / Scheduler。
- GitTimeMachine 的 restore 写入能力;可先只显示 diff / changed files。
### 3.2 后端模式
### 3.2 后端模式(已由 7-68 覆盖)
可复用其 API contract 和 opencode 调用模式:
@@ -64,28 +64,28 @@ MNote Rust SSR / control-plane / local workspace
- `/api/files/*`
- opencode `/session?directory=<workspace>``/session/{id}/prompt_async?directory=<workspace>``/global/event?directory=<workspace>`
实现落在 Rust `mnote-web` / control-plane,不新增常驻 FastAPI 后端。
本稿原判断是“实现落在 Rust `mnote-web` / control-plane,不新增常驻 FastAPI 后端”。`7-68` 已更正:第一阶段保留 OpenHub FastAPI + Redis + opencode client 作为 AI 运行栈,MNote 只做登录态、scope 注入、入口裁剪、文件打开和 citation 回跳桥
## 4. MNote 目标架构
### 4.1 UI 层
`sidebar-page-ai-runtime.js` 不再维护自研聊天消息渲染主链,而是OpenHub-derived Page AI micro frontend
`sidebar-page-ai-runtime.js` 不再维护自研聊天消息渲染主链,而是`7-68` 的 OpenHub AI 面板嵌入
- MNote-native host chrome:当前页、selection、workspace、授权状态、runtime 状态、changed file chips。
- OpenHub-derived chat area:消息、tool call、diff、history、input、附件
- OpenHub AI 面板:消息、tool call、diff、history、input、skill/permission、WeKnora CLI/MCP tool 状态、运行日志
- Bridge:只处理 MNote 专属动作:`open-file``refresh-file``insert-context``session-ready``changed-files`
### 4.2 Rust adapter 层
### 4.2 Rust adapter 层(冻结为旧设想)
新增或重构 Page AI API
以下自建 session/message 表路线已被 `7-68` 覆盖,不作为当前执行主线
- `page_ai_sessions`:MNote 用户维度的跨浏览器 session binding。
- `page_ai_messages`:用户消息、assistant 消息、tool call、opencode ids、状态。
- `page_ai_context_snapshots`:当前页标题、真实 Markdown 路径、selection、rootUri、allowed roots、知识摘要。
- `page_ai_changed_files`opencode event/diff 得到的 changed files 与 MNote resource mapping。
所有 API 必须读取 MNote 登录态,禁止由前端自由传入 user id 或任意 directory
当前主线是:OpenHub session/message 是 Page AI 会话真相;MNote control-plane 只保存 binding、scope、artifact/open-reference 索引,禁止复制消息全文主存储
### 4.3 opencode runtime 层
@@ -167,4 +167,4 @@ MVP 完成条件:
## 7. 当前结论
OpenHub 是目前最适合 MNote Page AI 深度融合的参考实现。它不解决 opencode 内核级多用户隔离,也不提供完整知识库底座,但它提供了 MNote 当前最缺的成熟 Chat/UI/message/session/diff/file/knowledge 管理壳。正确路线不是整站照搬 OpenHub,而是把 OpenHub Page AI 子系统移植为 MNote 原生 Page AI UI,后端由 MNote Rust adapter 接 opencode 与 WeKnora
OpenHub 是目前最适合 MNote Page AI 深度融合的参考实现,但本文已被 `7-68` 覆盖。正确路线不是把 OpenHub Page AI 子系统重写成 MNote 原生 UI,也不是由 MNote Rust adapter 重写 opencode client,而是在 MNote 侧嵌入 OpenHub AI 面板,保留 OpenHub FastAPI/Redis/opencode client,由 MNote 提供登录态、workspace scope、文件打开、citation 回跳和 WeKnora 工具/知识底座边界