Roadmap

What's shipped, what's in flight.

VersionThemeStatus
v0.0.1-pocPhase 0 — end-to-end feasibility (claude -p drives Chrome via CDP)✅ Shipped
v0.1.xPhase 1 — Vite plugin + chat UI + persistent service + Save as Spec✅ Shipped
v0.2.xPhase 2 — multi-agent (claude + codex), dark widget v2, Result + Findings cards, custom tooltip✅ Shipped
v0.3.x@hover-dev/next — Next.js 16+ Turbopack-native integration✅ Shipped
v0.4.xClick → Suggest fix prompt✅ Shipped
v0.5.xMerged Record + Assert workflow (Record / Exists / Says / Equals sub-toolbar)✅ Shipped
v0.6.xVoice mode — push-to-talk STT + spoken progress narration, browser-native, zh/en autodetect, Chrome 139+ on-device✅ Shipped
v0.7.xSecurity testing + plugin API@hover-dev/security (HTTPS MITM, captured-flow inspector, IDOR / authz probing MCP) + defineHoverPlugin manifest API behind it✅ Shipped
v0.8.xMulti-framework source attribution + integration overhaul — JSX / Vue / Svelte / Astro data-hover-source stamps via the private @hover-dev/transform-source; @hover-dev/next gains plugin support via register()'s second arg✅ Shipped
v0.9.xWidget plugin-UI protocol + cursor-agentwindow.__HOVER_WIDGET__ host API (namespaced CSS / DOM mutations / toolbar buttons / overlays / WS message handlers / lifecycle); @hover-dev/security migrates onto it; cursor-agent joins the registry✅ Shipped
v0.10.xMulti-tab agent reliability + 3 more agents — system-prompt addendum for popup checkouts / OAuth chains / post-popup state, pnpm bench-multi-tab for A/B'ing prompt changes, two-step card+OTP examples/payment-provider, aider + gemini-cli + qwen-code in the registry✅ Shipped
v0.11.xSpec resilience: ⟳ Re-record + Saved-sessions overlay + FAQ — when a saved spec breaks (UI changed), Re-record button (widget) or pnpm hover re-record <spec> (CLI) replays the JSDoc Original prompt: against the current UI and overwrites the file. Widget gains the Skills+Specs tabbed overlay (Save-as-Skill later retired — spec + Re-record covers replay; the overlay is now Specs + Seeds). README + docs site gain a top-level FAQ explaining why we don't self-heal at CI time✅ Shipped
v0.12.xSecurity spec recording semanticsreplay_flow MCP tool gains intent + expectStatus parameters that record the replay as a security check. Save-as menu sprouts a "Security spec" entry that writes __vibe_tests__/<slug>.security.spec.ts — plain Playwright with the request fixture, one test() per recorded check. Also: server HoverPluginManifest.saveHandlers + widget WidgetPluginSpec.saveEntries plugin extension points✅ Shipped
v0.13.xRecord/replay parity — (1) visibility prelude in writeSpec emit ({ const el = …; await expect(el).toBeVisible(); await el.<action>; }) makes UI drift fail in ~3 s with Locator expected to be visible instead of 30 s actionability timeout; (2) Record mode emits page.goto as the first step (was: spec started on about:blank and failed mysteriously); (3) opt-in "Reload before recording" setting aligns record-time and replay-time starting state. Plus a ?drift=on visibility-drift lab and 9 new vitest cases✅ Shipped
v0.14.xSingle-Chrome security + landing site — security mode drops its second browser (one debug Chrome; a hover:service:start hook sets launch flags), gethover.dev lands, the widget gains --mode-accent plugin theming + CJK output mirroring✅ Shipped
v0.15.xStructured spec output + CLI mode — named test.step Given/When/Then stages, .hover/<slug>.json sidecars, Page Objects + fixtures (hover extract), Promise.all popup / upload / download pairing, the off-by-default AI optimization pass (hover optimize — diff-reviewed candidate, original always kept, // KNOWN BUG flagging), the .hover/rules/ seed library + the hover-seeds repo, terminal-native hover run, an optional model API key passed to the spawned CLI's env, the addsetup rename, and one Clack-style frame across every command. Save-as-Skill retired (spec + Re-record + seeds cover it)✅ Shipped (you are here)
v0.16.x or sibling repoChrome extension — drops bundler-plugin dependency, drives any tab (staging, third-party). Likely a separate hover-extension repo (Web Store cadence shouldn't gate on monorepo PRs). Loses source attribution, gains universal coverage🟡 Planned

v0.16.x+ scope (planned)

  • Chrome extension as a sibling product. Targets the "AI tests any live site" use case (staging URLs, third-party sites, multi-origin flows) — distinct from the Vite-plugin product line which targets "AI rewrites your dev-server's source." Likely a separate hover-extension repo because Chrome Web Store releases are manual and would mis-fit this monorepo's auto-publish workflow.

  • Re-record --failed / --all. Batched spec resilience: feed Playwright's failure list into hover re-record --failed to re-record only the broken specs in one pass. v0.11 ships single-spec re-record on purpose (rationale in FAQ) but the batched form is on the roadmap once we have real signal from how single-spec usage shakes out.

Beyond v0.15.x

  • Voice mode Pro (opt-in) — Deepgram Nova-3 streaming STT + ElevenLabs Flash / Cartesia Sonic TTS as an env-var-gated upgrade for users who want sub-100ms TTFA or higher-fidelity 中文 recognition. LLM stays on the user's local CLI agent — only the I/O adapters are cloud. Brings new privacy boundary (audio leaves the browser); will be opt-in, never default.
  • AI-compiled spec output — ✅ shipped as the off-by-default optimization pass: the deterministic translator always emits the spec, and an optional LLM pass polishes it into a diff-reviewed candidate (original always kept). The AI is an authoring-time aid, never a CI dependency.

For real-time tracking, see github.com/Hyperyond/Hover/issues.