Release notes

happo for npm release notes

The happo npm package: the CLI and its Storybook, Cypress and Playwright integrations.

6.22.0

  • Fix a race where a report using --only/--skip could be compared against a stale baseline, causing spurious diffs and false deletions [by @trotzig in #176]
  • Add support for the interfaceOrientation target option so devices rotate correctly for ios-safari and ipad-safari targets [by @trotzig in #179]
  • Warn when a pull request's checkout doesn't match its head commit, which can cause spurious diffs from merged base-branch changes [by @trotzig in #159]

6.21.0

  • Add a blockApproval config option to control which conditions (render errors, accessibility violations) block approval of a comparison [by @trotzig in #636]

6.20.1

  • Fix a bug where long-running requests could fail with a 401 error due to an expired API token not being refreshed on retry [by @lencioni in #634]

6.20.0

  • Add animation start time tracking with AnimationDriverHandle.startMs and AnimateTrace.animations[].measured properties [by @trotzig in #625]
  • Validate entire Happo config with valibot schema covering all options including targets, integrations, and deepCompare [by @lencioni in #627]
  • Fix telemetry reporting in test environments by respecting HAPPO_DISABLE_TELEMETRY environment variable [by @trotzig in #620]

6.19.2

  • Improve Storybook build failure messages to include actual error details instead of generic messages [by @lencioni in #612]
  • Use installed Storybook version instead of declared version range for more reliable version detection [by @lencioni in #614]

6.19.1

  • Fix Storybook integration to work without requiring import 'happo/storybook/register' in preview.js, preventing timeout failures [by @lencioni in #610]
  • Improve error handling and validation for missing Storybook configuration to catch issues earlier in the job lifecycle
  • Update development dependencies including Cypress, Prettier, and release-with-ease

6.19.0

  • Add allowedHostnames target option to specify which hostnames browsers can reach during rendering [by @lencioni in #605]

6.18.0

  • Add AnimateTrace.stageCount and AnimateTrace.stages to track animation stages during capture [by @trotzig in #596]
  • Add AnimationDriverHandle.finish() method for drivers to properly end animation stages [by @trotzig in #596]
  • Support happoAnimate.beforeRender hook to set up motion environment before story renders, covering prefersReducedMotion and capture-friendly reset CSS [by @trotzig in #595]
  • Add AnimateOptions.discovery to detect animations starting after capture begins, with configurable settle time and max frames [by @trotzig in #594]
  • Add AnimateOptions.sampling for motion capture configuration [by @trotzig in #594]
  • Add story-level animate options and root expectations for motion-capture hazard handling [by @trotzig in #594]
  • Add AnimateOptions.stages and AnimateExpectations.minStages to support chained animations where each stage starts after the previous one finishes [by @trotzig in #596]

6.17.0

  • Build Storybook previews without the manager UI by default, reducing bundle size. Add previewOnly: false configuration option to include the Storybook manager UI when needed (#602) [by @lencioni in #602]
  • Warn when a Storybook is built in development mode to catch framework size issues (#601) [by @trotzig in #601]
  • Update React to 19.3.0 and related dependencies
  • Fix CVE-2026-87908 in multiparty dependency

6.16.0

  • Support prefersReducedMotion override on animate options to handle pages that honor prefers-reduced-motion [by @trotzig in #593]
  • Update release-with-ease and typescript-eslint dependencies [by @app/dependabot in #591]

Need help?