52 lines
4.1 KiB
Markdown
52 lines
4.1 KiB
Markdown
# 7-70 Page AI Pi Lab 原生 OpenHub-like UI Checklist v1
|
||
|
||
状态:done(UI spike + P2 Pi tool bridge 回归)
|
||
Owner:07-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 answer;reasoning 仍默认隐藏。
|
||
- [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 provider;Pi 只通过 MNote facade 查询。
|
||
- [x] patch 响应保持 watcher refresh / `polling=false` contract。
|
||
- [x] Pi 默认模型继续为 Omniroute `freefirst`。
|
||
- [x] static smoke(119 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 session,aborted/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 产品化。
|