Skip to content

首次引入 OpenPI 外部 Web 工作台框架 #325

Description

@somewan820

背景

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions