Skip to content

Releases: vizzly-testing/cli

📚 Storybook Plugin v0.1.3

Choose a tag to compare

@github-actions github-actions released this 28 Jan 18:30

[0.1.3] - 2026-01-28

What's Changed

Changed

  • Migrated test suite from Vitest to Node.js built-in test runner (node:test) for better performance and reduced dependencies
  • Replaced ESLint and Prettier with Biome for unified, faster linting and formatting
  • Upgraded minimum Node.js version requirement from 20.0.0 to 22.0.0
  • Improved test coverage from 87% to 99%

Fixed

  • Fixed services.get() calls to use direct property access, resolving "services.get is not a function" errors when using the plugin in cloud mode
  • Added comprehensive E2E tests that work with both vizzly tdd run (local TDD mode) and vizzly run (cloud mode)
  • Improved Puppeteer performance in CI environments with optimized arguments and timeout handling

Full Changelog: storybook/v0.1.2...storybook/v0.1.3

✨ v0.23.2

Choose a tag to compare

@github-actions github-actions released this 26 Jan 14:28

Vizzly CLI v0.23.2

What's Changed

Added

  • vizzly preview improvements: Added --dry-run flag to preview files before uploading, and --exclude/--include flags for granular control over which files to upload
  • Smart file exclusions: The preview command now automatically excludes non-static files (node_modules, tests/, coverage/, config files, etc.) to prevent accidental uploads

Fixed

  • 5xx error resilience: CI pipelines no longer fail when Vizzly API experiences temporary outages. The CLI now gracefully handles 5xx errors (500, 502, 503, Cloudflare tunnel errors, etc.) by warning the user but exiting with code 0, allowing tests to continue. Client errors (4xx) still fail as expected to catch real issues.
  • Ruby SDK connection timeout: Added open_timeout to Ruby SDK HTTP calls to prevent hanging on unreachable servers
  • Form data upload compatibility: Fixed form-data uploads in the preview command to work correctly with Node's native fetch API
  • Marketplace plugin installation: Corrected plugin path so /plugin marketplace add vizzly-testing/cli now works properly

Changed

  • Claude plugin: Simplified from complex MCP-based architecture to a skills-first approach with clearer documentation and commands
  • README: Streamlined documentation (moved detailed content to docs.vizzly.dev)
  • Plugin installation method: marketplace.json moved to repo root for proper GitHub installation

Full Changelog: v0.23.1...v0.23.2

✨ v0.23.1

Choose a tag to compare

@github-actions github-actions released this 19 Jan 23:38

v0.23.1

What's Changed

Fixed

  • GitHub Actions PR commit SHA detection - Fixed incorrect commit SHA detection for GitHub Actions pull_request events. The CLI now correctly reads the PR head commit SHA from the GitHub Actions event payload instead of using the temporary merge commit SHA. This fixes check runs appearing on wrong commits and baseline detection issues in PR workflows.

  • SDK E2E test compatibility - Fixed SDK E2E tests to work properly with both vizzly tdd run (local TDD mode) and vizzly run (cloud mode). All SDKs now detect the VIZZLY_SERVER_URL environment variable to skip starting their own TDD server when running under the Vizzly CLI.

Changed

  • CI workflow organization - Restructured CI workflows from a single monolithic ci.yml into focused, maintainable workflow files: sdk-e2e.yml, sdk-unit.yml, reporter.yml, and tui.yml for better clarity and faster feedback.

Dependencies

  • Updated Babel packages (@babel/cli, @babel/core, @babel/preset-env) from 7.28.3/5 to 7.28.6
  • Updated @tanstack/react-query from 5.90.16 to 5.90.19
  • Updated @types/node from 25.0.6 to 25.0.9

Full Changelog: v0.23.0...v0.23.1

✨ v0.23.0

Choose a tag to compare

@github-actions github-actions released this 15 Jan 06:45

Vizzly CLI v0.23.0

What's Changed

Added

  • Preview command for static site hosting - New vizzly preview <path> command enables teams to upload static files (dist/, build/, etc.) as previews attached to builds. Useful for sharing live previews of built applications alongside visual test results
  • Session tracking - Build context now flows between commands via .vizzly/session.json, enabling seamless multi-step workflows
  • GitHub Actions integration - vizzly run now auto-writes VIZZLY_BUILD_ID to $GITHUB_ENV for easy cross-step use in CI
  • Preview URL in status - vizzly status command now displays the preview URL when available
  • SDK E2E testing in CI - Added automated end-to-end tests for all SDKs (JS, Vitest, Ember, Ruby) to prevent integration regressions

Fixed

  • Vitest SDK status values - Fixed Vitest client to use correct status values from TDD handler (match/diff instead of passed/failed). This resolves the "Unknown comparison status: match" error
  • Performance improvements - Updated honeydiff to v0.8.1 for significant performance gains:
    • SSIM calculation now 5x faster using integral images and parallel processing
    • Full HD (1920×1080) image comparisons: 239ms → 51ms
    • Identical image detection skip saves ~250M operations per comparison
  • Security fixes - Fixed ReDoS vulnerability in MCP SDK UriTemplate regex patterns

Changed

  • Dependency updates - Updated honeydiff (0.8.0 → 0.8.1), MCP SDK (1.25.1 → 1.25.2), Node types (25.0.3 → 25.0.6), and Vite (7.3.0 → 7.3.1)

