Changelog
This page lists the recent product releases, features, and fixes for the Verfix runtime and CLI.
For the full detailed commit history and changes, visit the full CHANGELOG on GitHub.
v0.4.0 (2026-07-11) — Failure synthesis
Section titled “v0.4.0 (2026-07-11) — Failure synthesis”A field review concluded Verfix “did the capture work correctly — the gap is entirely in synthesis”: runs already recorded the right artifacts, but hints were generic and nothing connected them. This release closes that gap — deterministically, no LLM anywhere in the pipeline.
findings[]— deterministic post-failure analysis. Pure functions over the evidence a run already captured; each emits a typed finding (code, hypothesis-languagesummary, triggeringevidence, a concretesuggestion) only when the evidence clearly supports one — silent when unsure, capped at 3, top finding rendered intofix_hint. Shipped analyzers:stale_session(a restored session met a 401/403 on an auth-ish endpoint),blocking_overlay(the selector was fine — an open dialog/overlay was covering the page, named by its accessible name),prior_console_errors(earlier console errors correlated with a later UI-shaped failure, with first/third-party detection).page_state— failure-time facts. Every failure now reports what was observably true on the page when it happened: URL, title, open dialogs/overlays, and counts of prior console errors / failed requests. Facts only, no interpretation.verfix show --timeline [--last N] [--filter type]— steps, console lines, and network requests interleaved chronologically around the failure.verfix show --dom '<selector>'— query the run’s saved DOM snapshot (also plain-text search).selector_countassertion — assert an exact number of matches.verfix run --base-url <url>— per-invocation base-URL override for preview deploys and per-PR environments.- Diagnosis playbook in generated instructions.
.verfix/INSTRUCTIONS.mdnow teaches the escalation ladder — JSON facts/findings first, then--timeline, then--dom+open_dialogs, then full logs, and only then project source.
Changed
Section titled “Changed”@verfix/enginebumped to0.2.0.
- Intermittent second JSON document on stdout (#80) that could corrupt
--output jsonon first runs under a timing race with the bounded AI failure-summary call. third_partyconsole-error labeling — now hostname-based (with loopback/sibling-subdomain awareness) instead of origin-based, so an app’s own API on a different localhost port is no longer mislabeled third-party.
v0.3.6 (2026-07-07)
Section titled “v0.3.6 (2026-07-07)”- Auth state reuse (
saveState/useStateflow fields) — a login flow can persist cookies (incl.httpOnly),localStorage, and IndexedDB under a name; other flows restore it and start already authenticated. select_option,check,uncheck,hoverflow steps.upload_fileflow step — fixture path or inline{ name, content, mimeType, encoding }, CI-safe.wait_for_urlandwait_for_network_idleflow steps.framestep field for targeting elements inside an<iframe>(payment widgets, embedded editors).- Scoped
text_visible— optionalselectornarrows the text search to one element. verfix show --console/--network— print a run’s captured console log and network requests without hand-parsing files in.verfix/runs/.verfix probe— dry-run selectors/text against a run’s saved DOM snapshot (~1s) instead of a full run.- AI rate-limit circuit breaker — after 3 consecutive 429s, AI calls disable for the rest of the run instead of retrying and failing on every step.
Changed
Section titled “Changed”- JSON output is now a summary by default;
--fullrestores the raw event timeline. The full timeline was ~93% of the payload and agents paid for it on every fix-loop iteration. The summary stays lossless for anything non-nominal — failures carryflow/assertion, skippedoptionalsteps are always listed,source_changesalways appears when non-clean.
v0.3.5 (2026-07-06)
Section titled “v0.3.5 (2026-07-06)”pressflow step — sends a keyboard key on a target or at the page level, for UIs that submit onkeydownrather than form submission.
v0.3.4 (2026-07-06)
Section titled “v0.3.4 (2026-07-06)”${VAR}environment variable interpolation in flow stepvalue/url, assertionvalue, andbaseUrl— resolved fromprocess.env(including.verfix/.env) at run time, so secrets never need to live inverfix.config.json.- Optional flow steps (
"optional": true) — skipped instead of aborting the flow if they fail within their timeout. - Flow
clearState— clears cookies and storage before a flow runs, for flows that must start logged-out. network_request_successacceptStatusesandno_console_errorsexclude— handle endpoints/errors with more than one valid outcome without branching the flow.
v0.3.3 (2026-07-05)
Section titled “v0.3.3 (2026-07-05)”verfix validate— checksverfix.config.jsonfor structural and semantic errors without running anything.- Flow
skip/skipReason— quarantine a known-broken flow from a full run without deleting it.
- Per-flow
modeoverride was silently dropped when running multiple flows together — now correctly applies for any number of flows in one run. - Exploratory mode now fails fast with
ai_key_requiredbefore launching a browser if no AI key is configured, instead of failing after. - Chromium headless-shell install self-repairs on a partial/interrupted install instead of crashing.
v0.3.1 (2026-07-04) — Verfix is now local-first
Section titled “v0.3.1 (2026-07-04) — Verfix is now local-first”Changed
Section titled “Changed”verfix runexecutes in-process by default — no Docker, no Redis, no API server. The verification engine was extracted as@verfix/engine; a clean machine needs only Node 20+, and the first run downloads Chromium once (~130MB, cached). Existingverfix.config.jsonfiles need zero changes.- Strict mode needs no AI key.
verfix initdefaults tostrictand only asks for a provider/key when you pickassisted/exploratory. - Results live in
.verfix/runs/— each run persists a JSON summary plus a full Playwright trace zip (newest 20 kept). New commands:verfix showopens the trace viewer,verfix listlists recent runs. - The Docker server runtime is now opt-in via
--server(orVERFIX_RUNNER=server) — the foundation of a future hosted CI product, not the default path. - Config-First Source Guard introduced —
verfix runsnapshots a git baseline each verify cycle and reportssource_changes;sourceCodePolicy(warn/block/off) controls enforcement. See Config-First Verification. - Agent files consolidated around the
AGENTS.mdstandard — a compact stub plus a full.verfix/INSTRUCTIONS.mdreference;.cursorrules/CODEX.mdgeneration dropped (Cursor/Codex readAGENTS.mdnatively).
Removed
Section titled “Removed”- Hybrid host/container browser mode and the slim server image auto-selection — local mode covers the same use case natively.
npm install verfixnow resolves its engine dependency correctly — previously shipped a broken local-path reference that left a dead symlink in consumers’ installs.
v0.2.10 (2026-06-27)
Section titled “v0.2.10 (2026-06-27)”- Redis Queue for Job Processing: Replaced in-memory job queue with Redis-backed queue for reliable, persistent job processing across container restarts.
- Broker Pattern in Go API: Introduced a pluggable
Brokerinterface supporting both in-memory and Redis queue backends, providing resilience and future extensibility.
Changed
Section titled “Changed”- Updated base Docker images for both the full (
verfix-server) and slim (verfix-server-slim) images with the latest security patches.
- Cross-Platform Worker Extraction: Fixed worker extraction from Docker images on macOS and Windows — now correctly extracts and runs workers natively on the host with proper Playwright Chromium installation.
- Redis Connection Stability: Fixed
MaxRetriesPerRequestErrorin Redis adapter connection handling, improving reliability during host Redis detection. localhostResolution Bug: Fixed an IPv6 binding issue wherelocalhostcould resolve to::1on certain macOS/Windows configurations, causing connection failures to host services.
v0.2.9 (2026-06-22)
Section titled “v0.2.9 (2026-06-22)”- Minor bug fixes and documentation updates.
v0.2.8 (2026-06-22)
Section titled “v0.2.8 (2026-06-22)”- Hybrid Browser Mode (Host/Container): Introduced a dual browser execution model with two modes:
host(default on macOS/Windows) — runs Playwright workers directly on the host machine with native localhost access, andcontainer(default on Linux) — keeps workers inside Docker with--network=host. Users can override viaVERFIX_BROWSER_MODE=host|container.- On container start, the CLI automatically extracts worker files from the Docker image, installs Playwright Chromium locally, and spawns a dedicated local worker process.
- New
--show-browserflag onverfix startandverfix runenables visible browser window for debugging (headful mode).
- Slim Server Image (
verfix-server-slim): A new lightweight Docker image built on SQLite (no PostgreSQL dependency) that the CLI automatically selects when running in host browser mode on macOS/Windows, reducing resource overhead. - Pluggable Database Backend: Refactored the Go API to a
Storeinterface with two implementations — PostgreSQL (full image) and SQLite (slim image). - Local Worker Lifecycle Management: The CLI now manages local worker processes with proper PID tracking, auto-detection of stale workers, headful/headless mode switching, graceful shutdown (
verfix stop), and artifact directory bind-mounting. - Update Checker Browser-Mode Awareness: The NPM and Docker image update-checker now queries the correct image tag based on the active browser mode (slim vs. full).
- Localhost Networking on macOS/Windows: Replaced the previous CLI TCP proxy approach with hybrid browser mode for a more robust and maintainable solution.
- Port Conflicts on Host Redis Detection: The CLI now detects if Redis is already running on the host at port 6379 before mapping container ports, preventing “port is already allocated” errors.
v0.2.7 (2026-06-20)
Section titled “v0.2.7 (2026-06-20)”- Anonymous Telemetry & Analytics: Integrated privacy-first telemetry with PostHog to track usage metrics for CLI initialization, diagnostic checking, container startups, and verification runs.
- Automatically respects standard
DO_NOT_TRACKandVERFIX_TELEMETRY=offenvironment variables. - Uses an anonymous tracking identifier generated once and stored in
~/.verfix/.machine-id(no PII, hostname, or system paths collected). - Shows a clear, transparent, one-time privacy notice on first execution.
- Telemetry works completely asynchronously on lazy-loaded paths, ensuring zero execution block.
- Automatically respects standard
- Telemetry Documentation: Added a comprehensive Telemetry & Privacy developer documentation guide.
v0.2.6 (2026-06-20)
Section titled “v0.2.6 (2026-06-20)”- Non-Interactive Setup Wizard Mode: Added
--yes/-yflag toverfix initfor unattended execution using flags or environment variables. Particularly useful for automated environments, CI/CD pipelines, and AI coding agents. - Provider Auto-Detection: Automatically detects AI providers (OpenAI, Anthropic, Gemini, OpenRouter) based on the format of the provided API key.
- Agent Setup Command: Added
verfix agent-setupcommand that outputs machine-readable JSON instructions for AI coding agents to bootstrap Verfix. - Graceful Docker Degradation: Init wizard now warns and continues configuring if Docker is not installed or running, instead of hard failing.
- Dry-run Mode: Added
--dry-runflag to preview what would be configured as JSON without writing any files.
Changed
Section titled “Changed”verfix initnow supports--ai-provider,--ai-model,--ai-key,--base-url,--mode,--skip-runtime,--skip-agent-files, and--dry-runflags.- Environment variable fallbacks:
VERFIX_AI_PROVIDER,VERFIX_AI_MODEL,VERFIX_AI_KEY,VERFIX_BASE_URL,VERFIX_MODEare now recognized.
v0.2.5 (2026-06-16)
Section titled “v0.2.5 (2026-06-16)”- CLI Local Proxy: Transparent TCP proxy for Docker networking on Windows/macOS. Automatically forwards traffic from the container to the host machine, fixing
ERR_CONNECTION_REFUSEDerrors on Windows Firewall and macOS.
- Docker networking for Windows/macOS when targeting localhost services
- Worker connection error messages now clearly indicate host server connectivity issues
v0.2.2 (2026-06-14)
Section titled “v0.2.2 (2026-06-14)”- CLI update notifications for both npm package and Docker server image
verfix startandverfix statusnow show update banners when newer version available- Background version checks with 24-hour caching — zero blocking I/O
Changed
Section titled “Changed”- Redesigned dashboard workspace with Postman-inspired shell, responsive split panels, and unified light/dark theme tokens
- Flaky task display switched from URL-level to execution-level granularity
- Improved dashboard keyboard navigation, ARIA labels, and validation feedback
- Docker build failure from
.dockerignoreexcludingcli/directory - Database performance with composite index for flaky URL queries
- Database resource leak with deferred row close in
handleFlaky
v0.2.1 (2026-06-10)
Section titled “v0.2.1 (2026-06-10)”Key Highlights
Section titled “Key Highlights”- AI Agent Context File: Added
.github/agents.mdcontaining coding standards, monorepo architecture, testing instructions, and critical networking guardrails for AI coding assistants. - 2026 Model Support: Updated static model lists for OpenAI (
gpt-5.4-mini/gpt-5.5), Anthropic (claude-sonnet-4-6/claude-opus-4-8), and Gemini (gemini-3.5-flash/gemini-3.5-pro), and added support for the new GeminiAQkey prefix.
v0.2.0 (2026-06-10)
Section titled “v0.2.0 (2026-06-10)”Key Highlights
Section titled “Key Highlights”- Multi-provider AI Support: Implemented custom HTTP-based adapters in the AI runtime to support OpenAI, Anthropic, Gemini, and OpenRouter, completely eliminating the external
openaiSDK dependency. - API Key Connectivity Testing: Added an interactive connectivity test step for AI API keys during the
verfix initsetup wizard. - Config Migration & Validation: Added schema validation and automated configuration migration support for legacy configurations.
- Docker Networking: Improved Docker networking resolving logic in CLI and workers to handle platform-specific URLs (
host.docker.internalvs. host networking) across multiple AI providers.
v0.1.5 (2026-06-07)
Section titled “v0.1.5 (2026-06-07)”Key Highlights
Section titled “Key Highlights”- Programmatic SDK: Introduced programmatic SDK for integration scenarios with a class-based API.
- Flow Scaffold Changes: Updated
verfix initto no longer scaffold empty flows — replaced withverfix create flow <name>for on-demand flow creation. - CLI Automation Support: Added clean JSON output mode and predictable exit code contracts for machine-driven integration.
- Disk Optimization: Improved the screenshot/image capturing system to save disk space in execution artifacts.
v0.1.4 (2026-05-25)
Section titled “v0.1.4 (2026-05-25)”Key Highlights
Section titled “Key Highlights”- Port Management: Introduced runtime port management with new defaults (Dashboard
3610, API3611) and automatic port fallback (3612/3613, etc.). - Self-Healing Ports: Configured container-to-CLI runtime port sync and API health-based fallback discovery for robust local runs.
- Init Wizard Fixes: Corrected app-port auto-detection to prevent selecting runtime/API ports as the user’s app port.