简明目的
需要网页操作时,Agent 只能控制一个隔离的浏览器会话;用户一直看得见、能立即暂停并接管,而且网页不能碰 Alpha 主窗口或其它会话。
Outcome(专业定义)
Electron main 创建独立 WebContentsView 与 BrowserSessionBroker,按 session/project/owner/domain 管理交互式导航、权限、用户接管和 scoped automation。Browser 使用独立 UI surface、partition 与专用 CDP/Playwright broker,绝不复用静态 HTML host、Artifact Workbench runtime/store 或全局 9222 调试端口。
Complexity
L — 交互式网页、自动化、下载/上传、权限与主应用隔离构成高风险安全边界,必须拆分并经过 packaged 安全验证。
Context
需求有效但尚未开始;当前只有单张 #198 umbrella 子票。原正文把 Browser 当作 #206 Workbench mode 并以 #208 静态 host 为依赖,容易错误复用权限域;两者最多提供布局参考/安全原则,不能复用 runtime、partition 或 broker。
Scope
- main-owned
WebContentsView,默认临时独立 partition、无 preload、sandbox/context isolation。
BrowserSessionBroker 持有 session ID、project、owner、allowlist、lifecycle、policy 与脱敏 action log。
- 独立 Browser UI 显示真实 origin、navigation state、agent/user control、暂停/接管/恢复/销毁。
- main policy 覆盖导航、redirect、subframe、popup、permission、external protocol、WebSocket、download/upload/clipboard。
- 专用 automation broker 只能附着当前 Browser session,不能枚举/控制主窗口、静态 preview 或其它 session。
- 下载写入受管目录并校验;上传只接受 file picker 产生的一次性 token。
Non-goals
Acceptance criteria
AC1. 每个 Browser session 使用 main-owned 独立 WebContents/临时 partition,无 preload、Node/Electron bridge 或与主应用共享 storage。
AC2. broker 将 owner、project、allowlist、lifecycle 与 policy 绑定到稳定 session ID;renderer 只能发送 schema 校验的高层命令。
AC3. 用户持续看到真实 origin 和控制主体,可一键暂停 agent 并原子接管;暂停后新动作被拒绝且进行中的输入/导航可取消。
AC4. 未允许域、redirect/subframe 越界、popup、外部协议、camera/mic/geolocation/notification、WebSocket 等默认拒绝并记录脱敏决策。
AC5. 专用 automation broker 不能列出/控制主窗口、#208 preview 或其它 Browser session,且 packaged app 不开放/复用全局 9222。
AC6. download 超限/MIME 欺骗/路径替换不落为成功;upload 无 picker token、复用 token 或目录替换均拒绝;后台 clipboard 读取为零。
AC7. session 关闭/crash 后 cookie/storage/cache 和 automation attachment 被销毁;新 session 不继承旧状态。
AC8. 恶意页面/prompt injection 与 renderer/GPU crash 在 macOS/Windows packaged app 中不能扩大权限或拖垮 Session/Composer。
Evidence map
| AC |
Evidence surface |
| AC1 |
建议 CODE:Browser host/partition lifecycle tests |
| AC2 |
建议 CODE:broker schema/scope wiring tests |
| AC3 |
建议 CODE:Browser UI control-arbitration tests + visual baseline |
| AC4 |
建议 CODE:navigation/permission policy matrix |
| AC5 |
建议 CODE:scoped automation/target isolation tests |
| AC6 |
download/upload/clipboard security matrix |
| AC7 |
destruction/crash cleanup tests |
| AC8 |
建议 VERIFY:malicious macOS/Windows packaged Browser matrix |
Acceptance owner
待指定;未指定前不得进入 Ready,也不得关闭。
设计要点
- Web page 始终是不可信输入;DOM 文案不能批准登录、付款、发送、上传或扩大域名。
- broker 是唯一决策者,UI/agent 都不能绕过 policy 直接操作 WebContents/CDP。
- domain policy 在 redirect/subframe/WebSocket 等每次边界重新验证。
- 首发只使用临时 profile,显著减少持久 cookie/credential 风险。
潜在问题与风险
过时性与兼容性结论
需求有效且未实现。不存在既有用户/浏览器 profile 需要迁移;不保留旧 host、partition、9222 或 Workbench mode 兼容。保留原子控制权切换、清理、取消、崩溃恢复与 policy fail-closed。
关联与职责边界
Delivery plan / 建议子票
Dependencies
简明目的
需要网页操作时,Agent 只能控制一个隔离的浏览器会话;用户一直看得见、能立即暂停并接管,而且网页不能碰 Alpha 主窗口或其它会话。
Outcome(专业定义)
Electron main 创建独立
WebContentsView与BrowserSessionBroker,按 session/project/owner/domain 管理交互式导航、权限、用户接管和 scoped automation。Browser 使用独立 UI surface、partition 与专用 CDP/Playwright broker,绝不复用静态 HTML host、Artifact Workbench runtime/store 或全局9222调试端口。Complexity
L — 交互式网页、自动化、下载/上传、权限与主应用隔离构成高风险安全边界,必须拆分并经过 packaged 安全验证。
Context
需求有效但尚未开始;当前只有单张 #198 umbrella 子票。原正文把 Browser 当作 #206 Workbench mode 并以 #208 静态 host 为依赖,容易错误复用权限域;两者最多提供布局参考/安全原则,不能复用 runtime、partition 或 broker。
Scope
WebContentsView,默认临时独立 partition、无 preload、sandbox/context isolation。BrowserSessionBroker持有 session ID、project、owner、allowlist、lifecycle、policy 与脱敏 action log。Non-goals
9222,不允许任意 CDP attach。Acceptance criteria
AC1. 每个 Browser session 使用 main-owned 独立 WebContents/临时 partition,无 preload、Node/Electron bridge 或与主应用共享 storage。
AC2. broker 将 owner、project、allowlist、lifecycle 与 policy 绑定到稳定 session ID;renderer 只能发送 schema 校验的高层命令。
AC3. 用户持续看到真实 origin 和控制主体,可一键暂停 agent 并原子接管;暂停后新动作被拒绝且进行中的输入/导航可取消。
AC4. 未允许域、redirect/subframe 越界、popup、外部协议、camera/mic/geolocation/notification、WebSocket 等默认拒绝并记录脱敏决策。
AC5. 专用 automation broker 不能列出/控制主窗口、#208 preview 或其它 Browser session,且 packaged app 不开放/复用全局
9222。AC6. download 超限/MIME 欺骗/路径替换不落为成功;upload 无 picker token、复用 token 或目录替换均拒绝;后台 clipboard 读取为零。
AC7. session 关闭/crash 后 cookie/storage/cache 和 automation attachment 被销毁;新 session 不继承旧状态。
AC8. 恶意页面/prompt injection 与 renderer/GPU crash 在 macOS/Windows packaged app 中不能扩大权限或拖垮 Session/Composer。
Evidence map
Acceptance owner
待指定;未指定前不得进入 Ready,也不得关闭。
设计要点
潜在问题与风险
过时性与兼容性结论
需求有效且未实现。不存在既有用户/浏览器 profile 需要迁移;不保留旧 host、partition、9222 或 Workbench mode 兼容。保留原子控制权切换、清理、取消、崩溃恢复与 policy fail-closed。
关联与职责边界
Delivery plan / 建议子票
Dependencies