自愈一个漂移的 spec
当你应用的 UI 变化时,一个录制下来的 selector 可能不再匹配,保存的 spec 变红。self-heal 通过只对坏掉的那一步重新落地约束、保留其余部分来修复它 —— 所以 record == replay 得以保留,而不是被丢弃再重新撰写。
触发它
在你已经在用的 agent 里:
/mcp__hover__heal # 扫描每一个保存的 spec
/mcp__hover__heal login.spec.ts # …或只自愈一个
检测是内建的 —— 你不用先跑 playwright test。replay_spec(slug) 把 spec 里录制下来的落地约束步骤对着线上应用重放,报告第一个不再能定位的步骤:它的序号,以及它当时要找的 role+name。
循环
replay_spec重放录制下来的步骤,找到漂移 —— 第一个不再能定位的步骤。- 重新 snapshot 当前页面,并按录制下来的意图重新定位该控件(它当时要够到的 role+name / testId)。
- 重新驱动那一步,作用在找到的控件上。
- 用同名调用
crystallize_spec,就地覆盖这个 spec。
按意图自愈 —— agent 从不发明一个新流程。如果某个功能被改名了,selector 会被重新落地约束,spec 继续可用。如果某个功能是被移除而非改名,agent 会停下来问你,而不是瞎猜。
从 VS Code 驾驶舱
审阅驾驶舱 会在你的 spec 上浮出一个 🏥 Heal in agent CodeLens。它把 /mcp__hover__heal <slug> 命令复制好,让你粘进你的 agent。驾驶舱不驱动任何 agent —— 它做检测和审阅;自愈由 MCP 来做。
范围
这是 mode A:本地、按需、由你在 agent 里触发的自愈。CI 驱动的自愈 —— 一次变红的 CI 运行主动提出自动自愈 —— 正在计划中(见 路线图)。本地这边,CI 保持确定性且免费;测试时没有任何 AI 在跑。