路线图

已发布的内容,以及进行中的内容。

今天 —— MCP-first,四大界面

Hover 是一个开源的 Vibe Testing 套件,围绕四大界面和一个产物组织:

界面角色状态
MCP —— @hover-dev/mcpauthor(授权) —— 把它加到你自己的 agent 上;/mcp__hover__test_app 探索并结晶出一个测试套件✅ 已发布(在 npm 上)
VS Code —— hover-devreview(审阅) —— 一个可选的业务地图 + 仪表盘座舱;不驱动任何 agent✅ 已发布(Marketplace)
CIrun(运行) —— 结晶出的 spec 在每个 PR 上作为 plain Playwright 运行✅ 已发布
Cloudwatch(监视) —— 托管的并行运行、监控、flakiness 仪表盘、失败时自愈规划中

贯穿始终的是那个产物:位于你的仓库和你的 CI 中、你所拥有的、可移植的 @playwright/test。AI 只授权一次;此后没有任何 AI 运行。

近期发布

  • API 测试 Hover 在同一条 CDP 连接上被动捕获应用的浏览器流量(无代理),并把值得固定下来的检查结晶成一个 plain 的 *.api-test.spec.ts —— 会先用 replay_request 验证,因此不会臆造任何状态码。
  • 自愈 —— 模式 A(本地、按需) /mcp__hover__heal 用一个已保存的 spec 对活的应用回放,找到第一个漂移的步骤,并只对那一个步骤重新 ground。record == replay 得以保留。
  • Page Object 提取 跨多个 spec 重复出现的非登录 flow 被抽取到 pages/ + fixtures.ts,并把这些 spec 确定性地折叠到它们之上。
  • 认证作为 fixture 检测到的登录被抽取到一个 auth.setup.ts setup 项目中,它只登录一次并复用 storageState;密码被脱敏为 process.env.HOVER_PASSWORD
  • .hover/ 测试维基,自我维护 你的应用的知识跨多次运行不断累积,并自行保持诚实:渐进式回忆recall_business_knowledge 在规则堆积后返回一个索引;recall_fact 按需拉取其中一条)、/mcp__hover__lint(把地图与你的 spec + 运行台账交叉核对以发现漂移)、关系(一个 ## Relationships 块记录 flow 之间的 depends-on / shares-state / navigates-to 边)、一个运行日志.hover/log.md,一份只追加的历史),以及 /mcp__hover__ask(从维基中回答一个问题,并附引用)。

接下来

  • 维基,渲染出来。 把新的维基数据呈现在座舱里:业务地图图中的关系边、来自 lint 的漂移徽章,以及来自运行日志的时间线。数据今天就有了;视图是下一步。不上传任何源码。
  • CI 驱动的自愈(模式 B)。 一次红色的 CI 运行会提议自动愈合那个漂移的 spec。本地、按需的自愈今天已发布;CI 触发的路径在规划中。
  • Hover Cloud(规划中,尚未发布)。 一个覆盖在你已拥有的 spec 之上的托管层:并行运行、定时监控,以及一个 flakiness 仪表盘。授权永远保留在本地且免费;云端只会运行和监控你已经拥有的 spec —— 绝不制造授权层面的锁定。

版本历史

Hover 是怎么走到今天的。引擎沿着下面这条版本线演进;今天它以 @hover-dev/mcp server(以及可选的 VS Code 座舱)的形式发布。

版本主题状态
v0.0.1-poc阶段 0 —— 端到端可行性(claude -p 通过 CDP 驱动 Chrome)✅ 已发布
v0.1.x阶段 1 —— Vite 插件 + 聊天 UI + 常驻服务 + Save as Spec✅ 已发布
v0.2.x阶段 2 —— 多 agent(claude + codex)、暗色小组件 v2、Result + Findings 卡片、自定义 tooltip✅ 已发布
v0.3.x@hover-dev/next —— Next.js 16+ Turbopack 原生集成✅ 已发布
v0.4.xClick → Suggest fix prompt✅ 已发布
v0.5.x合并的 Record + Assert 工作流(Record / Exists / Says / Equals 子工具栏)✅ 已发布
v0.6.x语音模式 —— 按住说话的 STT + 语音进度旁白,浏览器原生,zh/en 自动检测,Chrome 139+ 端上运行✅ 已发布
v0.7.x安全测试 + 插件 API —— @hover-dev/api-test(HTTPS MITM、捕获流量检查器、IDOR / authz 探测 MCP)+ 其背后的 defineHoverPlugin manifest API✅ 已发布
v0.8.x多框架源码归因 + 集成大改 —— 通过私有的 @hover-dev/transform-source 打上 JSX / Vue / Svelte / Astro 的 data-hover-source 标记;@hover-dev/next 通过 register() 的第二个参数获得插件支持✅ 已发布
v0.9.x小组件插件 UI 协议 + cursor-agent —— window.__HOVER_WIDGET__ 宿主 API(带命名空间的 CSS / DOM 变更 / 工具栏按钮 / overlay / WS 消息处理器 / 生命周期);@hover-dev/api-test 迁移到其上;cursor-agent 加入注册表✅ 已发布
v0.10.x多标签页 agent 可靠性 + 再增 3 个 agent —— 针对弹窗结账 / OAuth 链 / 弹窗后状态的系统 prompt 补充、用于 A/B 测试 prompt 改动的 pnpm bench-multi-tab、两步式卡片 +OTP 的 examples/payment-provider、注册表中加入 aider + gemini-cli + qwen-code✅ 已发布
v0.11.xSpec 韧性:⟳ Re-record + Saved-sessions overlay + FAQ —— 当一个已保存的 spec 失效时(UI 变了),Re-record 按钮(小组件)或 pnpm hover re-record <spec>(CLI)用 JSDoc 中的 Original prompt: 对当前 UI 重新回放并覆写文件。小组件获得 Skills+Specs 分标签 overlay (Save-as-Skill 后来退役 —— spec + Re-record 已覆盖回放;overlay 现在是 Specs + Seeds)。README + 文档站获得一个顶层 FAQ,解释我们为什么不在 CI 时自愈✅ 已发布
v0.12.x安全 spec 录制语义 —— replay_flow MCP 工具获得 intent + expectStatus 参数,把回放录制为一次安全检查。Save-as 菜单长出一个 "Security spec" 条目,写出 __vibe_tests__/<slug>.api-test.spec.ts —— 使用 request fixture 的 plain Playwright,每条录制的检查对应一个 test()。此外:server 端的 HoverPluginManifest.saveHandlers + 小组件端的 WidgetPluginSpec.saveEntries 插件扩展点✅ 已发布
v0.13.x录制/回放对等 —— (1) writeSpec emit 中的可见性前奏({ const el = …; await expect(el).toBeVisible(); await el.<action>; })让 UI 漂移在约 3 秒内以 Locator expected to be visible 失败,而非 30 秒的可操作性超时;(2) Record 模式把 page.goto 作为第一步 emit(此前:spec 从 about:blank 起步并莫名失败);(3) 可选的 "Reload before recording" 设置对齐录制时与回放时的起始状态。另加一个 ?drift=on 可见性漂移实验室和 9 个新的 vitest 用例✅ 已发布
v0.14.x单 Chrome 安全 + 落地站 —— 安全模式放弃它的第二个浏览器(只用一个 debug Chrome;一个 hover:service:start 钩子设置启动 flag)、gethover.dev 上线、小组件获得 --mode-accent 插件主题 + CJK 输出镜像✅ 已发布
v0.15.x结构化 spec 输出 + CLI 模式 —— 命名的 test.step Given/When/Then 阶段、.hover/<slug>.json sidecar、Page Objects + fixtures(hover extract)、Promise.all 弹窗 / 上传 / 下载配对、默认关闭的 AI 优化 passhover optimize —— diff 审阅的候选,原件永远保留,// KNOWN BUG 标记)、.hover/rules/ 种子库(完整目录内置随附)、终端原生的 hover run、传给所启动 CLI 环境的可选模型 API keyaddsetup 重命名,以及贯穿每条命令的统一 Clack 风格框架。Save-as-Skill 退役(spec + Re-record + seeds 已覆盖它)✅ 已发布
v0.16.x–v0.22.xMCP-first 成熟期 —— API 测试(被动 CDP 捕获 → replay_request 验证 → 确定性的 *.api-test.spec.ts)、自愈模式 Areplay_spec 漂移检测 + /mcp__hover__heal prompt,外加座舱里的 "🏥 Heal in agent" CodeLens)、Page Object 提取detect_shared_flows + extract_page_objects),以及认证作为 fixtureauth.setup.ts setup 项目 + HOVER_PASSWORD 脱敏 + 脚手架化的 playwright.config.ts✅ 已发布(你在这里
VS Code 扩展(hover-dev审阅座舱 —— 一张展示你的 flow + 覆盖率的业务地图图,以及一个仪表盘(通过 / 失败 / flaky + CI 结果)、可选的 AI 优化 pass、PR-CI 工作流生成。可选 —— 它只审阅,不驱动 agent。✅ 已发布(在 VS Code Marketplace 上)
@hover-dev/mcp授权引擎 —— 一个你加到自己 agent 上的 MCP server(BYO-CLI)。grounded actuation 工具 + crystallize_spec + test_app prompt;record == replay,确定性结晶。✅ 已发布(在 npm 上)

要实时追踪,请查看 github.com/Hyperyond/Hover/issues