运行、告警与自愈
CI 一旦向 Cloud 回传,项目页就成了你观察 spec 套件的地方:运行历史、逐 spec 结果、PR 检查、回归告警、自愈队列。这一切都由你 CI 已经跑过的结果算出来。
触发运行
- Run now 针对所选环境 dispatch workflow。CI 工作期间会出现一个实时的「running」横幅,回传步骤结束后结果落入——页面自动刷新,无需手动重载。
- Pull request 总会运行。Cloud 在 PR 上贴一条汇总评论,给出 pass/fail/flaky 结论和对任何失败的简短诊断。
- 定时运行(见团队与生命周期)按 cron 监控指定环境。
读取结果
项目页按所选环境列出运行,带 spec 计数、分支、来源和时间。点开一次运行看详情:每个失败的 spec 展示它的报错、失败定位器(自愈提示)和 CI 日志链接。如果你的 CI 把 trace 或报告作为 artifact 上传,它们会链在运行详情顶部——直接从 GitHub 下载,因为它们本来就存在那里。
开着的 pull request 在项目页有自己的条带:每个分支一个胶囊,按最新结论着色,点进对应运行。
回归告警
回归 = 同一环境同一分支的上一次运行是绿的,而这次是红的。Cloud 在接收时看到这种情况就告警——邮件发给项目团队,如果你配了 Slack webhook 也发到 Slack。PR 运行不告警(PR 评论已经覆盖了);这是给你的默认分支和被监控环境用的。
自愈编排
当一个 spec 漂移——定位器移了、标签变了——Cloud 会为它排一个自愈请求。这里正是「AI 只作用于已跑过的结果、修复留在本地」这条规则的落地:
- Cloud 检测接收时的失败,并为每个漂移的 spec 开一个自愈请求(去重——每个 spec 只有一个开着的请求)。
- Cloud 路由它到你的编辑器。云端够不到你的机器,所以你的 VS Code 扩展和 MCP agent 是拉取这个队列(见连接编辑器)。
- 你在本地自愈。 你自己的编码 agent 通过
/mcp__hover__heal <spec>在你真实的浏览器里重新定位元素,你审阅 diff 后再保留。 - CI 闭环。 只有当 CI 看到那个 spec 再次通过时,自愈请求才自动关闭——绝不因编辑器认领而关,绝不由 Cloud 改写你的代码。
AI 在哪里运行
诊断和 PR 汇总在 Cloud 端生成(先用小模型,必要时才升级),作用于已经失败的结果。自愈本身跑在你的编辑器里、用你的模型、对着你真实的浏览器。Cloud 编排,不执行。