修复 Web 预检浏览器失败恢复 #591
Reference in New Issue
Block a user
Delete Branch "fix/web-preflight-browser-recovery"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
关联 Issue: #584
问题
Web 游戏环境预检在 Edge/Chrome 的 WS 握手或 CDP 连接瞬态失败时直接阻断首次创建;原失败路径只确认 root 收束,Windows Job 子树未确认清空,且没有失败触发的隔离 Profile 恢复。
修改
验证
风险边界
清理未确认时不启动第二个浏览器,不执行全量 taskkill,不触碰用户 Edge、其它 AGC 实例或非 AGC Profile.
本轮评审发现与修复:P1 Windows Job 绑定竞态:spawn 后绑定 Job 的窗口内子进程可能逃逸,导致 cleanup-confirmed 误判;已绑定 root 后逐 PID 纳入绑定窗口内已有子树,覆盖无法确认时收束已知整树并 fail-closed。P1 含空格 Profile 解析失败:已使用 CommandLineToArgvW,并补充含空格 Profile 回归测试。P1 Job 绑定失败时只回收 root:已固定 root 启动身份并走身份校验的整树回收。P2 清理失败诊断丢失:已保留结构化 shutdown 诊断并加入投影测试。P2 错误码契约缺项:已将 web-preflight-browser-environment-failed 纳入权威技术方案。修复已提交并推送,当前 head 为 c7d70ba89,等待 CI。浏览器 Rust 定向测试 53 passed,Web 预检测试 9 passed;Rust fmt、编码和文档索引检查通过。