Skip to content

[master] Michijs Dependabot changes#111

Closed
michijs[bot] wants to merge 1 commit into
masterfrom
michijs-dependabot
Closed

[master] Michijs Dependabot changes#111
michijs[bot] wants to merge 1 commit into
masterfrom
michijs-dependabot

Conversation

@michijs

michijs Bot commented Apr 13, 2026

Copy link
Copy Markdown
Contributor Author

Bump @​michijs/shared-configs from 0.0.24 to 0.0.37

Changelog:
Sourced from releases.
        ### 0.0.37## What's Changed

Full Changelog: https://github.com/michijs/shared-configs/compare/0.0.36...0.0.37

        ### 0.0.36## What's Changed

New Contributors

Full Changelog: https://github.com/michijs/shared-configs/compare/0.0.34...0.0.36

        ### 0.0.34**Full Changelog**: https://github.com/michijs/shared-configs/compare/0.0.33...0.0.34


        ### 0.0.33**Full Changelog**: https://github.com/michijs/shared-configs/compare/0.0.32...0.0.33


        ### 0.0.32**Full Changelog**: https://github.com/michijs/shared-configs/compare/0.0.31...0.0.32


        ### 0.0.31**Full Changelog**: https://github.com/michijs/shared-configs/compare/0.0.30...0.0.31


        ### 0.0.30## What's Changed

Full Changelog: https://github.com/michijs/shared-configs/compare/0.0.29...0.0.30

        ### 0.0.29**Full Changelog**: https://github.com/michijs/shared-configs/compare/0.0.28...0.0.29


        ### 0.0.28**Full Changelog**: https://github.com/michijs/shared-configs/compare/0.0.27...0.0.28


        ### 0.0.27**Full Changelog**: https://github.com/michijs/shared-configs/compare/0.0.26...0.0.27


        ### 0.0.26**Full Changelog**: https://github.com/michijs/shared-configs/compare/0.0.25...0.0.26


        ### 0.0.25**Full Changelog**: https://github.com/michijs/shared-configs/compare/0.0.24...0.0.25


        ### 0.0.24Automatic release
