✨ v0.21.0
·
0 commits
to 866d2e53c612dd783f7ca3f0533e42ad7e1b46e3
since this release
🎉 Major Release: Architecture Overhaul
A massive overhaul including test framework migration, functional architecture refactor, and significant new features.
✨ New Features
- Server-Sent Events - Real-time dashboard updates without polling (#148)
- Delete Comparisons - Remove unwanted new screenshots from dashboard (#145)
- TUI Toolkit - Branded CLI output with polished help commands (#141)
- Quiet-by-Default - Cleaner, focused CLI output (#138)
- Observatory Design System - Refreshed reporter UI (#147)
🐛 Bug Fixes
- Wire authService and projectService into TDD server (#149)
- Fix HTTP keep-alive preventing clean process exit (#146)
- Fix acceptBaseline saving with double .png extension (#144)
- Fix comparison rejection not working in TDD mode (#137)
- Fix undefined dependencies in TddService methods (#136)
⚙️ Breaking Changes
- Node.js requirement updated to >=22.0.0 (was >=20.0.0)
♻️ Functional Architecture Refactor
Eliminated thin service wrapper classes and rebuilt around functional modules with explicit dependency injection.
New Module Structure
| Module | Location | Purpose |
|---|---|---|
| API | src/api/ |
createApiClient(), endpoints, request handling |
| Auth | src/auth/ |
createAuthClient(), login/logout, token refresh |
| Config | src/config/ |
Config merging, serialization, validation |
| Project | src/project/ |
Project operations, status updates |
| TDD | src/tdd/ |
Comparisons, baselines, hotspots, results |
| Report | src/report-generator/ |
HTML report generation |
| Server | src/screenshot-server/ |
HTTP handling, middleware |
Migration Guide
// Old (deprecated, still works)
import { createServices } from '@vizzly-testing/cli'
const services = createServices(config)
await services.apiService.request(...)
// New (recommended)
import { createApiClient, getBuild } from '@vizzly-testing/cli/api'
const client = createApiClient(config)
const build = await getBuild(client, buildId)🧪 Test Framework Migration
Migrated from Vitest to Node.js 22+ built-in test runner with c8 for coverage.
Coverage Improvements
| Metric | Before | After |
|---|---|---|
| Lines | ~30% | 87% |
| Functions | ~25% | 91% |
| Branches | ~40% | 95% |
1,432 tests with full coverage of all CLI commands, API client, auth, config, TDD service, and error handling.
📊 Stats
- ~30,000 insertions / ~21,000 deletions
- ~700 lines removed from services layer
- Service wrappers removed: ApiService, AuthService, ConfigService, ProjectService, BuildManager
- All public APIs remain backward compatible