背景
OpenPI 首次引入一个独立于终端交互的本地外部 Web 工作台。本 Issue 记录首个可用工作台切片:它不仅建立运行框架,也把当前已经形成的会话浏览、运行状态可视化和基础产品体验纳入同一个交付范围;但不代表 Web 工作台已经覆盖 Pi TUI 的全部能力或达到最终产品形态。
本次范围
Pi-native 运行时与协议
- 建立
openpi web 入口、Web host、Pi runtime adapter、协议投影和 SSE 事件交付;
- Web 仍使用进程内 Pi
AgentSession,沿用 Pi 的 Session、Provider/Model、Skills、Trust、扩展和生命周期,不新增第二套 agent runtime;
- 浏览器 prompt 绑定当前 Web Session,并以 Pi preflight admission 作为
accepted 的权威证据;
- 收紧并发 prompt 归因、Session 切换、共享 HTTP dispatcher、取消、释放和元数据原子写入边界;
- 为 Session/message/event/SSE client/queue 建立显式上限,并支持 cursor、
Last-Event-ID、gap detection、409 RESYNC_REQUIRED 和断线重连。
工作台能力
- 提供工作区导入、重命名、移除以及 Session 创建、浏览、切换、归档和搜索;
- 允许浏览器向当前 Web
AgentSession 提交 prompt,选择可用模型并展示流式消息、思考、工具调用和运行进度;
- 投影当前 Session 的 Background Terminal、Subagent 和 Workflow 状态,展示活动卡片、进度条目和 canonical terminal state;
- 历史 Session 保持只读;当前 Session 的历史用户消息可明确地“作为新消息发送”,不伪装为原地编辑或分支重写。
首版产品体验
- 提供中英文界面、PI Grid / Clean White / Midnight 主题、消息复制、会话轮次导航、自动贴底和 workspace/session 操作反馈;
- 包含首屏 OpenPI 品牌动效、菜单与对话框动效、桌面布局和当前移动端适配;
- 保留 reduced-motion 支持,并通过真实页面与脚本化渲染检查首版关键交互。
工程配套
- 清理本次涉及的已废弃 UI 和确认的死代码;
- 补充架构、开发和运行来源文档;
- 覆盖 Host、runtime、dispatcher、协议投影、capability provenance、SSE replay/resync 和 UI render 回归测试。
非目标与后续工作
- 本次不建立 Web 自有 Session 控制面、Provider stack、Skills 系统或外部 agent orchestration runtime;
- 本次不承诺与 Pi TUI 完全等价,也不把首版视觉和交互视为冻结设计;
- 更深入的权限管理、完整 Session 操作、跨浏览器控制权交接、可访问性审计、更多移动端细节和长期真实浏览器验证,继续通过独立 Issue/PR 演进。
验收与验证
bun run check
bun run test
- Web 专项测试和静态检查
- 当前源码运行来源验证:checkout revision 与
pi list 唯一 OpenPI 来源一致
- 真实页面检查:语言、主题、Session 切换、历史只读、prompt admission、SSE 重连与移动端布局
关联实现:#326
背景
OpenPI 首次引入一个独立于终端交互的本地外部 Web 工作台。本 Issue 记录首个可用工作台切片:它不仅建立运行框架,也把当前已经形成的会话浏览、运行状态可视化和基础产品体验纳入同一个交付范围;但不代表 Web 工作台已经覆盖 Pi TUI 的全部能力或达到最终产品形态。
本次范围
Pi-native 运行时与协议
openpi web入口、Web host、Pi runtime adapter、协议投影和 SSE 事件交付;AgentSession,沿用 Pi 的 Session、Provider/Model、Skills、Trust、扩展和生命周期,不新增第二套 agent runtime;accepted的权威证据;Last-Event-ID、gap detection、409 RESYNC_REQUIRED和断线重连。工作台能力
AgentSession提交 prompt,选择可用模型并展示流式消息、思考、工具调用和运行进度;首版产品体验
工程配套
非目标与后续工作
验收与验证
bun run checkbun run testpi list唯一 OpenPI 来源一致关联实现:#326