Releases: vizzly-testing/cli
Releases · vizzly-testing/cli
✨ v0.35.2
What's Changed
- 🔖 v0.35.2
- ⬆️ Bump Honeydiff to 0.11.1
- ⬆️ Bump Honeydiff to 0.11 (#300)
Full Changelog: v0.35.1...v0.35.2
✨ v0.35.1
What's Changed
Changed
- Screenshot uploads now resolve existing SHA matches through the screenshot endpoint itself, so the CLI no longer calls the separate
check-shasendpoint before uploading. - Local TDD commands now work more cleanly with non-default ports:
tdd startreports the selected port, andtdd status --port/tdd stop --porttarget the matching registered server. vizzly run --jsonandvizzly tdd run --jsonnow keep wrapped test-command output on stderr so stdout remains parseable JSON.- CLI help and command routing now show full nested command paths, hide the internal daemon child flag, and return clearer unknown-command errors.
Fixed
- Fixed TDD daemon lifecycle handling around startup failures, stale daemon files, stale registry entries, and child process stdio that could keep captured callers hanging.
- Fixed
vizzly upload <path>so a missing or non-directory screenshot path fails before auth/config work. - Fixed
vizzly status <build-id>so builds without preview metadata still report status instead of failing on the optional preview lookup. - Fixed local TDD static report generation so runs with captured screenshots still produce review artifacts even when comparison arrays are empty.
Developer Experience
- Added regression coverage for command routing, JSON output, TDD daemon lifecycle behavior, upload path validation, status without preview data, and the new screenshot SHA-resolution request flow.
Full Changelog: v0.35.0...v0.35.1
🧪 Vitest Integration v0.2.0
[0.2.0] - 2026-06-01
What's Changed
Added
- Added automatic screenshot metadata for Vitest captures, including the current
page URL, browser, viewport, viewport width, and viewport height. - Added support for Vitest and Playwright screenshot capture options such as
animations,caret,mask,maskColor,omitBackground,scale, and
timeout. - Added
minClusterSizeandfailOnDiffoptions totoMatchScreenshot. - Added support for calling
toMatchScreenshotwith options only, without a
screenshot name.
Changed
- Visual diffs are now recorded without failing the assertion unless
failOnDiffis enabled by the screenshot option, environment, or Vizzly TDD
server configuration. - New screenshot baselines now pass after being created, so first-time captures
do not fail the Vitest run. vizzlyPluginis now configuration-free; pass screenshot behavior through
toMatchScreenshotoptions instead.- Package scripts and docs now use
pnpmcommands for installation and test
workflows.
Fixed
- Fixed element screenshots so
fullPageis not passed to element capture or
recorded as full-page metadata. - Fixed Vizzly-only options so they are sent to Vizzly as comparison metadata
instead of being forwarded to browser screenshot capture. - Fixed reserved runtime metadata such as framework, Vitest marker, URL, and
browser so user-provided properties cannot accidentally overwrite the current
browser session values.
Full Changelog: vitest/v0.1.1...vitest/v0.2.0
📱 Swift SDK v0.1.0
[0.1.0] - 2026-06-01
What's Changed
This is the first tagged release of the Vizzly Swift SDK. It gives iOS and
macOS test suites a small Swift Package Manager client for sending screenshots
to Vizzly from XCTest, without needing each app to hand-roll the HTTP payloads
or local TDD server discovery.
Added
- Added the
VizzlySwift package with two library products:Vizzly, the core screenshot upload client.VizzlyXCTest, convenience helpers forXCTestCase,XCUIApplication,
andXCUIElement.
- Added local TDD server discovery through
VIZZLY_SERVER_URL,
project-local.vizzly/server.json, global.vizzly/server.json, and the
default TDD port fallback. - Added screenshot uploads with base64 PNG payloads,
buildIdsupport,
request timeouts, and graceful disabling after connection or server failures. - Added XCTest-friendly metadata capture for platform, device, OS, viewport,
and element type while still letting user-providedpropertieswin. - Added comparison options for
threshold,minClusterSize, andfullPage
so Swift screenshots use the same option contract as the other SDKs. - Added
failOnDiffsupport from explicit client configuration,
VIZZLY_FAIL_ON_DIFF, and discovered TDD server settings.
Tested
- Added Swift unit coverage for payload shape, comparison options, build IDs,
metadata merging, disabled clients, and client state. - Added Swift SDK E2E coverage that runs through the real local Vizzly TDD
server and verifies screenshots can be uploaded, repeated, and matched. - The release workflow builds and tests the Swift package before tagging the
release.
📚 Storybook Plugin v0.8.0
[0.8.0] - 2026-06-01
What's Changed
Added
- Added support and documentation for Storybook 10 projects.
- Added a CLI-discoverable plugin entrypoint at
@vizzly-testing/storybook/plugin. - Added
--no-headless,--no-full-page,--timeout, and
--request-timeoutcommand options. - Added per-story screenshot metadata for cloud uploads, including story ID,
story title, story name, viewport name, viewport size, browser, URL, and
customparameters.vizzly.screenshot.properties. - Added per-story support for screenshot
threshold,minClusterSize,
fullPage,omitBackground,timeout, andrequestTimeoutoverrides.
Changed
- Screenshots now default to full-page capture. Use
--no-full-pageor
storybook.screenshot.fullPage: falsefor viewport-only captures. - Default concurrency is now auto-detected from CPU cores instead of using a
fixed value. - Include, exclude, and interaction hook patterns now match against more story
fields, including ID, title/name, title, name, and import path. - Cloud run configuration now honors shared comparison settings such as
comparison.thresholdandcomparison.minClusterSize. - JavaScript install and build examples now use
pnpm.
Fixed
- Fixed Storybook story URL capture so uploaded screenshots include the isolated
story preview URL. - Fixed Storybook navigation fallback when client-side story rendering does not
complete before the configured timeout. - Fixed cloud run finalization so builds are marked failed when screenshot
capture has errors and finalized successfully when no stories are found. - Fixed static Storybook server shutdown so open connections do not keep the
process alive.
Full Changelog: storybook/v0.7.0...storybook/v0.8.0
🏗️ Static Site Plugin v0.3.0
[0.3.0] - 2026-06-01
What's Changed
Added
- Added browser engine selection for static-site captures. Use
--browser
orstaticSite.browser.typeto run screenshots inchromium,firefox,
orwebkit. - Added
--no-headless,--no-full-page, and--no-use-sitemapCLI flags
for clearer opt-out control over browser visibility, screenshot mode, and
sitemap discovery. - Added
--request-timeoutandstaticSite.screenshot.requestTimeoutfor
controlling the Vizzly screenshot upload request timeout separately from the
browser screenshot timeout. - Added richer screenshot metadata, including browser, page URL, full-page
mode, viewport name, and viewport dimensions. - Added support for the shared top-level
comparison.minClusterSizeoption in
static-site cloud runs.
Changed
- Full-page screenshots are now the default. Use
--no-full-pageor
staticSite.screenshot.fullPage: falseto capture only the viewport. - Default concurrency is now CPU-aware instead of a fixed value, with automatic
defaults between 2 and 8 workers. - Screenshot viewport dimension properties now use
viewport_widthand
viewport_heightnaming. - Static Site examples and documentation now use pnpm commands and the updated
programmatic SDK context shape.
Fixed
- Fixed include, exclude, interaction, and page override pattern matching so
paths work consistently with or without a leading slash. - Fixed URL generation for discovered
.htmlpages so paths that already end
in.htmlare not requested with a duplicate.htmlsuffix. - Fixed cloud build finalization so runs with screenshot failures are marked as
failed instead of successful. - Improved missing-browser errors with the exact Playwright install command for
the selected browser. - Improved static server shutdown so lingering connections do not keep the
process open.
Full Changelog: static-site/v0.2.0...static-site/v0.3.0
💎 Ruby Client v0.3.0
[0.3.0] - 2026-06-01
What's Changed
Added
- Added
fail_on_diffsupport for local TDD visual diffs. Configure it with
Vizzly::Client.new(fail_on_diff: true),VIZZLY_FAIL_ON_DIFF=true, or
the local TDD server setting to raiseVizzly::Errorwhen a visual diff is
detected. - Added per-screenshot
build_idandrequest_timeoutoptions, with
snake_case Ruby names and camelCase aliases for JavaScript API parity. - Added
VIZZLY_ENABLED=falsesupport to disable screenshot capture from the
environment. - Added richer
Client#infooutput, includingserverUrl,buildId,
fail_on_diff, andfailOnDiff.
Changed
- Screenshot option handling now separates Vizzly options from user metadata.
Reserved options passed insidepropertiesare promoted to the correct
request fields and emit a warning sopropertiescan remain user metadata. thresholdnow accepts numeric values and is documented as a Delta E
comparison threshold.
Fixed
- Fixed request handling for HTTPS
server_urlvalues. - Fixed screenshot option serialization for string-keyed options, camelCase
aliases, zero values, fractional thresholds, and nested metadata hashes. - Fixed local TDD diff handling so both current successful diff responses and
legacy422diff responses are handled consistently whenfail_on_diffis
enabled.
Full Changelog: ruby/v0.2.1...ruby/v0.3.0
🐹 Ember SDK v0.1.0
[0.1.0] - 2026-06-01
What's Changed
Added
- Added per-screenshot comparison options to
vizzlyScreenshot():thresholdandminClusterSize. - Added support for per-screenshot
buildIdandrequestTimeoutoptions, including forwarding them through the Ember screenshot server to Vizzly. - Added automatic screenshot metadata for the current page URL, browser, viewport width, and viewport height so captures are easier to group, compare, and link back to preview pages.
Changed
- Aligned the Ember SDK screenshot option contract with the other Vizzly JavaScript SDKs: Vizzly routing, comparison, timeout, and build options now stay as explicit options, while
propertiesremains the custom metadata bag. - Updated screenshot capture behavior so requested viewport dimensions are applied before capture.
- Changed full-page handling so
fullPageonly applies to page captures; app, container, and selector captures are element-sized. - Updated cloud upload guidance to run Ember tests through
vizzly runso uploads can be finalized correctly. - Updated JavaScript package-management examples and test-app workflow from npm commands to pnpm commands.
Fixed
- Fixed selector screenshots so page-only
fullPageoptions are not passed to element screenshots. - Fixed cloud-mode/no-server messaging to point users to
vizzly tdd startfor local runs orvizzly runfor cloud uploads. - Fixed stale
.vizzly/playwright.jsonbehavior by removing the generated Playwright config when no launcher options are provided. - Simplified Chromium CI launch arguments while retaining the stability flags needed for CI environments.
Full Changelog: ember/v0.0.3...ember/v0.1.0
✨ v0.35.0
What's Changed
Added
- Added consistent screenshot option handling across the CLI and SDKs for
threshold,minClusterSize,fullPage,buildId, andrequestTimeout,
with warnings when reserved options are accidentally placed inproperties. - Added fail-on-diff propagation for local TDD flows across the JavaScript
client, Vitest, Ember, Ruby, and Swift SDKs. - Added request timeout support to SDK screenshot calls and Storybook,
static-site, Ember, Ruby, and Swift integrations. - Added
--min-cluster-sizesupport tovizzly uploadand environment
overrides forVIZZLY_THRESHOLDandVIZZLY_MIN_CLUSTER_SIZE. - Added a
VizzlyXCTestSwift Package library target for XCTest helpers.
Changed
- Aligned Storybook and static-site cloud runs to pass build metadata,
comparison settings, pull request numbers, and parallel IDs consistently. - Updated SDK metadata so browser, viewport, URL, framework, and custom
properties are sent consistently across Storybook, static-site, Vitest,
Ember, Ruby, and Swift. - Improved Storybook and static-site options for browser visibility,
screenshot timeouts, request timeouts, concurrency validation, and pattern
matching. - Updated JSON output behavior and documentation so structured payloads are
clearer and progress-style messages do not pollute stdout in JSON mode.
Fixed
- Fixed
vizzly upload --waitso failed comparisons return a non-zero exit
code. - Fixed
vizzly upload --upload-allso it bypasses SHA deduplication and sends
every screenshot. - Fixed
vizzly run,vizzly upload, andvizzly tddto honor configured
build branch, commit, message, build name, comparison, and parallel options. - Fixed
vizzly preview --basepath handling and JSON output fields. - Fixed
vizzly api --datavalidation so request bodies require--method POST. - Fixed static-site capture for
.htmlpaths and leading-slash pattern matches. - Fixed Vitest screenshot matching so new baselines pass and visual diffs only
fail assertions when fail-on-diff is enabled. - Fixed
vizzly project linkto honor the global--tokenoverride.
Developer Experience
- Expanded TypeScript definitions for screenshot results, upload options,
build results,failOnDiff,requestTimeout, and related SDK contracts. - Expanded SDK and CLI test coverage for aligned option handling, JSON output,
uploads, TDD behavior, Storybook, static-site, Vitest, Ember, Ruby, and Swift. - Updated README and integration docs for linked projects, upload options,
JSON output, browser flags, and SDK metadata conventions.
Full Changelog: v0.34.0...v0.35.0
✨ v0.34.0
What's Changed
Added
- Added a packaged Vizzly agent skill so coding agents can understand Vizzly as screenshot memory, including baselines, diffs, review state, dynamic regions, and public screenshot URLs.
- Added
vizzly init --agent-skillto install the repo-local Vizzly skill. - Added
vizzly init --agent-guidanceto install the skill and add project-scopedAGENTS.mdguidance for visual UI work.
Changed
- Documented the agent setup flow in the README and JSON output docs.
- Updated the CLI release workflow to generate release notes from the real release diff using Codex, while keeping the output concise and changelog-style.
Developer Experience
- Hardened GitHub Actions around the current pnpm and GitHub runner environment by pinning Node 22.13.1, refreshing Corepack before preparing pnpm, and restoring Node after Codex release-note generation.
- Built the package explicitly before npm publish and disabled publish lifecycle scripts so release builds do not fall back to the runner's older Node runtime.
Full Changelog: v0.33.0...v0.34.0