用途:在改动涉及浏览器界面时,启动当前检出目录中的应用,用一次性无头浏览器访问改动过的页面,产出可被验证者引用的证据(截图、控制台错误、服务器日志)。它只产出证据,不做通过/失败判定,也不是浏览器自动化框架或 e2e 测试套件。
主要能力:按检出路径派生应用端口与 CDP 端口,避免多工作树冲突;轮询等待服务器就绪;优先使用仓库已安装的 Playwright,否则用无头 Chrome 加 CDP 脚本;每个页面一次调用,截图与控制台错误写入 .captain/browser/report.md、<surface>.png、console.json、server.log;结束时关闭服务器与浏览器、删除临时 profile,并确认端口释放。
使用方式:按需启用,不作为默认流水线步骤。流程分五阶段:判断 diff 是否触及浏览器界面、是否有可运行应用、映射 URL;派生端口并启动应用;用一次性浏览器抓取;写证据;清理并验证。端口派生示例:sum=$(printf '%s' "$PWD" | cksum | cut -d' ' -f1);APP_PORT=$(( 20000 + sum % 20000 ))。启动命令示例:PORT=$APP_PORT npm run dev -- --port "$APP_PORT"。
适用场景:改动涉及页面、路由、布局、组件、模板、样式或资源,且仓库有可运行应用时。
限制:仅按需启用;不新增依赖,不运行 playwright install;不使用用户真实 Chrome 配置、不连接远程或云浏览器、不发送页面内容到外部;不等待人工确认;无界面、无应用或无浏览器时记为 not-applicable 并正常退出;遇到登录墙即停止记录,不认证、不复用会话、不写入凭据。