Commit history:
  • d732fa chore: Release 0.0.24
  • c74f5c Disable useStrictMode in biome.json
  • 919c97 chore: Release 0.0.25
  • 003bc2 chore: Release 0.0.26
  • c601c1 noTsIgnore turned off
  • ac061b chore: Release 0.0.27
  • fa0f0e Small changes
  • 1a77b8 chore: Release 0.0.28
  • c88e83 Added noConfusingLabels
  • f05d1c chore: Release 0.0.29
  • f38b1d Updated rules
  • 54e144 chore: Autofixes (Revert "Bump @storybook/addon-a11y from 6.5.16 to 7.0.2" #14)

    Co-authored-by: michijs[bot] <235342604+michijs[bot]@​users.noreply.github.com>

  • b6b596 chore: Release 0.0.30
  • 26d0b7 Updated rules
  • 8184c1 Merge branch 'master' of https://github.com/michijs/shared-configs
  • 73436f chore: Release 0.0.31
  • 6977ec small changes
  • cee0ab chore: Release 0.0.32
  • b20c26 Updated includes
  • d491ed chore: Release 0.0.33
  • 872315 Bump
  • 6a69fe chore: Release 0.0.34
  • b020cb Updated options
  • 2d8f65 Updated tsconfig
  • 9988b3 Update package.json (Bump @storybook/builder-vite from 7.0.2 to 7.0.5 #15)

    What is the purpose of this pull request?

    Screenshots or example usage

    Types of changes

    • Bug fix (non-breaking change which fixes an issue)
    • New feature (non-breaking change which adds functionality)
    • Quality improvement (tests or refactors)
    • Breaking change (fix or feature that would cause existing
      functionality to change)
    • Trivial change (small fix or feature that doesn't impact
      functionalities)
    • Requires change to documentation, which has been updated
      accordingly

    Signed-off-by: Lucas Segurado <lsegurado1996@​gmail.com>

  • 7a9e7e chore: Release 0.0.36
  • bf294a Update tsconfig.json (Bump @storybook/addon-controls from 7.0.2 to 7.0.5 #16)

    What is the purpose of this pull request?

    Screenshots or example usage

    Types of changes

    • Bug fix (non-breaking change which fixes an issue)
    • New feature (non-breaking change which adds functionality)
    • Quality improvement (tests or refactors)
    • Breaking change (fix or feature that would cause existing
      functionality to change)
    • Trivial change (small fix or feature that doesn't impact
      functionalities)
    • Requires change to documentation, which has been updated
      accordingly

    Signed-off-by: Lucas Segurado <lsegurado1996@​gmail.com>

  • 3c3aca chore: Release v0.0.37

@michijs

michijs Bot commented Apr 13, 2026

Copy link
Copy Markdown
Contributor Author

Bump @​michijs/dev-server from 0.8.7 to 0.8.29

Changelog:
Sourced from releases.
        ### 0.8.29## What's Changed

Full Changelog: https://github.com/michijs/dev-server/compare/0.8.28...0.8.29

        ### 0.8.28## What's Changed

Full Changelog: https://github.com/michijs/dev-server/compare/0.8.22...0.8.28

        ### 0.8.22**Full Changelog**: https://github.com/michijs/dev-server/compare/0.8.19...0.8.22


        ### 0.8.19**Full Changelog**: https://github.com/michijs/dev-server/compare/0.8.18...0.8.19


        ### 0.8.18**Full Changelog**: https://github.com/michijs/dev-server/compare/0.8.17...0.8.18


        ### 0.8.17## What's Changed

Full Changelog: https://github.com/michijs/dev-server/compare/0.8.16...0.8.17

        ### 0.8.16## What's Changed

Full Changelog: https://github.com/michijs/dev-server/compare/0.8.15...0.8.16

        ### 0.8.15**Full Changelog**: https://github.com/michijs/dev-server/compare/v0.8.14...0.8.15


        ### v0.8.14## What's Changed

Full Changelog: https://github.com/michijs/dev-server/compare/0.8.13...%220.8.14%22

        ### 0.8.13## What's Changed

Full Changelog: https://github.com/michijs/dev-server/compare/0.8.12...0.8.13

        ### 0.8.12## What's Changed

Full Changelog: https://github.com/michijs/dev-server/compare/0.8.11...0.8.12

        ### 0.8.11## What's Changed

Full Changelog: https://github.com/michijs/dev-server/compare/0.8.10...0.8.11

        ### 0.8.10**Full Changelog**: https://github.com/michijs/dev-server/compare/0.8.9...0.8.10


        ### 0.8.9## What's Changed

New Contributors

Full Changelog: https://github.com/michijs/dev-server/compare/v0.8.8...0.8.9

        ### v0.8.8-beta.9Automatic release


        ### v0.8.8-beta.8Automatic release


        ### v0.8.8Automatic release


        ### v0.8.8-beta.7Automatic release


        ### v0.8.8-beta.6Automatic release


        ### v0.8.8-beta.5Automatic release


        ### v0.8.8-beta.4Automatic release


        ### v0.8.8-beta.3Automatic release


        ### v0.8.8-beta.2Automatic release


        ### v0.8.8-beta.0Automatic release


        ### v0.8.7Added '/index.html', '/assets/*', '/manifest.json', '/favicon.ico' to external as default


        ### v0.8.7-beta.9Automatic release


        ### v0.8.7-beta.10Automatic release


        ### v0.8.7-beta.8Automatic release


        ### v0.8.7-beta.7Automatic release


        ### v0.8.7-beta.6Automatic release
Commit history:

@michijs

michijs Bot commented Apr 13, 2026

Copy link
Copy Markdown
Contributor Author

Bump storybook from 9.1.3 to 10.3.5

Changelog:
Sourced from releases.
        ### v10.4.0-alpha.8## 10.4.0-alpha.8
  • A11y: Add aria-live announcements via @​react-aria/live-announcer - #33970, thanks @​copilot-swe-agent!

  • Actions: Fix state mutation and keep newest actions when limit reached - #34286, thanks @​Sidnioulz!

  • Core: Disable component manifest by default - #34408, thanks @​yannbf!

  • Core: Implement Git change detection - #34420, thanks @​ghengeveld!

  • Core: Rename preview.ts to preview.tsx in generated projects - #34396, thanks @​Sidnioulz!

  • Sidebar: Add dual-slot status icons for change detection and test results - #34346, thanks @​valentinpalkovic!

  • UI: Improve interactions panel accessibility - #34110, thanks @​anchmelev!

          ### v10.3.5## 10.3.5
    
  • Core: Disable component manifest by default - #34408, thanks @​yannbf!

[!NOTE]
Version >=0.5.0 of @&ZeroWidthSpace;storybook/addon-mcp enables component manifests again. If you're upgrading Storybook from version >= 10.3.0 to >= 10.3.5 and are using the MCP addon, you should also upgrade @&ZeroWidthSpace;storybook/addon-mcp to keep the docs toolset in the MCP server.

        ### v10.4.0-alpha.7## 10.4.0-alpha.7
  • CLI: Explicitly tell whether smoke tests passed or failed - #34419, thanks @​Sidnioulz!

  • Core: Add `ChangeDetectionService` and wire up builder-vite - #34369, thanks @​ghengeveld!

  • Maintenance: Extract parseFilterParam shared helper from tags and statuses modules - #34436, thanks @​mixelburg!

  • Sidebar: Add status-based filtering with refactored status architecture - #34339, thanks @​valentinpalkovic!

  • UI: Fix global shortcuts not showing region focus indicator - #34201, thanks @​Sidnioulz!

          ### v10.3.4## 10.3.4
    
  • Addon-a11y: Clear status transition timer on unmount to prevent test flake - #34203, thanks @​mixelburg!

  • Bug: Skip re-processing already transformed config files for CSF factories - #34273, thanks @​huang-julien!

  • Builder-Vite: Use djb2 hash to prevent variable name collisions in builder-vite - #34274, thanks @​chida09!

  • CLI: Prompt for init crash reports - #34316, thanks @​JReinhold!

  • CSF4: Fix duplicate preview loading issue in Vitest - #34361, thanks @​valentinpalkovic!

  • Core: Fix WebSocket connection for StackBlitz/WebContainers - #34281, thanks @​ghengeveld!

  • React-Docgen: Try .tsx fallback when resolving .js ESM imports in docgen resolvers - #34393, thanks @​mixelburg!

  • React-Vite: Upgrade @​joshwooding/vite-plugin-react-docgen-typescript to 0.7.0 - #34335, thanks @​beeswhacks!

          ### v10.4.0-alpha.6## 10.4.0-alpha.6
    
  • Builder-Vite: Add onModuleGraphChange method - #34323, thanks @​ghengeveld!

  • CLI: Add automigrate check for 'storybook' package name conflict - #34290, thanks @​whdjh!

  • CLI: Prompt for init crash reports - #34316, thanks @​JReinhold!

  • CSF4: Fix duplicate preview loading issue in Vitest - #34361, thanks @​valentinpalkovic!

  • Maintenance: Add assertions outside step incorrectly nested in interactions panel - #34296, thanks @​majiayu000!

  • Maintenance: Extract getBuilderOptions helper across framewo… - #34260, thanks @​alex-js-ltd!

  • Maintenance: Use errorToErrorLike in boot-test-runner for consistent stack deduplication - #34385, thanks @​mixelburg!

  • Onboarding: Fix checklist MDX instructions - #33193, thanks @​kylegach!

  • React-Docgen: Add tsconfig fallback chain and warning for monorepos - #34353, thanks @​viditkbhatnagar!

  • React-Docgen: Try .tsx fallback when resolving .js ESM imports in docgen resolvers - #34393, thanks @​mixelburg!

  • UI: Fix mobile navigation when renderLabel returns a React node - #34262, thanks @​Nathan54Villaume!

  • Vite: Use vite hook filter for performance improvements - #34022, thanks @​huang-julien!

          ### v10.4.0-alpha.5## 10.4.0-alpha.5
    
  • Addon-a11y: Clear status transition timer on unmount to prevent test flake - #34203, thanks @​mixelburg!

  • Builder-Vite: Use djb2 hash to prevent variable name collisions in builder-vite - #34274, thanks @​chida09!

  • CLI: Fix Next.js Vite automigration corrupting configs already using `@​storybook/nextjs-vite` - #34249, thanks @​nathanjessen!

  • Core: Add changeDetection feature flag - #34314, thanks @​valentinpalkovic!

  • Manager: URL-based tag filter state + filter-aware initial story selection - #34283, thanks @​valentinpalkovic!

  • React-Vite: Upgrade @​joshwooding/vite-plugin-react-docgen-typescript to 0.7.0 - #34335, thanks @​beeswhacks!

  • Refactor: Extract shared `PseudoStateGrid` component in pseudo-states stories - #34334, thanks @​copilot-swe-agent!

          ### v10.4.0-alpha.4## 10.4.0-alpha.4
    
  • Addon-Docs: Add Reset story button to re-render stories in docs - #34086, thanks @​6810779s!

  • Code: Fix inline code blocks inside links removing link affordance - #33903, thanks @​yatishgoel!

  • Controls: Add maxPresetColors option to ColorControl - #33998, thanks @​mixelburg!

  • Core: Fix WebSocket connection for StackBlitz/WebContainers - #34281, thanks @​ghengeveld!

  • Dependencies: Update `vite-plugin-storybook-nextjs` to ^3.2.4 - #34280, thanks @​k35o!

  • React: Add component metadata extraction via Volar-style LanguageService - #33914, thanks @​kasperpeulen!

  • StatusValue: Add 'status-value:<new|modified|affected>' - #34305, thanks @​valentinpalkovic!

  • UI: Ensure Controls panel can scroll horizontally for now - #34248, thanks @​Sidnioulz!

          ### v10.4.0-alpha.3## 10.4.0-alpha.3
    
  • Addon-Vitest: Streamline vite(st) config detection across init and postinstall - #34193, thanks @​valentinpalkovic!

  • Angular: Use Story ID for renderer IDs (including standalone stories) - #33982, thanks @​ValentinFunk!

  • Bug: Skip re-processing already transformed config files for CSF factories - #34273, thanks @​huang-julien!

  • CLI: Shorten CTA link messages - #34236, thanks @​shilman!

  • React Native Web: Fix vite8 support by bumping vite-plugin-rnw - #34231, thanks @​dannyhw!

          ### v10.3.3## 10.3.3
    
  • Addon-Vitest: Streamline vite(st) config detection across init and postinstall - #34193, thanks @​valentinpalkovic!

          ### v10.3.2## 10.3.2
    
  • CLI: Shorten CTA link messages - #34236, thanks @​shilman!

  • React Native Web: Fix vite8 support by bumping vite-plugin-rnw - #34231, thanks @​dannyhw!

          ### v10.4.0-alpha.2## 10.4.0-alpha.2
    
  • CLI: Use npm info to fetch versions in repro command - #34214, thanks @​yannbf!

  • Core: Prevent story-local viewport from persisting in URL - #34153, thanks @​ghengeveld!

  • Maintenance: Remove dead-code copy of wrap-getAbsolutePath-utils - #34168, thanks @​mixelburg!

  • Security: Makes sure `serialize-javascript` is at latest version - #34034, thanks @​50bbx!

          ### v10.4.0-alpha.1## 10.4.0-alpha.1
    
  • Docs: Ensure unique control id attributes across multiple Controls blocks - #34021, thanks @​TheSeydiCharyyev!

          ### v10.3.1## 10.3.1
    
  • CLI: Use npm info to fetch versions in repro command - #34214, thanks @​yannbf!

  • Core: Prevent story-local viewport from persisting in URL - #34153, thanks @​ghengeveld!

          ### v10.4.0-alpha.0## 10.4.0-alpha.0
    
    
    
    
          ### v10.3.0## 10.3.0
    

> Improved developer experience, AI-assisting tools, and broader ecosystem support

Storybook 10.3 contains hundreds of fixes and improvements including:

  • 🤖 Storybook MCP: Agentic component dev, docs, and test (Preview release for React)
  • ⚡ Vite 8 support
  • ▲ Next.js 16.2 support
  • 📝 ESLint 10 support
  • 〰️ Addon Pseudo-States: Tailwind v4 support
  • 🔧 Addon-Vitest: Simplified configuration - no more setup files required
  • ♿ Numerous accessibility improvements across the UI
List of all updates
  • A11y: Add ScrollArea prop focusable for when it has static children - #33876, thanks @​Sidnioulz!
  • A11y: Ensure popover dialogs have an ARIA label - #33500, thanks @​gayanMatch!
  • A11y: Make resize handles for addon panel and sidebar accessible #33980
  • A11y: Underline MDX links for WCAG SC 1.4.1 compliance - #33139, thanks @​NikhilChowdhury27!
  • Actions: Add expandLevel parameter to configure tree depth - #33977, thanks @​mixelburg!
  • Actions: Fix HandlerFunction type to support async callback props - #33864, thanks @​mixelburg!
  • Addon-Docs: Add React as optimizeDeps entry - #34176, thanks @​valentinpalkovic!
  • Addon-Docs: Add support for `sourceState: 'none'` to canvas block parameters - #33627, thanks @​quisido!
  • Addon-docs: Restore `docs.components` overrides for doc blocks #34111
  • Addon-Vitest: Add channel API to programmatically trigger test runs - #33206, thanks @​JReinhold!
  • Addon-Vitest: Handle additional vitest config export patterns in postinstall - #34106, thanks @​copilot-swe-agent!
  • Addon-Vitest: Make Playwright `--with-deps` platform-aware to avoid `sudo` prompt on Linux #34121
  • Addon-Vitest: Refactor Vitest setup to eliminate the need for a dedicated setup file - #34025, thanks @​valentinpalkovic!
  • Addon-Vitest: Support Vitest canaries - #33833, thanks @​valentinpalkovic!
  • Angular: Add moduleResolution: bundler to tsconfig - #34085, thanks @​valentinpalkovic!
  • Angular: only load webpack dependencies on demand - #34043, thanks @​sod!
  • Angular: Storybook fails with unknown option silent - #33736, thanks @​tanujbhaud!
  • Build: Update @​types/node - #34037, thanks @​valentinpalkovic!
  • Builder-Vite: Centralize Vite plugins for builder-vite and addon-vitest - #33819, thanks @​valentinpalkovic!
  • Builder-Vite: Fix cold-cache vitest failures for story paths containing glob special characters - #34044, thanks @​copilot-swe-agent!
  • Builder-Vite: Use preview annotations as entry points for optimizeDeps - #33875, thanks @​copilot-swe-agent!
  • CI: declare explicit permissions for stale and weekly cron workflows - #33902, thanks @​Rohan5commit!
  • CLI: Add vike CLI metadata - #34189, thanks @​yannbf!
  • CLI: Avoid hanging of postinstall during init - #34175, thanks @​valentinpalkovic!
  • CLI: Fix onboarding not opening - #33609, thanks @​ndelangen!
  • CLI: Show multiple favicons warning as debug message - #34069, thanks @​remino!
  • Cli: Use npm for registry URL in PNPMProxy to avoid workspace errors - #33571, thanks @​ia319!
  • Controls: Allow story argTypes to override control: false from meta - #33729, thanks @​jonathan-fulton!
  • Controls: Fix Object contrast issue and tidy up code - #33923, thanks @​Sidnioulz!
  • Core: Ensure telemetry is never triggered on initial load of checklist data - #33918, thanks @​ghengeveld!
  • Core: Fix event source URL based on refId when multiple iframes share the same origin #34105
  • Core: Fix false-positive CJS warning when 'exports' appears in strings or comments - #33572, thanks @​reeseo3o!
  • Core: Fix handling complex viewport sizes #33615
  • Core: Fix iframe reference for composed Storybook on a subpath #34100
  • Core: Fix typos: occured -> occurred, recieves -> receives - #33727, thanks @​jonathan-fulton!
  • Core: Handle BROWSER=none correctly and improve error messages - #33730, thanks @​jonathan-fulton!
  • Core: Ignore empty files when indexing - #33782, thanks @​JReinhold!
  • Core: Register CORS middleware before index.json route - #33728, thanks @​jonathan-fulton!
  • Core: Revert Pull Request #33420 from Maelryn/fix/copy-button-overlap - #33877, thanks @​Sidnioulz!
  • Core: Zoom tool refinements - Hide reset button when value is initial - #33635, thanks @​superLipbalm!
  • Docs: Edit JSON button is now accessible at 320x256 viewport (WCAG 2.1 Reflow test) - #33707, thanks @​TheSeydiCharyyev!
  • Docs: Make CSS ordering in DocsContainer more predictable #34015
  • ESLint-plugin: Disallow extra properties in eslint plugin rule options - #32056, thanks @​andreww2012!
  • ESLint: bail out config setup if eslint-plugin-storybook is already imported - #34089, thanks @​copilot-swe-agent!
  • HMR: Fix race conditions causing stale play functions to fire on re-rendered stories - #33930, thanks @​copilot-swe-agent!
  • Maintenance: Revert pull request #33930 HMR events - #34190, thanks @​yannbf!
  • Maintenance: Use std-env for AI agent detection in telemetry #34114
  • Manifest: Add docs entries to debugger - #33607, thanks @​JReinhold!
  • Manifest: Rename `experimentalComponentsManifest` → `componentsManifest`, default to `true` #33974
  • Manifests: Fix Attached MDX causing wrong component entries #34101
  • Next.js-Vite: Fix failing postcss mutation - #33879, thanks @​valentinpalkovic!
  • Next.js: Move image configuration from FrameworkOptions to parameters #32639, thanks @​y-hsgw!
  • Preact: Support inferring props from component types - #33828, thanks @​JoviDeCroock!
  • React Native Web: Fix inconsistent example stories - #33891, thanks @​danielalanbates!
  • React: Add react-docgen-typescript to component manifest - #33818, thanks @​kasperpeulen!
  • Revert "Toolbar: Remove extra toolbar divider when zoom controls not shown" - #34099, thanks @​valentinpalkovic!
  • Test: Fix clearing mocks in Vitest #34078
  • Test: Update @​testing-library/jest-dom - #33928, thanks @​valentinpalkovic!
  • Theming: Export interface declaration for `ThemesGlobals` - #33343, thanks @​icopp!
  • Toolbar: Remove extra toolbar divider when zoom controls not shown - #33731, thanks @​jonathan-fulton!
  • UI: Allow direct kb/mouse actions on zoom tool button - #33496, thanks @​Sidnioulz!
  • UI: Avoid large animation for reduced motion users - #33530, thanks @​Sidnioulz!
  • UI: Ensure Link without href is keyboard-reachable - #34163, thanks @​Sidnioulz!
  • UI: Fix `z-index` problem with `popover`s and `modal`s nesting - #33757, thanks @​ndelangen!
  • UI: Fix code/copy buttons overlap with content - #33889, thanks @​Sidnioulz!
  • UI: Fix Copy button overlapping code in portrait mode - #33420, thanks @​Maelryn!
  • UI: Fix modal text selection - #33967, thanks @​Sidnioulz!
  • UI: Fix tab navigation after closing addon panel - #33971, thanks @​copilot-swe-agent!
  • UI: Handle kb nav edge cases when preview and panel are hidden - #33588, thanks @​Sidnioulz!
  • UI: Hide addon panel Drag on pages without a panel - #34162, thanks @​Sidnioulz!
  • UI: Hide manifest tag for now - #34165, thanks @​Sidnioulz!
  • UI: Make disabled Buttons keyboard-focusable - #34166, thanks @​Sidnioulz!
  • UI: Make TagsFilter state persistent #33374
  • UI: Use correct selector for addon panel focus check - #34164, thanks @​Sidnioulz!
  • UI: Zoom faster when pressing shift - #34185, thanks @​Sidnioulz!
  • Viewport: Skip viewport validation before parameters load - #33794, thanks @​ia319!
  • Vite: Add mock entries to optimizeDeps.entries - #34167, thanks @​valentinpalkovic!
  • Vue3-Vite: Allow paths in docgen tsconfig option #32310, thanks @​Thomaash!
        ### v10.3.0-beta.3## 10.3.0-beta.3
  • Addon-Vitest: Handle additional vitest config export patterns in postinstall - #34106, thanks @​copilot-swe-agent!

  • CLI: Add vike CLI metadata - #34189, thanks @​yannbf!

  • Maintenance: Revert pull request #33930 HMR events - #34190, thanks @​yannbf!

  • UI: Ensure Link without href is keyboard-reachable - #34163, thanks @​Sidnioulz!

  • UI: Zoom faster when pressing shift - #34185, thanks @​Sidnioulz!

  • Vite: Add mock entries to optimizeDeps.entries - #34167, thanks @​valentinpalkovic!

          ### v10.3.0-beta.2## 10.3.0-beta.2
    
  • UI: Hide addon panel Drag on pages without a panel - #34162, thanks @​Sidnioulz!

  • UI: Hide manifest tag for now - #34165, thanks @​Sidnioulz!

  • UI: Make disabled Buttons keyboard-focusable - #34166, thanks @​Sidnioulz!

  • UI: Use correct selector for addon panel focus check - #34164, thanks @​Sidnioulz!

  • Vue: Make globals reactive in decorators - #34116, thanks @​Sidnioulz!

          ### v10.3.0-beta.1## 10.3.0-beta.1
    
  • Addon-Docs: Add React as optimizeDeps entry - #34176, thanks @​valentinpalkovic!

  • CLI: Avoid hanging of postinstall during init - #34175, thanks @​valentinpalkovic!

          ### v10.3.0-beta.0## 10.3.0-beta.0
    
  • Test: Fix clearing mocks in Vitest #34078

  • Core: Fix event source URL based on refId when multiple iframes share the same origin #34105

  • UI: Make TagsFilter state persistent #33374

  • A11y: Make resize handles for addon panel and sidebar accessible #33980

  • Maintenance: Use std-env for AI agent detection in telemetry #34114

  • Addon-Vitest: Make Playwright --with-deps platform-aware to avoid sudo prompt on Linux #34121

  • Addon-docs: Restore docs.components overrides for doc blocks #34111

  • Maintenance: Support vite-plugin-svelte7 which supports Vite 8 #34115

  • Core: Fix handling complex viewport sizes #33615

  • Core: Fix iframe reference for composed Storybook on a subpath #34100

  • Manifest: Rename experimentalComponentsManifestcomponentsManifest, default to true #33974

  • Manifests: Fix Attached MDX causing wrong component entries #34101

  • Vue3-Vite: Allow paths in docgen tsconfig option #32310, thanks @​Thomaash!

  • Next.js: Move image configuration from FrameworkOptions to parameters #32639, thanks @​y-hsgw!

  • Docs: Make CSS ordering in DocsContainer more predictable #34015

          ### v10.3.0-alpha.17## 10.3.0-alpha.17
    
  • Core: Correctly fallback to first detected vitest config file - #33865, thanks @​yannbf!

  • ESLint-plugin: Disallow extra properties in eslint plugin rule options - #32056, thanks @​andreww2012!

  • ESLint: bail out config setup if eslint-plugin-storybook is already imported - #34089, thanks @​copilot-swe-agent!

  • Revert "Toolbar: Remove extra toolbar divider when zoom controls not shown" - #34099, thanks @​valentinpalkovic!

          ### v10.2.19## 10.2.19
    
  • Maintenance: Support vite-plugin-svelte@​7 which supports Vite 8 - #34115, thanks @​valentinpalkovic!

  • Vite: Support Vite 8 - #33788, thanks @​valentinpalkovic!

          ### v10.2.18## 10.2.18
    
  • Core: Correctly fallback to first detected vitest config file - #33865, thanks @​yannbf!

  • Core: Fix error reporting in ManagerErrorBoundary - #33915, thanks @​ghengeveld!

          ### v10.3.0-alpha.16## 10.3.0-alpha.16
    
  • A11y: Underline MDX links for WCAG SC 1.4.1 compliance - #33139, thanks @​NikhilChowdhury27!

  • Angular: Add moduleResolution: bundler to tsconfig - #34085, thanks @​valentinpalkovic!

  • Angular: only load webpack dependencies on demand - #34043, thanks @​sod!

  • CLI: Show multiple favicons warning as debug message - #34069, thanks @​remino!

  • Core: Fix error reporting in ManagerErrorBoundary - #33915, thanks @​ghengeveld!

  • Vite: Support Vite 8 - #33788, thanks @​valentinpalkovic!

          ### v10.3.0-alpha.15## 10.3.0-alpha.15
    
  • Actions: Add expandLevel parameter to configure tree depth - #33977, thanks @​mixelburg!

  • Actions: Fix HandlerFunction type to support async callback props - #33864, thanks @​mixelburg!

  • Addon-Vitest: Refactor Vitest setup to eliminate the need for a dedicated setup file - #34025, thanks @​valentinpalkovic!

  • Build: Update @​types/node - #34037, thanks @​valentinpalkovic!

  • Builder-Vite: Fix cold-cache vitest failures for story paths containing glob special characters - #34044, thanks @​copilot-swe-agent!

  • CI:: declare explicit permissions for stale and weekly cron workflows - #33902, thanks @​Rohan5commit!

  • Core: Add vike metadata frameworks - #33965, thanks @​yannbf!

  • Core: Resolve builder preset path correctly in pnpm strict mode - #34032, thanks @​braedenfoster!

  • Core: Update default allowed hosts in host validation middleware - #34045, thanks @​ghengeveld!

  • Next.js: Add support for v16.2 - #34046, thanks @​valentinpalkovic!

  • UI: Fix code/copy buttons overlap with content - #33889, thanks @​Sidnioulz!

  • UI: Fix modal text selection - #33967, thanks @​Sidnioulz!

  • UI: Fix tab navigation after closing addon panel - #33971, thanks @​copilot-swe-agent!

  • UI: Handle kb nav edge cases when preview and panel are hidden - #33588, thanks @​Sidnioulz!

          ### v10.2.17## 10.2.17
    
  • Next.js: Add support for v16.2 - #34046, thanks @​valentinpalkovic!

          ### v10.2.16## 10.2.16
    
  • CSF-Factories: Fix ConfigFile parser false warning on `definePreview({...}).type()` export default - #33885, thanks @​copilot-swe-agent!

  • Core: Add host/origin validation to requests and websocket connections - #33835, thanks @​ghengeveld!

  • Core: Add vike metadata frameworks - #33965, thanks @​yannbf!

  • Core: Resolve builder preset path correctly in pnpm strict mode - #34032, thanks @​braedenfoster!

  • Core: Update default allowed hosts in host validation middleware - #34045, thanks @​ghengeveld!

          ### v9.1.20## 9.1.20
    
  • Add request validation

          ### v10.3.0-alpha.14## 10.3.0-alpha.14
    
  • CSF-Factories: Fix ConfigFile parser false warning on `definePreview({...}).type()` export default - #33885, thanks @​copilot-swe-agent!

  • Core: Add host/origin validation to requests and websocket connections - #33835, thanks @​ghengeveld!

  • Core: Storybook failed to load iframe.html when publishing - #33896, thanks @​danielalanbates!

  • Core: Zoom tool refinements - Hide reset button when value is initial - #33635, thanks @​superLipbalm!

  • Docs: Edit JSON button is now accessible at 320x256 viewport (WCAG 2.1 Reflow test) - #33707, thanks @​TheSeydiCharyyev!

  • Manager-API: Update refs sequentially in experimental_setFilter - #33958, thanks @​ia319!

  • UI: Allow direct kb/mouse actions on zoom tool button - #33496, thanks @​Sidnioulz!

Commit history:
  • 5647e6 Merge pull request #34440 from storybookjs/cli/node-version-check-init

    CLI: Streamline Node.js version detection code

  • 3694b0 Simplify code
  • a8bc7b Remove backup node version warning as old nodes crash earlier
  • 20c543 Revert changes to Preflight check tests
  • 0aecc8 Removing whitespace from diff
  • ee3330 Remove node version prompt, only improve check and output
  • 82efeb refactor tests
  • a3ca0f Handle side effects of CI exclusion for tests
  • c4a96b Fix linting and formatting
  • e8d657 fix: nvmrc precision logic, detect-indent for JSON, options.yes guard

    • Add NodeVersionPrecision type and precision field to parseNodeVersionString
      so callers know if the input was major-only, major.minor, or full
    • Add mode:'nvmrc' option to isNodeVersionSupported: major-only "22" means
      "latest 22.x" (supported), not 22.0.0 (which is not); major.minor "22.14"
      checks at minor level rather than treating as 22.14.0
    • Use mode:'nvmrc' + precision in PreflightCheckCommand and node-version-check
      nvmrc check paths so users with ".nvmrc: 22" are not incorrectly prompted
    • Replace naive indent detection in updateEnginesNode with detect-indent so
      tab-indented JSON is preserved correctly (not converted to spaces)
    • Add options.yes === true to non-interactive guard alongside TTY/CI checks
    • Add nvmrc mode tests, precision assertions in parseNodeVersionString tests,
      and tab/minified JSON indentation tests for updateEnginesNode

    Agent-Logs-Url: https://github.com/storybookjs/storybook/sessions/7540f41d-9b80-4e83-a4ec-738e331cc43d

    Co-authored-by: Sidnioulz <5108577+Sidnioulz@​users.noreply.github.com>

  • b2e3e3 fix: address PR review feedback on node-version checks

    • Bound find.up('.nvmrc') search to project root via last: getProjectRoot()
      to prevent reading/modifying unrelated .nvmrc files up the directory tree
    • Add unit tests for bounded search behavior
    • Skip interactive prompts in CI/non-interactive environments in both
      PreflightCheckCommand and handleUnsupportedNodeRuntime
    • Wrap file update calls in try/catch in promptVersionBump so init
      continues on write errors
    • Fix engines.node runtime option to use >=${major}.${minor} format
      (not full patch version) for consistency with other choices
    • Emit combined exit message when both .nvmrc and engines.node are bumped

    Agent-Logs-Url: https://github.com/storybookjs/storybook/sessions/37cce97f-827b-493f-8d63-83550dcdf9f5

    Co-authored-by: Sidnioulz <5108577+Sidnioulz@​users.noreply.github.com>

  • 25cd8f Show higher quality error message when possible
  • dc24eb refactor: use shared constants and add declared version bump in create-storybook bin entry
  • f9b3fe feat: add unsupported Node.js runtime handler with declared version bump flow
  • 89d2e4 feat: check declared Node.js version in PreflightCheckCommand and offer to bump
  • a78cb9 refactor: use shared Node.js version constants in dispatcher and cli-storybook
  • 9e40df feat: re-export node-version utilities from common
  • 4123da feat: add shared Node.js version constants, utilities, detection, and update functions
  • aae6c9 Merge pull request #34498 from storybookjs/change-detection-startup-performance

    Core: Improve startup performance by deferring change detection initialization

  • 702291 Merge pull request #34502 from storybookjs/docs/ai_contribution_guide

    Docs: Add AI contributions guide in contributing.md and documentation

  • ee5ddc Docs: update contribution guide
  • 6c8f23 Docs: update contribution guideline for AI assisted PR
  • eaff7f Initialize change detection only once preview is ready
  • ad5c2a Merge pull request #34494 from storybookjs/copilot/accessible-rabbit

    Nextjs: Handle node builtin webpack imports

  • ae7abd Nextjs: normalize node builtin webpack imports

    Co-authored-by: Copilot <223556219+Copilot@​users.noreply.github.com>

  • 370524 Merge pull request #34445 from storybookjs/change-detection-windows

    Core: Normalize file paths in ChangeDetectionService and trace-changed for Windows support

  • 2c99f1 Update CHANGELOG.md for v10.3.5 [skip ci]
  • ac76d4 Merge branch 'next-release' into next
  • 7b51dd Bump version from "10.4.0-alpha.7" to "10.4.0-alpha.8" [skip ci]
  • 088fa5 Merge pull request #34448 from storybookjs/version-non-patch-from-10.4.0-alpha.7

    Release: Prerelease 10.4.0-alpha.8

@michijs

michijs Bot commented Apr 13, 2026

Copy link
Copy Markdown
Contributor Author

Bump @​storybook/addon-a11y from 9.1.3 to 10.3.5

Changelog:
Sourced from releases.
        ### v10.4.0-alpha.8## 10.4.0-alpha.8
  • A11y: Add aria-live announcements via @​react-aria/live-announcer - #33970, thanks @​copilot-swe-agent!

  • Actions: Fix state mutation and keep newest actions when limit reached - #34286, thanks @​Sidnioulz!

  • Core: Disable component manifest by default - #34408, thanks @​yannbf!

  • Core: Implement Git change detection - #34420, thanks @​ghengeveld!

  • Core: Rename preview.ts to preview.tsx in generated projects - #34396, thanks @​Sidnioulz!

  • Sidebar: Add dual-slot status icons for change detection and test results - #34346, thanks @​valentinpalkovic!

  • UI: Improve interactions panel accessibility - #34110, thanks @​anchmelev!

          ### v10.3.5## 10.3.5
    
  • Core: Disable component manifest by default - #34408, thanks @​yannbf!

[!NOTE]
Version >=0.5.0 of @&ZeroWidthSpace;storybook/addon-mcp enables component manifests again. If you're upgrading Storybook from version >= 10.3.0 to >= 10.3.5 and are using the MCP addon, you should also upgrade @&ZeroWidthSpace;storybook/addon-mcp to keep the docs toolset in the MCP server.

        ### v10.4.0-alpha.7## 10.4.0-alpha.7
  • CLI: Explicitly tell whether smoke tests passed or failed - #34419, thanks @​Sidnioulz!

  • Core: Add `ChangeDetectionService` and wire up builder-vite - #34369, thanks @​ghengeveld!

  • Maintenance: Extract parseFilterParam shared helper from tags and statuses modules - #34436, thanks @​mixelburg!

  • Sidebar: Add status-based filtering with refactored status architecture - #34339, thanks @​valentinpalkovic!

  • UI: Fix global shortcuts not showing region focus indicator - #34201, thanks @​Sidnioulz!

          ### v10.3.4## 10.3.4
    
  • Addon-a11y: Clear status transition timer on unmount to prevent test flake - #34203, thanks @​mixelburg!

  • Bug: Skip re-processing already transformed config files for CSF factories - #34273, thanks @​huang-julien!

  • Builder-Vite: Use djb2 hash to prevent variable name collisions in builder-vite - #34274, thanks @​chida09!

  • CLI: Prompt for init crash reports - #34316, thanks @​JReinhold!

  • CSF4: Fix duplicate preview loading issue in Vitest - #34361, thanks @​valentinpalkovic!

  • Core: Fix WebSocket connection for StackBlitz/WebContainers - #34281, thanks @​ghengeveld!

  • React-Docgen: Try .tsx fallback when resolving .js ESM imports in docgen resolvers - #34393, thanks @​mixelburg!

  • React-Vite: Upgrade @​joshwooding/vite-plugin-react-docgen-typescript to 0.7.0 - #34335, thanks @​beeswhacks!

          ### v10.4.0-alpha.6## 10.4.0-alpha.6
    
  • Builder-Vite: Add onModuleGraphChange method - #34323, thanks @​ghengeveld!

  • CLI: Add automigrate check for 'storybook' package name conflict - #34290, thanks @​whdjh!

  • CLI: Prompt for init crash reports - #34316, thanks @​JReinhold!

  • CSF4: Fix duplicate preview loading issue in Vitest - #34361, thanks @​valentinpalkovic!

  • Maintenance: Add assertions outside step incorrectly nested in interactions panel - #34296, thanks @​majiayu000!

  • Maintenance: Extract getBuilderOptions helper across framewo… - #34260, thanks @​alex-js-ltd!

  • Maintenance: Use errorToErrorLike in boot-test-runner for consistent stack deduplication - #34385, thanks @​mixelburg!

  • Onboarding: Fix checklist MDX instructions - #33193, thanks @​kylegach!

  • React-Docgen: Add tsconfig fallback chain and warning for monorepos - #34353, thanks @​viditkbhatnagar!

  • React-Docgen: Try .tsx fallback when resolving .js ESM imports in docgen resolvers - #34393, thanks @​mixelburg!

  • UI: Fix mobile navigation when renderLabel returns a React node - #34262, thanks @​Nathan54Villaume!

  • Vite: Use vite hook filter for performance improvements - #34022, thanks @​huang-julien!

          ### v10.4.0-alpha.5## 10.4.0-alpha.5
    
  • Addon-a11y: Clear status transition timer on unmount to prevent test flake - #34203, thanks @​mixelburg!

  • Builder-Vite: Use djb2 hash to prevent variable name collisions in builder-vite - #34274, thanks @​chida09!

  • CLI: Fix Next.js Vite automigration corrupting configs already using `@​storybook/nextjs-vite` - #34249, thanks @​nathanjessen!

  • Core: Add changeDetection feature flag - #34314, thanks @​valentinpalkovic!

  • Manager: URL-based tag filter state + filter-aware initial story selection - #34283, thanks @​valentinpalkovic!

  • React-Vite: Upgrade @​joshwooding/vite-plugin-react-docgen-typescript to 0.7.0 - #34335, thanks @​beeswhacks!

  • Refactor: Extract shared `PseudoStateGrid` component in pseudo-states stories - #34334, thanks @​copilot-swe-agent!

          ### v10.4.0-alpha.4## 10.4.0-alpha.4
    
  • Addon-Docs: Add Reset story button to re-render stories in docs - #34086, thanks @​6810779s!

  • Code: Fix inline code blocks inside links removing link affordance - #33903, thanks @​yatishgoel!

  • Controls: Add maxPresetColors option to ColorControl - #33998, thanks @​mixelburg!

  • Core: Fix WebSocket connection for StackBlitz/WebContainers - #34281, thanks @​ghengeveld!

  • Dependencies: Update `vite-plugin-storybook-nextjs` to ^3.2.4 - #34280, thanks @​k35o!

  • React: Add component metadata extraction via Volar-style LanguageService - #33914, thanks @​kasperpeulen!

  • StatusValue: Add 'status-value:<new|modified|affected>' - #34305, thanks @​valentinpalkovic!

  • UI: Ensure Controls panel can scroll horizontally for now - #34248, thanks @​Sidnioulz!

          ### v10.4.0-alpha.3## 10.4.0-alpha.3
    
  • Addon-Vitest: Streamline vite(st) config detection across init and postinstall - #34193, thanks @​valentinpalkovic!

  • Angular: Use Story ID for renderer IDs (including standalone stories) - #33982, thanks @​ValentinFunk!

  • Bug: Skip re-processing already transformed config files for CSF factories - #34273, thanks @​huang-julien!

  • CLI: Shorten CTA link messages - #34236, thanks @​shilman!

  • React Native Web: Fix vite8 support by bumping vite-plugin-rnw - #34231, thanks @​dannyhw!

          ### v10.3.3## 10.3.3
    
  • Addon-Vitest: Streamline vite(st) config detection across init and postinstall - #34193, thanks @​valentinpalkovic!

          ### v10.3.2## 10.3.2
    
  • CLI: Shorten CTA link messages - #34236, thanks @​shilman!

  • React Native Web: Fix vite8 support by bumping vite-plugin-rnw - #34231, thanks @​dannyhw!

          ### v10.4.0-alpha.2## 10.4.0-alpha.2
    
  • CLI: Use npm info to fetch versions in repro command - #34214, thanks @​yannbf!

  • Core: Prevent story-local viewport from persisting in URL - #34153, thanks @​ghengeveld!

  • Maintenance: Remove dead-code copy of wrap-getAbsolutePath-utils - #34168, thanks @​mixelburg!

  • Security: Makes sure `serialize-javascript` is at latest version - #34034, thanks @​50bbx!

          ### v10.4.0-alpha.1## 10.4.0-alpha.1
    
  • Docs: Ensure unique control id attributes across multiple Controls blocks - #34021, thanks @​TheSeydiCharyyev!

          ### v10.3.1## 10.3.1
    
  • CLI: Use npm info to fetch versions in repro command - #34214, thanks @​yannbf!

  • Core: Prevent story-local viewport from persisting in URL - #34153, thanks @​ghengeveld!

          ### v10.4.0-alpha.0## 10.4.0-alpha.0
    
    
    
    
          ### v10.3.0## 10.3.0
    

> Improved developer experience, AI-assisting tools, and broader ecosystem support

Storybook 10.3 contains hundreds of fixes and improvements including:

  • 🤖 Storybook MCP: Agentic component dev, docs, and test (Preview release for React)
  • ⚡ Vite 8 support
  • ▲ Next.js 16.2 support
  • 📝 ESLint 10 support
  • 〰️ Addon Pseudo-States: Tailwind v4 support
  • 🔧 Addon-Vitest: Simplified configuration - no more setup files required
  • ♿ Numerous accessibility improvements across the UI
List of all updates
  • A11y: Add ScrollArea prop focusable for when it has static children - #33876, thanks @​Sidnioulz!
  • A11y: Ensure popover dialogs have an ARIA label - #33500, thanks @​gayanMatch!
  • A11y: Make resize handles for addon panel and sidebar accessible #33980
  • A11y: Underline MDX links for WCAG SC 1.4.1 compliance - #33139, thanks @​NikhilChowdhury27!
  • Actions: Add expandLevel parameter to configure tree depth - #33977, thanks @​mixelburg!
  • Actions: Fix HandlerFunction type to support async callback props - #33864, thanks @​mixelburg!
  • Addon-Docs: Add React as optimizeDeps entry - #34176, thanks @​valentinpalkovic!
  • Addon-Docs: Add support for `sourceState: 'none'` to canvas block parameters - #33627, thanks @​quisido!
  • Addon-docs: Restore `docs.components` overrides for doc blocks #34111
  • Addon-Vitest: Add channel API to programmatically trigger test runs - #33206, thanks @​JReinhold!
  • Addon-Vitest: Handle additional vitest config export patterns in postinstall - #34106, thanks @​copilot-swe-agent!
  • Addon-Vitest: Make Playwright `--with-deps` platform-aware to avoid `sudo` prompt on Linux #34121
  • Addon-Vitest: Refactor Vitest setup to eliminate the need for a dedicated setup file - #34025, thanks @​valentinpalkovic!
  • Addon-Vitest: Support Vitest canaries - #33833, thanks @​valentinpalkovic!
  • Angular: Add moduleResolution: bundler to tsconfig - #34085, thanks @​valentinpalkovic!
  • Angular: only load webpack dependencies on demand - #34043, thanks @​sod!
  • Angular: Storybook fails with unknown option silent - #33736, thanks @​tanujbhaud!
  • Build: Update @​types/node - #34037, thanks @​valentinpalkovic!
  • Builder-Vite: Centralize Vite plugins for builder-vite and addon-vitest - #33819, thanks @​valentinpalkovic!
  • Builder-Vite: Fix cold-cache vitest failures for story paths containing glob special characters - #34044, thanks @​copilot-swe-agent!
  • Builder-Vite: Use preview annotations as entry points for optimizeDeps - #33875, thanks @​copilot-swe-agent!
  • CI: declare explicit permissions for stale and weekly cron workflows - #33902, thanks @​Rohan5commit!
  • CLI: Add vike CLI metadata - #34189, thanks @​yannbf!
  • CLI: Avoid hanging of postinstall during init - #34175, thanks @​valentinpalkovic!
  • CLI: Fix onboarding not opening - #33609, thanks @​ndelangen!
  • CLI: Show multiple favicons warning as debug message - #34069, thanks @​remino!
  • Cli: Use npm for registry URL in PNPMProxy to avoid workspace errors - #33571, thanks @​ia319!
  • Controls: Allow story argTypes to override control: false from meta - #33729, thanks @​jonathan-fulton!
  • Controls: Fix Object contrast issue and tidy up code - #33923, thanks @​Sidnioulz!
  • Core: Ensure telemetry is never triggered on initial load of checklist data - #33918, thanks @​ghengeveld!
  • Core: Fix event source URL based on refId when multiple iframes share the same origin #34105
  • Core: Fix false-positive CJS warning when 'exports' appears in strings or comments - #33572, thanks @​reeseo3o!
  • Core: Fix handling complex viewport sizes #33615
  • Core: Fix iframe reference for composed Storybook on a subpath #34100
  • Core: Fix typos: occured -> occurred, recieves -> receives - #33727, thanks @​jonathan-fulton!
  • Core: Handle BROWSER=none correctly and improve error messages - #33730, thanks @​jonathan-fulton!
  • Core: Ignore empty files when indexing - #33782, thanks @​JReinhold!
  • Core: Register CORS middleware before index.json route - #33728, thanks @​jonathan-fulton!
  • Core: Revert Pull Request #33420 from Maelryn/fix/copy-button-overlap - #33877, thanks @​Sidnioulz!
  • Core: Zoom tool refinements - Hide reset button when value is initial - #33635, thanks @​superLipbalm!
  • Docs: Edit JSON button is now accessible at 320x256 viewport (WCAG 2.1 Reflow test) - #33707, thanks @​TheSeydiCharyyev!
  • Docs: Make CSS ordering in DocsContainer more predictable #34015
  • ESLint-plugin: Disallow extra properties in eslint plugin rule options - #32056, thanks @​andreww2012!
  • ESLint: bail out config setup if eslint-plugin-storybook is already imported - #34089, thanks @​copilot-swe-agent!
  • HMR: Fix race conditions causing stale play functions to fire on re-rendered stories - #33930, thanks @​copilot-swe-agent!
  • Maintenance: Revert pull request #33930 HMR events - #34190, thanks @​yannbf!
  • Maintenance: Use std-env for AI agent detection in telemetry #34114
  • Manifest: Add docs entries to debugger - #33607, thanks @​JReinhold!
  • Manifest: Rename `experimentalComponentsManifest` → `componentsManifest`, default to `true` #33974
  • Manifests: Fix Attached MDX causing wrong component entries #34101
  • Next.js-Vite: Fix failing postcss mutation - #33879, thanks @​valentinpalkovic!
  • Next.js: Move image configuration from FrameworkOptions to parameters #32639, thanks @​y-hsgw!
  • Preact: Support inferring props from component types - #33828, thanks @​JoviDeCroock!
  • React Native Web: Fix inconsistent example stories - #33891, thanks @​danielalanbates!
  • React: Add react-docgen-typescript to component manifest - #33818, thanks @​kasperpeulen!
  • Revert "Toolbar: Remove extra toolbar divider when zoom controls not shown" - #34099, thanks @​valentinpalkovic!
  • Test: Fix clearing mocks in Vitest #34078
  • Test: Update @​testing-library/jest-dom - #33928, thanks @​valentinpalkovic!
  • Theming: Export interface declaration for `ThemesGlobals` - #33343, thanks @​icopp!
  • Toolbar: Remove extra toolbar divider when zoom controls not shown - #33731, thanks @​jonathan-fulton!
  • UI: Allow direct kb/mouse actions on zoom tool button - #33496, thanks @​Sidnioulz!
  • UI: Avoid large animation for reduced motion users - #33530, thanks @​Sidnioulz!
  • UI: Ensure Link without href is keyboard-reachable - #34163, thanks @​Sidnioulz!
  • UI: Fix `z-index` problem with `popover`s and `modal`s nesting - #33757, thanks @​ndelangen!
  • UI: Fix code/copy buttons overlap with content - #33889, thanks @​Sidnioulz!
  • UI: Fix Copy button overlapping code in portrait mode - #33420, thanks @​Maelryn!
  • UI: Fix modal text selection - #33967, thanks @​Sidnioulz!
  • UI: Fix tab navigation after closing addon panel - #33971, thanks @​copilot-swe-agent!
  • UI: Handle kb nav edge cases when preview and panel are hidden - #33588, thanks @​Sidnioulz!
  • UI: Hide addon panel Drag on pages without a panel - #34162, thanks @​Sidnioulz!
  • UI: Hide manifest tag for now - #34165, thanks @​Sidnioulz!
  • UI: Make disabled Buttons keyboard-focusable - #34166, thanks @​Sidnioulz!
  • UI: Make TagsFilter state persistent #33374
  • UI: Use correct selector for addon panel focus check - #34164, thanks @​Sidnioulz!
  • UI: Zoom faster when pressing shift - #34185, thanks @​Sidnioulz!
  • Viewport: Skip viewport validation before parameters load - #33794, thanks @​ia319!
  • Vite: Add mock entries to optimizeDeps.entries - #34167, thanks @​valentinpalkovic!
  • Vue3-Vite: Allow paths in docgen tsconfig option #32310, thanks @​Thomaash!
        ### v10.3.0-beta.3## 10.3.0-beta.3
  • Addon-Vitest: Handle additional vitest config export patterns in postinstall - #34106, thanks @​copilot-swe-agent!

  • CLI: Add vike CLI metadata - #34189, thanks @​yannbf!

  • Maintenance: Revert pull request #33930 HMR events - #34190, thanks @​yannbf!

  • UI: Ensure Link without href is keyboard-reachable - #34163, thanks @​Sidnioulz!

  • UI: Zoom faster when pressing shift - #34185, thanks @​Sidnioulz!

  • Vite: Add mock entries to optimizeDeps.entries - #34167, thanks @​valentinpalkovic!

          ### v10.3.0-beta.2## 10.3.0-beta.2
    
  • UI: Hide addon panel Drag on pages without a panel - #34162, thanks @​Sidnioulz!

  • UI: Hide manifest tag for now - #34165, thanks @​Sidnioulz!

  • UI: Make disabled Buttons keyboard-focusable - #34166, thanks @​Sidnioulz!

  • UI: Use correct selector for addon panel focus check - #34164, thanks @​Sidnioulz!

  • Vue: Make globals reactive in decorators - #34116, thanks @​Sidnioulz!

          ### v10.3.0-beta.1## 10.3.0-beta.1
    
  • Addon-Docs: Add React as optimizeDeps entry - #34176, thanks @​valentinpalkovic!

  • CLI: Avoid hanging of postinstall during init - #34175, thanks @​valentinpalkovic!

          ### v10.3.0-beta.0## 10.3.0-beta.0
    
  • Test: Fix clearing mocks in Vitest #34078

  • Core: Fix event source URL based on refId when multiple iframes share the same origin #34105

  • UI: Make TagsFilter state persistent #33374

  • A11y: Make resize handles for addon panel and sidebar accessible #33980

  • Maintenance: Use std-env for AI agent detection in telemetry #34114

  • Addon-Vitest: Make Playwright --with-deps platform-aware to avoid sudo prompt on Linux #34121

  • Addon-docs: Restore docs.components overrides for doc blocks #34111

  • Maintenance: Support vite-plugin-svelte7 which supports Vite 8 #34115

  • Core: Fix handling complex viewport sizes #33615

  • Core: Fix iframe reference for composed Storybook on a subpath #34100

  • Manifest: Rename experimentalComponentsManifestcomponentsManifest, default to true #33974

  • Manifests: Fix Attached MDX causing wrong component entries #34101

  • Vue3-Vite: Allow paths in docgen tsconfig option #32310, thanks @​Thomaash!

  • Next.js: Move image configuration from FrameworkOptions to parameters #32639, thanks @​y-hsgw!

  • Docs: Make CSS ordering in DocsContainer more predictable #34015

          ### v10.3.0-alpha.17## 10.3.0-alpha.17
    
  • Core: Correctly fallback to first detected vitest config file - #33865, thanks @​yannbf!

  • ESLint-plugin: Disallow extra properties in eslint plugin rule options - #32056, thanks @​andreww2012!

  • ESLint: bail out config setup if eslint-plugin-storybook is already imported - #34089, thanks @​copilot-swe-agent!

  • Revert "Toolbar: Remove extra toolbar divider when zoom controls not shown" - #34099, thanks @​valentinpalkovic!

          ### v10.2.19## 10.2.19
    
  • Maintenance: Support vite-plugin-svelte@​7 which supports Vite 8 - #34115, thanks @​valentinpalkovic!

  • Vite: Support Vite 8 - #33788, thanks @​valentinpalkovic!

          ### v10.2.18## 10.2.18
    
  • Core: Correctly fallback to first detected vitest config file - #33865, thanks @​yannbf!

  • Core: Fix error reporting in ManagerErrorBoundary - #33915, thanks @​ghengeveld!

          ### v10.3.0-alpha.16## 10.3.0-alpha.16
    
  • A11y: Underline MDX links for WCAG SC 1.4.1 compliance - #33139, thanks @​NikhilChowdhury27!

  • Angular: Add moduleResolution: bundler to tsconfig - #34085, thanks @​valentinpalkovic!

  • Angular: only load webpack dependencies on demand - #34043, thanks @​sod!

  • CLI: Show multiple favicons warning as debug message - #34069, thanks @​remino!

  • Core: Fix error reporting in ManagerErrorBoundary - #33915, thanks @​ghengeveld!

  • Vite: Support Vite 8 - #33788, thanks @​valentinpalkovic!

          ### v10.3.0-alpha.15## 10.3.0-alpha.15
    
  • Actions: Add expandLevel parameter to configure tree depth - #33977, thanks @​mixelburg!

  • Actions: Fix HandlerFunction type to support async callback props - #33864, thanks @​mixelburg!

  • Addon-Vitest: Refactor Vitest setup to eliminate the need for a dedicated setup file - #34025, thanks @​valentinpalkovic!

  • Build: Update @​types/node - #34037, thanks @​valentinpalkovic!

  • Builder-Vite: Fix cold-cache vitest failures for story paths containing glob special characters - #34044, thanks @​copilot-swe-agent!

  • CI:: declare explicit permissions for stale and weekly cron workflows - #33902, thanks @​Rohan5commit!

  • Core: Add vike metadata frameworks - #33965, thanks @​yannbf!

  • Core: Resolve builder preset path correctly in pnpm strict mode - #34032, thanks @​braedenfoster!

  • Core: Update default allowed hosts in host validation middleware - #34045, thanks @​ghengeveld!

  • Next.js: Add support for v16.2 - #34046, thanks @​valentinpalkovic!

  • UI: Fix code/copy buttons overlap with content - #33889, thanks @​Sidnioulz!

  • UI: Fix modal text selection - #33967, thanks @​Sidnioulz!

  • UI: Fix tab navigation after closing addon panel - #33971, thanks @​copilot-swe-agent!

  • UI: Handle kb nav edge cases when preview and panel are hidden - #33588, thanks @​Sidnioulz!

          ### v10.2.17## 10.2.17
    
  • Next.js: Add support for v16.2 - #34046, thanks @​valentinpalkovic!

          ### v10.2.16## 10.2.16
    
  • CSF-Factories: Fix ConfigFile parser false warning on `definePreview({...}).type()` export default - #33885, thanks @​copilot-swe-agent!

  • Core: Add host/origin validation to requests and websocket connections - #33835, thanks @​ghengeveld!

  • Core: Add vike metadata frameworks - #33965, thanks @​yannbf!

  • Core: Resolve builder preset path correctly in pnpm strict mode - #34032, thanks @​braedenfoster!

  • Core: Update default allowed hosts in host validation middleware - #34045, thanks @​ghengeveld!

          ### v9.1.20## 9.1.20
    
  • Add request validation

          ### v10.3.0-alpha.14## 10.3.0-alpha.14
    
  • CSF-Factories: Fix ConfigFile parser false warning on `definePreview({...}).type()` export default - #33885, thanks @​copilot-swe-agent!

  • Core: Add host/origin validation to requests and websocket connections - #33835, thanks @​ghengeveld!

  • Core: Storybook failed to load iframe.html when publishing - #33896, thanks @​danielalanbates!

  • Core: Zoom tool refinements - Hide reset button when value is initial - #33635, thanks @​superLipbalm!

  • Docs: Edit JSON button is now accessible at 320x256 viewport (WCAG 2.1 Reflow test) - #33707, thanks @​TheSeydiCharyyev!

  • Manager-API: Update refs sequentially in experimental_setFilter - #33958, thanks @​ia319!

  • UI: Allow direct kb/mouse actions on zoom tool button - #33496, thanks @​Sidnioulz!

Commit history:
  • 5647e6 Merge pull request #34440 from storybookjs/cli/node-version-check-init

    CLI: Streamline Node.js version detection code

  • 3694b0 Simplify code
  • a8bc7b Remove backup node version warning as old nodes crash earlier
  • 20c543 Revert changes to Preflight check tests
  • 0aecc8 Removing whitespace from diff
  • ee3330 Remove node version prompt, only improve check and output
  • 82efeb refactor tests
  • a3ca0f Handle side effects of CI exclusion for tests
  • c4a96b Fix linting and formatting
  • e8d657 fix: nvmrc precision logic, detect-indent for JSON, options.yes guard

    • Add NodeVersionPrecision type and precision field to parseNodeVersionString
      so callers know if the input was major-only, major.minor, or full
    • Add mode:'nvmrc' option to isNodeVersionSupported: major-only "22" means
      "latest 22.x" (supported), not 22.0.0 (which is not); major.minor "22.14"
      checks at minor level rather than treating as 22.14.0
    • Use mode:'nvmrc' + precision in PreflightCheckCommand and node-version-check
      nvmrc check paths so users with ".nvmrc: 22" are not incorrectly prompted
    • Replace naive indent detection in updateEnginesNode with detect-indent so
      tab-indented JSON is preserved correctly (not converted to spaces)
    • Add options.yes === true to non-interactive guard alongside TTY/CI checks
    • Add nvmrc mode tests, precision assertions in parseNodeVersionString tests,
      and tab/minified JSON indentation tests for updateEnginesNode

    Agent-Logs-Url: https://github.com/storybookjs/storybook/sessions/7540f41d-9b80-4e83-a4ec-738e331cc43d

    Co-authored-by: Sidnioulz <5108577+Sidnioulz@​users.noreply.github.com>

  • b2e3e3 fix: address PR review feedback on node-version checks

    • Bound find.up('.nvmrc') search to project root via last: getProjectRoot()
      to prevent reading/modifying unrelated .nvmrc files up the directory tree
    • Add unit tests for bounded search behavior
    • Skip interactive prompts in CI/non-interactive environments in both
      PreflightCheckCommand and handleUnsupportedNodeRuntime
    • Wrap file update calls in try/catch in promptVersionBump so init
      continues on write errors
    • Fix engines.node runtime option to use >=${major}.${minor} format
      (not full patch version) for consistency with other choices
    • Emit combined exit message when both .nvmrc and engines.node are bumped

    Agent-Logs-Url: https://github.com/storybookjs/storybook/sessions/37cce97f-827b-493f-8d63-83550dcdf9f5

    Co-authored-by: Sidnioulz <5108577+Sidnioulz@​users.noreply.github.com>

  • 25cd8f Show higher quality error message when possible
  • dc24eb refactor: use shared constants and add declared version bump in create-storybook bin entry
  • f9b3fe feat: add unsupported Node.js runtime handler with declared version bump flow
  • 89d2e4 feat: check declared Node.js version in PreflightCheckCommand and offer to bump
  • a78cb9 refactor: use shared Node.js version constants in dispatcher and cli-storybook
  • 9e40df feat: re-export node-version utilities from common
  • 4123da feat: add shared Node.js version constants, utilities, detection, and update functions
  • aae6c9 Merge pull request #34498 from storybookjs/change-detection-startup-performance

    Core: Improve startup performance by deferring change detection initialization

  • 702291 Merge pull request #34502 from storybookjs/docs/ai_contribution_guide

    Docs: Add AI contributions guide in contributing.md and documentation

  • ee5ddc Docs: update contribution guide
  • 6c8f23 Docs: update contribution guideline for AI assisted PR
  • eaff7f Initialize change detection only once preview is ready
  • ad5c2a Merge pull request #34494 from storybookjs/copilot/accessible-rabbit

    Nextjs: Handle node builtin webpack imports

  • ae7abd Nextjs: normalize node builtin webpack imports

    Co-authored-by: Copilot <223556219+Copilot@​users.noreply.github.com>

  • 370524 Merge pull request #34445 from storybookjs/change-detection-windows

    Core: Normalize file paths in ChangeDetectionService and trace-changed for Windows support

  • 2c99f1 Update CHANGELOG.md for v10.3.5 [skip ci]
  • ac76d4 Merge branch 'next-release' into next
  • 7b51dd Bump version from "10.4.0-alpha.7" to "10.4.0-alpha.8" [skip ci]
  • 088fa5 Merge pull request #34448 from storybookjs/version-non-patch-from-10.4.0-alpha.7

    Release: Prerelease 10.4.0-alpha.8

@michijs

michijs Bot commented Apr 13, 2026

Copy link
Copy Markdown
Contributor Author

Bump typescript from 5.9.2 to 6.0.2

Changelog:
Sourced from releases.
        ### v6.0.2For release notes, check out the [release announcement blog post](https://devblogs.microsoft.com/typescript/announcing-typescript-6-0/).

Downloads are available on:

  • npm

          ### v5.9.3Note: this tag was recreated to point at the correct commit. The npm package contained the correct content.
    

For release notes, check out the release announcement

Downloads are available on:

  • npm

          ### v5.9.2Note: this tag was recreated to point at the correct commit. The npm package contained the correct content.
    

For release notes, check out the release announcement

Downloads are available on:

Commit history:
  • c7a0ae Harden ATA package name filtering (#63368)
  • 5f4350 Require AI disclosure in PR descriptions (#63366)
  • 38c327 Document charCodeAt edge case behavior in first line (#63344)
  • 7b8cb3 Fix redundant leading apostrophe in TS1344 diagnostic message (#63341)

    Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@​users.noreply.github.com>
    Co-authored-by: RyanCavanaugh <6685088+RyanCavanaugh@​users.noreply.github.com>

  • 0844c4 Mark class property initializers as outside of CFA containers (#63310)

    Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@​users.noreply.github.com>
    Co-authored-by: RyanCavanaugh <6685088+RyanCavanaugh@​users.noreply.github.com>

  • 71586a Bump the github-actions group with 2 updates (#63319)

    Signed-off-by: dependabot[bot] <support@​github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@​users.noreply.github.com>

  • 7881fe Add coding agent instructions: refuse PRs unless maintenance mode is acknowledged (#63305)

    Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@​users.noreply.github.com>
    Co-authored-by: RyanCavanaugh <6685088+RyanCavanaugh@​users.noreply.github.com>
    Co-authored-by: Ryan Cavanaugh <RyanCavanaugh@​users.noreply.github.com>

  • 77ddb5 Update deps (#63296)
  • 864777 Bump the github-actions group with 3 updates (#63285)

    Signed-off-by: dependabot[bot] <support@​github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@​users.noreply.github.com>

  • b103a0 Update readme to note current repo state (#63292)
  • 4f7b41 Bump the github-actions group with 2 updates (#63224)

    Signed-off-by: dependabot[bot] <support@​github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@​users.noreply.github.com>

  • 9059e5 Fix missing lib files in reused programs (#63239)
  • c9e742 Port anyFunctionType subtype fix and JSX children NonInferrableType propagation from typescript-go (#63163)

    Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@​users.noreply.github.com>
    Co-authored-by: DanielRosenwasser <972891+DanielRosenwasser@​users.noreply.github.com>

  • 206ed1 Deprecate assert in import() (#63172)
  • e688ac Update dependencies (#63156)
  • 29b300 Bump the github-actions group across 1 directory with 2 updates (#63205)

    Signed-off-by: dependabot[bot] <support@​github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@​users.noreply.github.com>

  • 0c2c7a DOM update (#63183)
  • 924810 Adds the symbol name to the error message for TS2742 (#63200)
  • 6cf817 discrete pluralizer for lib.esnext.temporal unit unions (#63190)
  • b24015 Eliminate interpolation from workflows (#63188)
  • 347254 Update DOM types (#63137)
  • ad04bf Fix crash in declaration emit with nested binding patterns (#63154)

    Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@​users.noreply.github.com>
    Co-authored-by: DanielRosenwasser <972891+DanielRosenwasser@​users.noreply.github.com>

  • 0ed1ee Fix from and with method types of Temporal.PlainMonthDay (#63142)
  • 040c20 Bump github/codeql-action from 4.32.2 to 4.32.3 in the github-actions group (#63145)

    Signed-off-by: dependabot[bot] <support@​github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@​users.noreply.github.com>

  • cdc205 Ensure node is installed in release publisher (#63127)
  • cdb583 Bump github/codeql-action from 4.32.0 to 4.32.2 in the github-actions group (#63123)

    Signed-off-by: dependabot[bot] <support@​github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@​users.noreply.github.com>

  • 87aa91 Always set up host in node builder (#62726)
  • e872a6 Un‑consolidate and fix WeakMap constructor overloads (#56713)

    Co-authored-by: Jake Bailey <5341706+jakebailey@​users.noreply.github.com>

  • 5e4281 Add lib.esnext.temporal (#62628)
  • 240797 DOM update (#62730)

@michijs

michijs Bot commented Apr 13, 2026

Copy link
Copy Markdown
Contributor Author

Bump bun from 1.2.21 to 1.3.12

Changelog:
Sourced from releases.
        ### bun-v1.3.12To install Bun v1.3.12
curl -fsSL https://bun.sh/install | bash
# or you can use npm
# npm install -g bun

Windows:

powershell -c "irm bun.sh/install.ps1|iex"

To upgrade to Bun v1.3.12:

bun upgrade

Read Bun v1.3.12's release notes on Bun's blog

Thanks to 8 contributors!

curl -fsSL https://bun.sh/install | bash
# or you can use npm
# npm install -g bun

Windows:

powershell -c "irm bun.sh/install.ps1|iex"

To upgrade to Bun v1.3.11:

bun upgrade

Read Bun v1.3.11's release notes on Bun's blog

Thanks to 15 contributors!

curl -fsSL https://bun.sh/install | bash
# or you can use npm
# npm install -g bun

Windows:

powershell -c "irm bun.sh/install.ps1|iex"

To upgrade to Bun v1.3.10:

bun upgrade

Read Bun v1.3.10's release notes on Bun's blog

Thanks to 11 contributors!

curl -fsSL https://bun.sh/install | bash
# or you can use npm
# npm install -g bun

Windows:

powershell -c "irm bun.sh/install.ps1|iex"

To upgrade to Bun v1.3.9:

bun upgrade

Read Bun v1.3.9's release notes on Bun's blog

Thanks to 10 contributors!

curl -fsSL https://bun.sh/install | bash
# or you can use npm
# npm install -g bun

Windows:

powershell -c "irm bun.sh/install.ps1|iex"

To upgrade to Bun v1.3.8:

bun upgrade

Read Bun v1.3.8's release notes on Bun's blog

Thanks to 4 contributors!

curl -fsSL https://bun.sh/install | bash
# or you can use npm
# npm install -g bun

Windows:

powershell -c "irm bun.sh/install.ps1|iex"

To upgrade to Bun v1.3.7:

bun upgrade

Read Bun v1.3.7's release notes on Bun's blog

Thanks to 11 contributors!

curl -fsSL https://bun.sh/install | bash
# or you can use npm
# npm install -g bun

Windows:

powershell -c "irm bun.sh/install.ps1|iex"

To upgrade to Bun v1.3.6:

bun upgrade

Read Bun v1.3.6's release notes on Bun's blog

Thanks to 23 contributors!

curl -fsSL https://bun.sh/install | bash
# or you can use npm
# npm install -g bun

Windows:

powershell -c "irm bun.sh/install.ps1|iex"

To upgrade to Bun v1.3.5:

bun upgrade

Read Bun v1.3.5's release notes on Bun's blog

Thanks to 10 contributors!

curl -fsSL https://bun.sh/install | bash
# or you can use npm
# npm install -g bun

Windows:

powershell -c "irm bun.sh/install.ps1|iex"

To upgrade to Bun v1.3.4:

bun upgrade

Read Bun v1.3.4's release notes on Bun's blog

Thanks to 14 contributors!

curl -fsSL https://bun.sh/install | bash
# or you can use npm
# npm install -g bun

Windows:

powershell -c "irm bun.sh/install.ps1|iex"

To upgrade to Bun v1.3.3:

bun upgrade

Read Bun v1.3.3's release notes on Bun's blog

Thanks to 19 contributors!

curl -fsSL https://bun.sh/install | bash
# or you can use npm
# npm install -g bun

Windows:

powershell -c "irm bun.sh/install.ps1|iex"

To upgrade to Bun v1.3.2:

bun upgrade

Read Bun v1.3.2's release notes on Bun's blog

Thanks to 18 contributors!

curl -fsSL https://bun.sh/install | bash
# or you can use npm
# npm install -g bun

Windows:

powershell -c "irm bun.sh/install.ps1|iex"

To upgrade to Bun v1.3.1:

bun upgrade

Read Bun v1.3.1's release notes on Bun's blog

Thanks to 15 contributors!

Special thanks to Martin Schwarzl of Cloudflare for fuzzing & reporting several bugs!!

        ### bun-v1.3.0

Read the blog post

Group 77

Windows:

powershell -c "irm bun.sh/install.ps1|iex"

To upgrade to Bun v1.3:

bun upgrade
        ### bun-v1.2.23To install Bun v1.2.23
curl -fsSL https://bun.sh/install | bash
# or you can use npm
# npm install -g bun

Windows:

powershell -c "irm bun.sh/install.ps1|iex"

To upgrade to Bun v1.2.23:

bun upgrade

Read Bun v1.2.23's release notes on Bun's blog

Thanks to 16 contributors!

curl -fsSL https://bun.sh/install | bash
# or you can use npm
# npm install -g bun

Windows:

powershell -c "irm bun.sh/install.ps1|iex"

To upgrade to Bun v1.2.22:

bun upgrade

Read Bun v1.2.22's release notes on Bun's blog

Thanks to 14 contributors!

curl -fsSL https://bun.sh/install | bash
# or you can use npm
# npm install -g bun

Windows:

powershell -c "irm bun.sh/install.ps1|iex"

To upgrade to Bun v1.2.21:

bun upgrade

Read Bun v1.2.21's release notes on Bun's blog

Thanks to 23 contributors!

Commit history:
  • d35774 bundler: fix stale HTML-import manifest etag across rebuilds (#29233)

    What does this PR do?

    The HTML chunk's manifest etag was its isolated_hash, which by
    design hashes the output pieces between unique-key placeholders — i.e.
    it excludes the slots where child-chunk paths are substituted. So when
    only a referenced JS/CSS chunk changed, the served HTML body changed (it
    embeds /chunk-<hash>.js) but its etag did not. Bun.serve would then
    304 to a cached body that referenced chunks the new build no longer
    served, leaving the page blank until a hard refresh.

    Fix:

    • appendIsolatedHashesForImportedChunks now also recurses on
      .chunk/.scb output pieces. HTML chunks reference their JS/CSS via
      pieces only (their cross_chunk_imports is empty), so without this
      their transitive hash never folded in children. For JS chunks the visit
      map makes the new recursion a no-op since those pieces are already
      reached via cross_chunk_imports.
    • HTMLImportManifest emits each chunk's template.placeholder.hash
      (the transitive hash) instead of isolated_hash.

    JS/CSS chunk filenames are unchanged (verified by the existing snapshots
    — only etag values moved).

    Fixes #23009

    How did you verify your code works?

    New test html-import/etag-changes-with-referenced-chunks builds the
    same HTML import twice with different JS content and asserts the HTML
    etag differs while the HTML path stays the same. Fails on main,
    passes here.


    Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@​users.noreply.github.com>

  • d7526e Upgrade WebKit to 456cd04b8d5be123bd451f2c007b97dbb3ffed57 (#29161)

    WebKit Upgrade: c2010c47d12c → d924138e38f4

    Merged 1316 upstream commits (306 touching JSC/WTF/bmalloc).

    API Changes Affecting Bun

    Change Impact
    JSObject::globalObject()realm() (7d4583947a7b "Realm-less
    Objects") All call sites that fetch a cell's global must use
    realm(). Bun's JSPromise.cpp InternalPromise check and
    JSWebAssembly.cpp updated.
    MarkedJSValueRefArrayMarkedVector<JSValueRef> testapi only;
    no Bun runtime impact.
    JSCell::type()/indexingType*() now defined inline in JSCell.h
    (6eaeb2be1205) Bun's JS_EXPORT_PRIVATE on type() dropped — symbol
    no longer needed since definition is header-inline.
    Heap::hasHeapAccess()/worldIsStopped() moved from HeapInlines.h
    Heap.h Bun's commented-out isMarked block kept; duplicate inline
    defs removed.
    NODELETE annotations adopted widely (61dfe117a295) Merged with
    Bun's JS_EXPORT_PRIVATE additions where both apply.
    GCMemoryOperations.h rewritten (7a412e324d10 "wider bulk copy")
    Upstream now has #if !OS(WINDOWS) guard around .p2align, superseding
    Bun's separate Windows-ARM64 SEH workaround. Took upstream wholesale.
    WTF_MAKE_TZONE_ALLOCATED_IMPL(ScheduledTask) added in
    RunLoopGeneric.cpp Integrated above Bun's USE(BUN_EVENT_LOOP)
    constructor.
    OSAllocatorPOSIX.cpp: Linux PR_SET_VMA memory tagging
    (b651d820ecaa) Added alongside Bun's Darwin
    BUN_VM_CHILD_PROCESS_INHERIT defines; dropped Bun's file-wide
    WTF_ALLOW_UNSAFE_BUFFER_USAGE_BEGIN (upstream now uses targeted
    scopes).
    trunc/isnanstd::trunc/std::isnan (aaf28d392ef7) Propagated to
    Bun-relocated copies in JSCJSValueInlines.h.
    JSCell::toThis removed upstream Bun's stale JS_EXPORT_PRIVATE
    declaration dropped (no implementation existed).
    MarkedVector::set(i, v) removed Bun's NodeHTTPParser.cpp
    switched to args.at(i) = v. MarkedArgumentBuffer iterator now yields
    JSValue (not EncodedJSValue) — JSBundlerPlugin.cpp updated.
    Vector(size, val) / FixedVector(size, val) now require
    WTF::FillWith{} tag (22a4dd063a31) BunHeapProfiler.cpp,
    InternalFieldObject.h, WebSocket.cpp updated.
    String::characterAt()codeUnitAt() (e4f1bb7dd2dc)
    bindings.cpp, NodeModuleModule.cpp updated.
    RootMarkReason::MarkedJSValueRefArray enum value removed
    BunV8HeapSnapshotBuilder.cpp switch case dropped.
    InlineCacheHandler.h new transitive include of
    InlineCacheCompiler.h Added to PRIVATE_FRAMEWORK_HEADERS in JSC
    CMakeLists.txt.

    Compatibility Shim Added (oven-sh/WebKit only)

    JSObject::globalObject() and Structure::globalObject() were
    re-introduced under USE(BUN_JSC_ADDITIONS) as inline aliases of
    realmMayBeNull() / realm(). This avoids a 300+-call-site rename
    across Bun's bindings and codegen templates in this PR; the alias
    preserves the pre-rename nullable semantics. Migration to realm() can
    be done incrementally.

    Notable JSC Commits

    Performance

    • da43fc766f60 — ArrayLengthStore IC for array.length = N
    • 3ba3be2ff84e — IC for property keys undefined/true/false/null
    • 7aea7dd35f02 — Fold string length in DFG/FTL
    • 47263c1fcdf7 — toUpperCase intrinsic
    • 3a21b7550526 — String#indexOf one-char fast path in DFG/FTL
    • 6276c6b5f2b9 — Remove redundant mov in await/yield bytecode
    • 7d5f97e8a6c0 — Persist FunctionExecutable singleton invalidation
    • 7ba657c06781 — Cache default date formatters
    • f977b7aa6f76 — Refine clobberize for
      CheckPrivateBrand/SetPrivateBrand
    • 7a412e324d10 — Wider bulk copy in GC-safe memcpy/memmove
    • 65b433087d28 — Reserve/inline-capacity for JSC vectors
    • 85a8086c469f — SIMD-accelerate equalIgnoringASCIICase*
    • 72a6facdf6de — makeLatin1Identifier in parseString SIMD fast path

    Correctness / Bugfixes

    • 24d4993f2796 — RegExp exec/test reload internal RegExp after
      ToLength(lastIndex)
    • 291f0457787d — DFG constant folding: handle TOP in CheckIsConstant
    • 83895848013f — isWithinPowerOfTwo unsound for BitAnd w/ negative
      mask
    • c3f07df74de4 — Propagate InstanceFieldEvalContext through
      arrows/nested scopes
    • 46479ddbd5e6 — import { "*" as x } not treated as namespace import
    • 6117e70109ac — TypedArray iterator-next-with-detached test262 fix
    • c16330f64843 — Date.toLocaleString() ICU crash from Worker
    • 036d2c0c8216 / 8c10428db1b8 / c4f242d634ec / f30b516527da — YARR
      backtracking/capture fixes

    New Features

    • 7fdc018c4dd7 — Iterator.prototype.includes (behind flag)
    • 6de094278d71 — JSPI: WebAssembly.Suspending/SuspendError as data
      properties

    Wasm

    • f9c6e4889485 — IPInt support for SIMD and atomics
    • 12997e819ca5 — Multimemory in BBQ/OMG SIMD/atomics
    • 599f35b67143 — Stack results match arguments
    • 7900f4775411 — OMG bounds check uses AboveEqual
    • Multiple Wasm-debugger improvements (LLDB integration, dynamic-module
      notify, exception interception)

    WTF / bmalloc

    • e4f1bb7dd2dc — characterAt()/characterStartingAt()
      codeUnitAt()/codePointAt()
    • 0655a1df8268 — WTF::Unexpectedstd::unexpected
    • 41539422d60f — Removed ~9% of #includes from WTF
    • 75529ed6e070 — libpas: fix CSE of atomic-load under concurrent
      modification
    • 569d28c26a9b — libpas: MTE Previous-Tag-Exclusion
    • 83b6ec32bc25 — StringImpl::create (UTF-8) defensive against
      concurrent mutation
    • b7ac868d7113 / 2b9732f54c5e — = default constructor adoption
    • 3242d3d821c5 — roundUpToPowerOfTwo() no longer truncates to uint32_t

    Merge Conflict Resolutions

    28 conflicts. Patterns:

    • Include style "X.h"<JavaScriptCore/X.h> — adopted upstream
      bracket style (BlockDirectory.h, MarkedBlock.h, StrongInlines.h,
      Integrity.h, InPlaceInterpreter.h, WasmDebugServerUtilities.h,
      WebAssemblyGCStructure.h).
    • NODELETE × Bun's JS_EXPORT_PRIVATE/additions — combined both
      (MarkingConstraint.h, JSCell.h, VMManager.h, Nodes.h, SourceProvider.h,
      LiteralParser.h, CachedTypes.cpp, ExceptionHelpers.cpp,
      NodesCodegen.cpp, Options.cpp).
    • Heap.cpp — Bun intentionally removes
      growthMode/maxEdenSizeForRateLimiting (rate-limiting) and
      de-statics heap-sizing helpers; kept Bun's behavior, dropped
      upstream's NODELETE on the removed functions.
    • GCMemoryOperations.h — upstream rewrite supersedes Bun's
      Windows-ARM64 patches; took theirs.
    • JSCJSValue.h — upstream re-touched inline funcs Bun had moved to
      JSCJSValueInlines.h; kept Bun's relocation, ported std::
      qualification fix.
    • JSPromise.cpp / JSWebAssembly.cpp — adopted realm() rename; kept
      Bun's InternalPromise short-circuit.
    • RunLoopGeneric.cpp — added WTF_MAKE_TZONE_ALLOCATED_IMPL before
      Bun's USE(BUN_EVENT_LOOP) ctor.
    • OSAllocatorPOSIX.cpp — kept both Bun's Darwin defines and
      upstream's Linux prctl block; dropped redundant file-wide
      unsafe-buffer wrap.
    • PlatformMac.cmakeplatform/mac/StringUtilities.h removed
      upstream (moved to platform/cocoa/).

    Checks

    • JSType.h: no upstream changes — src/bun.js/bindings/JSType.zig
      still in sync.
    • WebCore bindings code generator: no relevant changes detected.

    Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@​users.noreply.github.com>

  • 7c75a8 deflake: fetch-proxy-tls-intern-race timeout on Linux release builds (#29212)

    Summary

    Fixes the 41/200 timeout flake of
    test/js/web/fetch/fetch-proxy-tls-intern-race.test.ts on Linux release
    targets (🐧 25.04 x64-baseline, 🐧 3.23 aarch64, 🐧 13 x64-baseline).

    Root cause: the test's CONNECT proxy only handled
    client.on("error"), not "close". The probe loop aborts each fetch
    immediately, so the client→proxy socket usually closes with FIN (not
    RST). The proxy→backend upstream socket was never destroyed in that
    path. On release builds the setImmediate probe loop fires thousands of
    times per second, so orphaned TLS connections accumulate on the backend
    Bun.serve until its accept queue / FD table saturates and the driver's
    fetch stalls. The driver fetch had no abort signal, so await driverDone hung past the 30s test timeout.

    Fix:

    • Proxy: destroy upstream on client "close" (and vice versa) so
      aborted probes don't leak backend connections.
    • Fixture: start the hard cap as a setTimeout up front so it's
      authoritative regardless of what the loops are blocked on; it flips
      stop and aborts the in-flight driver fetch.
    • Fixture: let the driver complete one request against an idle proxy
      before the probe flood so the driverOk > 0 sanity check holds on
      loaded CI. The warmup wait is bounded by the same hard-cap timer
      (addresses the unbounded-loop review feedback on #28873).

    Supersedes the fetch-proxy-tls-intern-race-fixture.ts portion of
    #28873.

    Test plan

    • 20× sequential runs with release build (bun-pr 29163): all pass at
      ~5.4s
    • 18× parallel runs (6 concurrent × 3 rounds) under load: all pass
    • bun bd test (debug+ASAN): all pass

    🤖 Generated with Claude Code


    Co-authored-by: root <root@​ip-10-0-2-234.us-west-2.compute.internal>
    Co-authored-by: Claude Opus 4.6 <noreply@​anthropic.com>

  • ff2c8b process.ppid: make it a live getter (#29171)

    Fixes #29169

    Repro

    bash -c '
    bun -e "
      setInterval(() => {
        const realPpid = parseInt(require(\"fs\").readFileSync(\"/proc/\" + process.pid + \"/stat\", \"utf8\").split(\" \")[3]);
        console.log(\"js=\" + process.ppid + \" kernel=\" + realPpid);
      }, 500);
    " &
    BUN=$!
    sleep 1
    kill $$
    '

    After the parent shell dies, /proc shows the bun child was reparented
    to init (kernel=1), but process.ppid is frozen at the dead parent
    PID. This breaks the common orphan-detection pattern if (process.ppid === 1) process.exit(), which Node.js supports.

    Cause

    process.ppid was declared in BunProcess.cpp as:

    ppid  constructPpid  PropertyCallback
    

    PropertyCallback is a lazy property — it calls the constructor
    once on first access and then caches the result on the process object.
    So getppid() ran once at startup and never again, no matter how long
    the process lived.

    Fix

    Switch ppid to a CustomAccessor getter that calls getppid() /
    uv_os_getppid() on every access. This matches Node.js, where
    process.ppid is a live getter backed by uv_os_getppid().

    Writes to process.ppid replace the accessor with a plain value on the
    process object via putDirect, so process.ppid = 5 also matches
    Node's observable behavior (the write sticks).

    Verification

    test/regression/issue/29169.test.ts spawns setsid bash which forks a
    backgrounded bun child, then kills the parent bash. The child reads both
    process.ppid and the real ppid from /proc/self/stat in a tight loop
    and asserts that after reparenting, process.ppid matches the kernel's
    view and is no longer the dead parent PID.

    • Before the fix: expect(reparented.js).toBe(reparented.kernel)
      Expected: 1, Received: 5519 (the dead parent PID).
    • After the fix: passes.

    Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@​users.noreply.github.com>
    Co-authored-by: Jarred Sumner <jarred@​jarredsumner.com>

  • a0d9aa serve: consolidate file streaming into FileResponseStream; Range support; fix aborted-stream hang (#29202)

    Started as a follow-up to #29185 fixing two StreamTransfer abort bugs,
    then consolidated the four divergent file-response strategies into one
    shared implementation and added Range support.

    Fixes #20965

    FileResponseStream

    New src/bun.js/api/server/FileResponseStream.zig — owns
    fd→AnyResponse body streaming. Shared by FileRoute (static routes:
    entries) and RequestContext (file bodies returned from fetch
    handlers).

    • BufferedReader path by default; kernel sendfile() only for ≥1MB
      regular files on non-SSL POSIX
    • Idempotent finish(), abort-safe; detachResp() clears uWS callbacks
      before end()/endSendFile() so the deferred eof_task can never
      touch a reaped socket
    • fd closed in deinit() regardless of which path ran
    • Optional on_abort callback so RequestContext can route disconnects
      through its real onAbort (preserving flags.aborted /
      additional_on_abort / req.signal)

    Replaces

    Before After
    FileRoute.StreamTransfer (~250 lines) deleted
    RequestContext sendfile loop (onSendfile / onWritableSendfile /
    endSendFile / cleanupAndFinalizeAfterSendfile /
    renderMetadataAndNewline) deleted
    RequestContext SSL/Windows read-whole-file-into-memory fallback
    (doReadFileInternalonReadFile
    renderResponseBufferAndMetadata) streams via BufferedReader

    SendfileContext shrinks to {offset, remain, total} — only what
    renderMetadata reads.

    Range requests

    New src/bun.js/api/server/RangeRequest.zig — parses Range: bytes=...
    matching WebKit's parseRange semantics (case-insensitive unit,
    whitespace-tolerant, suffix/open forms; multi-range falls through to
    full body). Two-phase: parseRaw() captures the header without knowing
    total size (so RequestContext can store it past the uWS request
    buffer's lifetime), .resolve(total) validates against the stat'd size.

    Both paths now honor incoming Range: for whole-file 200 responses →
    206 + Content-Range / 416 + bytes */total. Range is ignored when the
    route has a non-200 status or the blob is already .slice()d.

    Bugs fixed

    • server.stop() hangs after any aborted file stream (#20965) —
      StreamTransfer.onAborted set has_ended_response before finish(),
      so route.onResponseComplete() was skipped and pending_requests was
      never decremented.
    • UAF when onReaderDone fires after abortfinish()
      unconditionally deref'd; second entry took refcount to 0 and the queued
      defer this.deref() hit freed memory.
    • fd leak on aborted sendfile from a fetch handler
      RequestContext.onAbort never closed sendfile.fd; deinit() didn't
      either. Now owned by FileResponseStream.deinit.
    • SSL/Windows file responses buffered the entire file — the
      doReadFileInternal fallback. Now streams.
    • shouldCloseConnection() always false on 416/empty paths — was
      called after detachResponse() nulled this.resp.
    • Error handler returning a file-backed Response was dropped
      has_sendfile_ctx was latched before open/stat validation.
    • Duplicate Content-Length on file responsesrenderMetadata
      wrote one, then uWS end() added another; now marked.
    • bytes=-N on a zero-length file returned 416 — RFC 9110 §14.1.3
      says positive suffix-length is satisfiable; now serves the (empty)
      representation.

    Tests

    • test/regression/issue/20965.test.ts — 5MB FileRoute, raw-TCP abort
      after first chunk, assert server.stop() resolves (fails on main with
      HUNG)
    • bun-serve-file.test.ts — Range tests (describe.each over FileRoute
      and fetch-handler paths):
      closed/open/suffix/past-EOF/clamped/multi-range/case-insensitive

    serve.test.ts 189 pass × 8 runs no ASAN; bun-serve-file 56 /
    static 34 / routes 40 / ssl 16; zig:check-all clean on all 12
    targets.


    Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@​users.noreply.github.com>

  • 04c255 Deflake upgrade test (#28841)

    What does this PR do?

    How did you verify your code works?

  • f96981 Fix build
  • 64e4f6 Revert "Fix build"

    This reverts commit d326498762eeedaf1eeb0ac2aeb6fdf735bbc6b2.

  • d32649 Fix build
  • b18f26 WebSocket client: support ws+unix:// and wss+unix:// (#29203)

    What does this PR do?

    Adds Unix domain socket support to the WebSocket client via the
    ws+unix:// and wss+unix:// URL schemes.

    // Plain
    const ws = new WebSocket("ws+unix:///tmp/app.sock");
    
    // With a request path (split on first ':', same as the npm `ws` package)
    const ws = new WebSocket("ws+unix:///tmp/app.sock:/api/stream?x=1");
    
    // TLS over a unix socket
    const ws = new WebSocket("wss+unix:///tmp/app.sock", {
      tls: { rejectUnauthorized: false },
    });
    • Host header defaults to localhost, matching Node's http.request({ socketPath }) and ws.
    • Proxies are ignored for unix URLs (the socket is local).
    • wss+unix:// selects the TLS socket context and runs the normal
      handshake over the domain socket.

    How did you verify your code works?

    New test file test/js/web/websocket/websocket-unix.test.ts covers:

    • echo over Bun.serve({ unix })
    • :path + query string parsing and Host header value
    • binary frames
    • connect failure when the socket file does not exist
    • SyntaxError on missing socket path
    • wss+unix:// against Bun.serve({ unix, tls })
    • round-trip from a spawned subprocess
     7 pass
     0 fail
    

    Existing websocket-client.test.ts and
    websocket-custom-headers.test.ts continue to pass.

    Implementation

    • WebSocket.cpp: recognise ws+unix: / wss+unix:, split pathname on
      the first : into socket path + request path, default host to
      localhost, skip proxy, pass the socket path through to Zig.
    • WebSocketUpgradeClient.zig: new unix_socket_path arg; when set,
      dial via Socket.connectUnixAnon on the existing per-SSL
      us_socket_context instead of the TCP connectPtr path. All downstream
      state (upgrade, adopt, deflate, custom SSL ctx) is unchanged.
    • headers.h: add the parameter to both
      Bun__WebSocketHTTP{,S}Client__connect externs.

    Fixes #4423


    Co-authored-by: robobun <robobun@​users.noreply.github.com>
    Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@​users.noreply.github.com>

  • 4d78bd Fix C++ files rebuilt with no changes
  • c39ed1 fix(serve): close fd on 304 / HEAD / bodiless paths in FileRoute (#29185)

    What

    Bun.serve static file routes (static: { "/path": new Response(Bun.file(...)) }) leaked one file descriptor per 304 Not
    Modified and per HEAD response. Under CDN-style traffic this exhausted
    the OS fd limit within minutes.

    Repro (before)

    const server = Bun.serve({
      port: 0,
      static: { "/test": new Response(Bun.file("/tmp/x.txt")) },
      fetch() { return new Response("fallback"); },
    });
    
    // Prime Last-Modified
    await (await fetch(`http://localhost:${server.port}/test`)).text();
    
    const before = require("fs").readdirSync("/proc/self/fd").length;
    const ifm = new Date(Date.now() + 86_400_000).toUTCString();
    
    for (let i = 0; i < 200; i++) {
      await (await fetch(`http://localhost:${server.port}/test`,
        { headers: { "If-Modified-Since": ifm } })).text();
    }
    for (let i = 0; i < 200; i++) {
      await (await fetch(`http://localhost:${server.port}/test`, { method: "HEAD" })).text();
    }
    
    console.log(require("fs").readdirSync("/proc/self/fd").length - before);
    // pre-fix: 400
    // post-fix: 0

    Cause

    FileRoute.on() (src/bun.js/api/server/FileRoute.zig) opens the
    backing file before selecting a status code, and only transfers fd
    ownership to StreamTransfer on the streaming path. Four early-return
    paths between the open and the transfer skipped the close entirely:

    • req.dateForHeader("if-modified-since") exception
    • this.lastModifiedDate() exception
    • 204 / 205 / 304 / 307 / 308 bodiless status-code switch
    • method == .HEAD branch

    Only the !can_serve_file branch correctly called
    bun.Async.Closer.close(fd, …). The 304 and HEAD paths are the dominant
    leak cases because they fire on every conditional request.

    Fix

    Close the fd on each early-return path in FileRoute.on(), matching the
    existing !can_serve_file pattern.

    Verification

    • Repro script: delta goes from 400 → 0.
    • test/regression/issue/29181.test.ts — asserts fd delta < 16 after
      200× 304 + 200× HEAD.
    • Test fails on baked bun 1.3.11 (delta=400) and passes on the debug
      build with the fix.
    • test/js/bun/http/serve-if-none-match.test.ts: 17/17 pass (no
      regressions on the 304 path).

    Fixes #29181
    Closes https://github.com/oven-sh/bun/pull/29183

    Co-authored-by: robobun <robobun@​users.noreply.github.com>

  • 6b9ee6 Implement X25519 deriveBits in SubtleCrypto (#29152)
  • 4b1d88 CI: fix unchecked exception in test failure previews
  • 0ffd1b perf: add butterfly fast path to JSArrayIterator (#29104)

    Summary

    Adds a fast path to JSArrayIterator that reads elements directly from
    the JSArray butterfly when the array has Int32 or Contiguous storage
    and a sane prototype chain, instead of calling JSObject::getIndex()
    per element.

    This generalizes the approach proposed in #26294 by putting the fast
    path inside JSArrayIterator.next() itself, so every existing call site
    benefits without code duplication.

    Changes

    • src/bun.js/bindings/bindings.cpp
    • Bun__JSArray__getContiguousVector() — returns
      butterfly->contiguous().data() when isJSArray && (Int32|Contiguous) && canDoFastIndexedAccess().
    • Bun__JSArray__contiguousVectorIsStillValid() — cheap revalidation of
      indexing type, butterfly identity, and publicLength.
    • src/bun.js/bindings/JSArrayIterator.ziginit() attempts the
      fast path; next() revalidates the butterfly before each direct read
      and falls back to getIndex if the array was mutated. Holes (encoded
      0) become js_undefined.

    Safety

    The revalidation mirrors JSC's fastArrayJoin
    (ArrayPrototypeInlines.h), which checks thisObject->butterfly() == &butterfly && originalLength == butterfly.publicLength() after each
    potentially side-effecting element conversion and bails to the generic
    path if the butterfly was reallocated or transitioned. This makes the
    iterator safe even when callers run user JS between next() calls (e.g.
    expect().toContainEqual() triggering a getter that mutates the
    iterated array).

    Benchmarks (Apple M4 Max, release, median of 4 alternating runs)

    benchmark baseline optimized speedup
    expect(arr).toContain(last) [1000 ints] 11493 ns 8031 ns
    1.43x
    expect(x).toBeOneOf(arr) [1000 ints] 13736 ns 10643 ns
    1.29x
    new Blob([100 strings + 100 buffers]) 9703 ns 8301 ns 1.17x
    new Blob([1000 strings]) 56817 ns 49630 ns 1.14x

    Tests

    13 cases in test/js/web/fetch/blob-array-fast-path.test.ts covering
    contiguous/Int32/sparse/frozen/derived arrays, holes, Array.prototype
    indexed-getter fallback, mixed types, non-ASCII, and array mutation
    during iteration via element side-effect.


    Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@​users.noreply.github.com>

  • 232473 fix(css): preserve leading @​layer statements when bundling (#28915)

    What

    Closes #28914.

    The CSS bundler's leading-rule filter in prepareCssAstsForChunk was
    unconditionally stripping every leading .layer_statement rule, which
    deleted the top-level @&ZeroWidthSpace;layer ordering declarations that Tailwind CSS
    (and anyone using cascade layers) depends on.

    Repro

    /* entry.css */
    @&ZeroWidthSpace;layer theme, base, components, utilities;
    
    @&ZeroWidthSpace;layer base {
      body { color: red; }
    }
    $ bun build ./entry.css
    /* entry.css */
    @&ZeroWidthSpace;layer base {
      body {
        color: red;
      }
    }

    The @&ZeroWidthSpace;layer theme, base, components, utilities; line is gone. Without
    it the cascade order is whatever happens to be emitted first, which is
    exactly the Tailwind breakage reported in #28914.

    Cause

    Regression from #27131 (e7cf4b77ba), which added .layer_statement to
    the leading-rule filter in
    src/bundler/linker_context/prepareCssAstsForChunk.zig:

    if (rule.* == .import or rule.* == .ignored or rule.* == .layer_statement) {} else {
        // slice off [0..ruleidx]
    }

    That fix wanted the filter to skip past leading @&ZeroWidthSpace;layer statements
    so it could reach and strip the interleaved @&ZeroWidthSpace;import rules underneath
    them (the target of #20546). But the filter mechanism is "drop
    everything up to the first non-match", so skipping past @&ZeroWidthSpace;layer also
    dropped it. For files with no @&ZeroWidthSpace;import layer(...) (Tailwind's shape),
    nothing else re-emits those layer names and the ordering information is
    lost.

    Fix

    Rewrite the filter as an in-place compaction:

    • Drop leading .import and .ignored rules.
    • Keep .layer_statement rules, compacting them forward.
    • Stop at the first rule of any other kind, then shift the tail to close
      the gap.

    This keeps the #20546 behavior (interleaved @&ZeroWidthSpace;import rules are still
    stripped) while preserving the layer ordering declarations that Tailwind
    needs.

    Verification

    • New regression test: test/regression/issue/28914.test.ts (4 cases —
      Tailwind-style statement + block, bare statement, statement + unlayered
      rule, multiple individual statements). All pass on the patched build,
      all fail on system bun.
    • Existing test/regression/issue/20546.test.ts still passes (2/2).
    • Full CSS bundler suite test/bundler/esbuild/css.test.ts passes
      (53/53).
    • Broader CSS parser suite test/js/bun/css/css.test.ts passes
      (1028/1028).

    Co-authored-by: Jarred Sumner <jarred@​jarredsumner.com>

  • 5c885f Fix neon CPU feature detection on macOS arm64 (#29153)

    Summary

    • aarch64_cpu_features() queried hw.optional.AdvSIMD, which does not
      exist on macOS. The documented key is hw.optional.arm.AdvSIMD (legacy
      alias hw.optional.neon).
    • Effect: the neon bit in bun_cpu_features() was never set on Apple
      Silicon. The other macOS aarch64 keys (hw.optional.floatingpoint,
      hw.optional.arm.FEAT_AES, hw.optional.armv8_crc32,
      hw.optional.arm.FEAT_LSE) are correct.
    $ sysctl hw.optional.AdvSIMD
    sysctl: unknown oid 'hw.optional.AdvSIMD'
    $ sysctl hw.optional.arm.AdvSIMD
    hw.optional.arm.AdvSIMD: 1

    Ref:
    https://developer.apple.com/documentation/kernel/1387446-sysctlbyname/determining_instruction_set_characteristics

    Test plan

    • sysctl hw.optional.arm.AdvSIMD returns 1 on Apple Silicon
    • bun --print 'require("bun:internal-for-testing").crash_handler.getCPUFeatures?.()'
      (or crash-report metadata) shows neon on macOS arm64
    • b93083 Support MKADDRESSBOOK HTTP method (#28955)

    Fixes #28954

    What

    Adds MKADDRESSBOOK to Bun's HTTP method allowlist. Before this change,
    Bun.serve would silently drop requests with method MKADDRESSBOOK and
    fetch() would rewrite them to GET.

    MKADDRESSBOOK is a CardDAV extension method (analogous to MKCALENDAR
    for CalDAV) used by Apple's Calendar & Contacts server and other CardDAV
    implementations to create an address book collection.

    Root cause

    The method name was missing from five duplicated allowlists:

    1. src/http/Method.zig — the Zig enum + ComptimeStringMap used by
      Bun.serve / fetch()
    2. src/bun.js/bindings/BunCommonStrings.cppHTTPMethod enum (must
      stay in sync with Method.zig) + toJS switch
    3. src/bun.js/bindings/BunCommonStrings.h — lazy interned JS string
      list
    4. src/js/internal/http.ts — the METHODS array exported as
      http.METHODS
    5. packages/bun-uws/src/HttpContext.hsupportedHttpMethods used
      when registering a * (catch-all) route handler. If the method isn't in
      this list, uWS never dispatches to the Zig handler, which is why raw TCP
      MKADDRESSBOOK requests were dropped before ever reaching
      Method.which().

    Fix

    Adds MKADDRESSBOOK in the alphabetically-correct slot in all five
    lists and shifts the numeric discriminants in Method.zig and
    BunCommonStrings.cpp by one (they must stay in lockstep).

    Verification

    Regression test at test/regression/issue/28954.test.ts covers three
    things:

    • fetch()Bun.serve round-trip preserves MKADDRESSBOOK
    • Raw TCP MKADDRESSBOOK / HTTP/1.1 reaches the Bun.serve handler
      (this exercises the uWS route dispatch path separately from fetch's
      client-side method validation)
    • http.METHODS contains MKADDRESSBOOK

    Without the fix all three tests fail; with the fix all three pass.

    Note: node:http uses llhttp (vendored under
    src/bun.js/bindings/node/http/llhttp/) which has its own method
    allowlist. Extending llhttp requires regenerating the parser and is out
    of scope for this issue — Bun.serve and fetch() are the primary
    paths.


    Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@​users.noreply.github.com>

  • ccfe26 build: gate parallel zig compiler back to darwin-only (#29138)

    Partially reverts #29092 (68e80dbdb1).

    Problem

    Fresh bun run build on Linux fails at link with every Zig-exported
    symbol undefined:

    [664/666] link bun-debug
    ld.lld: error: undefined symbol: Bun__reportUnhandledError
    ld.lld: error: undefined symbol: Bun__panic
    ... (every Zig export)
    

    The zig step itself reports success. Reproduced by
    oven-sh/bun-development-docker-image's Daily Docker Build on every run
    since Apr 9
    (example).

    Cause

    #29092 enabled the parallel-sema compiler with sharded LLVM codegen on
    Linux local builds. Sharded codegen on Linux goes through oven-sh/zig's
    self-hosted ELF -r merge to combine the per-shard .o files into
    bun-zig.o. #29092's compiler bump fixed a hang in that merge, but the
    merge output is still incomplete — getEmittedBin() installs a
    bun-zig.o missing the symbols. The subsequent bumps to 7d3c0c9b /
    445fc0cb haven't fixed it either.

    macOS uses the Mach-O merge path, which works (verified locally — single
    315MB .o with llvm_codegen_threads=16).

    Fix

    Gate the parallel compiler back to darwin-only until the ELF merge in
    oven-sh/zig is fixed. Linux local builds revert to the stable compiler
    (same as CI). No change for darwin or CI.

    Verification

    • bunx tsc --noEmit -p scripts/build/tsconfig.json clean
    • bun scripts/build.ts --configure-only on darwin → still selects
      ZIG_COMMIT_PARALLEL (build.ninja unchanged)
    • Linux path: hostOs !== "darwin"ZIG_COMMIT
      usingParallelCompiler=falsellvm_codegen_threads=0

    Closes #29132 on the bun side. Once this lands,
    oven-sh/bun-development-docker-image can revert its workaround and go
    back to plain bun run build.

  • 534982 Tweak pr comments script
  • 75e94b tls: fix tls.connect skipping hostname verification when servername omitted (#29096)

    Summary

    tls.connect({host, port}) without an explicit servername option was
    skipping hostname verification entirely and reporting authorized: true
    for any certificate that passed chain-of-trust. An on-path attacker
    presenting any CA-signed cert (e.g. a free Let's Encrypt cert for
    attacker.com) could MITM connections made by libraries like pg,
    ioredis, mysql2, and nodemailer that call tls.connect without
    setting servername.

    Root cause

    TLSSocket.prototype[buntls] (src/js/node/tls.ts) returned the host
    fallback under the key serverName (camelCase), but the consumer in
    src/js/node/net.ts read tls.servername (lowercase) — so
    self.servername stayed undefined and the guard && self.servername
    at the handshake callback skipped checkServerIdentity, falling through
    to authorized = true. The lowercase key only existed (via the
    ...this[ksecureContext] spread) when the user passed servername
    explicitly.

    The native layer provided no backstop: SSL_set1_host is declared but
    never called; only SNI is set.

    Fix

    Emit a single lowercase servername after the secureContext spread,
    computed as this.servername || ctx?.servername || host || "localhost".
    The native SSLConfig.fromJS already accepts lowercase via altNames: ["servername"] in SSLConfig.bindv2.ts, so SNI continues to work. This
    also fixes a secondary issue where native SNI was reading the camelCase
    key (= host) instead of the user's explicit servername option.

    Tests

    • New:
      test/js/node/tls/node-tls-connect-hostname-verification.test.ts
      written with node:test + node:assert so it runs identically under
      Node.js and Bun. Verified to pass in Node v25.2.1, fail on bun 1.3.11
      (authorized: true, checkServerIdentity never called), and pass with
      this fix.
    • Updated existing tests that were silently relying on the bug:
    • node-tls-cert.test.ts — the shared checkServerIdentity override
      asserted hostname === "localhost" while the connect helper used host: "127.0.0.1"; the assertion was dead code before and is now corrected.
      Cipher tests now pass the override since their cert is for
      agent10.example.com.
    • node-tls-cert-extra-ca.fixture.ts — adds a no-op
      checkServerIdentity (fixture tests CA loading, not hostname).
    • node-tls-connect.test.ts — 4 assertions on the internal
      [symbolConnectOptions].serverName updated to .servername.

    Verification

    node --experimental-strip-types --test test/js/node/tls/node-tls-connect-hostname-verification.test.ts  # 3 pass
    USE_SYSTEM_BUN=1 bun test test/js/node/tls/node-tls-connect-hostname-verification.test.ts               # 3 fail (bug repro)
    bun bd test test/js/node/tls/node-tls-{connect-hostname-verification,connect,cert}.test.ts              # 52 pass / 0 fail
    bun bd test test/js/node/tls/node-tls-{server,context}.test.ts                                          # 28 pass / 0 fail
    

    Unrelated pre-existing gap

    While probing, noticed server-side SNICallback does not receive the
    client's SNI value in Bun (same on 1.3.11). Not touched by this PR.

  • ad909a Fix segfault in StringDecoder.write() when result exceeds String::MaxLength (#29111)

    Reproduction

    const { StringDecoder } = require("string_decoder");
    new StringDecoder("utf8").write(Buffer.allocUnsafe(2 ** 31));
    panic(main thread): Segmentation fault at address 0x5
    

    Cause

    Bun__encoding__toString can throw (e.g. ERR_STRING_TOO_LONG when the
    decoded length exceeds JSC's String::MaxLength of 2³¹-1) and return
    encoded-0. JSStringDecoder::text() / fillLast() / write()
    propagate that as an empty JSValue via RELEASE_AND_RETURN, and the
    caller then did:

    JSString* str = text(vm, globalObject, bufPtr, length, offset).toString(globalObject);
    RETURN_IF_EXCEPTION(throwScope, JSC::jsUndefined());

    .toString() runs before the exception check. On an empty JSValue,
    isCell() is true, asCell() is nullptr, and asCell()->type()
    reads JSCell::m_type at offset 5 → segfault at address 0x5.

    Fix

    Store the JSValue, RETURN_IF_EXCEPTION, then .toString(). Same
    pattern applied to all affected sites in write() and end().

    Now throws ERR_STRING_TOO_LONG like Node.js instead of crashing.

    Verification

    • bun bd test test/js/node/string_decoder/string-decoder.test.js → 84
      pass / 0 fail
    • USE_SYSTEM_BUN=1 bun test ... -t "larger than String::MaxLength"
      fails (subprocess segfaults)
    • BUN_JSC_validateExceptionChecks=1 clean on all encoding paths
    • Node parallel tests test-string-decoder{,-end,-fuzz}.js all pass

    Co-authored-by: robobun <robobun@​users.noreply.github.com>
    Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@​users.noreply.github.com>

  • d81b0c fix(runtime-transpiler): don't read this after publishing TranspilerJob to main thread (#29128)

    What does this PR do?

    dispatchToMainThread() runs on a WorkPool thread and does:

    this.vm.transpiler_store.queue.push(this);
    this.vm.eventLoop().enqueueTaskConcurrent(...);

    After queue.push(this) publishes the job, the main thread can be woken
    by a ConcurrentTask enqueued by a different worker, call
    RuntimeTranspilerStore.runFromJSThread()queue.popBatch() (which
    drains all pushed jobs, including this one) → runFromJSThread()
    store.put(this). HiveArray.put() writes value.* = undefined across
    the slot, so by the time this worker executes the second line and
    reloads this.vm, it reads 0xAA poison and vm.eventLoop()
    dereferences a non-canonical pointer.

    In practice this only crashes on Windows x64 release builds: those are
    ReleaseSafe, so = undefined actually writes 0xAA (ReleaseFast is a
    no-op), and the generated code reloads this.vm after the xchg in
    queue.push rather than CSE'ing it. The window between the two
    instructions is a handful of cycles, so it only fires when the worker is
    preempted right after the push on an oversubscribed machine.

    Crash reports show up as Segmentation fault at address 0xFFFFFFFFFFFFFFFF with frames VirtualMachine.zig:eventLoop /
    arena_allocator.zig:deinit / atomic.zig:fetchSub (the innermost
    inline at each PC; the outermost frames are dispatchToMainThread /
    TranspilerJob.run / ThreadPool.Thread.run).

    Fix: snapshot vm into a local before queue.push(this) and never
    touch this after publishing.

    Fixes #15805
    Fixes #14681


    Co-authored-by: Jarred Sumner <jarred@​jarredsumner.com>

  • 775a36 fix(usockets): snapshot loop before context unref in us_connecting_socket_free (#29064)

    us_internal_socket_context_unlink_connecting_socket() calls
    us_socket_context_unref(), which can drop the last reference and queue
    the context for free. The two lines that follow then dereference
    c->context->loop. Snapshot the loop pointer before unlink runs.

    Matches the existing snapshot idiom in start_connections
    (context.c:596-597).

    Part of defensive hardening for the v1.3.11 crash signature (segfault at
    0x0 inside us_loop_run_bun_tick at loop.c:238, the inlined
    us_internal_socket_after_resolve / DNS drain path). No deterministic
    repro; ASAN stress test (WebSocket + cancel + spawnSync, 50 iters) runs
    clean on the debug build. Existing socket / node:net / DNS / proxy tests
    pass (proxy redirect timeouts are pre-existing on main).

    Companion PR: ref/unref the context across
    us_internal_socket_after_resolve.

  • 4c9061 build: bump ZIG_COMMIT_PARALLEL to 445fc0cbba (#29097)
  • f0c014 build: pass --locked to cargo for vendored Rust deps (#29095)

    Pass --locked to cargo build in emitCargo() so transitive Rust
    crate versions can't silently re-resolve against crates.io.

    Bumps LOLHTML_COMMIT one commit forward (e3aa54777127cd) because
    the old pin's c-api/Cargo.lock was stale (upstream forgot to
    regenerate it for 2.7.2). The new pin is the upstream lockfile fix; only
    c-api/Cargo.lock differs between the two — same lol-html 2.7.2 source.

  • 8e65e4 fix(websocket): double-free on ws.close() during proxy TLS handshake (#29101)

    What does this PR do?

    Calling ws.close() on a wss:// WebSoc

@michijs

michijs Bot commented Apr 13, 2026

Copy link
Copy Markdown
Contributor Author
Changelog:
Sourced from releases.
        ### v10.4.0-alpha.8## 10.4.0-alpha.8
  • A11y: Add aria-live announcements via @​react-aria/live-announcer - #33970, thanks @​copilot-swe-agent!

  • Actions: Fix state mutation and keep newest actions when limit reached - #34286, thanks @​Sidnioulz!

  • Core: Disable component manifest by default - #34408, thanks @​yannbf!

  • Core: Implement Git change detection - #34420, thanks @​ghengeveld!

  • Core: Rename preview.ts to preview.tsx in generated projects - #34396, thanks @​Sidnioulz!

  • Sidebar: Add dual-slot status icons for change detection and test results - #34346, thanks @​valentinpalkovic!

  • UI: Improve interactions panel accessibility - #34110, thanks @​anchmelev!

          ### v10.3.5## 10.3.5
    
  • Core: Disable component manifest by default - #34408, thanks @​yannbf!

[!NOTE]
Version >=0.5.0 of @&ZeroWidthSpace;storybook/addon-mcp enables component manifests again. If you're upgrading Storybook from version >= 10.3.0 to >= 10.3.5 and are using the MCP addon, you should also upgrade @&ZeroWidthSpace;storybook/addon-mcp to keep the docs toolset in the MCP server.

        ### v10.4.0-alpha.7## 10.4.0-alpha.7
  • CLI: Explicitly tell whether smoke tests passed or failed - #34419, thanks @​Sidnioulz!

  • Core: Add `ChangeDetectionService` and wire up builder-vite - #34369, thanks @​ghengeveld!

  • Maintenance: Extract parseFilterParam shared helper from tags and statuses modules - #34436, thanks @​mixelburg!

  • Sidebar: Add status-based filtering with refactored status architecture - #34339, thanks @​valentinpalkovic!

  • UI: Fix global shortcuts not showing region focus indicator - #34201, thanks @​Sidnioulz!

          ### v10.3.4## 10.3.4
    
  • Addon-a11y: Clear status transition timer on unmount to prevent test flake - #34203, thanks @​mixelburg!

  • Bug: Skip re-processing already transformed config files for CSF factories - #34273, thanks @​huang-julien!

  • Builder-Vite: Use djb2 hash to prevent variable name collisions in builder-vite - #34274, thanks @​chida09!

  • CLI: Prompt for init crash reports - #34316, thanks @​JReinhold!

  • CSF4: Fix duplicate preview loading issue in Vitest - #34361, thanks @​valentinpalkovic!

  • Core: Fix WebSocket connection for StackBlitz/WebContainers - #34281, thanks @​ghengeveld!

  • React-Docgen: Try .tsx fallback when resolving .js ESM imports in docgen resolvers - #34393, thanks @​mixelburg!

  • React-Vite: Upgrade @​joshwooding/vite-plugin-react-docgen-typescript to 0.7.0 - #34335, thanks @​beeswhacks!

          ### v10.4.0-alpha.6## 10.4.0-alpha.6
    
  • Builder-Vite: Add onModuleGraphChange method - #34323, thanks @​ghengeveld!

  • CLI: Add automigrate check for 'storybook' package name conflict - #34290, thanks @​whdjh!

  • CLI: Prompt for init crash reports - #34316, thanks @​JReinhold!

  • CSF4: Fix duplicate preview loading issue in Vitest - #34361, thanks @​valentinpalkovic!

  • Maintenance: Add assertions outside step incorrectly nested in interactions panel - #34296, thanks @​majiayu000!

  • Maintenance: Extract getBuilderOptions helper across framewo… - #34260, thanks @​alex-js-ltd!

  • Maintenance: Use errorToErrorLike in boot-test-runner for consistent stack deduplication - #34385, thanks @​mixelburg!

  • Onboarding: Fix checklist MDX instructions - #33193, thanks @​kylegach!

  • React-Docgen: Add tsconfig fallback chain and warning for monorepos - #34353, thanks @​viditkbhatnagar!

  • React-Docgen: Try .tsx fallback when resolving .js ESM imports in docgen resolvers - #34393, thanks @​mixelburg!

  • UI: Fix mobile navigation when renderLabel returns a React node - #34262, thanks @​Nathan54Villaume!

  • Vite: Use vite hook filter for performance improvements - #34022, thanks @​huang-julien!

          ### v10.4.0-alpha.5## 10.4.0-alpha.5
    
  • Addon-a11y: Clear status transition timer on unmount to prevent test flake - #34203, thanks @​mixelburg!

  • Builder-Vite: Use djb2 hash to prevent variable name collisions in builder-vite - #34274, thanks @​chida09!

  • CLI: Fix Next.js Vite automigration corrupting configs already using `@​storybook/nextjs-vite` - #34249, thanks @​nathanjessen!

  • Core: Add changeDetection feature flag - #34314, thanks @​valentinpalkovic!

  • Manager: URL-based tag filter state + filter-aware initial story selection - #34283, thanks @​valentinpalkovic!

  • React-Vite: Upgrade @​joshwooding/vite-plugin-react-docgen-typescript to 0.7.0 - #34335, thanks @​beeswhacks!

  • Refactor: Extract shared `PseudoStateGrid` component in pseudo-states stories - #34334, thanks @​copilot-swe-agent!

          ### v10.4.0-alpha.4## 10.4.0-alpha.4
    
  • Addon-Docs: Add Reset story button to re-render stories in docs - #34086, thanks @​6810779s!

  • Code: Fix inline code blocks inside links removing link affordance - #33903, thanks @​yatishgoel!

  • Controls: Add maxPresetColors option to ColorControl - #33998, thanks @​mixelburg!

  • Core: Fix WebSocket connection for StackBlitz/WebContainers - #34281, thanks @​ghengeveld!

  • Dependencies: Update `vite-plugin-storybook-nextjs` to ^3.2.4 - #34280, thanks @​k35o!

  • React: Add component metadata extraction via Volar-style LanguageService - #33914, thanks @​kasperpeulen!

  • StatusValue: Add 'status-value:<new|modified|affected>' - #34305, thanks @​valentinpalkovic!

  • UI: Ensure Controls panel can scroll horizontally for now - #34248, thanks @​Sidnioulz!

          ### v10.4.0-alpha.3## 10.4.0-alpha.3
    
  • Addon-Vitest: Streamline vite(st) config detection across init and postinstall - #34193, thanks @​valentinpalkovic!

  • Angular: Use Story ID for renderer IDs (including standalone stories) - #33982, thanks @​ValentinFunk!

  • Bug: Skip re-processing already transformed config files for CSF factories - #34273, thanks @​huang-julien!

  • CLI: Shorten CTA link messages - #34236, thanks @​shilman!

  • React Native Web: Fix vite8 support by bumping vite-plugin-rnw - #34231, thanks @​dannyhw!

          ### v10.3.3## 10.3.3
    
  • Addon-Vitest: Streamline vite(st) config detection across init and postinstall - #34193, thanks @​valentinpalkovic!

          ### v10.3.2## 10.3.2
    
  • CLI: Shorten CTA link messages - #34236, thanks @​shilman!

  • React Native Web: Fix vite8 support by bumping vite-plugin-rnw - #34231, thanks @​dannyhw!

          ### v10.4.0-alpha.2## 10.4.0-alpha.2
    
  • CLI: Use npm info to fetch versions in repro command - #34214, thanks @​yannbf!

  • Core: Prevent story-local viewport from persisting in URL - #34153, thanks @​ghengeveld!

  • Maintenance: Remove dead-code copy of wrap-getAbsolutePath-utils - #34168, thanks @​mixelburg!

  • Security: Makes sure `serialize-javascript` is at latest version - #34034, thanks @​50bbx!

          ### v10.4.0-alpha.1## 10.4.0-alpha.1
    
  • Docs: Ensure unique control id attributes across multiple Controls blocks - #34021, thanks @​TheSeydiCharyyev!

          ### v10.3.1## 10.3.1
    
  • CLI: Use npm info to fetch versions in repro command - #34214, thanks @​yannbf!

  • Core: Prevent story-local viewport from persisting in URL - #34153, thanks @​ghengeveld!

          ### v10.4.0-alpha.0## 10.4.0-alpha.0
    
    
    
    
          ### v10.3.0## 10.3.0
    

> Improved developer experience, AI-assisting tools, and broader ecosystem support

Storybook 10.3 contains hundreds of fixes and improvements including:

  • 🤖 Storybook MCP: Agentic component dev, docs, and test (Preview release for React)
  • ⚡ Vite 8 support
  • ▲ Next.js 16.2 support
  • 📝 ESLint 10 support
  • 〰️ Addon Pseudo-States: Tailwind v4 support
  • 🔧 Addon-Vitest: Simplified configuration - no more setup files required
  • ♿ Numerous accessibility improvements across the UI
List of all updates
  • A11y: Add ScrollArea prop focusable for when it has static children - #33876, thanks @​Sidnioulz!
  • A11y: Ensure popover dialogs have an ARIA label - #33500, thanks @​gayanMatch!
  • A11y: Make resize handles for addon panel and sidebar accessible #33980
  • A11y: Underline MDX links for WCAG SC 1.4.1 compliance - #33139, thanks @​NikhilChowdhury27!
  • Actions: Add expandLevel parameter to configure tree depth - #33977, thanks @​mixelburg!
  • Actions: Fix HandlerFunction type to support async callback props - #33864, thanks @​mixelburg!
  • Addon-Docs: Add React as optimizeDeps entry - #34176, thanks @​valentinpalkovic!
  • Addon-Docs: Add support for `sourceState: 'none'` to canvas block parameters - #33627, thanks @​quisido!
  • Addon-docs: Restore `docs.components` overrides for doc blocks #34111
  • Addon-Vitest: Add channel API to programmatically trigger test runs - #33206, thanks @​JReinhold!
  • Addon-Vitest: Handle additional vitest config export patterns in postinstall - #34106, thanks @​copilot-swe-agent!
  • Addon-Vitest: Make Playwright `--with-deps` platform-aware to avoid `sudo` prompt on Linux #34121
  • Addon-Vitest: Refactor Vitest setup to eliminate the need for a dedicated setup file - #34025, thanks @​valentinpalkovic!
  • Addon-Vitest: Support Vitest canaries - #33833, thanks @​valentinpalkovic!
  • Angular: Add moduleResolution: bundler to tsconfig - #34085, thanks @​valentinpalkovic!
  • Angular: only load webpack dependencies on demand - #34043, thanks @​sod!
  • Angular: Storybook fails with unknown option silent - #33736, thanks @​tanujbhaud!
  • Build: Update @​types/node - #34037, thanks @​valentinpalkovic!
  • Builder-Vite: Centralize Vite plugins for builder-vite and addon-vitest - #33819, thanks @​valentinpalkovic!
  • Builder-Vite: Fix cold-cache vitest failures for story paths containing glob special characters - #34044, thanks @​copilot-swe-agent!
  • Builder-Vite: Use preview annotations as entry points for optimizeDeps - #33875, thanks @​copilot-swe-agent!
  • CI: declare explicit permissions for stale and weekly cron workflows - #33902, thanks @​Rohan5commit!
  • CLI: Add vike CLI metadata - #34189, thanks @​yannbf!
  • CLI: Avoid hanging of postinstall during init - #34175, thanks @​valentinpalkovic!
  • CLI: Fix onboarding not opening - #33609, thanks @​ndelangen!
  • CLI: Show multiple favicons warning as debug message - #34069, thanks @​remino!
  • Cli: Use npm for registry URL in PNPMProxy to avoid workspace errors - #33571, thanks @​ia319!
  • Controls: Allow story argTypes to override control: false from meta - #33729, thanks @​jonathan-fulton!
  • Controls: Fix Object contrast issue and tidy up code - #33923, thanks @​Sidnioulz!
  • Core: Ensure telemetry is never triggered on initial load of checklist data - #33918, thanks @​ghengeveld!
  • Core: Fix event source URL based on refId when multiple iframes share the same origin #34105
  • Core: Fix false-positive CJS warning when 'exports' appears in strings or comments - #33572, thanks @​reeseo3o!
  • Core: Fix handling complex viewport sizes #33615
  • Core: Fix iframe reference for composed Storybook on a subpath #34100
  • Core: Fix typos: occured -> occurred, recieves -> receives - #33727, thanks @​jonathan-fulton!
  • Core: Handle BROWSER=none correctly and improve error messages - #33730, thanks @​jonathan-fulton!
  • Core: Ignore empty files when indexing - #33782, thanks @​JReinhold!
  • Core: Register CORS middleware before index.json route - #33728, thanks @​jonathan-fulton!
  • Core: Revert Pull Request #33420 from Maelryn/fix/copy-button-overlap - #33877, thanks @​Sidnioulz!
  • Core: Zoom tool refinements - Hide reset button when value is initial - #33635, thanks @​superLipbalm!
  • Docs: Edit JSON button is now accessible at 320x256 viewport (WCAG 2.1 Reflow test) - #33707, thanks @​TheSeydiCharyyev!
  • Docs: Make CSS ordering in DocsContainer more predictable #34015
  • ESLint-plugin: Disallow extra properties in eslint plugin rule options - #32056, thanks @​andreww2012!
  • ESLint: bail out config setup if eslint-plugin-storybook is already imported - #34089, thanks @​copilot-swe-agent!
  • HMR: Fix race conditions causing stale play functions to fire on re-rendered stories - #33930, thanks @​copilot-swe-agent!
  • Maintenance: Revert pull request #33930 HMR events - #34190, thanks @​yannbf!
  • Maintenance: Use std-env for AI agent detection in telemetry #34114
  • Manifest: Add docs entries to debugger - #33607, thanks @​JReinhold!
  • Manifest: Rename `experimentalComponentsManifest` → `componentsManifest`, default to `true` #33974
  • Manifests: Fix Attached MDX causing wrong component entries #34101
  • Next.js-Vite: Fix failing postcss mutation - #33879, thanks @​valentinpalkovic!
  • Next.js: Move image configuration from FrameworkOptions to parameters #32639, thanks @​y-hsgw!
  • Preact: Support inferring props from component types - #33828, thanks @​JoviDeCroock!
  • React Native Web: Fix inconsistent example stories - #33891, thanks @​danielalanbates!
  • React: Add react-docgen-typescript to component manifest - #33818, thanks @​kasperpeulen!
  • Revert "Toolbar: Remove extra toolbar divider when zoom controls not shown" - #34099, thanks @​valentinpalkovic!
  • Test: Fix clearing mocks in Vitest #34078
  • Test: Update @​testing-library/jest-dom - #33928, thanks @​valentinpalkovic!
  • Theming: Export interface declaration for `ThemesGlobals` - #33343, thanks @​icopp!
  • Toolbar: Remove extra toolbar divider when zoom controls not shown - #33731, thanks @​jonathan-fulton!
  • UI: Allow direct kb/mouse actions on zoom tool button - #33496, thanks @​Sidnioulz!
  • UI: Avoid large animation for reduced motion users - #33530, thanks @​Sidnioulz!
  • UI: Ensure Link without href is keyboard-reachable - #34163, thanks @​Sidnioulz!
  • UI: Fix `z-index` problem with `popover`s and `modal`s nesting - #33757, thanks @​ndelangen!
  • UI: Fix code/copy buttons overlap with content - #33889, thanks @​Sidnioulz!
  • UI: Fix Copy button overlapping code in portrait mode - #33420, thanks @​Maelryn!
  • UI: Fix modal text selection - #33967, thanks @​Sidnioulz!
  • UI: Fix tab navigation after closing addon panel - #33971, thanks @​copilot-swe-agent!
  • UI: Handle kb nav edge cases when preview and panel are hidden - #33588, thanks @​Sidnioulz!
  • UI: Hide addon panel Drag on pages without a panel - #34162, thanks @​Sidnioulz!
  • UI: Hide manifest tag for now - #34165, thanks @​Sidnioulz!
  • UI: Make disabled Buttons keyboard-focusable - #34166, thanks @​Sidnioulz!
  • UI: Make TagsFilter state persistent #33374
  • UI: Use correct selector for addon panel focus check - #34164, thanks @​Sidnioulz!
  • UI: Zoom faster when pressing shift - #34185, thanks @​Sidnioulz!
  • Viewport: Skip viewport validation before parameters load - #33794, thanks @​ia319!
  • Vite: Add mock entries to optimizeDeps.entries - #34167, thanks @​valentinpalkovic!
  • Vue3-Vite: Allow paths in docgen tsconfig option #32310, thanks @​Thomaash!
        ### v10.3.0-beta.3## 10.3.0-beta.3
  • Addon-Vitest: Handle additional vitest config export patterns in postinstall - #34106, thanks @​copilot-swe-agent!

  • CLI: Add vike CLI metadata - #34189, thanks @​yannbf!

  • Maintenance: Revert pull request #33930 HMR events - #34190, thanks @​yannbf!

  • UI: Ensure Link without href is keyboard-reachable - #34163, thanks @​Sidnioulz!

  • UI: Zoom faster when pressing shift - #34185, thanks @​Sidnioulz!

  • Vite: Add mock entries to optimizeDeps.entries - #34167, thanks @​valentinpalkovic!

          ### v10.3.0-beta.2## 10.3.0-beta.2
    
  • UI: Hide addon panel Drag on pages without a panel - #34162, thanks @​Sidnioulz!

  • UI: Hide manifest tag for now - #34165, thanks @​Sidnioulz!

  • UI: Make disabled Buttons keyboard-focusable - #34166, thanks @​Sidnioulz!

  • UI: Use correct selector for addon panel focus check - #34164, thanks @​Sidnioulz!

  • Vue: Make globals reactive in decorators - #34116, thanks @​Sidnioulz!

          ### v10.3.0-beta.1## 10.3.0-beta.1
    
  • Addon-Docs: Add React as optimizeDeps entry - #34176, thanks @​valentinpalkovic!

  • CLI: Avoid hanging of postinstall during init - #34175, thanks @​valentinpalkovic!

          ### v10.3.0-beta.0## 10.3.0-beta.0
    
  • Test: Fix clearing mocks in Vitest #34078

  • Core: Fix event source URL based on refId when multiple iframes share the same origin #34105

  • UI: Make TagsFilter state persistent #33374

  • A11y: Make resize handles for addon panel and sidebar accessible #33980

  • Maintenance: Use std-env for AI agent detection in telemetry #34114

  • Addon-Vitest: Make Playwright --with-deps platform-aware to avoid sudo prompt on Linux #34121

  • Addon-docs: Restore docs.components overrides for doc blocks #34111

  • Maintenance: Support vite-plugin-svelte7 which supports Vite 8 #34115

  • Core: Fix handling complex viewport sizes #33615

  • Core: Fix iframe reference for composed Storybook on a subpath #34100

  • Manifest: Rename experimentalComponentsManifestcomponentsManifest, default to true #33974

  • Manifests: Fix Attached MDX causing wrong component entries #34101

  • Vue3-Vite: Allow paths in docgen tsconfig option #32310, thanks @​Thomaash!

  • Next.js: Move image configuration from FrameworkOptions to parameters #32639, thanks @​y-hsgw!

  • Docs: Make CSS ordering in DocsContainer more predictable #34015

          ### v10.3.0-alpha.17## 10.3.0-alpha.17
    
  • Core: Correctly fallback to first detected vitest config file - #33865, thanks @​yannbf!

  • ESLint-plugin: Disallow extra properties in eslint plugin rule options - #32056, thanks @​andreww2012!

  • ESLint: bail out config setup if eslint-plugin-storybook is already imported - #34089, thanks @​copilot-swe-agent!

  • Revert "Toolbar: Remove extra toolbar divider when zoom controls not shown" - #34099, thanks @​valentinpalkovic!

          ### v10.2.19## 10.2.19
    
  • Maintenance: Support vite-plugin-svelte@​7 which supports Vite 8 - #34115, thanks @​valentinpalkovic!

  • Vite: Support Vite 8 - #33788, thanks @​valentinpalkovic!

          ### v10.2.18## 10.2.18
    
  • Core: Correctly fallback to first detected vitest config file - #33865, thanks @​yannbf!

  • Core: Fix error reporting in ManagerErrorBoundary - #33915, thanks @​ghengeveld!

          ### v10.3.0-alpha.16## 10.3.0-alpha.16
    
  • A11y: Underline MDX links for WCAG SC 1.4.1 compliance - #33139, thanks @​NikhilChowdhury27!

  • Angular: Add moduleResolution: bundler to tsconfig - #34085, thanks @​valentinpalkovic!

  • Angular: only load webpack dependencies on demand - #34043, thanks @​sod!

  • CLI: Show multiple favicons warning as debug message - #34069, thanks @​remino!

  • Core: Fix error reporting in ManagerErrorBoundary - #33915, thanks @​ghengeveld!

  • Vite: Support Vite 8 - #33788, thanks @​valentinpalkovic!

          ### v10.3.0-alpha.15## 10.3.0-alpha.15
    
  • Actions: Add expandLevel parameter to configure tree depth - #33977, thanks @​mixelburg!

  • Actions: Fix HandlerFunction type to support async callback props - #33864, thanks @​mixelburg!

  • Addon-Vitest: Refactor Vitest setup to eliminate the need for a dedicated setup file - #34025, thanks @​valentinpalkovic!

  • Build: Update @​types/node - #34037, thanks @​valentinpalkovic!

  • Builder-Vite: Fix cold-cache vitest failures for story paths containing glob special characters - #34044, thanks @​copilot-swe-agent!

  • CI:: declare explicit permissions for stale and weekly cron workflows - #33902, thanks @​Rohan5commit!

  • Core: Add vike metadata frameworks - #33965, thanks @​yannbf!

  • Core: Resolve builder preset path correctly in pnpm strict mode - #34032, thanks @​braedenfoster!

  • Core: Update default allowed hosts in host validation middleware - #34045, thanks @​ghengeveld!

  • Next.js: Add support for v16.2 - #34046, thanks @​valentinpalkovic!

  • UI: Fix code/copy buttons overlap with content - #33889, thanks @​Sidnioulz!

  • UI: Fix modal text selection - #33967, thanks @​Sidnioulz!

  • UI: Fix tab navigation after closing addon panel - #33971, thanks @​copilot-swe-agent!

  • UI: Handle kb nav edge cases when preview and panel are hidden - #33588, thanks @​Sidnioulz!

          ### v10.2.17## 10.2.17
    
  • Next.js: Add support for v16.2 - #34046, thanks @​valentinpalkovic!

          ### v10.2.16## 10.2.16
    
  • CSF-Factories: Fix ConfigFile parser false warning on `definePreview({...}).type()` export default - #33885, thanks @​copilot-swe-agent!

  • Core: Add host/origin validation to requests and websocket connections - #33835, thanks @​ghengeveld!

  • Core: Add vike metadata frameworks - #33965, thanks @​yannbf!

  • Core: Resolve builder preset path correctly in pnpm strict mode - #34032, thanks @​braedenfoster!

  • Core: Update default allowed hosts in host validation middleware - #34045, thanks @​ghengeveld!

          ### v9.1.20## 9.1.20
    
  • Add request validation

          ### v10.3.0-alpha.14## 10.3.0-alpha.14
    
  • CSF-Factories: Fix ConfigFile parser false warning on `definePreview({...}).type()` export default - #33885, thanks @​copilot-swe-agent!

  • Core: Add host/origin validation to requests and websocket connections - #33835, thanks @​ghengeveld!

  • Core: Storybook failed to load iframe.html when publishing - #33896, thanks @​danielalanbates!

  • Core: Zoom tool refinements - Hide reset button when value is initial - #33635, thanks @​superLipbalm!

  • Docs: Edit JSON button is now accessible at 320x256 viewport (WCAG 2.1 Reflow test) - #33707, thanks @​TheSeydiCharyyev!

  • Manager-API: Update refs sequentially in experimental_setFilter - #33958, thanks @​ia319!

  • UI: Allow direct kb/mouse actions on zoom tool button - #33496, thanks @​Sidnioulz!

Commit history:
  • 5647e6 Merge pull request #34440 from storybookjs/cli/node-version-check-init

    CLI: Streamline Node.js version detection code

  • 3694b0 Simplify code
  • a8bc7b Remove backup node version warning as old nodes crash earlier
  • 20c543 Revert changes to Preflight check tests
  • 0aecc8 Removing whitespace from diff
  • ee3330 Remove node version prompt, only improve check and output
  • 82efeb refactor tests
  • a3ca0f Handle side effects of CI exclusion for tests
  • c4a96b Fix linting and formatting
  • e8d657 fix: nvmrc precision logic, detect-indent for JSON, options.yes guard

    • Add NodeVersionPrecision type and precision field to parseNodeVersionString
      so callers know if the input was major-only, major.minor, or full
    • Add mode:'nvmrc' option to isNodeVersionSupported: major-only "22" means
      "latest 22.x" (supported), not 22.0.0 (which is not); major.minor "22.14"
      checks at minor level rather than treating as 22.14.0
    • Use mode:'nvmrc' + precision in PreflightCheckCommand and node-version-check
      nvmrc check paths so users with ".nvmrc: 22" are not incorrectly prompted
    • Replace naive indent detection in updateEnginesNode with detect-indent so
      tab-indented JSON is preserved correctly (not converted to spaces)
    • Add options.yes === true to non-interactive guard alongside TTY/CI checks
    • Add nvmrc mode tests, precision assertions in parseNodeVersionString tests,
      and tab/minified JSON indentation tests for updateEnginesNode

    Agent-Logs-Url: https://github.com/storybookjs/storybook/sessions/7540f41d-9b80-4e83-a4ec-738e331cc43d

    Co-authored-by: Sidnioulz <5108577+Sidnioulz@​users.noreply.github.com>

  • b2e3e3 fix: address PR review feedback on node-version checks

    • Bound find.up('.nvmrc') search to project root via last: getProjectRoot()
      to prevent reading/modifying unrelated .nvmrc files up the directory tree
    • Add unit tests for bounded search behavior
    • Skip interactive prompts in CI/non-interactive environments in both
      PreflightCheckCommand and handleUnsupportedNodeRuntime
    • Wrap file update calls in try/catch in promptVersionBump so init
      continues on write errors
    • Fix engines.node runtime option to use >=${major}.${minor} format
      (not full patch version) for consistency with other choices
    • Emit combined exit message when both .nvmrc and engines.node are bumped

    Agent-Logs-Url: https://github.com/storybookjs/storybook/sessions/37cce97f-827b-493f-8d63-83550dcdf9f5

    Co-authored-by: Sidnioulz <5108577+Sidnioulz@​users.noreply.github.com>

  • 25cd8f Show higher quality error message when possible
  • dc24eb refactor: use shared constants and add declared version bump in create-storybook bin entry
  • f9b3fe feat: add unsupported Node.js runtime handler with declared version bump flow
  • 89d2e4 feat: check declared Node.js version in PreflightCheckCommand and offer to bump
  • a78cb9 refactor: use shared Node.js version constants in dispatcher and cli-storybook
  • 9e40df feat: re-export node-version utilities from common
  • 4123da feat: add shared Node.js version constants, utilities, detection, and update functions
  • aae6c9 Merge pull request #34498 from storybookjs/change-detection-startup-performance

    Core: Improve startup performance by deferring change detection initialization

  • 702291 Merge pull request #34502 from storybookjs/docs/ai_contribution_guide

    Docs: Add AI contributions guide in contributing.md and documentation

  • ee5ddc Docs: update contribution guide
  • 6c8f23 Docs: update contribution guideline for AI assisted PR
  • eaff7f Initialize change detection only once preview is ready
  • ad5c2a Merge pull request #34494 from storybookjs/copilot/accessible-rabbit

    Nextjs: Handle node builtin webpack imports

  • ae7abd Nextjs: normalize node builtin webpack imports

    Co-authored-by: Copilot <223556219+Copilot@​users.noreply.github.com>

  • 370524 Merge pull request #34445 from storybookjs/change-detection-windows

    Core: Normalize file paths in ChangeDetectionService and trace-changed for Windows support

  • 2c99f1 Update CHANGELOG.md for v10.3.5 [skip ci]
  • ac76d4 Merge branch 'next-release' into next
  • 7b51dd Bump version from "10.4.0-alpha.7" to "10.4.0-alpha.8" [skip ci]
  • 088fa5 Merge pull request #34448 from storybookjs/version-non-patch-from-10.4.0-alpha.7

    Release: Prerelease 10.4.0-alpha.8

@michijs

michijs Bot commented Apr 13, 2026

Copy link
Copy Markdown
Contributor Author

Bump @​storybook/builder-vite from 9.1.3 to 10.3.5

Changelog:
Sourced from releases.
        ### v10.4.0-alpha.8## 10.4.0-alpha.8
  • A11y: Add aria-live announcements via @​react-aria/live-announcer - #33970, thanks @​copilot-swe-agent!

  • Actions: Fix state mutation and keep newest actions when limit reached - #34286, thanks @​Sidnioulz!

  • Core: Disable component manifest by default - #34408, thanks @​yannbf!

  • Core: Implement Git change detection - #34420, thanks @​ghengeveld!

  • Core: Rename preview.ts to preview.tsx in generated projects - #34396, thanks @​Sidnioulz!

  • Sidebar: Add dual-slot status icons for change detection and test results - #34346, thanks @​valentinpalkovic!

  • UI: Improve interactions panel accessibility - #34110, thanks @​anchmelev!

          ### v10.3.5## 10.3.5
    
  • Core: Disable component manifest by default - #34408, thanks @​yannbf!

[!NOTE]
Version >=0.5.0 of @&ZeroWidthSpace;storybook/addon-mcp enables component manifests again. If you're upgrading Storybook from version >= 10.3.0 to >= 10.3.5 and are using the MCP addon, you should also upgrade @&ZeroWidthSpace;storybook/addon-mcp to keep the docs toolset in the MCP server.

        ### v10.4.0-alpha.7## 10.4.0-alpha.7
  • CLI: Explicitly tell whether smoke tests passed or failed - #34419, thanks @​Sidnioulz!

  • Core: Add `ChangeDetectionService` and wire up builder-vite - #34369, thanks @​ghengeveld!

  • Maintenance: Extract parseFilterParam shared helper from tags and statuses modules - #34436, thanks @​mixelburg!

  • Sidebar: Add status-based filtering with refactored status architecture - #34339, thanks @​valentinpalkovic!

  • UI: Fix global shortcuts not showing region focus indicator - #34201, thanks @​Sidnioulz!

          ### v10.3.4## 10.3.4
    
  • Addon-a11y: Clear status transition timer on unmount to prevent test flake - #34203, thanks @​mixelburg!

  • Bug: Skip re-processing already transformed config files for CSF factories - #34273, thanks @​huang-julien!

  • Builder-Vite: Use djb2 hash to prevent variable name collisions in builder-vite - #34274, thanks @​chida09!

  • CLI: Prompt for init crash reports - #34316, thanks @​JReinhold!

  • CSF4: Fix duplicate preview loading issue in Vitest - #34361, thanks @​valentinpalkovic!

  • Core: Fix WebSocket connection for StackBlitz/WebContainers - #34281, thanks @​ghengeveld!

  • React-Docgen: Try .tsx fallback when resolving .js ESM imports in docgen resolvers - #34393, thanks @​mixelburg!

  • React-Vite: Upgrade @​joshwooding/vite-plugin-react-docgen-typescript to 0.7.0 - #34335, thanks @​beeswhacks!

          ### v10.4.0-alpha.6## 10.4.0-alpha.6
    
  • Builder-Vite: Add onModuleGraphChange method - #34323, thanks @​ghengeveld!

  • CLI: Add automigrate check for 'storybook' package name conflict - #34290, thanks @​whdjh!

  • CLI: Prompt for init crash reports - #34316, thanks @​JReinhold!

  • CSF4: Fix duplicate preview loading issue in Vitest - #34361, thanks @​valentinpalkovic!

  • Maintenance: Add assertions outside step incorrectly nested in interactions panel - #34296, thanks @​majiayu000!

  • Maintenance: Extract getBuilderOptions helper across framewo… - #34260, thanks @​alex-js-ltd!

  • Maintenance: Use errorToErrorLike in boot-test-runner for consistent stack deduplication - #34385, thanks @​mixelburg!

  • Onboarding: Fix checklist MDX instructions - #33193, thanks @​kylegach!

  • React-Docgen: Add tsconfig fallback chain and warning for monorepos - #34353, thanks @​viditkbhatnagar!

  • React-Docgen: Try .tsx fallback when resolving .js ESM imports in docgen resolvers - #34393, thanks @​mixelburg!

  • UI: Fix mobile navigation when renderLabel returns a React node - #34262, thanks @​Nathan54Villaume!

  • Vite: Use vite hook filter for performance improvements - #34022, thanks @​huang-julien!

          ### v10.4.0-alpha.5## 10.4.0-alpha.5
    
  • Addon-a11y: Clear status transition timer on unmount to prevent test flake - #34203, thanks @​mixelburg!

  • Builder-Vite: Use djb2 hash to prevent variable name collisions in builder-vite - #34274, thanks @​chida09!

  • CLI: Fix Next.js Vite automigration corrupting configs already using `@​storybook/nextjs-vite` - #34249, thanks @​nathanjessen!

  • Core: Add changeDetection feature flag - #34314, thanks @​valentinpalkovic!

  • Manager: URL-based tag filter state + filter-aware initial story selection - #34283, thanks @​valentinpalkovic!

  • React-Vite: Upgrade @​joshwooding/vite-plugin-react-docgen-typescript to 0.7.0 - #34335, thanks @​beeswhacks!

  • Refactor: Extract shared `PseudoStateGrid` component in pseudo-states stories - #34334, thanks @​copilot-swe-agent!

          ### v10.4.0-alpha.4## 10.4.0-alpha.4
    
  • Addon-Docs: Add Reset story button to re-render stories in docs - #34086, thanks @​6810779s!

  • Code: Fix inline code blocks inside links removing link affordance - #33903, thanks @​yatishgoel!

  • Controls: Add maxPresetColors option to ColorControl - #33998, thanks @​mixelburg!

  • Core: Fix WebSocket connection for StackBlitz/WebContainers - #34281, thanks @​ghengeveld!

  • Dependencies: Update `vite-plugin-storybook-nextjs` to ^3.2.4 - #34280, thanks @​k35o!

  • React: Add component metadata extraction via Volar-style LanguageService - #33914, thanks @​kasperpeulen!

  • StatusValue: Add 'status-value:<new|modified|affected>' - #34305, thanks @​valentinpalkovic!

  • UI: Ensure Controls panel can scroll horizontally for now - #34248, thanks @​Sidnioulz!

          ### v10.4.0-alpha.3## 10.4.0-alpha.3
    
  • Addon-Vitest: Streamline vite(st) config detection across init and postinstall - #34193, thanks @​valentinpalkovic!

  • Angular: Use Story ID for renderer IDs (including standalone stories) - #33982, thanks @​ValentinFunk!

  • Bug: Skip re-processing already transformed config files for CSF factories - #34273, thanks @​huang-julien!

  • CLI: Shorten CTA link messages - #34236, thanks @​shilman!

  • React Native Web: Fix vite8 support by bumping vite-plugin-rnw - #34231, thanks @​dannyhw!

          ### v10.3.3## 10.3.3
    
  • Addon-Vitest: Streamline vite(st) config detection across init and postinstall - #34193, thanks @​valentinpalkovic!

          ### v10.3.2## 10.3.2
    
  • CLI: Shorten CTA link messages - #34236, thanks @​shilman!

  • React Native Web: Fix vite8 support by bumping vite-plugin-rnw - #34231, thanks @​dannyhw!

          ### v10.4.0-alpha.2## 10.4.0-alpha.2
    
  • CLI: Use npm info to fetch versions in repro command - #34214, thanks @​yannbf!

  • Core: Prevent story-local viewport from persisting in URL - #34153, thanks @​ghengeveld!

  • Maintenance: Remove dead-code copy of wrap-getAbsolutePath-utils - #34168, thanks @​mixelburg!

  • Security: Makes sure `serialize-javascript` is at latest version - #34034, thanks @​50bbx!

          ### v10.4.0-alpha.1## 10.4.0-alpha.1
    
  • Docs: Ensure unique control id attributes across multiple Controls blocks - #34021, thanks @​TheSeydiCharyyev!

          ### v10.3.1## 10.3.1
    
  • CLI: Use npm info to fetch versions in repro command - #34214, thanks @​yannbf!

  • Core: Prevent story-local viewport from persisting in URL - #34153, thanks @​ghengeveld!

          ### v10.4.0-alpha.0## 10.4.0-alpha.0
    
    
    
    
          ### v10.3.0## 10.3.0
    

> Improved developer experience, AI-assisting tools, and broader ecosystem support

Storybook 10.3 contains hundreds of fixes and improvements including:

  • 🤖 Storybook MCP: Agentic component dev, docs, and test (Preview release for React)
  • ⚡ Vite 8 support
  • ▲ Next.js 16.2 support
  • 📝 ESLint 10 support
  • 〰️ Addon Pseudo-States: Tailwind v4 support
  • 🔧 Addon-Vitest: Simplified configuration - no more setup files required
  • ♿ Numerous accessibility improvements across the UI
List of all updates
  • A11y: Add ScrollArea prop focusable for when it has static children - #33876, thanks @​Sidnioulz!
  • A11y: Ensure popover dialogs have an ARIA label - #33500, thanks @​gayanMatch!
  • A11y: Make resize handles for addon panel and sidebar accessible #33980
  • A11y: Underline MDX links for WCAG SC 1.4.1 compliance - #33139, thanks @​NikhilChowdhury27!
  • Actions: Add expandLevel parameter to configure tree depth - #33977, thanks @​mixelburg!
  • Actions: Fix HandlerFunction type to support async callback props - #33864, thanks @​mixelburg!
  • Addon-Docs: Add React as optimizeDeps entry - #34176, thanks @​valentinpalkovic!
  • Addon-Docs: Add support for `sourceState: 'none'` to canvas block parameters - #33627, thanks @​quisido!
  • Addon-docs: Restore `docs.components` overrides for doc blocks #34111
  • Addon-Vitest: Add channel API to programmatically trigger test runs - #33206, thanks @​JReinhold!
  • Addon-Vitest: Handle additional vitest config export patterns in postinstall - #34106, thanks @​copilot-swe-agent!
  • Addon-Vitest: Make Playwright `--with-deps` platform-aware to avoid `sudo` prompt on Linux #34121
  • Addon-Vitest: Refactor Vitest setup to eliminate the need for a dedicated setup file - #34025, thanks @​valentinpalkovic!
  • Addon-Vitest: Support Vitest canaries - #33833, thanks @​valentinpalkovic!
  • Angular: Add moduleResolution: bundler to tsconfig - #34085, thanks @​valentinpalkovic!
  • Angular: only load webpack dependencies on demand - #34043, thanks @​sod!
  • Angular: Storybook fails with unknown option silent - #33736, thanks @​tanujbhaud!
  • Build: Update @​types/node - #34037, thanks @​valentinpalkovic!
  • Builder-Vite: Centralize Vite plugins for builder-vite and addon-vitest - #33819, thanks @​valentinpalkovic!
  • Builder-Vite: Fix cold-cache vitest failures for story paths containing glob special characters - #34044, thanks @​copilot-swe-agent!
  • Builder-Vite: Use preview annotations as entry points for optimizeDeps - #33875, thanks @​copilot-swe-agent!
  • CI: declare explicit permissions for stale and weekly cron workflows - #33902, thanks @​Rohan5commit!
  • CLI: Add vike CLI metadata - #34189, thanks @​yannbf!
  • CLI: Avoid hanging of postinstall during init - #34175, thanks @​valentinpalkovic!
  • CLI: Fix onboarding not opening - #33609, thanks @​ndelangen!
  • CLI: Show multiple favicons warning as debug message - #34069, thanks @​remino!
  • Cli: Use npm for registry URL in PNPMProxy to avoid workspace errors - #33571, thanks @​ia319!
  • Controls: Allow story argTypes to override control: false from meta - #33729, thanks @​jonathan-fulton!
  • Controls: Fix Object contrast issue and tidy up code - #33923, thanks @​Sidnioulz!
  • Core: Ensure telemetry is never triggered on initial load of checklist data - #33918, thanks @​ghengeveld!
  • Core: Fix event source URL based on refId when multiple iframes share the same origin #34105
  • Core: Fix false-positive CJS warning when 'exports' appears in strings or comments - #33572, thanks @​reeseo3o!
  • Core: Fix handling complex viewport sizes #33615
  • Core: Fix iframe reference for composed Storybook on a subpath #34100
  • Core: Fix typos: occured -> occurred, recieves -> receives - #33727, thanks @​jonathan-fulton!
  • Core: Handle BROWSER=none correctly and improve error messages - #33730, thanks @​jonathan-fulton!
  • Core: Ignore empty files when indexing - #33782, thanks @​JReinhold!
  • Core: Register CORS middleware before index.json route - #33728, thanks @​jonathan-fulton!
  • Core: Revert Pull Request #33420 from Maelryn/fix/copy-button-overlap - #33877, thanks @​Sidnioulz!
  • Core: Zoom tool refinements - Hide reset button when value is initial - #33635, thanks @​superLipbalm!
  • Docs: Edit JSON button is now accessible at 320x256 viewport (WCAG 2.1 Reflow test) - #33707, thanks @​TheSeydiCharyyev!
  • Docs: Make CSS ordering in DocsContainer more predictable #34015
  • ESLint-plugin: Disallow extra properties in eslint plugin rule options - #32056, thanks @​andreww2012!
  • ESLint: bail out config setup if eslint-plugin-storybook is already imported - #34089, thanks @​copilot-swe-agent!
  • HMR: Fix race conditions causing stale play functions to fire on re-rendered stories - #33930, thanks @​copilot-swe-agent!
  • Maintenance: Revert pull request #33930 HMR events - #34190, thanks @​yannbf!
  • Maintenance: Use std-env for AI agent detection in telemetry #34114
  • Manifest: Add docs entries to debugger - #33607, thanks @​JReinhold!
  • Manifest: Rename `experimentalComponentsManifest` → `componentsManifest`, default to `true` #33974
  • Manifests: Fix Attached MDX causing wrong component entries #34101
  • Next.js-Vite: Fix failing postcss mutation - #33879, thanks @​valentinpalkovic!
  • Next.js: Move image configuration from FrameworkOptions to parameters #32639, thanks @​y-hsgw!
  • Preact: Support inferring props from component types - #33828, thanks @​JoviDeCroock!
  • React Native Web: Fix inconsistent example stories - #33891, thanks @​danielalanbates!
  • React: Add react-docgen-typescript to component manifest - #33818, thanks @​kasperpeulen!
  • Revert "Toolbar: Remove extra toolbar divider when zoom controls not shown" - #34099, thanks @​valentinpalkovic!
  • Test: Fix clearing mocks in Vitest #34078
  • Test: Update @​testing-library/jest-dom - #33928, thanks @​valentinpalkovic!
  • Theming: Export interface declaration for `ThemesGlobals` - #33343, thanks @​icopp!
  • Toolbar: Remove extra toolbar divider when zoom controls not shown - #33731, thanks @​jonathan-fulton!
  • UI: Allow direct kb/mouse actions on zoom tool button - #33496, thanks @​Sidnioulz!
  • UI: Avoid large animation for reduced motion users - #33530, thanks @​Sidnioulz!
  • UI: Ensure Link without href is keyboard-reachable - #34163, thanks @​Sidnioulz!
  • UI: Fix `z-index` problem with `popover`s and `modal`s nesting - #33757, thanks @​ndelangen!
  • UI: Fix code/copy buttons overlap with content - #33889, thanks @​Sidnioulz!
  • UI: Fix Copy button overlapping code in portrait mode - #33420, thanks @​Maelryn!
  • UI: Fix modal text selection - #33967, thanks @​Sidnioulz!
  • UI: Fix tab navigation after closing addon panel - #33971, thanks @​copilot-swe-agent!
  • UI: Handle kb nav edge cases when preview and panel are hidden - #33588, thanks @​Sidnioulz!
  • UI: Hide addon panel Drag on pages without a panel - #34162, thanks @​Sidnioulz!
  • UI: Hide manifest tag for now - #34165, thanks @​Sidnioulz!
  • UI: Make disabled Buttons keyboard-focusable - #34166, thanks @​Sidnioulz!
  • UI: Make TagsFilter state persistent #33374
  • UI: Use correct selector for addon panel focus check - #34164, thanks @​Sidnioulz!
  • UI: Zoom faster when pressing shift - #34185, thanks @​Sidnioulz!
  • Viewport: Skip viewport validation before parameters load - #33794, thanks @​ia319!
  • Vite: Add mock entries to optimizeDeps.entries - #34167, thanks @​valentinpalkovic!
  • Vue3-Vite: Allow paths in docgen tsconfig option #32310, thanks @​Thomaash!
        ### v10.3.0-beta.3## 10.3.0-beta.3
  • Addon-Vitest: Handle additional vitest config export patterns in postinstall - #34106, thanks @​copilot-swe-agent!

  • CLI: Add vike CLI metadata - #34189, thanks @​yannbf!

  • Maintenance: Revert pull request #33930 HMR events - #34190, thanks @​yannbf!

  • UI: Ensure Link without href is keyboard-reachable - #34163, thanks @​Sidnioulz!

  • UI: Zoom faster when pressing shift - #34185, thanks @​Sidnioulz!

  • Vite: Add mock entries to optimizeDeps.entries - #34167, thanks @​valentinpalkovic!

          ### v10.3.0-beta.2## 10.3.0-beta.2
    
  • UI: Hide addon panel Drag on pages without a panel - #34162, thanks @​Sidnioulz!

  • UI: Hide manifest tag for now - #34165, thanks @​Sidnioulz!

  • UI: Make disabled Buttons keyboard-focusable - #34166, thanks @​Sidnioulz!

  • UI: Use correct selector for addon panel focus check - #34164, thanks @​Sidnioulz!

  • Vue: Make globals reactive in decorators - #34116, thanks @​Sidnioulz!

          ### v10.3.0-beta.1## 10.3.0-beta.1
    
  • Addon-Docs: Add React as optimizeDeps entry - #34176, thanks @​valentinpalkovic!

  • CLI: Avoid hanging of postinstall during init - #34175, thanks @​valentinpalkovic!

          ### v10.3.0-beta.0## 10.3.0-beta.0
    
  • Test: Fix clearing mocks in Vitest #34078

  • Core: Fix event source URL based on refId when multiple iframes share the same origin #34105

  • UI: Make TagsFilter state persistent #33374

  • A11y: Make resize handles for addon panel and sidebar accessible #33980

  • Maintenance: Use std-env for AI agent detection in telemetry #34114

  • Addon-Vitest: Make Playwright --with-deps platform-aware to avoid sudo prompt on Linux #34121

  • Addon-docs: Restore docs.components overrides for doc blocks #34111

  • Maintenance: Support vite-plugin-svelte7 which supports Vite 8 #34115

  • Core: Fix handling complex viewport sizes #33615

  • Core: Fix iframe reference for composed Storybook on a subpath #34100

  • Manifest: Rename experimentalComponentsManifestcomponentsManifest, default to true #33974

  • Manifests: Fix Attached MDX causing wrong component entries #34101

  • Vue3-Vite: Allow paths in docgen tsconfig option #32310, thanks @​Thomaash!

  • Next.js: Move image configuration from FrameworkOptions to parameters #32639, thanks @​y-hsgw!

  • Docs: Make CSS ordering in DocsContainer more predictable #34015

          ### v10.3.0-alpha.17## 10.3.0-alpha.17
    
  • Core: Correctly fallback to first detected vitest config file - #33865, thanks @​yannbf!

  • ESLint-plugin: Disallow extra properties in eslint plugin rule options - #32056, thanks @​andreww2012!

  • ESLint: bail out config setup if eslint-plugin-storybook is already imported - #34089, thanks @​copilot-swe-agent!

  • Revert "Toolbar: Remove extra toolbar divider when zoom controls not shown" - #34099, thanks @​valentinpalkovic!

          ### v10.2.19## 10.2.19
    
  • Maintenance: Support vite-plugin-svelte@​7 which supports Vite 8 - #34115, thanks @​valentinpalkovic!

  • Vite: Support Vite 8 - #33788, thanks @​valentinpalkovic!

          ### v10.2.18## 10.2.18
    
  • Core: Correctly fallback to first detected vitest config file - #33865, thanks @​yannbf!

  • Core: Fix error reporting in ManagerErrorBoundary - #33915, thanks @​ghengeveld!

          ### v10.3.0-alpha.16## 10.3.0-alpha.16
    
  • A11y: Underline MDX links for WCAG SC 1.4.1 compliance - #33139, thanks @​NikhilChowdhury27!

  • Angular: Add moduleResolution: bundler to tsconfig - #34085, thanks @​valentinpalkovic!

  • Angular: only load webpack dependencies on demand - #34043, thanks @​sod!

  • CLI: Show multiple favicons warning as debug message - #34069, thanks @​remino!

  • Core: Fix error reporting in ManagerErrorBoundary - #33915, thanks @​ghengeveld!

  • Vite: Support Vite 8 - #33788, thanks @​valentinpalkovic!

          ### v10.3.0-alpha.15## 10.3.0-alpha.15
    
  • Actions: Add expandLevel parameter to configure tree depth - #33977, thanks @​mixelburg!

  • Actions: Fix HandlerFunction type to support async callback props - #33864, thanks @​mixelburg!

  • Addon-Vitest: Refactor Vitest setup to eliminate the need for a dedicated setup file - #34025, thanks @​valentinpalkovic!

  • Build: Update @​types/node - #34037, thanks @​valentinpalkovic!

  • Builder-Vite: Fix cold-cache vitest failures for story paths containing glob special characters - #34044, thanks @​copilot-swe-agent!

  • CI:: declare explicit permissions for stale and weekly cron workflows - #33902, thanks @​Rohan5commit!

  • Core: Add vike metadata frameworks - #33965, thanks @​yannbf!

  • Core: Resolve builder preset path correctly in pnpm strict mode - #34032, thanks @​braedenfoster!

  • Core: Update default allowed hosts in host validation middleware - #34045, thanks @​ghengeveld!

  • Next.js: Add support for v16.2 - #34046, thanks @​valentinpalkovic!

  • UI: Fix code/copy buttons overlap with content - #33889, thanks @​Sidnioulz!

  • UI: Fix modal text selection - #33967, thanks @​Sidnioulz!

  • UI: Fix tab navigation after closing addon panel - #33971, thanks @​copilot-swe-agent!

  • UI: Handle kb nav edge cases when preview and panel are hidden - #33588, thanks @​Sidnioulz!

          ### v10.2.17## 10.2.17
    
  • Next.js: Add support for v16.2 - #34046, thanks @​valentinpalkovic!

          ### v10.2.16## 10.2.16
    
  • CSF-Factories: Fix ConfigFile parser false warning on `definePreview({...}).type()` export default - #33885, thanks @​copilot-swe-agent!

  • Core: Add host/origin validation to requests and websocket connections - #33835, thanks @​ghengeveld!

  • Core: Add vike metadata frameworks - #33965, thanks @​yannbf!

  • Core: Resolve builder preset path correctly in pnpm strict mode - #34032, thanks @​braedenfoster!

  • Core: Update default allowed hosts in host validation middleware - #34045, thanks @​ghengeveld!

          ### v9.1.20## 9.1.20
    
  • Add request validation

          ### v10.3.0-alpha.14## 10.3.0-alpha.14
    
  • CSF-Factories: Fix ConfigFile parser false warning on `definePreview({...}).type()` export default - #33885, thanks @​copilot-swe-agent!

  • Core: Add host/origin validation to requests and websocket connections - #33835, thanks @​ghengeveld!

  • Core: Storybook failed to load iframe.html when publishing - #33896, thanks @​danielalanbates!

  • Core: Zoom tool refinements - Hide reset button when value is initial - #33635, thanks @​superLipbalm!

  • Docs: Edit JSON button is now accessible at 320x256 viewport (WCAG 2.1 Reflow test) - #33707, thanks @​TheSeydiCharyyev!

  • Manager-API: Update refs sequentially in experimental_setFilter - #33958, thanks @​ia319!

  • UI: Allow direct kb/mouse actions on zoom tool button - #33496, thanks @​Sidnioulz!

Commit history:
  • 5647e6 Merge pull request #34440 from storybookjs/cli/node-version-check-init

    CLI: Streamline Node.js version detection code

  • 3694b0 Simplify code
  • a8bc7b Remove backup node version warning as old nodes crash earlier
  • 20c543 Revert changes to Preflight check tests
  • 0aecc8 Removing whitespace from diff
  • ee3330 Remove node version prompt, only improve check and output
  • 82efeb refactor tests
  • a3ca0f Handle side effects of CI exclusion for tests
  • c4a96b Fix linting and formatting
  • e8d657 fix: nvmrc precision logic, detect-indent for JSON, options.yes guard

    • Add NodeVersionPrecision type and precision field to parseNodeVersionString
      so callers know if the input was major-only, major.minor, or full
    • Add mode:'nvmrc' option to isNodeVersionSupported: major-only "22" means
      "latest 22.x" (supported), not 22.0.0 (which is not); major.minor "22.14"
      checks at minor level rather than treating as 22.14.0
    • Use mode:'nvmrc' + precision in PreflightCheckCommand and node-version-check
      nvmrc check paths so users with ".nvmrc: 22" are not incorrectly prompted
    • Replace naive indent detection in updateEnginesNode with detect-indent so
      tab-indented JSON is preserved correctly (not converted to spaces)
    • Add options.yes === true to non-interactive guard alongside TTY/CI checks
    • Add nvmrc mode tests, precision assertions in parseNodeVersionString tests,
      and tab/minified JSON indentation tests for updateEnginesNode

    Agent-Logs-Url: https://github.com/storybookjs/storybook/sessions/7540f41d-9b80-4e83-a4ec-738e331cc43d

    Co-authored-by: Sidnioulz <5108577+Sidnioulz@​users.noreply.github.com>

  • b2e3e3 fix: address PR review feedback on node-version checks

    • Bound find.up('.nvmrc') search to project root via last: getProjectRoot()
      to prevent reading/modifying unrelated .nvmrc files up the directory tree
    • Add unit tests for bounded search behavior
    • Skip interactive prompts in CI/non-interactive environments in both
      PreflightCheckCommand and handleUnsupportedNodeRuntime
    • Wrap file update calls in try/catch in promptVersionBump so init
      continues on write errors
    • Fix engines.node runtime option to use >=${major}.${minor} format
      (not full patch version) for consistency with other choices
    • Emit combined exit message when both .nvmrc and engines.node are bumped

    Agent-Logs-Url: https://github.com/storybookjs/storybook/sessions/37cce97f-827b-493f-8d63-83550dcdf9f5

    Co-authored-by: Sidnioulz <5108577+Sidnioulz@​users.noreply.github.com>

  • 25cd8f Show higher quality error message when possible
  • dc24eb refactor: use shared constants and add declared version bump in create-storybook bin entry
  • f9b3fe feat: add unsupported Node.js runtime handler with declared version bump flow
  • 89d2e4 feat: check declared Node.js version in PreflightCheckCommand and offer to bump
  • a78cb9 refactor: use shared Node.js version constants in dispatcher and cli-storybook
  • 9e40df feat: re-export node-version utilities from common
  • 4123da feat: add shared Node.js version constants, utilities, detection, and update functions
  • aae6c9 Merge pull request #34498 from storybookjs/change-detection-startup-performance

    Core: Improve startup performance by deferring change detection initialization

  • 702291 Merge pull request #34502 from storybookjs/docs/ai_contribution_guide

    Docs: Add AI contributions guide in contributing.md and documentation

  • ee5ddc Docs: update contribution guide
  • 6c8f23 Docs: update contribution guideline for AI assisted PR
  • eaff7f Initialize change detection only once preview is ready
  • ad5c2a Merge pull request #34494 from storybookjs/copilot/accessible-rabbit

    Nextjs: Handle node builtin webpack imports

  • ae7abd Nextjs: normalize node builtin webpack imports

    Co-authored-by: Copilot <223556219+Copilot@​users.noreply.github.com>

  • 370524 Merge pull request #34445 from storybookjs/change-detection-windows

    Core: Normalize file paths in ChangeDetectionService and trace-changed for Windows support

  • 2c99f1 Update CHANGELOG.md for v10.3.5 [skip ci]
  • ac76d4 Merge branch 'next-release' into next
  • 7b51dd Bump version from "10.4.0-alpha.7" to "10.4.0-alpha.8" [skip ci]
  • 088fa5 Merge pull request #34448 from storybookjs/version-non-patch-from-10.4.0-alpha.7

    Release: Prerelease 10.4.0-alpha.8

@michijs

michijs Bot commented Apr 13, 2026

Copy link
Copy Markdown
Contributor Author

Bump storybook-dark-mode from 4.0.2 to 5.0.0

Changelog:
Sourced from releases.
        ### v5.0.0#### 💥 Breaking Change

🏠 Internal

Authors: 2

Authors: 1

Commit history:
  • 0fe31a Bump version to: 5.0.0 [skip ci]
  • 37ff57 Update contributors [skip ci]
  • ee3b5e Update CHANGELOG.md [skip ci]
  • ddf5d6 Merge pull request #307 from hipstersmoothie/v10

    Storybook V10 Compatibility

  • d10d8b Upgrade to strorybook 10
  • f9048f move to pnpm and get example working
  • 9347ae Merge pull request #278 from dartess/update-actions

    update actions/*

  • 9a5d67 Bump version to: 4.0.2 [skip ci]
  • c53228 Update contributors [skip ci]
  • 28fa4b Update CHANGELOG.md [skip ci]
  • 52fe0d Merge pull request #279 from adam-golab/master

    Fix for the "Storybook preview hooks can only be called inside decorators and story functions." error

  • 7342b9 fix: use the useEffect from storybook preview api
  • 153f21 fix: use useState hook from storybook preview api
  • fa7ca8 update actions
  • efbd14 Bump version to: 4.0.1 [skip ci]
  • 143e9d Update contributors [skip ci]
  • 9d8d9d Update CHANGELOG.md [skip ci]
  • 07efab Merge pull request #266 from leiit/fix-use-darkmode

    Fix useDarkMode to use correct channel

  • 576b40 Fix useDarkMode to use correct addons channel
  • df8d44 Add test story for useDarkMode
  • 8c055e Add typings & StoryObj format for Button story
  • 48638c Merge pull request #253 from hipstersmoothie/renovate/storybook-icons-1.x-lockfile

    Update dependency @​storybook/icons to v1.2.9

  • 50fc77 Bump version to: 4.0.0 [skip ci]
  • 30c0de Update contributors [skip ci]
  • 3d9bb6 Update CHANGELOG.md [skip ci]
  • 2f4f53 update auto
  • 550fe3 Update dependency @​storybook/icons to v1.2.9
  • d2f988 Merge pull request #251 from dartess/storybook-8

    Storybook 8

  • 319fe2 up node version in github workflows
  • fa60c8 update storybook to v8 stable

@michijs

michijs Bot commented Apr 13, 2026

Copy link
Copy Markdown
Contributor Author

Bump @​storybook/addon-docs from 9.1.3 to 10.3.5

Changelog:
Sourced from releases.
        ### v10.4.0-alpha.8## 10.4.0-alpha.8
  • A11y: Add aria-live announcements via @​react-aria/live-announcer - #33970, thanks @​copilot-swe-agent!

  • Actions: Fix state mutation and keep newest actions when limit reached - #34286, thanks @​Sidnioulz!

  • Core: Disable component manifest by default - #34408, thanks @​yannbf!

  • Core: Implement Git change detection - #34420, thanks @​ghengeveld!

  • Core: Rename preview.ts to preview.tsx in generated projects - #34396, thanks @​Sidnioulz!

  • Sidebar: Add dual-slot status icons for change detection and test results - #34346, thanks @​valentinpalkovic!

  • UI: Improve interactions panel accessibility - #34110, thanks @​anchmelev!

          ### v10.3.5## 10.3.5
    
  • Core: Disable component manifest by default - #34408, thanks @​yannbf!

[!NOTE]
Version >=0.5.0 of @&ZeroWidthSpace;storybook/addon-mcp enables component manifests again. If you're upgrading Storybook from version >= 10.3.0 to >= 10.3.5 and are using the MCP addon, you should also upgrade @&ZeroWidthSpace;storybook/addon-mcp to keep the docs toolset in the MCP server.

        ### v10.4.0-alpha.7## 10.4.0-alpha.7
  • CLI: Explicitly tell whether smoke tests passed or failed - #34419, thanks @​Sidnioulz!

  • Core: Add `ChangeDetectionService` and wire up builder-vite - #34369, thanks @​ghengeveld!

  • Maintenance: Extract parseFilterParam shared helper from tags and statuses modules - #34436, thanks @​mixelburg!

  • Sidebar: Add status-based filtering with refactored status architecture - #34339, thanks @​valentinpalkovic!

  • UI: Fix global shortcuts not showing region focus indicator - #34201, thanks @​Sidnioulz!

          ### v10.3.4## 10.3.4
    
  • Addon-a11y: Clear status transition timer on unmount to prevent test flake - #34203, thanks @​mixelburg!

  • Bug: Skip re-processing already transformed config files for CSF factories - #34273, thanks @​huang-julien!

  • Builder-Vite: Use djb2 hash to prevent variable name collisions in builder-vite - #34274, thanks @​chida09!

  • CLI: Prompt for init crash reports - #34316, thanks @​JReinhold!

  • CSF4: Fix duplicate preview loading issue in Vitest - #34361, thanks @​valentinpalkovic!

  • Core: Fix WebSocket connection for StackBlitz/WebContainers - #34281, thanks @​ghengeveld!

  • React-Docgen: Try .tsx fallback when resolving .js ESM imports in docgen resolvers - #34393, thanks @​mixelburg!

  • React-Vite: Upgrade @​joshwooding/vite-plugin-react-docgen-typescript to 0.7.0 - #34335, thanks @​beeswhacks!

          ### v10.4.0-alpha.6## 10.4.0-alpha.6
    
  • Builder-Vite: Add onModuleGraphChange method - #34323, thanks @​ghengeveld!

  • CLI: Add automigrate check for 'storybook' package name conflict - #34290, thanks @​whdjh!

  • CLI: Prompt for init crash reports - #34316, thanks @​JReinhold!

  • CSF4: Fix duplicate preview loading issue in Vitest - #34361, thanks @​valentinpalkovic!

  • Maintenance: Add assertions outside step incorrectly nested in interactions panel - #34296, thanks @​majiayu000!

  • Maintenance: Extract getBuilderOptions helper across framewo… - #34260, thanks @​alex-js-ltd!

  • Maintenance: Use errorToErrorLike in boot-test-runner for consistent stack deduplication - #34385, thanks @​mixelburg!

  • Onboarding: Fix checklist MDX instructions - #33193, thanks @​kylegach!

  • React-Docgen: Add tsconfig fallback chain and warning for monorepos - #34353, thanks @​viditkbhatnagar!

  • React-Docgen: Try .tsx fallback when resolving .js ESM imports in docgen resolvers - #34393, thanks @​mixelburg!

  • UI: Fix mobile navigation when renderLabel returns a React node - #34262, thanks @​Nathan54Villaume!

  • Vite: Use vite hook filter for performance improvements - #34022, thanks @​huang-julien!

          ### v10.4.0-alpha.5## 10.4.0-alpha.5
    
  • Addon-a11y: Clear status transition timer on unmount to prevent test flake - #34203, thanks @​mixelburg!

  • Builder-Vite: Use djb2 hash to prevent variable name collisions in builder-vite - #34274, thanks @​chida09!

  • CLI: Fix Next.js Vite automigration corrupting configs already using `@​storybook/nextjs-vite` - #34249, thanks @​nathanjessen!

  • Core: Add changeDetection feature flag - #34314, thanks @​valentinpalkovic!

  • Manager: URL-based tag filter state + filter-aware initial story selection - #34283, thanks @​valentinpalkovic!

  • React-Vite: Upgrade @​joshwooding/vite-plugin-react-docgen-typescript to 0.7.0 - #34335, thanks @​beeswhacks!

  • Refactor: Extract shared `PseudoStateGrid` component in pseudo-states stories - #34334, thanks @​copilot-swe-agent!

          ### v10.4.0-alpha.4## 10.4.0-alpha.4
    
  • Addon-Docs: Add Reset story button to re-render stories in docs - #34086, thanks @​6810779s!

  • Code: Fix inline code blocks inside links removing link affordance - #33903, thanks @​yatishgoel!

  • Controls: Add maxPresetColors option to ColorControl - #33998, thanks @​mixelburg!

  • Core: Fix WebSocket connection for StackBlitz/WebContainers - #34281, thanks @​ghengeveld!

  • Dependencies: Update `vite-plugin-storybook-nextjs` to ^3.2.4 - #34280, thanks @​k35o!

  • React: Add component metadata extraction via Volar-style LanguageService - #33914, thanks @​kasperpeulen!

  • StatusValue: Add 'status-value:<new|modified|affected>' - #34305, thanks @​valentinpalkovic!

  • UI: Ensure Controls panel can scroll horizontally for now - #34248, thanks @​Sidnioulz!

          ### v10.4.0-alpha.3## 10.4.0-alpha.3
    
  • Addon-Vitest: Streamline vite(st) config detection across init and postinstall - #34193, thanks @​valentinpalkovic!

  • Angular: Use Story ID for renderer IDs (including standalone stories) - #33982, thanks @​ValentinFunk!

  • Bug: Skip re-processing already transformed config files for CSF factories - #34273, thanks @​huang-julien!

  • CLI: Shorten CTA link messages - #34236, thanks @​shilman!

  • React Native Web: Fix vite8 support by bumping vite-plugin-rnw - #34231, thanks @​dannyhw!

          ### v10.3.3## 10.3.3
    
  • Addon-Vitest: Streamline vite(st) config detection across init and postinstall - #34193, thanks @​valentinpalkovic!

          ### v10.3.2## 10.3.2
    
  • CLI: Shorten CTA link messages - #34236, thanks @​shilman!

  • React Native Web: Fix vite8 support by bumping vite-plugin-rnw - #34231, thanks @​dannyhw!

          ### v10.4.0-alpha.2## 10.4.0-alpha.2
    
  • CLI: Use npm info to fetch versions in repro command - #34214, thanks @​yannbf!

  • Core: Prevent story-local viewport from persisting in URL - #34153, thanks @​ghengeveld!

  • Maintenance: Remove dead-code copy of wrap-getAbsolutePath-utils - #34168, thanks @​mixelburg!

  • Security: Makes sure `serialize-javascript` is at latest version - #34034, thanks @​50bbx!

          ### v10.4.0-alpha.1## 10.4.0-alpha.1
    
  • Docs: Ensure unique control id attributes across multiple Controls blocks - #34021, thanks @​TheSeydiCharyyev!

          ### v10.3.1## 10.3.1
    
  • CLI: Use npm info to fetch versions in repro command - #34214, thanks @​yannbf!

  • Core: Prevent story-local viewport from persisting in URL - #34153, thanks @​ghengeveld!

          ### v10.4.0-alpha.0## 10.4.0-alpha.0
    
    
    
    
          ### v10.3.0## 10.3.0
    

> Improved developer experience, AI-assisting tools, and broader ecosystem support

Storybook 10.3 contains hundreds of fixes and improvements including:

  • 🤖 Storybook MCP: Agentic component dev, docs, and test (Preview release for React)
  • ⚡ Vite 8 support
  • ▲ Next.js 16.2 support
  • 📝 ESLint 10 support
  • 〰️ Addon Pseudo-States: Tailwind v4 support
  • 🔧 Addon-Vitest: Simplified configuration - no more setup files required
  • ♿ Numerous accessibility improvements across the UI
List of all updates
  • A11y: Add ScrollArea prop focusable for when it has static children - #33876, thanks @​Sidnioulz!
  • A11y: Ensure popover dialogs have an ARIA label - #33500, thanks @​gayanMatch!
  • A11y: Make resize handles for addon panel and sidebar accessible #33980
  • A11y: Underline MDX links for WCAG SC 1.4.1 compliance - #33139, thanks @​NikhilChowdhury27!
  • Actions: Add expandLevel parameter to configure tree depth - #33977, thanks @​mixelburg!
  • Actions: Fix HandlerFunction type to support async callback props - #33864, thanks @​mixelburg!
  • Addon-Docs: Add React as optimizeDeps entry - #34176, thanks @​valentinpalkovic!
  • Addon-Docs: Add support for `sourceState: 'none'` to canvas block parameters - #33627, thanks @​quisido!
  • Addon-docs: Restore `docs.components` overrides for doc blocks #34111
  • Addon-Vitest: Add channel API to programmatically trigger test runs - #33206, thanks @​JReinhold!
  • Addon-Vitest: Handle additional vitest config export patterns in postinstall - #34106, thanks @​copilot-swe-agent!
  • Addon-Vitest: Make Playwright `--with-deps` platform-aware to avoid `sudo` prompt on Linux #34121
  • Addon-Vitest: Refactor Vitest setup to eliminate the need for a dedicated setup file - #34025, thanks @​valentinpalkovic!
  • Addon-Vitest: Support Vitest canaries - #33833, thanks @​valentinpalkovic!
  • Angular: Add moduleResolution: bundler to tsconfig - #34085, thanks @​valentinpalkovic!
  • Angular: only load webpack dependencies on demand - #34043, thanks @​sod!
  • Angular: Storybook fails with unknown option silent - #33736, thanks @​tanujbhaud!
  • Build: Update @​types/node - #34037, thanks @​valentinpalkovic!
  • Builder-Vite: Centralize Vite plugins for builder-vite and addon-vitest - #33819, thanks @​valentinpalkovic!
  • Builder-Vite: Fix cold-cache vitest failures for story paths containing glob special characters - #34044, thanks @​copilot-swe-agent!
  • Builder-Vite: Use preview annotations as entry points for optimizeDeps - #33875, thanks @​copilot-swe-agent!
  • CI: declare explicit permissions for stale and weekly cron workflows - #33902, thanks @​Rohan5commit!
  • CLI: Add vike CLI metadata - #34189, thanks @​yannbf!
  • CLI: Avoid hanging of postinstall during init - #34175, thanks @​valentinpalkovic!
  • CLI: Fix onboarding not opening - #33609, thanks @​ndelangen!
  • CLI: Show multiple favicons warning as debug message - #34069, thanks @​remino!
  • Cli: Use npm for registry URL in PNPMProxy to avoid workspace errors - #33571, thanks @​ia319!
  • Controls: Allow story argTypes to override control: false from meta - #33729, thanks @​jonathan-fulton!
  • Controls: Fix Object contrast issue and tidy up code - #33923, thanks @​Sidnioulz!
  • Core: Ensure telemetry is never triggered on initial load of checklist data - #33918, thanks @​ghengeveld!
  • Core: Fix event source URL based on refId when multiple iframes share the same origin #34105
  • Core: Fix false-positive CJS warning when 'exports' appears in strings or comments - #33572, thanks @​reeseo3o!
  • Core: Fix handling complex viewport sizes #33615
  • Core: Fix iframe reference for composed Storybook on a subpath #34100
  • Core: Fix typos: occured -> occurred, recieves -> receives - #33727, thanks @​jonathan-fulton!
  • Core: Handle BROWSER=none correctly and improve error messages - #33730, thanks @​jonathan-fulton!
  • Core: Ignore empty files when indexing - #33782, thanks @​JReinhold!
  • Core: Register CORS middleware before index.json route - #33728, thanks @​jonathan-fulton!
  • Core: Revert Pull Request #33420 from Maelryn/fix/copy-button-overlap - #33877, thanks @​Sidnioulz!
  • Core: Zoom tool refinements - Hide reset button when value is initial - #33635, thanks @​superLipbalm!
  • Docs: Edit JSON button is now accessible at 320x256 viewport (WCAG 2.1 Reflow test) - #33707, thanks @​TheSeydiCharyyev!
  • Docs: Make CSS ordering in DocsContainer more predictable #34015
  • ESLint-plugin: Disallow extra properties in eslint plugin rule options - #32056, thanks @​andreww2012!
  • ESLint: bail out config setup if eslint-plugin-storybook is already imported - #34089, thanks @​copilot-swe-agent!
  • HMR: Fix race conditions causing stale play functions to fire on re-rendered stories - #33930, thanks @​copilot-swe-agent!
  • Maintenance: Revert pull request #33930 HMR events - #34190, thanks @​yannbf!
  • Maintenance: Use std-env for AI agent detection in telemetry #34114
  • Manifest: Add docs entries to debugger - #33607, thanks @​JReinhold!
  • Manifest: Rename `experimentalComponentsManifest` → `componentsManifest`, default to `true` #33974
  • Manifests: Fix Attached MDX causing wrong component entries #34101
  • Next.js-Vite: Fix failing postcss mutation - #33879, thanks @​valentinpalkovic!
  • Next.js: Move image configuration from FrameworkOptions to parameters #32639, thanks @​y-hsgw!
  • Preact: Support inferring props from component types - #33828, thanks @​JoviDeCroock!
  • React Native Web: Fix inconsistent example stories - #33891, thanks @​danielalanbates!
  • React: Add react-docgen-typescript to component manifest - #33818, thanks @​kasperpeulen!
  • Revert "Toolbar: Remove extra toolbar divider when zoom controls not shown" - #34099, thanks @​valentinpalkovic!
  • Test: Fix clearing mocks in Vitest #34078
  • Test: Update @​testing-library/jest-dom - #33928, thanks @​valentinpalkovic!
  • Theming: Export interface declaration for `ThemesGlobals` - #33343, thanks @​icopp!
  • Toolbar: Remove extra toolbar divider when zoom controls not shown - #33731, thanks @​jonathan-fulton!
  • UI: Allow direct kb/mouse actions on zoom tool button - #33496, thanks @​Sidnioulz!
  • UI: Avoid large animation for reduced motion users - #33530, thanks @​Sidnioulz!
  • UI: Ensure Link without href is keyboard-reachable - #34163, thanks @​Sidnioulz!
  • UI: Fix `z-index` problem with `popover`s and `modal`s nesting - #33757, thanks @​ndelangen!
  • UI: Fix code/copy buttons overlap with content - #33889, thanks @​Sidnioulz!
  • UI: Fix Copy button overlapping code in portrait mode - #33420, thanks @​Maelryn!
  • UI: Fix modal text selection - #33967, thanks @​Sidnioulz!
  • UI: Fix tab navigation after closing addon panel - #33971, thanks @​copilot-swe-agent!
  • UI: Handle kb nav edge cases when preview and panel are hidden - #33588, thanks @​Sidnioulz!
  • UI: Hide addon panel Drag on pages without a panel - #34162, thanks @​Sidnioulz!
  • UI: Hide manifest tag for now - #34165, thanks @​Sidnioulz!
  • UI: Make disabled Buttons keyboard-focusable - #34166, thanks @​Sidnioulz!
  • UI: Make TagsFilter state persistent #33374
  • UI: Use correct selector for addon panel focus check - #34164, thanks @​Sidnioulz!
  • UI: Zoom faster when pressing shift - #34185, thanks @​Sidnioulz!
  • Viewport: Skip viewport validation before parameters load - #33794, thanks @​ia319!
  • Vite: Add mock entries to optimizeDeps.entries - #34167, thanks @​valentinpalkovic!
  • Vue3-Vite: Allow paths in docgen tsconfig option #32310, thanks @​Thomaash!
        ### v10.3.0-beta.3## 10.3.0-beta.3
  • Addon-Vitest: Handle additional vitest config export patterns in postinstall - #34106, thanks @​copilot-swe-agent!

  • CLI: Add vike CLI metadata - #34189, thanks @​yannbf!

  • Maintenance: Revert pull request #33930 HMR events - #34190, thanks @​yannbf!

  • UI: Ensure Link without href is keyboard-reachable - #34163, thanks @​Sidnioulz!

  • UI: Zoom faster when pressing shift - #34185, thanks @​Sidnioulz!

  • Vite: Add mock entries to optimizeDeps.entries - #34167, thanks @​valentinpalkovic!

          ### v10.3.0-beta.2## 10.3.0-beta.2
    
  • UI: Hide addon panel Drag on pages without a panel - #34162, thanks @​Sidnioulz!

  • UI: Hide manifest tag for now - #34165, thanks @​Sidnioulz!

  • UI: Make disabled Buttons keyboard-focusable - #34166, thanks @​Sidnioulz!

  • UI: Use correct selector for addon panel focus check - #34164, thanks @​Sidnioulz!

  • Vue: Make globals reactive in decorators - #34116, thanks @​Sidnioulz!

          ### v10.3.0-beta.1## 10.3.0-beta.1
    
  • Addon-Docs: Add React as optimizeDeps entry - #34176, thanks @​valentinpalkovic!

  • CLI: Avoid hanging of postinstall during init - #34175, thanks @​valentinpalkovic!

          ### v10.3.0-beta.0## 10.3.0-beta.0
    
  • Test: Fix clearing mocks in Vitest #34078

  • Core: Fix event source URL based on refId when multiple iframes share the same origin #34105

  • UI: Make TagsFilter state persistent #33374

  • A11y: Make resize handles for addon panel and sidebar accessible #33980

  • Maintenance: Use std-env for AI agent detection in telemetry #34114

  • Addon-Vitest: Make Playwright --with-deps platform-aware to avoid sudo prompt on Linux #34121

  • Addon-docs: Restore docs.components overrides for doc blocks #34111

  • Maintenance: Support vite-plugin-svelte7 which supports Vite 8 #34115

  • Core: Fix handling complex viewport sizes #33615

  • Core: Fix iframe reference for composed Storybook on a subpath #34100

  • Manifest: Rename experimentalComponentsManifestcomponentsManifest, default to true #33974

  • Manifests: Fix Attached MDX causing wrong component entries #34101

  • Vue3-Vite: Allow paths in docgen tsconfig option #32310, thanks @​Thomaash!

  • Next.js: Move image configuration from FrameworkOptions to parameters #32639, thanks @​y-hsgw!

  • Docs: Make CSS ordering in DocsContainer more predictable #34015

          ### v10.3.0-alpha.17## 10.3.0-alpha.17
    
  • Core: Correctly fallback to first detected vitest config file - #33865, thanks @​yannbf!

  • ESLint-plugin: Disallow extra properties in eslint plugin rule options - #32056, thanks @​andreww2012!

  • ESLint: bail out config setup if eslint-plugin-storybook is already imported - #34089, thanks @​copilot-swe-agent!

  • Revert "Toolbar: Remove extra toolbar divider when zoom controls not shown" - #34099, thanks @​valentinpalkovic!

          ### v10.2.19## 10.2.19
    
  • Maintenance: Support vite-plugin-svelte@​7 which supports Vite 8 - #34115, thanks @​valentinpalkovic!

  • Vite: Support Vite 8 - #33788, thanks @​valentinpalkovic!

          ### v10.2.18## 10.2.18
    
  • Core: Correctly fallback to first detected vitest config file - #33865, thanks @​yannbf!

  • Core: Fix error reporting in ManagerErrorBoundary - #33915, thanks @​ghengeveld!

          ### v10.3.0-alpha.16## 10.3.0-alpha.16
    
  • A11y: Underline MDX links for WCAG SC 1.4.1 compliance - #33139, thanks @​NikhilChowdhury27!

  • Angular: Add moduleResolution: bundler to tsconfig - #34085, thanks @​valentinpalkovic!

  • Angular: only load webpack dependencies on demand - #34043, thanks @​sod!

  • CLI: Show multiple favicons warning as debug message - #34069, thanks @​remino!

  • Core: Fix error reporting in ManagerErrorBoundary - #33915, thanks @​ghengeveld!

  • Vite: Support Vite 8 - #33788, thanks @​valentinpalkovic!

          ### v10.3.0-alpha.15## 10.3.0-alpha.15
    
  • Actions: Add expandLevel parameter to configure tree depth - #33977, thanks @​mixelburg!

  • Actions: Fix HandlerFunction type to support async callback props - #33864, thanks @​mixelburg!

  • Addon-Vitest: Refactor Vitest setup to eliminate the need for a dedicated setup file - #34025, thanks @​valentinpalkovic!

  • Build: Update @​types/node - #34037, thanks @​valentinpalkovic!

  • Builder-Vite: Fix cold-cache vitest failures for story paths containing glob special characters - #34044, thanks @​copilot-swe-agent!

  • CI:: declare explicit permissions for stale and weekly cron workflows - #33902, thanks @​Rohan5commit!

  • Core: Add vike metadata frameworks - #33965, thanks @​yannbf!

  • Core: Resolve builder preset path correctly in pnpm strict mode - #34032, thanks @​braedenfoster!

  • Core: Update default allowed hosts in host validation middleware - #34045, thanks @​ghengeveld!

  • Next.js: Add support for v16.2 - #34046, thanks @​valentinpalkovic!

  • UI: Fix code/copy buttons overlap with content - #33889, thanks @​Sidnioulz!

  • UI: Fix modal text selection - #33967, thanks @​Sidnioulz!

  • UI: Fix tab navigation after closing addon panel - #33971, thanks @​copilot-swe-agent!

  • UI: Handle kb nav edge cases when preview and panel are hidden - #33588, thanks @​Sidnioulz!

          ### v10.2.17## 10.2.17
    
  • Next.js: Add support for v16.2 - #34046, thanks @​valentinpalkovic!

          ### v10.2.16## 10.2.16
    
  • CSF-Factories: Fix ConfigFile parser false warning on `definePreview({...}).type()` export default - #33885, thanks @​copilot-swe-agent!

  • Core: Add host/origin validation to requests and websocket connections - #33835, thanks @​ghengeveld!

  • Core: Add vike metadata frameworks - #33965, thanks @​yannbf!

  • Core: Resolve builder preset path correctly in pnpm strict mode - #34032, thanks @​braedenfoster!

  • Core: Update default allowed hosts in host validation middleware - #34045, thanks @​ghengeveld!

          ### v9.1.20## 9.1.20
    
  • Add request validation

          ### v10.3.0-alpha.14## 10.3.0-alpha.14
    
  • CSF-Factories: Fix ConfigFile parser false warning on `definePreview({...}).type()` export default - #33885, thanks @​copilot-swe-agent!

  • Core: Add host/origin validation to requests and websocket connections - #33835, thanks @​ghengeveld!

  • Core: Storybook failed to load iframe.html when publishing - #33896, thanks @​danielalanbates!

  • Core: Zoom tool refinements - Hide reset button when value is initial - #33635, thanks @​superLipbalm!

  • Docs: Edit JSON button is now accessible at 320x256 viewport (WCAG 2.1 Reflow test) - #33707, thanks @​TheSeydiCharyyev!

  • Manager-API: Update refs sequentially in experimental_setFilter - #33958, thanks @​ia319!

  • UI: Allow direct kb/mouse actions on zoom tool button - #33496, thanks @​Sidnioulz!

Commit history:
  • 5647e6 Merge pull request #34440 from storybookjs/cli/node-version-check-init

    CLI: Streamline Node.js version detection code

  • 3694b0 Simplify code
  • a8bc7b Remove backup node version warning as old nodes crash earlier
  • 20c543 Revert changes to Preflight check tests
  • 0aecc8 Removing whitespace from diff
  • ee3330 Remove node version prompt, only improve check and output
  • 82efeb refactor tests
  • a3ca0f Handle side effects of CI exclusion for tests
  • c4a96b Fix linting and formatting
  • e8d657 fix: nvmrc precision logic, detect-indent for JSON, options.yes guard

    • Add NodeVersionPrecision type and precision field to parseNodeVersionString
      so callers know if the input was major-only, major.minor, or full
    • Add mode:'nvmrc' option to isNodeVersionSupported: major-only "22" means
      "latest 22.x" (supported), not 22.0.0 (which is not); major.minor "22.14"
      checks at minor level rather than treating as 22.14.0
    • Use mode:'nvmrc' + precision in PreflightCheckCommand and node-version-check
      nvmrc check paths so users with ".nvmrc: 22" are not incorrectly prompted
    • Replace naive indent detection in updateEnginesNode with detect-indent so
      tab-indented JSON is preserved correctly (not converted to spaces)
    • Add options.yes === true to non-interactive guard alongside TTY/CI checks
    • Add nvmrc mode tests, precision assertions in parseNodeVersionString tests,
      and tab/minified JSON indentation tests for updateEnginesNode

    Agent-Logs-Url: https://github.com/storybookjs/storybook/sessions/7540f41d-9b80-4e83-a4ec-738e331cc43d

    Co-authored-by: Sidnioulz <5108577+Sidnioulz@​users.noreply.github.com>

  • b2e3e3 fix: address PR review feedback on node-version checks

    • Bound find.up('.nvmrc') search to project root via last: getProjectRoot()
      to prevent reading/modifying unrelated .nvmrc files up the directory tree
    • Add unit tests for bounded search behavior
    • Skip interactive prompts in CI/non-interactive environments in both
      PreflightCheckCommand and handleUnsupportedNodeRuntime
    • Wrap file update calls in try/catch in promptVersionBump so init
      continues on write errors
    • Fix engines.node runtime option to use >=${major}.${minor} format
      (not full patch version) for consistency with other choices
    • Emit combined exit message when both .nvmrc and engines.node are bumped

    Agent-Logs-Url: https://github.com/storybookjs/storybook/sessions/37cce97f-827b-493f-8d63-83550dcdf9f5

    Co-authored-by: Sidnioulz <5108577+Sidnioulz@​users.noreply.github.com>

  • 25cd8f Show higher quality error message when possible
  • dc24eb refactor: use shared constants and add declared version bump in create-storybook bin entry
  • f9b3fe feat: add unsupported Node.js runtime handler with declared version bump flow
  • 89d2e4 feat: check declared Node.js version in PreflightCheckCommand and offer to bump
  • a78cb9 refactor: use shared Node.js version constants in dispatcher and cli-storybook
  • 9e40df feat: re-export node-version utilities from common
  • 4123da feat: add shared Node.js version constants, utilities, detection, and update functions
  • aae6c9 Merge pull request #34498 from storybookjs/change-detection-startup-performance

    Core: Improve startup performance by deferring change detection initialization

  • 702291 Merge pull request #34502 from storybookjs/docs/ai_contribution_guide

    Docs: Add AI contributions guide in contributing.md and documentation

  • ee5ddc Docs: update contribution guide
  • 6c8f23 Docs: update contribution guideline for AI assisted PR
  • eaff7f Initialize change detection only once preview is ready
  • ad5c2a Merge pull request #34494 from storybookjs/copilot/accessible-rabbit

    Nextjs: Handle node builtin webpack imports

  • ae7abd Nextjs: normalize node builtin webpack imports

    Co-authored-by: Copilot <223556219+Copilot@​users.noreply.github.com>

  • 370524 Merge pull request #34445 from storybookjs/change-detection-windows

    Core: Normalize file paths in ChangeDetectionService and trace-changed for Windows support

  • 2c99f1 Update CHANGELOG.md for v10.3.5 [skip ci]
  • ac76d4 Merge branch 'next-release' into next
  • 7b51dd Bump version from "10.4.0-alpha.7" to "10.4.0-alpha.8" [skip ci]
  • 088fa5 Merge pull request #34448 from storybookjs/version-non-patch-from-10.4.0-alpha.7

    Release: Prerelease 10.4.0-alpha.8

@michijs

michijs Bot commented Apr 13, 2026

Copy link
Copy Markdown
Contributor Author

Bump @​storybook/web-components-vite from 9.1.3 to 10.3.5

Changelog:
Sourced from releases.
        ### v10.4.0-alpha.8## 10.4.0-alpha.8
  • A11y: Add aria-live announcements via @​react-aria/live-announcer - #33970, thanks @​copilot-swe-agent!

  • Actions: Fix state mutation and keep newest actions when limit reached - #34286, thanks @​Sidnioulz!

  • Core: Disable component manifest by default - #34408, thanks @​yannbf!

  • Core: Implement Git change detection - #34420, thanks @​ghengeveld!

  • Core: Rename preview.ts to preview.tsx in generated projects - #34396, thanks @​Sidnioulz!

  • Sidebar: Add dual-slot status icons for change detection and test results - #34346, thanks @​valentinpalkovic!

  • UI: Improve interactions panel accessibility - #34110, thanks @​anchmelev!

          ### v10.3.5## 10.3.5
    
  • Core: Disable component manifest by default - #34408, thanks @​yannbf!

[!NOTE]
Version >=0.5.0 of @&ZeroWidthSpace;storybook/addon-mcp enables component manifests again. If you're upgrading Storybook from version >= 10.3.0 to >= 10.3.5 and are using the MCP addon, you should also upgrade @&ZeroWidthSpace;storybook/addon-mcp to keep the docs toolset in the MCP server.

        ### v10.4.0-alpha.7## 10.4.0-alpha.7
  • CLI: Explicitly tell whether smoke tests passed or failed - #34419, thanks @​Sidnioulz!

  • Core: Add `ChangeDetectionService` and wire up builder-vite - #34369, thanks @​ghengeveld!

  • Maintenance: Extract parseFilterParam shared helper from tags and statuses modules - #34436, thanks @​mixelburg!

  • Sidebar: Add status-based filtering with refactored status architecture - #34339, thanks @​valentinpalkovic!

  • UI: Fix global shortcuts not showing region focus indicator - #34201, thanks @​Sidnioulz!

          ### v10.3.4## 10.3.4
    
  • Addon-a11y: Clear status transition timer on unmount to prevent test flake - #34203, thanks @​mixelburg!

  • Bug: Skip re-processing already transformed config files for CSF factories - #34273, thanks @​huang-julien!

  • Builder-Vite: Use djb2 hash to prevent variable name collisions in builder-vite - #34274, thanks @​chida09!

  • CLI: Prompt for init crash reports - #34316, thanks @​JReinhold!

  • CSF4: Fix duplicate preview loading issue in Vitest - #34361, thanks @​valentinpalkovic!

  • Core: Fix WebSocket connection for StackBlitz/WebContainers - #34281, thanks @​ghengeveld!

  • React-Docgen: Try .tsx fallback when resolving .js ESM imports in docgen resolvers - #34393, thanks @​mixelburg!

  • React-Vite: Upgrade @​joshwooding/vite-plugin-react-docgen-typescript to 0.7.0 - #34335, thanks @​beeswhacks!

          ### v10.4.0-alpha.6## 10.4.0-alpha.6
    
  • Builder-Vite: Add onModuleGraphChange method - #34323, thanks @​ghengeveld!

  • CLI: Add automigrate check for 'storybook' package name conflict - #34290, thanks @​whdjh!

  • CLI: Prompt for init crash reports - #34316, thanks @​JReinhold!

  • CSF4: Fix duplicate preview loading issue in Vitest - #34361, thanks @​valentinpalkovic!

  • Maintenance: Add assertions outside step incorrectly nested in interactions panel - #34296, thanks @​majiayu000!

  • Maintenance: Extract getBuilderOptions helper across framewo… - #34260, thanks @​alex-js-ltd!

  • Maintenance: Use errorToErrorLike in boot-test-runner for consistent stack deduplication - #34385, thanks @​mixelburg!

  • Onboarding: Fix checklist MDX instructions - #33193, thanks @​kylegach!

  • React-Docgen: Add tsconfig fallback chain and warning for monorepos - #34353, thanks @​viditkbhatnagar!

  • React-Docgen: Try .tsx fallback when resolving .js ESM imports in docgen resolvers - #34393, thanks @​mixelburg!

  • UI: Fix mobile navigation when renderLabel returns a React node - #34262, thanks @​Nathan54Villaume!

  • Vite: Use vite hook filter for performance improvements - #34022, thanks @​huang-julien!

          ### v10.4.0-alpha.5## 10.4.0-alpha.5
    
  • Addon-a11y: Clear status transition timer on unmount to prevent test flake - #34203, thanks @​mixelburg!

  • Builder-Vite: Use djb2 hash to prevent variable name collisions in builder-vite - #34274, thanks @​chida09!

  • CLI: Fix Next.js Vite automigration corrupting configs already using `@​storybook/nextjs-vite` - #34249, thanks @​nathanjessen!

  • Core: Add changeDetection feature flag - #34314, thanks @​valentinpalkovic!

  • Manager: URL-based tag filter state + filter-aware initial story selection - #34283, thanks @​valentinpalkovic!

  • React-Vite: Upgrade @​joshwooding/vite-plugin-react-docgen-typescript to 0.7.0 - #34335, thanks @​beeswhacks!

  • Refactor: Extract shared `PseudoStateGrid` component in pseudo-states stories - #34334, thanks @​copilot-swe-agent!

          ### v10.4.0-alpha.4## 10.4.0-alpha.4
    
  • Addon-Docs: Add Reset story button to re-render stories in docs - #34086, thanks @​6810779s!

  • Code: Fix inline code blocks inside links removing link affordance - #33903, thanks @​yatishgoel!

  • Controls: Add maxPresetColors option to ColorControl - #33998, thanks @​mixelburg!

  • Core: Fix WebSocket connection for StackBlitz/WebContainers - #34281, thanks @​ghengeveld!

  • Dependencies: Update `vite-plugin-storybook-nextjs` to ^3.2.4 - #34280, thanks @​k35o!

  • React: Add component metadata extraction via Volar-style LanguageService - #33914, thanks @​kasperpeulen!

  • StatusValue: Add 'status-value:<new|modified|affected>' - #34305, thanks @​valentinpalkovic!

  • UI: Ensure Controls panel can scroll horizontally for now - #34248, thanks @​Sidnioulz!

          ### v10.4.0-alpha.3## 10.4.0-alpha.3
    
  • Addon-Vitest: Streamline vite(st) config detection across init and postinstall - #34193, thanks @​valentinpalkovic!

  • Angular: Use Story ID for renderer IDs (including standalone stories) - #33982, thanks @​ValentinFunk!

  • Bug: Skip re-processing already transformed config files for CSF factories - #34273, thanks @​huang-julien!

  • CLI: Shorten CTA link messages - #34236, thanks @​shilman!

  • React Native Web: Fix vite8 support by bumping vite-plugin-rnw - #34231, thanks @​dannyhw!

          ### v10.3.3## 10.3.3
    
  • Addon-Vitest: Streamline vite(st) config detection across init and postinstall - #34193, thanks @​valentinpalkovic!

          ### v10.3.2## 10.3.2
    
  • CLI: Shorten CTA link messages - #34236, thanks @​shilman!

  • React Native Web: Fix vite8 support by bumping vite-plugin-rnw - #34231, thanks @​dannyhw!

          ### v10.4.0-alpha.2## 10.4.0-alpha.2
    
  • CLI: Use npm info to fetch versions in repro command - #34214, thanks @​yannbf!

  • Core: Prevent story-local viewport from persisting in URL - #34153, thanks @​ghengeveld!

  • Maintenance: Remove dead-code copy of wrap-getAbsolutePath-utils - #34168, thanks @​mixelburg!

  • Security: Makes sure `serialize-javascript` is at latest version - #34034, thanks @​50bbx!

          ### v10.4.0-alpha.1## 10.4.0-alpha.1
    
  • Docs: Ensure unique control id attributes across multiple Controls blocks - #34021, thanks @​TheSeydiCharyyev!

          ### v10.3.1## 10.3.1
    
  • CLI: Use npm info to fetch versions in repro command - #34214, thanks @​yannbf!

  • Core: Prevent story-local viewport from persisting in URL - #34153, thanks @​ghengeveld!

          ### v10.4.0-alpha.0## 10.4.0-alpha.0
    
    
    
    
          ### v10.3.0## 10.3.0
    

> Improved developer experience, AI-assisting tools, and broader ecosystem support

Storybook 10.3 contains hundreds of fixes and improvements including:

  • 🤖 Storybook MCP: Agentic component dev, docs, and test (Preview release for React)
  • ⚡ Vite 8 support
  • ▲ Next.js 16.2 support
  • 📝 ESLint 10 support
  • 〰️ Addon Pseudo-States: Tailwind v4 support
  • 🔧 Addon-Vitest: Simplified configuration - no more setup files required
  • ♿ Numerous accessibility improvements across the UI
List of all updates
  • A11y: Add ScrollArea prop focusable for when it has static children - #33876, thanks @​Sidnioulz!
  • A11y: Ensure popover dialogs have an ARIA label - #33500, thanks @​gayanMatch!
  • A11y: Make resize handles for addon panel and sidebar accessible #33980
  • A11y: Underline MDX links for WCAG SC 1.4.1 compliance - #33139, thanks @​NikhilChowdhury27!
  • Actions: Add expandLevel parameter to configure tree depth - #33977, thanks @​mixelburg!
  • Actions: Fix HandlerFunction type to support async callback props - #33864, thanks @​mixelburg!
  • Addon-Docs: Add React as optimizeDeps entry - #34176, thanks @​valentinpalkovic!
  • Addon-Docs: Add support for `sourceState: 'none'` to canvas block parameters - #33627, thanks @​quisido!
  • Addon-docs: Restore `docs.components` overrides for doc blocks #34111
  • Addon-Vitest: Add channel API to programmatically trigger test runs - #33206, thanks @​JReinhold!
  • Addon-Vitest: Handle additional vitest config export patterns in postinstall - #34106, thanks @​copilot-swe-agent!
  • Addon-Vitest: Make Playwright `--with-deps` platform-aware to avoid `sudo` prompt on Linux #34121
  • Addon-Vitest: Refactor Vitest setup to eliminate the need for a dedicated setup file - #34025, thanks @​valentinpalkovic!
  • Addon-Vitest: Support Vitest canaries - #33833, thanks @​valentinpalkovic!
  • Angular: Add moduleResolution: bundler to tsconfig - #34085, thanks @​valentinpalkovic!
  • Angular: only load webpack dependencies on demand - #34043, thanks @​sod!
  • Angular: Storybook fails with unknown option silent - #33736, thanks @​tanujbhaud!
  • Build: Update @​types/node - #34037, thanks @​valentinpalkovic!
  • Builder-Vite: Centralize Vite plugins for builder-vite and addon-vitest - #33819, thanks @​valentinpalkovic!
  • Builder-Vite: Fix cold-cache vitest failures for story paths containing glob special characters - #34044, thanks @​copilot-swe-agent!
  • Builder-Vite: Use preview annotations as entry points for optimizeDeps - #33875, thanks @​copilot-swe-agent!
  • CI: declare explicit permissions for stale and weekly cron workflows - #33902, thanks @​Rohan5commit!
  • CLI: Add vike CLI metadata - #34189, thanks @​yannbf!
  • CLI: Avoid hanging of postinstall during init - #34175, thanks @​valentinpalkovic!
  • CLI: Fix onboarding not opening - #33609, thanks @​ndelangen!
  • CLI: Show multiple favicons warning as debug message - #34069, thanks @​remino!
  • Cli: Use npm for registry URL in PNPMProxy to avoid workspace errors - #33571, thanks @​ia319!
  • Controls: Allow story argTypes to override control: false from meta - #33729, thanks @​jonathan-fulton!
  • Controls: Fix Object contrast issue and tidy up code - #33923, thanks @​Sidnioulz!
  • Core: Ensure telemetry is never triggered on initial load of checklist data - #33918, thanks @​ghengeveld!
  • Core: Fix event source URL based on refId when multiple iframes share the same origin #34105
  • Core: Fix false-positive CJS warning when 'exports' appears in strings or comments - #33572, thanks @​reeseo3o!
  • Core: Fix handling complex viewport sizes #33615
  • Core: Fix iframe reference for composed Storybook on a subpath #34100
  • Core: Fix typos: occured -> occurred, recieves -> receives - #33727, thanks @​jonathan-fulton!
  • Core: Handle BROWSER=none correctly and improve error messages - #33730, thanks @​jonathan-fulton!
  • Core: Ignore empty files when indexing - #33782, thanks @​JReinhold!
  • Core: Register CORS middleware before index.json route - #33728, thanks @​jonathan-fulton!
  • Core: Revert Pull Request #33420 from Maelryn/fix/copy-button-overlap - #33877, thanks @​Sidnioulz!
  • Core: Zoom tool refinements - Hide reset button when value is initial - #33635, thanks @​superLipbalm!
  • Docs: Edit JSON button is now accessible at 320x256 viewport (WCAG 2.1 Reflow test) - #33707, thanks @​TheSeydiCharyyev!
  • Docs: Make CSS ordering in DocsContainer more predictable #34015
  • ESLint-plugin: Disallow extra properties in eslint plugin rule options - #32056, thanks @​andreww2012!
  • ESLint: bail out config setup if eslint-plugin-storybook is already imported - #34089, thanks @​copilot-swe-agent!
  • HMR: Fix race conditions causing stale play functions to fire on re-rendered stories - #33930, thanks @​copilot-swe-agent!
  • Maintenance: Revert pull request #33930 HMR events - #34190, thanks @​yannbf!
  • Maintenance: Use std-env for AI agent detection in telemetry #34114
  • Manifest: Add docs entries to debugger - #33607, thanks @​JReinhold!
  • Manifest: Rename `experimentalComponentsManifest` → `componentsManifest`, default to `true` #33974
  • Manifests: Fix Attached MDX causing wrong component entries #34101
  • Next.js-Vite: Fix failing postcss mutation - #33879, thanks @​valentinpalkovic!
  • Next.js: Move image configuration from FrameworkOptions to parameters #32639, thanks @​y-hsgw!
  • Preact: Support inferring props from component types - #33828, thanks @​JoviDeCroock!
  • React Native Web: Fix inconsistent example stories - #33891, thanks @​danielalanbates!
  • React: Add react-docgen-typescript to component manifest - #33818, thanks @​kasperpeulen!
  • Revert "Toolbar: Remove extra toolbar divider when zoom controls not shown" - #34099, thanks @​valentinpalkovic!
  • Test: Fix clearing mocks in Vitest #34078
  • Test: Update @​testing-library/jest-dom - #33928, thanks @​valentinpalkovic!
  • Theming: Export interface declaration for `ThemesGlobals` - #33343, thanks @​icopp!
  • Toolbar: Remove extra toolbar divider when zoom controls not shown - #33731, thanks @​jonathan-fulton!
  • UI: Allow direct kb/mouse actions on zoom tool button - #33496, thanks @​Sidnioulz!
  • UI: Avoid large animation for reduced motion users - #33530, thanks @​Sidnioulz!
  • UI: Ensure Link without href is keyboard-reachable - #34163, thanks @​Sidnioulz!
  • UI: Fix `z-index` problem with `popover`s and `modal`s nesting - #33757, thanks @​ndelangen!
  • UI: Fix code/copy buttons overlap with content - #33889, thanks @​Sidnioulz!
  • UI: Fix Copy button overlapping code in portrait mode - #33420, thanks @​Maelryn!
  • UI: Fix modal text selection - #33967, thanks @​Sidnioulz!
  • UI: Fix tab navigation after closing addon panel - #33971, thanks @​copilot-swe-agent!
  • UI: Handle kb nav edge cases when preview and panel are hidden - #33588, thanks @​Sidnioulz!
  • UI: Hide addon panel Drag on pages without a panel - #34162, thanks @​Sidnioulz!
  • UI: Hide manifest tag for now - #34165, thanks @​Sidnioulz!
  • UI: Make disabled Buttons keyboard-focusable - #34166, thanks @​Sidnioulz!
  • UI: Make TagsFilter state persistent #33374
  • UI: Use correct selector for addon panel focus check - #34164, thanks @​Sidnioulz!
  • UI: Zoom faster when pressing shift - #34185, thanks @​Sidnioulz!
  • Viewport: Skip viewport validation before parameters load - #33794, thanks @​ia319!
  • Vite: Add mock entries to optimizeDeps.entries - #34167, thanks @​valentinpalkovic!
  • Vue3-Vite: Allow paths in docgen tsconfig option #32310, thanks @​Thomaash!
        ### v10.3.0-beta.3## 10.3.0-beta.3
  • Addon-Vitest: Handle additional vitest config export patterns in postinstall - #34106, thanks @​copilot-swe-agent!

  • CLI: Add vike CLI metadata - #34189, thanks @​yannbf!

  • Maintenance: Revert pull request #33930 HMR events - #34190, thanks @​yannbf!

  • UI: Ensure Link without href is keyboard-reachable - #34163, thanks @​Sidnioulz!

  • UI: Zoom faster when pressing shift - #34185, thanks @​Sidnioulz!

  • Vite: Add mock entries to optimizeDeps.entries - #34167, thanks @​valentinpalkovic!

          ### v10.3.0-beta.2## 10.3.0-beta.2
    
  • UI: Hide addon panel Drag on pages without a panel - #34162, thanks @​Sidnioulz!

  • UI: Hide manifest tag for now - #34165, thanks @​Sidnioulz!

  • UI: Make disabled Buttons keyboard-focusable - #34166, thanks @​Sidnioulz!

  • UI: Use correct selector for addon panel focus check - #34164, thanks @​Sidnioulz!

  • Vue: Make globals reactive in decorators - #34116, thanks @​Sidnioulz!

          ### v10.3.0-beta.1## 10.3.0-beta.1
    
  • Addon-Docs: Add React as optimizeDeps entry - #34176, thanks @​valentinpalkovic!

  • CLI: Avoid hanging of postinstall during init - #34175, thanks @​valentinpalkovic!

          ### v10.3.0-beta.0## 10.3.0-beta.0
    
  • Test: Fix clearing mocks in Vitest #34078

  • Core: Fix event source URL based on refId when multiple iframes share the same origin #34105

  • UI: Make TagsFilter state persistent #33374

  • A11y: Make resize handles for addon panel and sidebar accessible #33980

  • Maintenance: Use std-env for AI agent detection in telemetry #34114

  • Addon-Vitest: Make Playwright --with-deps platform-aware to avoid sudo prompt on Linux #34121

  • Addon-docs: Restore docs.components overrides for doc blocks #34111

  • Maintenance: Support vite-plugin-svelte7 which supports Vite 8 #34115

  • Core: Fix handling complex viewport sizes #33615

  • Core: Fix iframe reference for composed Storybook on a subpath #34100

  • Manifest: Rename experimentalComponentsManifestcomponentsManifest, default to true #33974

  • Manifests: Fix Attached MDX causing wrong component entries #34101

  • Vue3-Vite: Allow paths in docgen tsconfig option #32310, thanks @​Thomaash!

  • Next.js: Move image configuration from FrameworkOptions to parameters #32639, thanks @​y-hsgw!

  • Docs: Make CSS ordering in DocsContainer more predictable #34015

          ### v10.3.0-alpha.17## 10.3.0-alpha.17
    
  • Core: Correctly fallback to first detected vitest config file - #33865, thanks @​yannbf!

  • ESLint-plugin: Disallow extra properties in eslint plugin rule options - #32056, thanks @​andreww2012!

  • ESLint: bail out config setup if eslint-plugin-storybook is already imported - #34089, thanks @​copilot-swe-agent!

  • Revert "Toolbar: Remove extra toolbar divider when zoom controls not shown" - #34099, thanks @​valentinpalkovic!

          ### v10.2.19## 10.2.19
    
  • Maintenance: Support vite-plugin-svelte@​7 which supports Vite 8 - #34115, thanks @​valentinpalkovic!

  • Vite: Support Vite 8 - #33788, thanks @​valentinpalkovic!

          ### v10.2.18## 10.2.18
    
  • Core: Correctly fallback to first detected vitest config file - #33865, thanks @​yannbf!

  • Core: Fix error reporting in ManagerErrorBoundary - #33915, thanks @​ghengeveld!

          ### v10.3.0-alpha.16## 10.3.0-alpha.16
    
  • A11y: Underline MDX links for WCAG SC 1.4.1 compliance - #33139, thanks @​NikhilChowdhury27!

  • Angular: Add moduleResolution: bundler to tsconfig - #34085, thanks @​valentinpalkovic!

  • Angular: only load webpack dependencies on demand - #34043, thanks @​sod!

  • CLI: Show multiple favicons warning as debug message - #34069, thanks @​remino!

  • Core: Fix error reporting in ManagerErrorBoundary - #33915, thanks @​ghengeveld!

  • Vite: Support Vite 8 - #33788, thanks @​valentinpalkovic!

          ### v10.3.0-alpha.15## 10.3.0-alpha.15
    
  • Actions: Add expandLevel parameter to configure tree depth - #33977, thanks @​mixelburg!

  • Actions: Fix HandlerFunction type to support async callback props - #33864, thanks @​mixelburg!

  • Addon-Vitest: Refactor Vitest setup to eliminate the need for a dedicated setup file - #34025, thanks @​valentinpalkovic!

  • Build: Update @​types/node - #34037, thanks @​valentinpalkovic!

  • Builder-Vite: Fix cold-cache vitest failures for story paths containing glob special characters - #34044, thanks @​copilot-swe-agent!

  • CI:: declare explicit permissions for stale and weekly cron workflows - #33902, thanks @​Rohan5commit!

  • Core: Add vike metadata frameworks - #33965, thanks @​yannbf!

  • Core: Resolve builder preset path correctly in pnpm strict mode - #34032, thanks @​braedenfoster!

  • Core: Update default allowed hosts in host validation middleware - #34045, thanks @​ghengeveld!

  • Next.js: Add support for v16.2 - #34046, thanks @​valentinpalkovic!

  • UI: Fix code/copy buttons overlap with content - #33889, thanks @​Sidnioulz!

  • UI: Fix modal text selection - #33967, thanks @​Sidnioulz!

  • UI: Fix tab navigation after closing addon panel - #33971, thanks @​copilot-swe-agent!

  • UI: Handle kb nav edge cases when preview and panel are hidden - #33588, thanks @​Sidnioulz!

          ### v10.2.17## 10.2.17
    
  • Next.js: Add support for v16.2 - #34046, thanks @​valentinpalkovic!

          ### v10.2.16## 10.2.16
    
  • CSF-Factories: Fix ConfigFile parser false warning on `definePreview({...}).type()` export default - #33885, thanks @​copilot-swe-agent!

  • Core: Add host/origin validation to requests and websocket connections - #33835, thanks @​ghengeveld!

  • Core: Add vike metadata frameworks - #33965, thanks @​yannbf!

  • Core: Resolve builder preset path correctly in pnpm strict mode - #34032, thanks @​braedenfoster!

  • Core: Update default allowed hosts in host validation middleware - #34045, thanks @​ghengeveld!

          ### v9.1.20## 9.1.20
    
  • Add request validation

          ### v10.3.0-alpha.14## 10.3.0-alpha.14
    
  • CSF-Factories: Fix ConfigFile parser false warning on `definePreview({...}).type()` export default - #33885, thanks @​copilot-swe-agent!

  • Core: Add host/origin validation to requests and websocket connections - #33835, thanks @​ghengeveld!

  • Core: Storybook failed to load iframe.html when publishing - #33896, thanks @​danielalanbates!

  • Core: Zoom tool refinements - Hide reset button when value is initial - #33635, thanks @​superLipbalm!

  • Docs: Edit JSON button is now accessible at 320x256 viewport (WCAG 2.1 Reflow test) - #33707, thanks @​TheSeydiCharyyev!

  • Manager-API: Update refs sequentially in experimental_setFilter - #33958, thanks @​ia319!

  • UI: Allow direct kb/mouse actions on zoom tool button - #33496, thanks @​Sidnioulz!

Commit history:
  • 5647e6 Merge pull request #34440 from storybookjs/cli/node-version-check-init

    CLI: Streamline Node.js version detection code

  • 3694b0 Simplify code
  • a8bc7b Remove backup node version warning as old nodes crash earlier
  • 20c543 Revert changes to Preflight check tests
  • 0aecc8 Removing whitespace from diff
  • ee3330 Remove node version prompt, only improve check and output
  • 82efeb refactor tests
  • a3ca0f Handle side effects of CI exclusion for tests
  • c4a96b Fix linting and formatting
  • e8d657 fix: nvmrc precision logic, detect-indent for JSON, options.yes guard

    • Add NodeVersionPrecision type and precision field to parseNodeVersionString
      so callers know if the input was major-only, major.minor, or full
    • Add mode:'nvmrc' option to isNodeVersionSupported: major-only "22" means
      "latest 22.x" (supported), not 22.0.0 (which is not); major.minor "22.14"
      checks at minor level rather than treating as 22.14.0
    • Use mode:'nvmrc' + precision in PreflightCheckCommand and node-version-check
      nvmrc check paths so users with ".nvmrc: 22" are not incorrectly prompted
    • Replace naive indent detection in updateEnginesNode with detect-indent so
      tab-indented JSON is preserved correctly (not converted to spaces)
    • Add options.yes === true to non-interactive guard alongside TTY/CI checks
    • Add nvmrc mode tests, precision assertions in parseNodeVersionString tests,
      and tab/minified JSON indentation tests for updateEnginesNode

    Agent-Logs-Url: https://github.com/storybookjs/storybook/sessions/7540f41d-9b80-4e83-a4ec-738e331cc43d

    Co-authored-by: Sidnioulz <5108577+Sidnioulz@​users.noreply.github.com>

  • b2e3e3 fix: address PR review feedback on node-version checks

    • Bound find.up('.nvmrc') search to project root via last: getProjectRoot()
      to prevent reading/modifying unrelated .nvmrc files up the directory tree
    • Add unit tests for bounded search behavior
    • Skip interactive prompts in CI/non-interactive environments in both
      PreflightCheckCommand and handleUnsupportedNodeRuntime
    • Wrap file update calls in try/catch in promptVersionBump so init
      continues on write errors
    • Fix engines.node runtime option to use >=${major}.${minor} format
      (not full patch version) for consistency with other choices
    • Emit combined exit message when both .nvmrc and engines.node are bumped

    Agent-Logs-Url: https://github.com/storybookjs/storybook/sessions/37cce97f-827b-493f-8d63-83550dcdf9f5

    Co-authored-by: Sidnioulz <5108577+Sidnioulz@​users.noreply.github.com>

  • 25cd8f Show higher quality error message when possible
  • dc24eb refactor: use shared constants and add declared version bump in create-storybook bin entry
  • f9b3fe feat: add unsupported Node.js runtime handler with declared version bump flow
  • 89d2e4 feat: check declared Node.js version in PreflightCheckCommand and offer to bump
  • a78cb9 refactor: use shared Node.js version constants in dispatcher and cli-storybook
  • 9e40df feat: re-export node-version utilities from common
  • 4123da feat: add shared Node.js version constants, utilities, detection, and update functions
  • aae6c9 Merge pull request #34498 from storybookjs/change-detection-startup-performance

    Core: Improve startup performance by deferring change detection initialization

  • 702291 Merge pull request #34502 from storybookjs/docs/ai_contribution_guide

    Docs: Add AI contributions guide in contributing.md and documentation

  • ee5ddc Docs: update contribution guide
  • 6c8f23 Docs: update contribution guideline for AI assisted PR
  • eaff7f Initialize change detection only once preview is ready
  • ad5c2a Merge pull request #34494 from storybookjs/copilot/accessible-rabbit

    Nextjs: Handle node builtin webpack imports

  • ae7abd Nextjs: normalize node builtin webpack imports

    Co-authored-by: Copilot <223556219+Copilot@​users.noreply.github.com>

  • 370524 Merge pull request #34445 from storybookjs/change-detection-windows

    Core: Normalize file paths in ChangeDetectionService and trace-changed for Windows support

  • 2c99f1 Update CHANGELOG.md for v10.3.5 [skip ci]
  • ac76d4 Merge branch 'next-release' into next
  • 7b51dd Bump version from "10.4.0-alpha.7" to "10.4.0-alpha.8" [skip ci]
  • 088fa5 Merge pull request #34448 from storybookjs/version-non-patch-from-10.4.0-alpha.7

    Release: Prerelease 10.4.0-alpha.8

@michijs

michijs Bot commented Apr 13, 2026

Copy link
Copy Markdown
Contributor Author

Bump @​michijs/storybook-utils from 8.4.7 to 8.4.8

Changelog:
Sourced from releases.
        ### 8.4.8## What's Changed

New Contributors

Full Changelog: https://github.com/michijs/storybook-utils/compare/v8.4.7...8.4.8

        ### v8.4.8-beta.8Automatic release


        ### v8.4.8-beta.7Automatic release


        ### v8.4.8-beta.6Automatic release


        ### v8.4.8-beta.5Automatic release


        ### v8.4.8-beta.4Automatic release


        ### v8.4.8-beta.3Automatic release


        ### v8.4.8-beta.2Automatic release


        ### v8.4.8-beta.1Automatic release


        ### v8.4.8-beta.0Automatic release


        ### v8.4.7Bump dependencies
Commit history:

@michijs michijs Bot closed this Apr 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants