Releases: vizzly-testing/cli
✨ v0.27.0
Vizzly CLI v0.27.0 Release Notes
What's Changed
Added
-
JSON Output Support (
--jsonflag)- All commands now support machine-readable JSON output
- Optional field selection:
--json field1,field2 - Consistent output format with
{status, data}or{status, error}structure - Makes CLI fully scriptable and LLM-friendly
-
New Discovery Commands
vizzly orgs- List organizations with access levels and project countsvizzly projects- List projects with optional--orgfilteringvizzly builds- List and query builds with pagination supportvizzly comparisons- Query and search comparisons by build, ID, or namevizzly baselines- List all local TDD baselines with metadata
-
New Review Commands
vizzly approve <comparison-id>- Approve a comparisonvizzly reject <comparison-id> -r "reason"- Reject with detailed reasonvizzly comment <build-id> "message"- Add comments to builds
-
User Authentication Fallback
- Config loader now falls back to user JWT from
vizzly login - Enables interactive CLI usage without project tokens
- Works alongside existing project token auth for CI/CD workflows
- Config loader now falls back to user JWT from
-
Developer Experience Improvements
- Help examples added to all new commands
- Workflow guidance in help output
npm run cliscript for local development
Changed
-
Node.js and npm Requirements
- Updated to use Node 22 with npm 11.5.1+ for Trusted Publishers
- Requires
engines.node >= 22.0.0
-
npm Release Process
- Switched to OIDC Trusted Publishers for improved security
- No longer uses
registry-urlconfiguration - Now uses GitHub-hosted runners for more reliable releases
Full Changelog: ruby/v0.2.1...v0.27.0
✨ v0.26.2
v0.26.2
What's Changed
Added
- Screenshot events now logged to
server.logwith detailed metadata (name, status, diff percentage) for menubar app integration - Individual screenshot result tracking enables the menubar log viewer to display visual test results with status indicators (passed, failed, new, accepted, rejected)
Full Changelog: v0.26.1...v0.26.2
✨ v0.26.1
v0.26.1
What's Changed
Changed
- Enhanced TDD server logging for menubar app - Output from
info(),warn(), andsuccess()functions are now logged toserver.log, providing better visibility into TDD server operations in the menubar application - Menubar notifications on macOS - The TDD server now sends instant notifications to macOS menubar when server events occur (safely no-ops on Windows/Linux)
- Honeydiff upgraded to v0.10.0 - Updated the visual diffing engine for improved performance and accuracy in screenshot comparisons
Full Changelog: v0.26.0...v0.26.1
✨ v0.26.0
v0.26.0 Release Notes
What's Changed
Added
- Menubar app support - New infrastructure for the macOS menubar companion app
- Global server registry at
~/.vizzly/servers.jsontracks all running TDD servers - Auto-port allocation -
tdd startautomatically finds an available port when the default (47392) is in use, allowing multiple projects to run simultaneously - JSON-formatted server logs written to
.vizzly/server.logfor menubar app visibility - Shell PATH saving for menubar app to locate
npxandnodeexecutables - New
vizzly tdd listcommand to view all running servers with details (port, uptime, directory, etc.)
- Global server registry at
Full Changelog: v0.25.1...v0.26.0
✨ v0.25.1
v0.25.1 Release Notes
What's Changed
Added
- Configurable browser type: Added
browser.typeconfiguration option and--browserCLI flag to control which browser engine (chromium, firefox, webkit) is used for static-site and storybook clients. Users can now select their preferred browser and control browser installation in CI/CD environments for better caching and dependency management. --public-linkflag for preview command: Thevizzly previewcommand now requires the--public-linkflag when previewing private projects. This ensures users explicitly acknowledge that preview URLs grant access to anyone with the link until expiration.- Resilient finalize command: The
finalizecommand now gracefully handles missing builds by default (exits with code 0 and shows a warning), improving CI/CD experience when Vizzly tests are conditionally skipped. Added a global--strictflag across all CLI commands to opt into hard failures when needed.
Fixed
- Fixed project visibility check in preview command to correctly handle API response structure
Changed
- Updated dependencies including commander, Babel, Playwright, React, and development tools
Full Changelog: storybook/v0.4.0...v0.25.1
✨ v0.25.0
Vizzly CLI v0.25.0
What's Changed
Added
-
VIZZLY_BUILD_NAME environment variable: Set custom build names in CI without CLI flags. Useful for dynamic naming in your pipeline.
export VIZZLY_BUILD_NAME="PR #${PR_NUMBER} - ${BRANCH_NAME}" vizzly run "npm test"
-
Git detection API for plugins: New
services.git.detect()API for plugins to reliably detect git information in any CI environment (GitHub Actions, GitLab, local, etc.). This replaces fragile workarounds and handles edge cases like GitHub Actions PR merge commits.
Changed
- Plugin API improvements: The storybook and static-site plugins now use the proper git detection API instead of dynamic imports, resulting in more reliable git information detection across different CI environments.
Full Changelog: static-site/v0.1.0...v0.25.0
✨ v0.24.1
Vizzly CLI v0.24.1
What's Changed
Added
- Documentation for Chrome browser flags - New
docs/browser-flags.mdprovides comprehensive reference for Chrome command-line flags used by SDKs, including purpose, deprecation status, and replacement options. Last audited for January 2026 compatibility.
Changed
-
Migrated Storybook and Static-Site SDKs from Puppeteer to Playwright - Both SDKs now use
playwright-coreinstead of Puppeteer, resolving critical timeout issues in parallel test execution:- Screenshots now complete in <1 second (previously timing out after 60+ seconds)
- Client-side navigation for Storybook provides ~47x speedup (reduced from 94s to 2s for 10 screenshots)
- Migrated from tab-based pooling to BrowserContext-based pooling for proper isolation
- Updated API calls (
setViewport()→setViewportSize(),networkidle2→networkidle)
-
Chrome browser flags audit - Removed deprecated/problematic flags causing hangs and performance issues:
- Removed
--disable-gpu(deprecated in 2021) and--disable-software-rasterizer(causes hangs) - Removed deprecated flags
--disable-translate,--safebrowsing-disable-auto-update,--disable-infobars, and--headless=new - Modernized to use
--disable-features=Translate,OptimizationHints,MediaRouterapproach - Added screenshot consistency flags:
--force-color-profile=srgb,--hide-scrollbars
- Removed
-
Optimized Storybook client-side navigation - Improved story navigation performance:
- Uses
__STORYBOOK_PREVIEW__.channel.emit('setCurrentStory')for navigation instead of full page reloads - First story per tab loads full page to initialize Storybook; subsequent stories use client-side navigation
- Tasks now sorted by viewport to minimize resize operations
- Uses
-
Enhanced plugin system - Improved plugin loading with better error handling and deduplication logic for version conflicts
Full Changelog: storybook/v0.2.0...v0.24.1
📚 Storybook Plugin v0.4.0
[0.4.0] - 2026-01-30
What's Changed
Changed
- Improved git detection in CI environments (GitHub Actions, GitLab, etc.) by using the CLI's plugin API instead of fragile dynamic imports
- Updated peer dependency to
@vizzly-testing/cli >= 0.24.0for better git detection support - Better handling of PR builds - now correctly detects branch names and commit SHAs in merge commits
Fixed
- Fixed incorrect git information (wrong branch, wrong commit SHA) in PR builds
- Fixed plugin breaking in some environments due to failed dynamic imports
Full Changelog: storybook/v0.3.0...storybook/v0.4.0
📚 Storybook Plugin v0.3.0
[0.3.0] - 2026-01-30
What's Changed
Changed
- BREAKING: Migrated from Puppeteer to Playwright for browser automation
- Replace
puppeteerdependency withplaywright-core - This significantly improves screenshot performance and reliability in CI environments
- Screenshots now complete in <1 second instead of timing out after 60+ seconds
- ~47x performance improvement for Storybook navigation (94s → 2s for 10 screenshots) thanks to client-side story navigation
- If you have custom browser configurations, you may need to update them for Playwright compatibility
- Replace
Fixed
- Fixed critical screenshot timeout issues in CI environments caused by Puppeteer's parallel capture limitations
- Improved browser context isolation for parallel workers, preventing race conditions
- Removed deprecated Chrome flags that caused hangs and inconsistent behavior
- Added screenshot consistency flags (
--force-color-profile=srgb,--hide-scrollbars) for more reliable visual comparisons
Added
- Client-side navigation for Storybook stories using Storybook's internal event system
- First story per tab uses full page load to initialize Storybook
- Subsequent stories use fast client-side navigation with
storyRenderedevent handling
- Tasks are now sorted by viewport to minimize resize operations and improve performance
- Support for
vizzlyPluginfield in package.json for plugin registration (replacing nestedvizzly.pluginformat)
Full Changelog: storybook/v0.2.0...storybook/v0.3.0
🏗️ Static Site Plugin v0.2.0
[0.2.0] - 2026-01-30
What's Changed
Changed
- Improved git detection in CI environments by using the new
services.git.detect()plugin API - Replaced fragile dynamic imports with clean plugin API integration
- Now correctly detects branch names and commit SHAs in GitHub Actions PR builds and other CI environments
- Updated minimum CLI version requirement to
>=0.24.0(graceful fallback for older versions with warning)
Full Changelog: static-site/v0.1.0...static-site/v0.2.0