Files
mnote/design/07-ai/done/7-70-page-ai-pi-lab-native-openhub-like-ui-checklist-v1.md
T

52 lines
4.1 KiB
Markdown
Raw Normal View History

2026-07-04 21:47:42 +08:00
# 7-70 Page AI Pi Lab 原生 OpenHub-like UI Checklist v1
状态:doneUI spike + P2 Pi tool bridge 回归)
Owner07-ai / mnote-web / page-ai-runtime
日期:2026-07-04
## 1. 验收项
- [x] OpenHub 继续保持默认 Page AI 主线。
- [x] Pi Lab 默认显示独立 `π` 悬浮按钮,不以 `MNOTE_PAGE_AI_PI_LAB=1` 作为显示前置条件。
- [x] `MNOTE_PAGE_AI_PI_LAB` 保留为强制关闭开关,默认值为开启。
- [x] Pi Lab 点击后打开独立 MNote-native drawer。
- [x] Pi Lab 不挂载到 `[data-testid="wolai-page-ai-drawer"]`
- [x] Pi Lab 不 iframe 第二个完整应用。
- [x] Pi Lab 不复用 OpenHub provider tab、按钮或 iframe 页面。
- [x] topbar 显示 Pi Lab、session/runtime status、model、close/minimize。
- [x] context strip 显示当前页、选区、allowed roots、LightRAG、changed files。
- [x] message timeline 显示 user / assistant / system、streaming、aborted。
- [x] provider thinking 不进入 visible final answerreasoning 仍默认隐藏。
- [x] tool/receipt rail 显示 tool status、deny reason、receipt、file version、diff summary、citation count。
- [x] composer 支持多行输入、当前页/选区/LightRAG 快捷按钮、send、abort。
- [x] diagnostics 默认折叠,不挤占首屏。
- [x] MNote-owned tools 保留,不开放 Pi 原始 `bash/read/write/edit`
- [x] allowed roots 越界读写在 UI 中显示 denied 和 deny reason,并写 receipt。
- [x] LightRAG 仍是唯一默认 knowledge providerPi 只通过 MNote facade 查询。
- [x] patch 响应保持 watcher refresh / `polling=false` contract。
- [x] Pi 默认模型继续为 Omniroute `freefirst`
- [x] static smoke119 checks)、api endpoint smoke、mock/API smoke、RPC API smoke、browser smoke、cargo check、CodeGraph sync/status 已运行。
- [x] 真实 Pi RPC + Omniroute/freefirst UI 截图回归已补:`tmp/page-ai-pi-lab-rpc-browser-real-7-71.png`
- [x] 真实 `/documents/local-md:*` 文档页默认注入独立 Pi Lab `π` 入口:`tmp/page-ai-pi-lab-rpc-browser-p1-7-71c.png`
- [x] Pi Lab start session 绑定当前 root/page/title。
- [x] “当前页”快捷按钮调用 `mnote.current_page.read` 并读取当前 Markdown。
- [x] “选区”快捷按钮读取 tiptap live selection snapshot 并注入 composer。
- [x] `.md` patch 后通过 local-folder event bus / document refresh 更新当前 `.ProseMirror`,未新增高频轮询。
- [x] 修复 P1 审查发现的任意 Cookie 认证绕过、跨用户 session 查询、selection tool host snapshot 标识、`tool_receipt.write` 空操作和 pagePath smoke 误报。
- [x] Pi RPC subprocess 通过 per-session extension 注册 MNote-owned custom tools。
- [x] 真实 Pi 主动调用 `mnote_current_page_read`,并经 `/api/page-ai/pi/tool-call-bridge` 回到 MNote `mnote.current_page.read` 的 API smoke 已通过。
- [x] bridge token 使用 OS 随机源生成,不序列化到 session JSON,不写入 extension 文件。
- [x] bridge endpoint 拒绝非 running sessionaborted/error session 不能继续通过 bridge 调 tool。
- [x] session TTL、最大 session 数、start/send/tool rate limit 和过期 session 目录清理已补。
- [x] P2 真实浏览器截图已补:`tmp/page-ai-pi-lab-rpc-browser-p2-visible-reply-7-70.png`,并断言 assistant bubble 本身包含真实 Pi 回复。
- [x] Pi Lab UI 已按 OpenHub-like 方向收敛:设置、上下文、tools、receipts 默认折叠,主对话区优先,模型选择入口保留。
- [x] OpenHub-like 折叠 UI 截图已补:`tmp/page-ai-pi-lab-openhub-like-ui-collapsed-v2-7-70.png`
- [x] Pi Lab UI 已按 OpenHub 平台式首屏二次收敛:大标题、水平工具栏、白色对话卡片、居中空状态示例、底部大输入框与 Build/Plan/model/budget 控制条;截图:`tmp/page-ai-pi-lab-openhub-platform-empty-v4-7-70.png`
## 2. 下一阶段
- [ ] Turso/libSQL 正式 receipt 表。
- [ ] in-process `AgentSession` / Node sidecar SDK 方案评估,用于替代当前 RPC subprocess + extension bridge spike。
- [ ] production Pi binary 显式配置和版本锁定。
- [ ] session resume / retry / history drawer 产品化。