Full Changelog: ember/v0.0.3...v0.23.0

🧪 Vitest Integration v0.1.1

Choose a tag to compare

@github-actions github-actions released this 15 Jan 06:47

[0.1.1] - 2026-01-15

What's Changed

Fixed

  • Fixed compatibility with Vizzly CLI v0.23.0+ by updating status value handling from passed/failed to match/diff
  • Added support for baseline-updated status to properly handle baseline updates in TDD mode

Full Changelog: vitest/v0.1.0...vitest/v0.1.1

✨ v0.22.2

Choose a tag to compare

@github-actions github-actions released this 07 Jan 03:19

Vizzly CLI v0.22.2

What's Changed

Changed

  • Performance optimization for screenshot type detection: The client SDK now explicitly specifies the image data type ('base64' or 'file-path'), allowing the server to skip expensive regex validation on every screenshot. This eliminates O(n) processing for large base64 strings and significantly speeds up processing for content-heavy pages.

  • Reduced CLI bundle size: Removed unused static-site SDK dependency from CLI package dependencies.

Fixed

  • File path detection false positives: Fixed looksLikeFilePath utility to correctly distinguish between JPEG base64 data (which starts with /9j/) and actual file paths.

Backwards Compatibility

All changes are fully backwards compatible. The server gracefully falls back to type detection for client SDKs that don't yet provide the explicit type field.

Full Changelog: v0.22.1...v0.22.2

✨ v0.22.1

Choose a tag to compare

@github-actions github-actions released this 07 Jan 01:03

What's Changed

Added

  • Intelligent release notes generation: The release workflow now uses Claude Code to generate comprehensive, user-friendly release notes automatically instead of simple commit lists. This provides better context and clearer descriptions of what changed.

Fixed

  • Catastrophic regex backtracking in base64 detection: Fixed a performance issue in the isBase64 validation regex that caused stack overflow errors on large base64 strings (such as changelog screenshots). The regex has been replaced with a simpler, non-backtracking validation approach that:
    • Validates character classes directly
    • Checks length is divisible by 4
    • Allows up to 2 padding characters at the end
  • Improved error reporting: 500 error messages in the screenshot server now include actual error details for better debugging
  • Browser test isolation: Fixed browser tests that were inadvertently opening actual browser tabs during test runs by exporting validation logic as a pure function

Full Changelog: static-site/v0.0.11...v0.22.1

🧪 Vitest Integration v0.1.0

Choose a tag to compare

@github-actions github-actions released this 07 Jan 03:44

[0.1.0] - 2026-01-07

What's Changed

Changed

  • Migrated to Biome for linting and formatting - Replaced ESLint + Prettier with Biome for faster, unified code quality checks. Updated all npm scripts (lint, format, check) to use Biome tooling.

Performance

  • Improved screenshot upload performance - Added explicit type: 'file-path' field when sending screenshots to the Vizzly server, enabling O(1) type detection instead of content sniffing. This reduces server-side processing overhead for every screenshot.

Full Changelog: vitest/v0.0.3...vitest/v0.1.0

[0.0.3] - 2025-11-29

[0.1.0] - 2025-01-24

Added

  • Initial release of Vitest v4 browser mode integration
  • Drop-in replacement for Vitest's native toMatchScreenshot matcher
  • vizzlyPlugin() Vite plugin for seamless integration
  • Custom matcher implementation via expect.extend() in browser context
  • Direct HTTP communication from browser to Vizzly server
  • Support for both TDD mode (local comparison) and cloud mode (async upload)
  • First-class API with properties, threshold, and fullPage options
  • getVizzlyStatus() helper to check Vizzly availability
  • getVizzlyInfo() re-export from CLI client
  • Comprehensive documentation and examples

Features

  • True Drop-in Replacement - Just add plugin, no test changes required
  • Standard Vitest API - Use native toMatchScreenshot syntax
  • TDD Mode - Interactive local dashboard with instant feedback
  • Cloud Mode - Team collaboration with visual reviews
  • Clean Options API - Top-level properties, not nested
  • Auto-discovery - Automatically finds running TDD server
  • Graceful Degradation - Tests pass when Vizzly not available
  • No Conflicts - Completely disables Vitest's native system

🐹 Ember SDK v0.0.3

Choose a tag to compare

@github-actions github-actions released this 07 Jan 05:07

[0.0.3] - 2026-01-07

What's Changed

Changed

  • Removed unused remote browser configuration options (browserWSEndpoint, connectOverCDP, rewriteUrlForDocker) that were for an abandoned remote browser approach. Docker workflows now rely solely on the VIZZLY_SERVER_URL environment variable.

Fixed

  • Fixed catastrophic regex backtracking in base64 detection that caused stack overflow on large screenshots (like changelog images). Replaced with simpler non-backtracking validation logic.
  • Improved error messages in screenshot server to include actual error details instead of generic 500 responses.
  • Reduced console noise by only logging connection errors once instead of repeatedly.

Full Changelog: ember/v0.0.2...ember/v0.0.3

🏗️ Static Site Plugin v0.0.11

Choose a tag to compare

[0.0.11] - 2026-01-06

What's Changed

Added

  • Support for array patterns in include and exclude configuration options, allowing multiple page sections to be filtered without complex regex patterns

Full Changelog: static-site/v0.0.10...static-site/v0.0.11