Skip to content

feat(browser): 新增 Safe Web readiness 收据(fail-closed 判定) - #71

Merged
Qiyuanqiii merged 12 commits into
mainfrom
codex/issue-41-safe-web-readiness
Aug 15, 2026
Merged

Qiyuanqiii merged 12 commits into
mainfrom
codex/issue-41-safe-web-readiness

Conversation

@Qiyuanqiii

@Qiyuanqiii Qiyuanqiii commented Aug 15, 2026 •

Copy link
Copy Markdown
Member

背景

issue #41(父任务 #33):Safe Web 产品入口需要在 #1 的 WFP 生产证据通过后接入,且缺少一个统一的"该浏览器此刻是否 ready"判定、把判定变成 CLI/HTTP/Desktop 可消费的持久化事实,以及"启动 → 观察 → 关闭/清理"的操作者编排。

本次改动

  • readiness 收据(browserruntime):BrowserSafeWebReadiness 对证据+review 做 fail-closed 判定(12 值 blocking reason),缺失/过期/版本/哈希/策略不匹配一律 Ready=false。
  • store 持久化(schema v103):browser_network_evidences + browser_network_reviews + 幂等 operation 表;Record/Load 幂等回放、取最新、降级重放;PrepareBrowserLaunch/RecordBrowserLaunchReview 改为直接返回 browserruntime 类型(消除 application→store 导入环)。
  • app 服务:BrowserSafeWebRuntimeService.Readiness(收据判定);BrowserRuntimeService.Launch/Close(编排 durable 准备→复核→网络隔离计划→授权→Profile→启动→生命周期协调器→Finalize 关闭/清理)。
  • CLI/HTTP/Desktop:doctor browser-network-probe 写证据、browser-network-review、browser-readiness;只读 GET /api/v1/browser/safe-web-readiness;SafeWebReadinessPanel 展示 ready/阻塞原因。
  • Activity 接入:浏览器生命周期事件投影为 Run Activity browser kind,只标记 Go 观察事实。
  • ADR 0105;README schema 时间线补 v103。

测试覆盖

  • browserruntime:readiness 12 值 fail-closed;production_runtime_test 完整链。
  • store:证据/review 幂等、schema v103 降级重放;launch/review 持久化+权威边界。
  • application:Readiness 五路径;BrowserRuntimeService.Launch 零身份/未就绪 fail-closed。
  • runactivity:浏览器生命周期投影 Go 观察状态。
  • httpapi:readiness 参数拒绝;OpenAPI golden 一致。
  • web:client 解析、设置页、timeline 图标;typecheck/vitest/build/check:api。

验证结果

安全边界与非目标

  • readiness/store/CLI/HTTP/Desktop/Activity 与 BrowserRuntimeService 都 fail-closed;Launch 仅在 readiness、受限 CDP 权限、durable 复核、网络隔离计划、Profile 所有权全部通过后才启动进程,启动前拒绝任何授权放宽。
  • HTTP 端点只读(读 token 门);Activity 只投影 Go 观察事实,绝不透传浏览器输出/Profile/会话数据。
  • 不实现 Full CDP、不自动访问公网目标、不复用用户日常浏览器 Profile。

Closes #41

@Qiyuanqiii
Qiyuanqiii merged commit b8595bc into main Aug 15, 2026
5 checks passed
@Qiyuanqiii
Qiyuanqiii deleted the codex/issue-41-safe-web-readiness branch August 15, 2026 23:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(browser): 受限 Safe Web 操作者入口与 readiness 收据

1 participant