Skip to content

[master] Michijs Dependabot changes#109

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

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

Conversation

@michijs

michijs Bot commented Mar 30, 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 Mar 30, 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 Mar 30, 2026

Copy link
Copy Markdown
Contributor Author

Bump @​storybook/addon-docs from 9.1.3 to 10.3.3

Changelog:
Sourced from releases.
        ### 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!

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

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

  • React: Handle render identifier in manifest snippet generation - #33940, thanks @​kasperpeulen!

          ### v10.3.0-alpha.13## 10.3.0-alpha.13
    
  • A11y: Add ScrollArea prop focusable for when it has static children - #33876, thanks @​Sidnioulz!

  • CLI: Set STORYBOOK environment variable - #33938, thanks @​yannbf!

  • Controls: Fix Object contrast issue and tidy up code - #33923, thanks @​Sidnioulz!

  • HMR: Fix race conditions causing stale play functions to fire on re-rendered stories - #33930, thanks @​copilot-swe-agent!

  • React: Handle render identifier in manifest snippet generation - #33940, thanks @​kasperpeulen!

  • UI: Prevent crash when tag filters contain undefined entries - #33931, thanks @​abhaysinh1000!

          ### v10.2.14## 10.2.14
    
  • CLI: Set STORYBOOK environment variable - #33938, thanks @​yannbf!

  • UI: Prevent crash when tag filters contain undefined entries - #33931, thanks @​abhaysinh1000!

          ### v10.3.0-alpha.12## 10.3.0-alpha.12
    
  • Builder-Vite: Prevent config duplication - #33883, thanks @​copilot-swe-agent!

  • CLI: Fix React native web A11y issues - #33937, thanks @​jonniebigodes!

  • Core: Ensure telemetry is never triggered on initial load of checklist data - #33918, thanks @​ghengeveld!

  • Eslint: Fix ESLint 10 compatibility in eslint-plugin-storybook rules - #33884, thanks @​copilot-swe-agent!

  • Test: Update @​testing-library/jest-dom - #33928, thanks @​valentinpalkovic!

          ### v10.2.13## 10.2.13
    
  • Addon Pseudo-states: Process all nested css rules - #33605, thanks @​hpohlmeyer!

  • Builder-Vite: Prevent config duplication - #33883, thanks @​copilot-swe-agent!

  • CLI: Fix React native web A11y issues - #33937, thanks @​jonniebigodes!

  • Core: Avoid hanging when inferring args for recursive calls on DOM elemens - #33922, thanks @​valentinpalkovic!

  • Eslint: Fix ESLint 10 compatibility in eslint-plugin-storybook rules - #33884, thanks @​copilot-swe-agent!

  • Viewport: Prioritize story viewport globals and avoid user-global pollution - #33849, thanks @​ia319!

Commit history:
  • 0efef1 Merge pull request #33841 from storybookjs/kasper/docs-rdt-monorepo-faq

    Docs: Add troubleshooting for react-docgen-typescript in monorepos

  • a3f326 Merge pull request #33193 from storybookjs/fix-checklist-invalid-mdx-snippet

    Onboarding: Fix checklist MDX instructions

  • 5017de Merge pull request #34296 from majiayu000/fix/issue-19401-step-waitfor-nesting

    Maintenance: Add assertions outside step incorrectly nested in interactions panel

  • 81ac5b Merge branch 'next' into fix/issue-19401-step-waitfor-nesting
  • 69c844 Merge pull request #34361 from storybookjs/valentin/fix-csf4-vitest-issue

    CSF4: Fix duplicate preview loading issue in Vitest

  • 3ebc4f Fix lint
  • 127dcf Merge remote-tracking branch 'origin/next' into valentin/fix-csf4-vitest-issue
  • 6d4fcb Merge pull request #34262 from Nathan54Villaume/fix/mobile-renderLabel-react-node

    UI: Fix mobile navigation when renderLabel returns a React node

  • 73349e Merge pull request #34363 from storybookjs/fix-versions-formatting

    Build: Actually disable formatting of version json files

  • 36244e just dont be stupid
  • 3a6f20 Merge pull request #34349 from cjeonguk/cjeonguk-patch-1

    Docs: Update Node version in CI examples

  • cfb981 CSF4: Fix duplicate preview loading issue in Vitest

    Co-authored-by: Kasper Peulen <kasperpeulen@​gmail.com>

  • 4bcba4 Merge branch 'next-release' into next
  • ca6e23 Bump version from "10.4.0-alpha.4" to "10.4.0-alpha.5" [skip ci]
  • 8d1230 Merge pull request #34316 from storybookjs/jeppe/fix-error-reports-on-init

    CLI: Prompt for init crash reports

  • ab96a7 Merge pull request #34322 from storybookjs/version-non-patch-from-10.4.0-alpha.4

    Release: Prerelease 10.4.0-alpha.5

  • 82b7f6 format
  • 88a1f4 Merge pull request #34290 from whdjh/fix/28725-storybook-package-name-check

    CLI: Add automigrate check for 'storybook' package name conflict

  • cad2ca Merge branch 'next' into fix/28725-storybook-package-name-check
  • 8cf417 Upgrade versions of actions in ghp-github-action.md
  • f83936 Update versions of actions in chromatic-github-action.md
  • d1497d Merge branch 'next' into kasper/docs-rdt-monorepo-faq
  • 52db3d Merge branch 'next' into fix-checklist-invalid-mdx-snippet
  • 780885 dont prompt on non-blocking errors during init
  • ac322c Update Node.js version in docs snippet
  • 6362f7 Update Node.js version in docs snippet
  • 6de8c9 Write changelog for 10.4.0-alpha.5 [skip ci]
  • 810093 Merge pull request #34334 from storybookjs/copilot/fix-duplicate-pseudo-state-grid

    Refactor: Extract shared PseudoStateGrid component in pseudo-states stories

  • f6a6ba Merge pull request #34321 from storybookjs/jeppe/fix-release-format

    Build: Don't check format of version JSON files

  • a413a7 Merge branch 'next' into copilot/fix-duplicate-pseudo-state-grid

@michijs

michijs Bot commented Mar 30, 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:
  • 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)
  • 70c5fc Document indexOf return value when not found (#60569)

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

  • 8bb72d Return iterable of RegExpExecArray from RegExp#[Symbol.matchAll] (#60516)

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

  • 0457b6 Fix RegExpIndicesArray by adding undefined to type definition (#61079)
  • 2b881b Update Map.clear and Set.clear jsdoc in es2015.collection.d.ts (#57661)

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

  • fbe221 Add approximatelySign to NumberFormatRangePartTypeRegistry for ES2023 (#62013)

    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: jakebailey <5341706+jakebailey@​users.noreply.github.com>

  • d3ce3c Implement Intl Locale Info proposal (#60656)

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

@michijs

michijs Bot commented Mar 30, 2026

Copy link
Copy Markdown
Contributor Author

Bump storybook from 9.1.3 to 10.3.3

Changelog:
Sourced from releases.
        ### 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!

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

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

  • React: Handle render identifier in manifest snippet generation - #33940, thanks @​kasperpeulen!

          ### v10.3.0-alpha.13## 10.3.0-alpha.13
    
  • A11y: Add ScrollArea prop focusable for when it has static children - #33876, thanks @​Sidnioulz!

  • CLI: Set STORYBOOK environment variable - #33938, thanks @​yannbf!

  • Controls: Fix Object contrast issue and tidy up code - #33923, thanks @​Sidnioulz!

  • HMR: Fix race conditions causing stale play functions to fire on re-rendered stories - #33930, thanks @​copilot-swe-agent!

  • React: Handle render identifier in manifest snippet generation - #33940, thanks @​kasperpeulen!

  • UI: Prevent crash when tag filters contain undefined entries - #33931, thanks @​abhaysinh1000!

          ### v10.2.14## 10.2.14
    
  • CLI: Set STORYBOOK environment variable - #33938, thanks @​yannbf!

  • UI: Prevent crash when tag filters contain undefined entries - #33931, thanks @​abhaysinh1000!

          ### v10.3.0-alpha.12## 10.3.0-alpha.12
    
  • Builder-Vite: Prevent config duplication - #33883, thanks @​copilot-swe-agent!

  • CLI: Fix React native web A11y issues - #33937, thanks @​jonniebigodes!

  • Core: Ensure telemetry is never triggered on initial load of checklist data - #33918, thanks @​ghengeveld!

  • Eslint: Fix ESLint 10 compatibility in eslint-plugin-storybook rules - #33884, thanks @​copilot-swe-agent!

  • Test: Update @​testing-library/jest-dom - #33928, thanks @​valentinpalkovic!

          ### v10.2.13## 10.2.13
    
  • Addon Pseudo-states: Process all nested css rules - #33605, thanks @​hpohlmeyer!

  • Builder-Vite: Prevent config duplication - #33883, thanks @​copilot-swe-agent!

  • CLI: Fix React native web A11y issues - #33937, thanks @​jonniebigodes!

  • Core: Avoid hanging when inferring args for recursive calls on DOM elemens - #33922, thanks @​valentinpalkovic!

  • Eslint: Fix ESLint 10 compatibility in eslint-plugin-storybook rules - #33884, thanks @​copilot-swe-agent!

  • Viewport: Prioritize story viewport globals and avoid user-global pollution - #33849, thanks @​ia319!

Commit history:
  • 0efef1 Merge pull request #33841 from storybookjs/kasper/docs-rdt-monorepo-faq

    Docs: Add troubleshooting for react-docgen-typescript in monorepos

  • a3f326 Merge pull request #33193 from storybookjs/fix-checklist-invalid-mdx-snippet

    Onboarding: Fix checklist MDX instructions

  • 5017de Merge pull request #34296 from majiayu000/fix/issue-19401-step-waitfor-nesting

    Maintenance: Add assertions outside step incorrectly nested in interactions panel

  • 81ac5b Merge branch 'next' into fix/issue-19401-step-waitfor-nesting
  • 69c844 Merge pull request #34361 from storybookjs/valentin/fix-csf4-vitest-issue

    CSF4: Fix duplicate preview loading issue in Vitest

  • 3ebc4f Fix lint
  • 127dcf Merge remote-tracking branch 'origin/next' into valentin/fix-csf4-vitest-issue
  • 6d4fcb Merge pull request #34262 from Nathan54Villaume/fix/mobile-renderLabel-react-node

    UI: Fix mobile navigation when renderLabel returns a React node

  • 73349e Merge pull request #34363 from storybookjs/fix-versions-formatting

    Build: Actually disable formatting of version json files

  • 36244e just dont be stupid
  • 3a6f20 Merge pull request #34349 from cjeonguk/cjeonguk-patch-1

    Docs: Update Node version in CI examples

  • cfb981 CSF4: Fix duplicate preview loading issue in Vitest

    Co-authored-by: Kasper Peulen <kasperpeulen@​gmail.com>

  • 4bcba4 Merge branch 'next-release' into next
  • ca6e23 Bump version from "10.4.0-alpha.4" to "10.4.0-alpha.5" [skip ci]
  • 8d1230 Merge pull request #34316 from storybookjs/jeppe/fix-error-reports-on-init

    CLI: Prompt for init crash reports

  • ab96a7 Merge pull request #34322 from storybookjs/version-non-patch-from-10.4.0-alpha.4

    Release: Prerelease 10.4.0-alpha.5

  • 82b7f6 format
  • 88a1f4 Merge pull request #34290 from whdjh/fix/28725-storybook-package-name-check

    CLI: Add automigrate check for 'storybook' package name conflict

  • cad2ca Merge branch 'next' into fix/28725-storybook-package-name-check
  • 8cf417 Upgrade versions of actions in ghp-github-action.md
  • f83936 Update versions of actions in chromatic-github-action.md
  • d1497d Merge branch 'next' into kasper/docs-rdt-monorepo-faq
  • 52db3d Merge branch 'next' into fix-checklist-invalid-mdx-snippet
  • 780885 dont prompt on non-blocking errors during init
  • ac322c Update Node.js version in docs snippet
  • 6362f7 Update Node.js version in docs snippet
  • 6de8c9 Write changelog for 10.4.0-alpha.5 [skip ci]
  • 810093 Merge pull request #34334 from storybookjs/copilot/fix-duplicate-pseudo-state-grid

    Refactor: Extract shared PseudoStateGrid component in pseudo-states stories

  • f6a6ba Merge pull request #34321 from storybookjs/jeppe/fix-release-format

    Build: Don't check format of version JSON files

  • a413a7 Merge branch 'next' into copilot/fix-duplicate-pseudo-state-grid

@michijs

michijs Bot commented Mar 30, 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 Mar 30, 2026

Copy link
Copy Markdown
Contributor Author

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

Changelog:
Sourced from releases.
        ### 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!

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

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

  • React: Handle render identifier in manifest snippet generation - #33940, thanks @​kasperpeulen!

          ### v10.3.0-alpha.13## 10.3.0-alpha.13
    
  • A11y: Add ScrollArea prop focusable for when it has static children - #33876, thanks @​Sidnioulz!

  • CLI: Set STORYBOOK environment variable - #33938, thanks @​yannbf!

  • Controls: Fix Object contrast issue and tidy up code - #33923, thanks @​Sidnioulz!

  • HMR: Fix race conditions causing stale play functions to fire on re-rendered stories - #33930, thanks @​copilot-swe-agent!

  • React: Handle render identifier in manifest snippet generation - #33940, thanks @​kasperpeulen!

  • UI: Prevent crash when tag filters contain undefined entries - #33931, thanks @​abhaysinh1000!

          ### v10.2.14## 10.2.14
    
  • CLI: Set STORYBOOK environment variable - #33938, thanks @​yannbf!

  • UI: Prevent crash when tag filters contain undefined entries - #33931, thanks @​abhaysinh1000!

          ### v10.3.0-alpha.12## 10.3.0-alpha.12
    
  • Builder-Vite: Prevent config duplication - #33883, thanks @​copilot-swe-agent!

  • CLI: Fix React native web A11y issues - #33937, thanks @​jonniebigodes!

  • Core: Ensure telemetry is never triggered on initial load of checklist data - #33918, thanks @​ghengeveld!

  • Eslint: Fix ESLint 10 compatibility in eslint-plugin-storybook rules - #33884, thanks @​copilot-swe-agent!

  • Test: Update @​testing-library/jest-dom - #33928, thanks @​valentinpalkovic!

          ### v10.2.13## 10.2.13
    
  • Addon Pseudo-states: Process all nested css rules - #33605, thanks @​hpohlmeyer!

  • Builder-Vite: Prevent config duplication - #33883, thanks @​copilot-swe-agent!

  • CLI: Fix React native web A11y issues - #33937, thanks @​jonniebigodes!

  • Core: Avoid hanging when inferring args for recursive calls on DOM elemens - #33922, thanks @​valentinpalkovic!

  • Eslint: Fix ESLint 10 compatibility in eslint-plugin-storybook rules - #33884, thanks @​copilot-swe-agent!

  • Viewport: Prioritize story viewport globals and avoid user-global pollution - #33849, thanks @​ia319!

Commit history:
  • 0efef1 Merge pull request #33841 from storybookjs/kasper/docs-rdt-monorepo-faq

    Docs: Add troubleshooting for react-docgen-typescript in monorepos

  • a3f326 Merge pull request #33193 from storybookjs/fix-checklist-invalid-mdx-snippet

    Onboarding: Fix checklist MDX instructions

  • 5017de Merge pull request #34296 from majiayu000/fix/issue-19401-step-waitfor-nesting

    Maintenance: Add assertions outside step incorrectly nested in interactions panel

  • 81ac5b Merge branch 'next' into fix/issue-19401-step-waitfor-nesting
  • 69c844 Merge pull request #34361 from storybookjs/valentin/fix-csf4-vitest-issue

    CSF4: Fix duplicate preview loading issue in Vitest

  • 3ebc4f Fix lint
  • 127dcf Merge remote-tracking branch 'origin/next' into valentin/fix-csf4-vitest-issue
  • 6d4fcb Merge pull request #34262 from Nathan54Villaume/fix/mobile-renderLabel-react-node

    UI: Fix mobile navigation when renderLabel returns a React node

  • 73349e Merge pull request #34363 from storybookjs/fix-versions-formatting

    Build: Actually disable formatting of version json files

  • 36244e just dont be stupid
  • 3a6f20 Merge pull request #34349 from cjeonguk/cjeonguk-patch-1

    Docs: Update Node version in CI examples

  • cfb981 CSF4: Fix duplicate preview loading issue in Vitest

    Co-authored-by: Kasper Peulen <kasperpeulen@​gmail.com>

  • 4bcba4 Merge branch 'next-release' into next
  • ca6e23 Bump version from "10.4.0-alpha.4" to "10.4.0-alpha.5" [skip ci]
  • 8d1230 Merge pull request #34316 from storybookjs/jeppe/fix-error-reports-on-init

    CLI: Prompt for init crash reports

  • ab96a7 Merge pull request #34322 from storybookjs/version-non-patch-from-10.4.0-alpha.4

    Release: Prerelease 10.4.0-alpha.5

  • 82b7f6 format
  • 88a1f4 Merge pull request #34290 from whdjh/fix/28725-storybook-package-name-check

    CLI: Add automigrate check for 'storybook' package name conflict

  • cad2ca Merge branch 'next' into fix/28725-storybook-package-name-check
  • 8cf417 Upgrade versions of actions in ghp-github-action.md
  • f83936 Update versions of actions in chromatic-github-action.md
  • d1497d Merge branch 'next' into kasper/docs-rdt-monorepo-faq
  • 52db3d Merge branch 'next' into fix-checklist-invalid-mdx-snippet
  • 780885 dont prompt on non-blocking errors during init
  • ac322c Update Node.js version in docs snippet
  • 6362f7 Update Node.js version in docs snippet
  • 6de8c9 Write changelog for 10.4.0-alpha.5 [skip ci]
  • 810093 Merge pull request #34334 from storybookjs/copilot/fix-duplicate-pseudo-state-grid

    Refactor: Extract shared PseudoStateGrid component in pseudo-states stories

  • f6a6ba Merge pull request #34321 from storybookjs/jeppe/fix-release-format

    Build: Don't check format of version JSON files

  • a413a7 Merge branch 'next' into copilot/fix-duplicate-pseudo-state-grid

@michijs

michijs Bot commented Mar 30, 2026

Copy link
Copy Markdown
Contributor Author
Changelog:
Sourced from releases.
        ### 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!

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

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

  • React: Handle render identifier in manifest snippet generation - #33940, thanks @​kasperpeulen!

          ### v10.3.0-alpha.13## 10.3.0-alpha.13
    
  • A11y: Add ScrollArea prop focusable for when it has static children - #33876, thanks @​Sidnioulz!

  • CLI: Set STORYBOOK environment variable - #33938, thanks @​yannbf!

  • Controls: Fix Object contrast issue and tidy up code - #33923, thanks @​Sidnioulz!

  • HMR: Fix race conditions causing stale play functions to fire on re-rendered stories - #33930, thanks @​copilot-swe-agent!

  • React: Handle render identifier in manifest snippet generation - #33940, thanks @​kasperpeulen!

  • UI: Prevent crash when tag filters contain undefined entries - #33931, thanks @​abhaysinh1000!

          ### v10.2.14## 10.2.14
    
  • CLI: Set STORYBOOK environment variable - #33938, thanks @​yannbf!

  • UI: Prevent crash when tag filters contain undefined entries - #33931, thanks @​abhaysinh1000!

          ### v10.3.0-alpha.12## 10.3.0-alpha.12
    
  • Builder-Vite: Prevent config duplication - #33883, thanks @​copilot-swe-agent!

  • CLI: Fix React native web A11y issues - #33937, thanks @​jonniebigodes!

  • Core: Ensure telemetry is never triggered on initial load of checklist data - #33918, thanks @​ghengeveld!

  • Eslint: Fix ESLint 10 compatibility in eslint-plugin-storybook rules - #33884, thanks @​copilot-swe-agent!

  • Test: Update @​testing-library/jest-dom - #33928, thanks @​valentinpalkovic!

          ### v10.2.13## 10.2.13
    
  • Addon Pseudo-states: Process all nested css rules - #33605, thanks @​hpohlmeyer!

  • Builder-Vite: Prevent config duplication - #33883, thanks @​copilot-swe-agent!

  • CLI: Fix React native web A11y issues - #33937, thanks @​jonniebigodes!

  • Core: Avoid hanging when inferring args for recursive calls on DOM elemens - #33922, thanks @​valentinpalkovic!

  • Eslint: Fix ESLint 10 compatibility in eslint-plugin-storybook rules - #33884, thanks @​copilot-swe-agent!

  • Viewport: Prioritize story viewport globals and avoid user-global pollution - #33849, thanks @​ia319!

Commit history:
  • 0efef1 Merge pull request #33841 from storybookjs/kasper/docs-rdt-monorepo-faq

    Docs: Add troubleshooting for react-docgen-typescript in monorepos

  • a3f326 Merge pull request #33193 from storybookjs/fix-checklist-invalid-mdx-snippet

    Onboarding: Fix checklist MDX instructions

  • 5017de Merge pull request #34296 from majiayu000/fix/issue-19401-step-waitfor-nesting

    Maintenance: Add assertions outside step incorrectly nested in interactions panel

  • 81ac5b Merge branch 'next' into fix/issue-19401-step-waitfor-nesting
  • 69c844 Merge pull request #34361 from storybookjs/valentin/fix-csf4-vitest-issue

    CSF4: Fix duplicate preview loading issue in Vitest

  • 3ebc4f Fix lint
  • 127dcf Merge remote-tracking branch 'origin/next' into valentin/fix-csf4-vitest-issue
  • 6d4fcb Merge pull request #34262 from Nathan54Villaume/fix/mobile-renderLabel-react-node

    UI: Fix mobile navigation when renderLabel returns a React node

  • 73349e Merge pull request #34363 from storybookjs/fix-versions-formatting

    Build: Actually disable formatting of version json files

  • 36244e just dont be stupid
  • 3a6f20 Merge pull request #34349 from cjeonguk/cjeonguk-patch-1

    Docs: Update Node version in CI examples

  • cfb981 CSF4: Fix duplicate preview loading issue in Vitest

    Co-authored-by: Kasper Peulen <kasperpeulen@​gmail.com>

  • 4bcba4 Merge branch 'next-release' into next
  • ca6e23 Bump version from "10.4.0-alpha.4" to "10.4.0-alpha.5" [skip ci]
  • 8d1230 Merge pull request #34316 from storybookjs/jeppe/fix-error-reports-on-init

    CLI: Prompt for init crash reports

  • ab96a7 Merge pull request #34322 from storybookjs/version-non-patch-from-10.4.0-alpha.4

    Release: Prerelease 10.4.0-alpha.5

  • 82b7f6 format
  • 88a1f4 Merge pull request #34290 from whdjh/fix/28725-storybook-package-name-check

    CLI: Add automigrate check for 'storybook' package name conflict

  • cad2ca Merge branch 'next' into fix/28725-storybook-package-name-check
  • 8cf417 Upgrade versions of actions in ghp-github-action.md
  • f83936 Update versions of actions in chromatic-github-action.md
  • d1497d Merge branch 'next' into kasper/docs-rdt-monorepo-faq
  • 52db3d Merge branch 'next' into fix-checklist-invalid-mdx-snippet
  • 780885 dont prompt on non-blocking errors during init
  • ac322c Update Node.js version in docs snippet
  • 6362f7 Update Node.js version in docs snippet
  • 6de8c9 Write changelog for 10.4.0-alpha.5 [skip ci]
  • 810093 Merge pull request #34334 from storybookjs/copilot/fix-duplicate-pseudo-state-grid

    Refactor: Extract shared PseudoStateGrid component in pseudo-states stories

  • f6a6ba Merge pull request #34321 from storybookjs/jeppe/fix-release-format

    Build: Don't check format of version JSON files

  • a413a7 Merge branch 'next' into copilot/fix-duplicate-pseudo-state-grid

@michijs

michijs Bot commented Mar 30, 2026

Copy link
Copy Markdown
Contributor Author

Bump bun from 1.2.21 to 1.3.11

Changelog:
Sourced from releases.
        ### bun-v1.3.11To install Bun v1.3.11
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:
  • ba05a7 delete cmake (#28640)

    What

    Removes the CMake build system. The TypeScript build (scripts/build/)
    has been the primary build path for a while; this deletes the legacy
    path.

    Changes

    Deleted (~6200 lines)

    • cmake/ — all targets, toolchains, tools, analysis, Sources.json
    • CMakeLists.txt
    • scripts/build.mjs — the old cmake wrapper
    • scripts/glob-sources.mjs — the old Sources.json→txt generator
    • 14 package.json scripts that invoked the above (build:cmake:*,
      analysis*, clang-tidy*, zig-format*, zig:test*)

    Source patterns: cmake/Sources.jsonscripts/glob-sources.ts

    Patterns are now inlined as a typed const with Sources derived via
    keyof typeof patterns. Also runnable as a CLI:

    bun scripts/glob-sources.ts cxx      # one .cpp path per line
    bun scripts/glob-sources.ts --all    # every source list

    Uses node:fs globSync so it runs under both Bun and Node. Consumers
    updated: configure.ts, run-clang-format.sh, ban-words.test.ts,
    lldb-inline-tool.cpp, cppbind.ts, sync-webkit-source.ts.

    New: bun run clean

    bun run clean              # build/debug/
    bun run clean release      # build/release/
    bun run clean debug-local  # build/debug-local/ + vendor/WebKit/WebKitBuild/Debug
    bun run clean zig          # zig caches across all profiles
    bun run clean cpp          # obj/ + pch/ across all profiles
    bun run clean deep         # build/, vendor/* (except WebKit), zig caches
    bun run clean --help

    The deep vendor list is derived from allDeps in
    scripts/build/deps/index.ts, so new dependencies are picked up
    automatically.

    Docs updated

    CONTRIBUTING.md and docs/project/contributing.mdx now point at
    scripts/build/deps/webkit.ts for WEBKIT_VERSION and the --asan=off
    flag for disabling ASAN.

    Notes

    • cmake the tool is still required — vendored deps (zstd, libarchive,
      boringssl, etc.) build via nested cmake
    • scripts/bump.ts was already missing (deleted in an earlier commit);
      the bump action and package.json script that reference it are
      pre-existing breakage
    • test/js/bun/util/zstd.test.ts has a snapshot of the old package.json
      as compression test data; will need a snapshot regen

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

  • 7dc7bd Bump actions
  • 1cc837 Enable TCP_DEFER_ACCEPT for HTTP listeners on Linux (#28617)

    What

    Sets TCP_DEFER_ACCEPT on the listen socket for Bun.serve() (Linux)
    and SO_ACCEPTFILTER "dataready" (FreeBSD). When the kernel defers
    accept, the accept loop dispatches the socket as readable immediately
    instead of returning to epoll first.

    Why

    For short-lived connections (HTTP/1.1 with Connection: close), the
    server currently does:

    1. epoll wake → listen socket readable
    2. accept() → register new socket with epoll
    3. return to epoll ← wasted round-trip
    4. epoll wake → new socket readable
    5. recv() → process → respond → close

    With TCP_DEFER_ACCEPT, the kernel holds the accept until data arrives,
    so step 3–4 collapses into step 2. Same pattern nginx uses (rev->ready = 1 after deferred
    accept
    ).

    Works for TLS too — the ClientHello is the first data packet.

    Scope

    • Opt-in via LIBUS_LISTEN_DEFER_ACCEPT, only set by uWS
      HttpContext::listen
    • Bun.listen() / net.createServer() unchanged (may serve
      server-sends-first protocols)
    • No-op on macOS (no kernel equivalent) and Windows

    Test plan

    • test/js/bun/http/serve.test.ts passes (189/189)
    • zig:check-all passes on all platforms
    • Benchmark oha --disable-keepalive on Linux to quantify
      improvement

    Co-authored-by: robobun <bot@​oven.sh>

  • 44f5b6 Add second cork buffer to uWebSockets for nested async handlers (#28615)

    What

    Replaces uWebSockets' single shared cork buffer with two independent
    cork slots.

    Why

    When an async HTTP handler awaits and later resumes (e.g. another
    request resolves its promise), the resumed request's writeHead() +
    end() couldn't get the cork buffer because the newer in-flight request
    was holding it. This forced the resumed request down the uncorked path —
    one write() syscall per call instead of batching them. On the
    bench/snippets/http-hello.node.mjs interleaved-await pattern this
    dropped throughput from ~190k req/s to ~22k req/s.

    How

    • Two independent slots: each holds {buffer, socket, offset, ssl}.
      cork() grabs whichever slot is free; uncork() releases yours. No
      ordering constraints.
    • Empty-slot stealing: if both slots are claimed but one has
      offset==0 (corked but not yet written), it's freely stolen — no flush
      needed.
    • LRU eviction: when both slots hold actual data (rare, depth 3+),
      force-uncork the least-recently-touched one. Tracked via a single bit.
    • Entry-point re-cork: NodeHTTP writeHead and
      HttpResponse::cork(handler) call cork() before each write sequence,
      so if your slot was stolen while you were awaiting, you transparently
      get a fresh one.
    • UAF protection: uncorkWithoutSending() (called from all
      close/destroy paths) now clears the socket from any slot via
      unborrowCorkSlot(), preventing the drain loop from dereferencing a
      freed pointer.
    • Bounded drain: preCb and uws_res_clear_corked_socket iterate
      at most twice (one per slot).

    Memory cost: one extra 16KB buffer per event loop.

    Tests

    • test/js/node/http/node-http-nested-cork.test.ts — 20 concurrent
      interleaved-await requests for both node:http and Bun.serve, asserts all
      responses are correct with no cross-socket bleed.
    • serve.test.ts (189 tests), node-http.test.ts (78 tests),
      websocket-server.test.ts all pass.

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

  • 7c4714 fix(serve): leak when Promise never settles after abort (#28613)

    Summary

    When Bun.serve()'s fetch handler returns a pending Promise<Response>
    and the client disconnects before it settles, the RequestContext
    leaked forever. The ctx.ref() before .then() was only balanced by
    onResolve/onReject, which never fire for unsettled promises.

    This introduces NativePromiseContext — a minimal GC-managed JSCell
    that owns the ref:

    • JSC::JSCell + CellType + custom IsoHeapCellType for
      destructor support
    • CompactPointerTuple<Pointee*, Tag> packs pointer + tag in 8
      bytes (cell = JSCell header + 1 word)
    • Tag enum class with one entry per concrete type (4 RequestContext
      variants), kept in sync C++↔Zig
    • take() transfers ownership for deterministic cleanup in the
      normal path
    • Destructor calls one extern C function that Zig implements with a
      tag switch — no function pointers, no Weak<> overhead

    If the Promise settles: onResolve calls take() → processes →
    deref(). Cell destructor later sees null, no-ops.

    If the Promise is GC'd without settling: cell collected with its
    reaction → destructor → deref(). No leak, no UAF.

    Applied to all three .then() callsites in RequestContext: main
    response promise, error handler promise, and response body stream
    promise.

    Test plan

    • New test:
      test/js/bun/http/serve-pending-promise-abort-leak.test.ts — 4 tests
      covering the leak fix, normal resolution, resolve-in-abort-handler, and
      resolve-after-abort-via-setTimeout (UAF safety)
    • Test fails on system Bun: LEAK: 100 RequestContexts were never freed
    • Test passes with fix: pendingRequests: 0
    • heapStats().objectTypeCounts.NativePromiseContext shows 50 for
      50 concurrent pending, 0 after resolve+GC
    • serve.test.ts: 189 pass
    • bun-serve-routes.test.ts + bun-serve-headers.test.ts: 41 pass
    • BUN_JSC_validateExceptionChecks=1: clean

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

  • 2e610b Fix crash when consuming Response body from async iterable (#28457)

    Two issues caused a crash when calling bytes()/arrayBuffer() on a
    Response whose body was created from an async iterable
    (Symbol.asyncIterator):

    1. readableStreamToBytes/readableStreamToArrayBuffer checked
      underlyingSource !== undefined but initializeArrayBufferStream sets
      it to null. Since null !== undefined is true, null was passed to
      readableStreamToArrayBufferDirect which dereferenced it
      (underlyingSource.pull on null). Fixed by using != null to exclude
      both null and undefined.

    2. The C++ functions ZigGlobalObject__readableStreamToBytes and
      ZigGlobalObject__readableStreamToArrayBufferBody did not check for
      exceptions after calling the JS builtin via call(). Added
      RETURN_IF_EXCEPTION after the call to properly propagate exceptions
      instead of leaving them unhandled, which triggered
      releaseAssertNoException in debug builds.

    Also added null guards for this.$sink in onCloseDirectStream and
    onFlushDirectStream, matching the existing pattern in
    handleDirectStreamError. Stream is now properly locked via a dummy
    reader in readableStreamToArrayBufferDirect to prevent a second call
    from bypassing the lock check.


    Verification (robobun): Lint JS ✅. Diff clean — no TODO/FIXME/HACK.
    Builds #41331 and #41340 were canceled (not failed); Build #41343 is
    still compiling. Code verified: != null correctly excludes null set at
    ReadableStreamInternals.ts:2266; all 6 C++ wrappers now have
    DECLARE_THROW_SCOPE + RETURN_IF_EXCEPTION; sink null guards in
    onCloseDirectStream/onFlushDirectStream placed before $streamClosing
    assignment, matching handleDirectStreamError pattern (line 988-994);
    dummy reader {} at line 2268 makes isReadableStreamLocked (line 1573)
    return true so a second consumption call is properly rejected. Test
    spawns a subprocess with an async-iterable-backed Response, calls
    bytes()/arrayBuffer() twice, asserts no "null is not an object" in
    stdout — on unfixed bun this message appears because null.pull is
    dereferenced. Reviews: claude LGTM, CodeRabbit $streamClosing ordering
    concern addressed in code, themavik != null semantics confirmed
    intentional. ⚠️ Human reviewer: please confirm Buildkite #41343 is green
    before merging.


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

  • 9ead1e fix: use isObject() instead of isCell() for dns.lookup options check (#28424)

    When Bun.dns.lookup() receives a non-object cell (e.g. a string) as
    the second argument, the isCell() guard at line 2722 passes, but then
    getTruthy() calls JSValue.get() which asserts target.isObject(),
    causing a crash.

    The fix changes the guard from isCell() to isObject() so non-object
    cells are properly skipped as options arguments.

    Root cause: isCell() returns true for strings and other non-object
    JS cells, but JSValue.get() requires the target to be an actual
    object.

    Repro:

    const dns = Bun.dns;
    dns.lookup("127.0.0.1", "cat");

    Verification (iteration 6): CI build #41167 pending (Lint JS passed);
    previous build #41087 failures were only webview.test.ts (macOS timeout)
    and bundler_compile.test.ts (Linux timeout), both unrelated to DNS. Diff
    is a single-line guard change isCell()->isObject() in dns.zig and a
    regression test that exercises the exact crash path (string arg triggers
    debugAssert in JSValue.get on main). All 3 review threads resolved. No
    TODO/FIXME/HACK in diff, no unrelated changes.

  • 7fb789 Remove JSCallbackDataStrong, unify into single Weak JSCallbackData (#28539)

    What

    Follow-up to #28494. Backports WebKit
    276563 ("Make all
    callbacks Weak handles"), which removed
    JSCallbackDataStrong/JSCallbackDataWeak in favor of a single
    Weak-only JSCallbackData class.

    Why

    JSC::Strong handles in callback wrappers have been a recurring source
    of GC reference cycles (see #28491 for the pipeTo + signal leak).
    Upstream WebKit solved this structurally in 2024-07 by deleting the
    Strong variant entirely, making such leaks impossible to introduce by
    construction.

    #28494 deferred this backport because it "requires restructuring
    AbortSignal::m_algorithms to allow GC visitation." That restructuring
    was already done in #28491 (m_abortAlgorithms +
    visitAbortAlgorithms() + Lock), so the prerequisite is satisfied and
    this is now a pure rename + dead code removal.

    Changes

    JSCallbackData.h / .cpp

    • Merged JSCallbackDataWeak into the base JSCallbackData class
    • Deleted JSCallbackDataStrong
    • Replaced Strong.h/StrongInlines.h includes with
      Weak.h/WeakInlines.h
    • Kept Bun's existing invokeCallback(VM&, ...) signature and
      visitJSFunction method name (not upstream's
      visitJSFunctionInGCThread) to avoid touching base class overrides —
      this is a structural sync, not a full API sync

    JSAbortAlgorithm, JSPerformanceObserverCallback

    • Type rename only: JSCallbackDataWeak*JSCallbackData*
    • No semantic change (both were already Weak)

    Deleted: ErrorCallback.{h,cpp,idl}, JSErrorCallback.{h,cpp}

    • FileSystemEntry API callback (webkitGetAsEntry() etc.), never
      implemented in Bun
    • Zero create() call sites, zero #include references outside itself
    • Was the only remaining JSCallbackDataStrong user
    • Upstream still has ErrorCallback under Modules/entriesapi/, but
      with [GenerateIsReachable] which generates a Weak callback — our copy
      predated that and was a stale Strong version

    Verification

    • nm build/debug/bun-debug | grep -cE "JSCallbackData(Strong|Weak)"
      0
    • test/js/web/abort/ — pass
    • test/js/web/streams/pipeTo-signal-leak.test.ts — pass (regression
      check for #28491)
    • test/js/web/timers/performance-entries.test.ts — pass
    • BUN_JSC_validateExceptionChecks=1 — pass
    • GC stress: 100 AbortSignal callbacks + 50× Bun.gc(true) → all 100
      fire (opaque-root reachability preserved)
    • GC stress: 50 PerformanceObserver callbacks + 30× Bun.gc(true) → all
      50 fire

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

  • fea0ae Add TypeScript 6 and 7 migration docs (#28563)
  • 3eba9c Support TypeScript 6
  • 1879e9 docs: fix duplicate comment (#26375)

    Removes duplicate comment line from docs

     # Copy the package.json and bun.lock into the container
     COPY package.json bun.lock ./
     
    -# Install the dependencies
     # Install the dependencies
     RUN bun install --production --frozen-lockfile
     ```</li><li><a href="https://github.com/oven-sh/bun/commit/0bcb4025d3e3993dd0a77951decbf0b8f934d4f7"><code>0bcb40</code></a> Bun.WebView: EventTarget, screenshot formats, zero-copy mmap Blob, .cdp() (#28362)
    
    ## EventTarget inheritance
    
    `Bun.WebView` now extends `EventTarget` —
    `addEventListener`/`removeEventListener`/`dispatchEvent` are inherited.
    The impl side (`WebViewEventTarget`) is a thin wrapper holding just the
    listener map; all WebView state stays on the JS cell.
    
    ## screenshot({format, quality}) returning zero-copy mmap-backed Blob
    
    ```ts
    const png = await view.screenshot();                          // Blob, image/png
    const jpeg = await view.screenshot({ format: "jpeg", quality: 90 });
    const webp = await view.screenshot({ format: "webp" });       // chrome-only

    WebKit: zero-copy — the child writes encoded image bytes to a POSIX
    shm segment; the parent mmap's it directly into the Blob's backing
    store. The mapping is released when the Blob is garbage-collected.
    await blob.bytes() reads straight from the mapped pages.

    Chrome: decodes the CDP base64 response and copies into a
    mimalloc-owned buffer (the base64 decode allocation is unavoidable).

    format: "webp" requires the Chrome backend (NSBitmapImageRep has no
    WebP encoding; the ImageIO CGImageDestination path with public.webp
    UTI is deferred).

    .cdp(method, params?) — raw CDP escape hatch (Chrome-only)

    const view = new Bun.WebView({ backend: "chrome" });
    await view.navigate("https://example.com");
    
    const { root } = await view.cdp("DOM.getDocument");
    const { nodeId } = await view.cdp("DOM.querySelector", {
      nodeId: root.nodeId, selector: "input#search"
    });
    await view.cdp("DOM.focus", { nodeId });

    The command is scoped to the view's sessionId. Resolves with
    JSON.parse(response.result); rejects with error.message on protocol
    errors.


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

  • abe02a glob: fix undeclared component_idx after active-set refactor (#28543)

    What

    Fixes a build error on main introduced by the interaction of #28496
    and #28489:

    src/glob/GlobWalker.zig:715:69: error: use of undeclared identifier 'component_idx'
                            iterator.setNameFilter(this.computeNtFilter(component_idx));
                                                                        ^~~~~~~~~~~~~
    

    Why

    #28496 replaced the single component_idx variable with an active
    BitSet to track multiple active pattern component indices. #28489
    (merged just before) added a Windows NtQueryDirectoryFile filter call
    that references component_idx. After both landed, the variable no
    longer exists in scope.

    Fix

    computeNtFilter operates on a single pattern component, so it can only
    be applied when exactly one index is active. For multi-index states
    (e.g. after **), a single-component kernel filter could hide entries
    that other active indices need to match, so we skip it.

    This is safe because the NT filter is purely a pre-filter optimization —
    matchPatternImpl still runs on every returned entry for correctness
    (per the existing doc comment on computeNtFilter).

    Verification

    bun run zig:check-all passes on all platforms (macOS/Linux/Windows ×
    x86_64/aarch64 × Debug/Release).

  • 390948 fix: don't throw new exception when termination exception is pending (#28535)

    When a stack overflow (termination exception) occurs during error
    message formatting in throw/throwPretty, createErrorInstance
    returns .zero and the exception remains pending. Previously this would
    either hit bun.assert(instance != .zero) or reach VM.throwError
    which calls releaseAssertNoException, crashing the process.

    Guard throw, throwPretty, and throwValue to return error.JSError
    early when an exception is already pending on the VM.

    Crash fingerprint: e9adb7008f7e2bd5

  • 698eb8 Fix assert.partialDeepStrictEqual crashing on array inputs (#28525)

    Fixes #28522

    Repro:

    import assert from "node:assert/strict";
    assert.partialDeepStrictEqual(["foo"], ["foo"]);
    // TypeError: expectedCounts.@&ZeroWidthSpace;set is not a function

    Cause: SafeMap instances have their prototype set to null by
    makeSafe(), which breaks JSC private method resolution (.$set,
    .$delete). The array comparison branch in compareBranch used
    expectedCounts.$set() and expectedCounts.$delete() directly, which
    require the prototype chain to be intact.

    Fix: Extract uncurried SafeMapPrototypeSet /
    SafeMapPrototypeDelete references (matching the existing pattern for
    SafeMapPrototypeGet and SafeMapPrototypeHas) and call them with
    .$call().

    Verification:

    • USE_SYSTEM_BUN=1 bun test test/regression/issue/28522.test.ts
      fails (bug present)
    • bun bd test test/regression/issue/28522.test.ts → passes (fix works)

    Co-authored-by: Alistair Smith <hi@​alistair.sh>

  • e59a14 perf(glob): track active component indices as a set to eliminate double-visits (#28496)

    What

    Eliminates redundant directory visits in Bun.Glob.scan() for patterns
    containing **/X/.... Directories under the boundary were being opened
    and read twice; they're now read once.

    Why

    A glob pattern like **/node_modules/**/*.js is split into components:

    idx: 0    1             2    3
         **   node_modules  **   *.js
    

    When the walker is at ** (idx 0) and encounters a directory named
    node_modules, there are two valid interpretations:

    • Advance: this is the node_modules we were looking for — jump to
      idx 2 and match *.js inside.
    • Keep going: ** matches zero or more dirs, so node_modules
      might
      just be another directory under **. Stay at idx 0 in case there's
      another node_modules deeper.

    Both are correct and both can produce matches. The previous
    implementation handled this by pushing two WorkItems for the same
    path — one at idx 0, one at idx 2. Each triggered its own
    openat + readdir + close, and since both recurse, every descendant of
    the boundary was read twice.

    How

    Instead of forking the traversal, carry a set of active component
    indices per WorkItem. When a boundary is crossed, both indices go into
    one set; the directory is iterated once, and each entry is checked
    against all active positions. The child's set is the union of what each
    active index says to do next.

    Additionally, when the component after a **/X boundary is itself **
    (as in **/node_modules/**/*.js), the outer ** is dropped entirely —
    the inner one's recursion already covers everything the outer one would
    find.

    This is the standard NFA state-set simulation, applied to filesystem
    traversal.

    Benchmarks

    **/node_modules/**/*.js with { dot: true } on the next.js repo
    (68,233 matches, macOS arm64):

    Screenshot 2026-03-23 at 10 36
43 PM

    Gain scales with how much of the tree is under the **/X boundary.
    Synthetic trees with deeper nesting hit 2.9×. Patterns without a
    boundary (**/*.ts) are unchanged.

    Implementation

    • ComponentSet is an alias for bun.bit_set.AutoBitSet, which stores
      up to 127 indices inline in [2]usize and spills to heap beyond —
      patterns of any depth stay correct.
    • Added count(), findFirstSet(), and iterator() dispatch methods
      to AutoBitSet.
    • evalDir/evalFile/evalImpl replace the inline per-index logic;
      they iterate the active set and accumulate results.
    • Net +35 lines (the set helpers collapsed triplicated bump-handling
      blocks in the old code).
    • Added a test with 130-component patterns to cover the heap-backed
      path.
    • 3ca678 fix index out of bounds in braces lexer on empty input (#28487)

    When Bun.$.braces("") is called with an empty string, the tokenizer
    produces zero tokens. flattenTokens then accesses
    self.tokens.items[0] unconditionally, causing an index-out-of-bounds
    panic. Additionally, Parser.advance() unconditionally calls prev()
    which underflows when current == 0.

    The fix adds an early return when the token list is empty in
    flattenTokens, and guards advance() to return peek() instead of
    underflowing prev() when current == 0.


    Verification (robobun, iteration 4): Build #41524 (commit 7045ab1)
    completed — 5 failing tests are all unrelated (bun-upgrade, issue/8254,
    webview timeout, issue/24364, bun-types), none in shell/braces. Build
    #41555 (CI retry commit 477200b, empty) is pending. Diff: 2 files, 8
    added / 1 removed — flattenTokens early-return guard at
    braces.zig:591, current > 0 guard in advance() at braces.zig:310,
    regression test at brace.test.ts:53-57 covering default, parse:true, and
    tokenize:true modes. Test would crash on main due to unchecked
    self.tokens.items[0] and usize underflow in self.current - 1. No
    TODO/FIXME/HACK in diff, no unrelated changes. CodeRabbit: no actionable
    comments.


    Co-authored-by: SUZUKI Sosuke <sosuke@​bun.com>

  • 5b7fe8 glob: pass pattern component as NtQueryDirectoryFile FileName filter on Windows (#28489)

    When iterating a directory during glob walking on Windows, pass the
    current
    pattern component as a kernel-side FileName filter to
    NtQueryDirectoryFile.
    The filesystem driver evaluates it via FsRtlIsNameInExpression, so
    non-matching
    entries are never serialized to userspace.

    The filter is purely a pre-filter — matchPatternImpl still runs on
    every
    returned entry to handle case sensitivity and 8.3 short-name aliases. A
    filter
    is only emitted when the NT match is guaranteed to be a superset of the
    glob
    match:

    • skipped for * and ** (no benefit / would hide subdirectories
      needed for recursion)
    • skipped for components containing ? (NT matches one UTF-16 code
      unit, glob matches one codepoint — would under-match on surrogate pairs)
    • skipped for components containing [ { \ ! < > " (not
      expressible / NT wildcards)

    Also handles STATUS_NO_SUCH_FILE, which NtQueryDirectoryFile returns
    on the
    first call when a filter matches nothing (previously only
    STATUS_NO_MORE_FILES
    was handled).

    Benchmark

    Synthetic test: 5,000 files per directory, 5 matching (0.1% match
    ratio).
    Windows 11, AMD Ryzen AI 9 HX 370.

    Pattern Before (min) After (min) Speedup
    *.target (1 dir × 5000 files) 1.22 ms 0.51 ms 2.39×
    pkg-*/*.target (20 dirs × 5000) 36.95 ms 19.84 ms 1.86×
    **/*.target (control — filter skipped) 36.54 ms 36.52 ms
    unchanged

    Real-world bench/glob/scan.mjs over bench/node_modules: ~10-12%
    faster on
    non-** patterns, unchanged on ** patterns.

  • 24fa20 Validate mock.module() first argument is a string (#28518)

    mock.module() calls toString() on its first argument before checking
    its type, then passes the result through the module resolver. When a
    non-string value like SharedArrayBuffer is passed, toString()
    produces "function SharedArrayBuffer() { [native code] }" which the
    resolver tries to auto-install as a package, crashing because the
    package manager's logger allocator is uninitialized in this context.

    Add an isString() check before the toString() call, matching the
    validation pattern used by Jest.call() and other Bun APIs.

    Crash fingerprint: Address:unknown-crash:bun-debug+0x90074c1

  • e94c30 Fix missing log.deinit() in TOML.parse (#28492)

    TOML.parse was missing defer log.deinit() after Log.init, causing
    the logger's internal message ArrayList to leak on every call that
    produces parse errors. All peer parsers (JSONC, JSON5, YAML) already
    have this defer.

    Also modernized argument access from
    callframe.arguments_old(1).slice() to callframe.argument(0) to match
    the JSONC parser pattern.

    Crash fingerprint: 49da9789c26e29ab


    Verification: Confirmed main has Log.init on line 30 with no
    matching defer log.deinit(). All peer parsers (JSONCObject.zig:31,
    JSON5Object.zig:70, YAMLObject.zig:951) pair Log.init with defer log.deinit(). The log.toJS + defer log.deinit() combination is safe
    (same pattern in JSONCObject.zig:31+44). Argument modernization to
    callframe.argument(0) matches JSONCObject.zig:32 exactly. Regression
    test exercises the error path with non-string input and GC. No
    TODO/FIXME/HACK in diff. Lint JS and pipeline passed; buildkite build
    #41538 compiling (trivial one-line semantic change, adding a missing
    defer).


    Reviewer verification (robobun): Independently confirmed TOMLObject.zig
    on main (line 30) has Log.init with no defer log.deinit(), while
    peer JSONCObject.zig (lines 30-31) pairs them correctly. The diff adds
    exactly that missing defer and modernizes argument access to match
    JSONCObject.zig:32. No TODO/FIXME/HACK in added lines. Bot reviews
    (claude x2, coderabbit) all LGTM with no blocking issues. Test exercises
    the modified error paths with non-string inputs. CI: Lint JS pass,
    pipeline pass, buildkite build #41557 compiling on commit 12daf4b5.


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

  • 36f17c Fix vm.Script/SourceTextModule/compileFunction leak via fetcher owner cycle (#28493)

    What does this PR do?

    Fixes a 100% leak of vm.Script, vm.SourceTextModule, and
    vm.compileFunction results. Every call to these APIs leaked the
    resulting object, regardless of user code.

    The cycle

    NodeVMScript / JSFunction / moduleWrapper (JSCell)
      → m_source (SourceCode)
      → RefPtr<SourceProvider>
      → SourceOrigin (held by value)
      → RefPtr<NodeVMScriptFetcher>
      → JSC::Strong<Unknown> m_owner  ← GC root
      → owner  ★ cycle
    

    NodeVMScriptFetcher::m_owner was a JSC::Strong handle pointing back
    to the owning script/function/module wrapper. Since the owner keeps the
    fetcher alive via the SourceCode → SourceProvider → SourceOrigin → RefPtr<fetcher> chain, and the fetcher kept the owner alive as a GC
    root, nothing could ever be collected.

    Before / After (heapStats objectTypeCounts, 500 iterations + GC)

    API Before After
    new vm.Script("1+1") Script: +500 +0
    vm.compileFunction("return 1") FunctionExecutable: +500 +0
    new vm.SourceTextModule("...") NodeVMSourceTextModule: +500 +0

    The fix

    Switch m_owner from JSC::Strong<JSC::Unknown> to
    JSC::Weak<JSC::JSCell>. The owner is always a JSCell, so Weak is
    appropriate. When the owner becomes unreachable it is collected, its
    m_source chain drops the last RefPtr to the fetcher, and the fetcher
    is freed.

    owner() is only read during dynamic import (import() inside the
    script), at which point the executing context keeps the owner reachable
    — so the Weak ref always resolves when it matters. If the owner has
    already been collected (e.g. SourceProvider still cached in JSC's
    CodeCache but the script cell is gone), owner() returns
    jsUndefined(), but dynamic import can no longer be triggered at that
    point anyway.

    This follows the same back-reference-via-Weak pattern as
    JSCommonJSModule::m_parent
    (src/bun.js/bindings/JSCommonJSModule.h:69),
    JSEventListener::m_wrapper, and JSValueInWrappedObject::m_cell.

    Known limitation (separate issue)

    m_dynamicImportCallback remains JSC::Strong because it can hold
    non-cell values (the USE_MAIN_CONTEXT_DEFAULT_LOADER constant). If a
    user callback captures the owner in its closure, a separate cycle forms.
    This is user-code-dependent and requires a different approach
    (visitChildren from the owner side, complicated by JSFunction being
    JSC-internal). Since the callback is passed before the owner is
    created, this is uncommon in practice.

    How did you verify your code works?

    • New regression test test/js/node/vm/vm-script-fetcher-leak.test.ts
      (4 cases) — fails on main, passes with this fix
    • test/js/node/vm/vm.test.ts — 198 pass / 0 fail
    • Node.js upstream test/parallel/test-vm-module-dynamic-import.js
      exit 0
    • Adversarial: Bun.gc(true) × 5 before dynamic import → ref === script still true (Weak resolves correctly while owner is reachable)
    • 594f42 fix crash in expect.extend with numeric index keys (#28504)

    expect.extend iterates the matchers object and calls putDirect for
    each property. putDirect asserts !parseIndex(propertyName), which
    fails when numeric keys like 1073741820 (valid array indices) are
    present.

    Set own_properties_only and only_non_index_properties to true on
    the JSPropertyIterator so index properties are skipped during
    enumeration.

    Crash fingerprint: JSObjectInlines.h(451)

    Repro:

    const v1 = { 1073741820: Request };
    Bun.jest().expect.extend(v1);

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

  • 6034bd Fix stack-buffer-overflow from stale PackageManager log pointer in resolveMaybeNeedsTrailingSlash (#28511)

    Problem

    `resolveMaybeNeedsTrailingSlash` in `VirtualMachine.zig` creates a
    stack-local `logger.Log` and temporarily sets it on the resolver and
    linker:

    ```zig
    var log = logger.Log.init(bun.default_allocator);
    defer log.deinit();
    jsc_vm.transpiler.resolver.log = &log;
    jsc_vm.transpiler.linker.log = &log;
    ```

    However, it does not update `PackageManager.log`. When module
    resolution triggers auto-install (e.g. via `mock.module()` with a
    non-existent specifier), the package manager calls
    `manager.log.addErrorFmt()` on its stale `log` pointer — which may
    point to a destroyed stack frame from a previous call to
    `resolveMaybeNeedsTrailingSlash`.

    This causes a stack-buffer-overflow (ASAN fingerprint:
    `Address:stack-buffer-overflow:bun-debug+0xc9f417a`).

    Fix

    Apply the same save/restore pattern already used in `ModuleLoader.zig`
    (lines 188-198) to also update and restore `pm.log` in the defer
    block:

    ```zig
    if (jsc_vm.transpiler.resolver.package_manager) |pm| {
    pm.log = &log;
    }
    defer {
    if (jsc_vm.transpiler.resolver.package_manager) |pm| {
    pm.log = old_log;
    }
    }
    ```


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

  • 9ce5b0 Cherry-pick 4 WebCore memory safety fixes from upstream WebKit (#28494)

    What

    Cherry-picks 4 memory safety fixes from upstream WebKit into
    src/bun.js/bindings/webcore/.

    Why

    Bun's WebCore code was forked from WebKit ~2022-03 and has since missed
    several GC/memory safety fixes. These are minimal, surgical backports of
    confirmed bug fixes.

    Changes

    1. MessagePortChannel: drop messages to closed ports

    Upstream: WebKit
    281662
    Messages sent to a closed MessagePort were queued indefinitely in
    m_pendingMessages, never to be delivered.
    Measured: 5000 × 64KB postMessage to closed port: RSS growth 332MB
    → 1.5MB

    2. JSAbortController: visit signal.reason in GC

    Upstream: WebKit
    293319
    controller.signal.reason was not marked during GC when only the
    controller was retained, causing reason to become undefined after
    collection.

    3. BroadcastChannel: use ThreadSafeWeakPtr in global map

    Upstream: WebKit
    267883
    The global channel map held raw BroadcastChannel* pointers. If a
    worker-owned channel was being destroyed while the main thread looked it
    up, the resulting RefPtr assignment could race.
    ThreadSafeWeakPtr::get() atomically checks liveness via the control
    block.

    4. EventListenerMap: per-instance thread affinity assert

    Upstream: WebKit
    292397 +
    304961
    Adds releaseAssertOrSetThreadUID() to mutation operations. Unlike a
    global isMainThread() check, this records the owning thread
    per-instance, so worker-owned EventTargets work correctly. GC thread
    sweeps are exempted.

    Tests

    • test/js/web/abort/abort-controller-gc-reason.test.ts
    • test/js/web/workers/message-port-closed-leak.test.ts
    • test/js/web/broadcastchannel/broadcast-channel-worker-gc.test.ts

    All 270 tests in test/js/web/{abort,workers,broadcastchannel}/ +
    test/js/deno/event/ pass.

    Not in this PR

    JSCallbackDataStrong removal (WebKit
    276563) requires
    restructuring AbortSignal::m_algorithms to allow GC visitation.
    Deferred to a follow-up.


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

  • 639bc4 Clear pending JS exception when error message formatting fails (#28488)

    When createErrorInstance (and related functions) format an error
    message, the {f} formatter may call into JS (e.g. via
    Symbol.toPrimitive). If the formatting itself throws a JS exception
    (like "Cannot convert a symbol to a string" when Symbol.toPrimitive
    returns a Symbol), the catch branch returns a fallback format string but
    leaves the exception pending on the VM.

    When throwPrettythrowValueJSC__VM__throwError then tries to
    throw the new error, it hits scope.assertNoException() and crashes
    because there's already a pending exception.

    Fix: Call clearExceptionExceptTermination() in the catch branch of
    all four create*ErrorInstance functions before returning the fallback,
    so the VM is in a clean state for the subsequent throwValue.

    Repro:

    const v = /foo/;
    v[Symbol.toPrimitive] = Symbol;
    Bun.jest().expect(v).toBeFalse();

    Verification (commit 362eb28): Lint JS ✅, buildkite #41519 still
    building (no individual step has failed; pipeline passed). Diff
    confirmed correct — four catch branches in JSGlobalObject.zig gain
    clearExceptionExceptTermination() calls (7 existing usages in same
    file), each returning the correctly-typed error instance
    (TypeError/SyntaxError/RangeError). createDOMExceptionInstance
    correctly unchanged (uses try propagation). Regression test spawns
    subprocess with exact repro, asserts exit 0 only (no forbidden
    assertion-absence checks). All 6 coderabbit+claude review comments
    addressed across follow-up commits. No TODO/FIXME/HACK in added lines.


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

  • f6528b Fix AbortSignal leak in ReadableStream.pipeTo with signal option (#28491)

    What does this PR do?

    Fixes a 100% leak of AbortSignal when
    ReadableStream.prototype.pipeTo is called with a signal option and
    the pipe never completes.

    The cycle

    AbortSignal (RefCounted)
      → m_algorithms[i] (lambda capturing Ref<JSAbortAlgorithm>)
      → JSCallbackDataStrong::m_callback (JSC::Strong = GC root)
      → callback closure
      → pipeState.signal (JSAbortSignal wrapper)
      → Ref<AbortSignal>  ← cycle
    

    JSAbortAlgorithm held its JS callback via JSCallbackDataStrong,
    which creates a JSC::Strong handle (a GC root). The abort algorithm
    closure registered by pipeTo captures pipeState, which in turn holds
    pipeState.signal (the JSAbortSignal wrapper). Since the wrapper
    holds a Ref<AbortSignal>, the cycle is complete and nothing can be
    collected even after all user-side references are dropped.

    Before / After

    Bun (before) Bun (after) Node.js
    200 iterations, pipe never completes 201 AbortSignals retained 1
    ~0

    The fix

    Switch JSAbortAlgorithm from JSCallbackDataStrong to
    JSCallbackDataWeak, and keep the callback alive by visiting it from
    JSAbortSignal::visitAdditionalChildrenInGCThread while the signal
    wrapper is reachable.

    This follows two existing patterns in the codebase:

    • JSCallbackDataWeak + visitJSFunction override — same as
      JSPerformanceObserverCallback
      (src/bun.js/bindings/webcore/JSPerformanceObserverCallback.{h,cpp})
    • Lock + Vector + GC-thread visit — same as
      EventListenerMap::visitJSEventListeners
      (src/bun.js/bindings/webcore/EventListenerMap.h:77-85), which already
      protects every addEventListener/removeEventListener against
      concurrent GC iteration

    Why a separate m_abortAlgorithms vector?

    The existing m_algorithms stores type-erased Function<void(JSValue)>
    lambdas. Erasing Ref<AbortAlgorithm> into a lambda would hide it from
    the GC thread — there would be no way to call visitJSFunction on it.
    Storing Ref<AbortAlgorithm> directly in a separate vector lets
    visitAbortAlgorithms iterate and mark the weak callbacks.

    The Locker in runAbortSteps moves the vector out under the lock and
    releases before calling handleEvent, so we never hold the lock during
    JS re-entry.

    How did you verify your code works?

    • New regression test test/js/web/streams/pipeTo-signal-leak.test.ts
      fails on main (201 leaked) and passes with this fix
    • Existing test/js/web/abort/abort.test.ts,
      test/js/deno/abort/abort-controller.test.ts,
      test/js/node/util/test-aborted.test.ts,
      test/js/web/streams/streams.test.js all pass
    • Concurrent GC stress test (BUN_JSC_useConcurrentGC=1, 500
      controllers × 10 pipes) — no crash, no deadlock
    • 5000-iteration heap stress — AbortSignal count stable (growth: -2)
    • JSC exception scope validation (BUN_JSC_validateExceptionChecks=1) —
      clean
    • fe4a66 Speed up URLPattern test/exec by calling RegExp::match directly (#28447)

    What

    Replace RegExpObject::create() + exec() + JSArray readback with
    direct RegExp::match() calls using the ovector buffer.

    Why

    The previous implementation allocated 3 GC objects per component
    (RegExpObject, JSString, result JSArray) × 8 components = 24 GC
    allocations per test/exec call
    , then read captures back through JS
    property access. Since JSC::RegExp already holds the compiled YARR
    state, we can call match() directly and read capture offsets from the
    ovector without any JS roundtrip.

    Benchmark (Apple M4 Max, release build)

    Benchmark Before After Speedup
    test() match - named groups 1.05 µs 487 ns 2.16x
    test() no-match 579 ns 337 ns 1.72x
    test() match - simple 971 ns 426 ns 2.28x
    test() match - string pattern 946 ns 434 ns 2.18x
    exec() match - named groups 1.97 µs 1.38 µs 1.43x
    exec() no-match 583 ns 336 ns 1.73x
    exec() match - simple 1.89 µs 1.30 µs 1.45x
    bun bench/snippets/urlpattern-detailed.mjs

    Changes

    • URLPatternComponent::componentMatch (new): combines the old
      `compone

@michijs

michijs Bot commented Mar 30, 2026

Copy link
Copy Markdown
Contributor Author

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

Changelog:
Sourced from releases.
        ### 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!

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

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

  • React: Handle render identifier in manifest snippet generation - #33940, thanks @​kasperpeulen!

          ### v10.3.0-alpha.13## 10.3.0-alpha.13
    
  • A11y: Add ScrollArea prop focusable for when it has static children - #33876, thanks @​Sidnioulz!

  • CLI: Set STORYBOOK environment variable - #33938, thanks @​yannbf!

  • Controls: Fix Object contrast issue and tidy up code - #33923, thanks @​Sidnioulz!

  • HMR: Fix race conditions causing stale play functions to fire on re-rendered stories - #33930, thanks @​copilot-swe-agent!

  • React: Handle render identifier in manifest snippet generation - #33940, thanks @​kasperpeulen!

  • UI: Prevent crash when tag filters contain undefined entries - #33931, thanks @​abhaysinh1000!

          ### v10.2.14## 10.2.14
    
  • CLI: Set STORYBOOK environment variable - #33938, thanks @​yannbf!

  • UI: Prevent crash when tag filters contain undefined entries - #33931, thanks @​abhaysinh1000!

          ### v10.3.0-alpha.12## 10.3.0-alpha.12
    
  • Builder-Vite: Prevent config duplication - #33883, thanks @​copilot-swe-agent!

  • CLI: Fix React native web A11y issues - #33937, thanks @​jonniebigodes!

  • Core: Ensure telemetry is never triggered on initial load of checklist data - #33918, thanks @​ghengeveld!

  • Eslint: Fix ESLint 10 compatibility in eslint-plugin-storybook rules - #33884, thanks @​copilot-swe-agent!

  • Test: Update @​testing-library/jest-dom - #33928, thanks @​valentinpalkovic!

          ### v10.2.13## 10.2.13
    
  • Addon Pseudo-states: Process all nested css rules - #33605, thanks @​hpohlmeyer!

  • Builder-Vite: Prevent config duplication - #33883, thanks @​copilot-swe-agent!

  • CLI: Fix React native web A11y issues - #33937, thanks @​jonniebigodes!

  • Core: Avoid hanging when inferring args for recursive calls on DOM elemens - #33922, thanks @​valentinpalkovic!

  • Eslint: Fix ESLint 10 compatibility in eslint-plugin-storybook rules - #33884, thanks @​copilot-swe-agent!

  • Viewport: Prioritize story viewport globals and avoid user-global pollution - #33849, thanks @​ia319!

Commit history:
  • 0efef1 Merge pull request #33841 from storybookjs/kasper/docs-rdt-monorepo-faq

    Docs: Add troubleshooting for react-docgen-typescript in monorepos

  • a3f326 Merge pull request #33193 from storybookjs/fix-checklist-invalid-mdx-snippet

    Onboarding: Fix checklist MDX instructions

  • 5017de Merge pull request #34296 from majiayu000/fix/issue-19401-step-waitfor-nesting

    Maintenance: Add assertions outside step incorrectly nested in interactions panel

  • 81ac5b Merge branch 'next' into fix/issue-19401-step-waitfor-nesting
  • 69c844 Merge pull request #34361 from storybookjs/valentin/fix-csf4-vitest-issue

    CSF4: Fix duplicate preview loading issue in Vitest

  • 3ebc4f Fix lint
  • 127dcf Merge remote-tracking branch 'origin/next' into valentin/fix-csf4-vitest-issue
  • 6d4fcb Merge pull request #34262 from Nathan54Villaume/fix/mobile-renderLabel-react-node

    UI: Fix mobile navigation when renderLabel returns a React node

  • 73349e Merge pull request #34363 from storybookjs/fix-versions-formatting

    Build: Actually disable formatting of version json files

  • 36244e just dont be stupid
  • 3a6f20 Merge pull request #34349 from cjeonguk/cjeonguk-patch-1

    Docs: Update Node version in CI examples

  • cfb981 CSF4: Fix duplicate preview loading issue in Vitest

    Co-authored-by: Kasper Peulen <kasperpeulen@​gmail.com>

  • 4bcba4 Merge branch 'next-release' into next
  • ca6e23 Bump version from "10.4.0-alpha.4" to "10.4.0-alpha.5" [skip ci]
  • 8d1230 Merge pull request #34316 from storybookjs/jeppe/fix-error-reports-on-init

    CLI: Prompt for init crash reports

  • ab96a7 Merge pull request #34322 from storybookjs/version-non-patch-from-10.4.0-alpha.4

    Release: Prerelease 10.4.0-alpha.5

  • 82b7f6 format
  • 88a1f4 Merge pull request #34290 from whdjh/fix/28725-storybook-package-name-check

    CLI: Add automigrate check for 'storybook' package name conflict

  • cad2ca Merge branch 'next' into fix/28725-storybook-package-name-check
  • 8cf417 Upgrade versions of actions in ghp-github-action.md
  • f83936 Update versions of actions in chromatic-github-action.md
  • d1497d Merge branch 'next' into kasper/docs-rdt-monorepo-faq
  • 52db3d Merge branch 'next' into fix-checklist-invalid-mdx-snippet
  • 780885 dont prompt on non-blocking errors during init
  • ac322c Update Node.js version in docs snippet
  • 6362f7 Update Node.js version in docs snippet
  • 6de8c9 Write changelog for 10.4.0-alpha.5 [skip ci]
  • 810093 Merge pull request #34334 from storybookjs/copilot/fix-duplicate-pseudo-state-grid

    Refactor: Extract shared PseudoStateGrid component in pseudo-states stories

  • f6a6ba Merge pull request #34321 from storybookjs/jeppe/fix-release-format

    Build: Don't check format of version JSON files

  • a413a7 Merge branch 'next' into copilot/fix-duplicate-pseudo-state-grid

@michijs

michijs Bot commented Mar 30, 2026

Copy link
Copy Markdown
Contributor Author

Bump @​storybook/web-components-vite from 9.1.3 to 10.3.3

Changelog:
Sourced from releases.
        ### 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!

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

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

  • React: Handle render identifier in manifest snippet generation - #33940, thanks @​kasperpeulen!

          ### v10.3.0-alpha.13## 10.3.0-alpha.13
    
  • A11y: Add ScrollArea prop focusable for when it has static children - #33876, thanks @​Sidnioulz!

  • CLI: Set STORYBOOK environment variable - #33938, thanks @​yannbf!

  • Controls: Fix Object contrast issue and tidy up code - #33923, thanks @​Sidnioulz!

  • HMR: Fix race conditions causing stale play functions to fire on re-rendered stories - #33930, thanks @​copilot-swe-agent!

  • React: Handle render identifier in manifest snippet generation - #33940, thanks @​kasperpeulen!

  • UI: Prevent crash when tag filters contain undefined entries - #33931, thanks @​abhaysinh1000!

          ### v10.2.14## 10.2.14
    
  • CLI: Set STORYBOOK environment variable - #33938, thanks @​yannbf!

  • UI: Prevent crash when tag filters contain undefined entries - #33931, thanks @​abhaysinh1000!

          ### v10.3.0-alpha.12## 10.3.0-alpha.12
    
  • Builder-Vite: Prevent config duplication - #33883, thanks @​copilot-swe-agent!

  • CLI: Fix React native web A11y issues - #33937, thanks @​jonniebigodes!

  • Core: Ensure telemetry is never triggered on initial load of checklist data - #33918, thanks @​ghengeveld!

  • Eslint: Fix ESLint 10 compatibility in eslint-plugin-storybook rules - #33884, thanks @​copilot-swe-agent!

  • Test: Update @​testing-library/jest-dom - #33928, thanks @​valentinpalkovic!

          ### v10.2.13## 10.2.13
    
  • Addon Pseudo-states: Process all nested css rules - #33605, thanks @​hpohlmeyer!

  • Builder-Vite: Prevent config duplication - #33883, thanks @​copilot-swe-agent!

  • CLI: Fix React native web A11y issues - #33937, thanks @​jonniebigodes!

  • Core: Avoid hanging when inferring args for recursive calls on DOM elemens - #33922, thanks @​valentinpalkovic!

  • Eslint: Fix ESLint 10 compatibility in eslint-plugin-storybook rules - #33884, thanks @​copilot-swe-agent!

  • Viewport: Prioritize story viewport globals and avoid user-global pollution - #33849, thanks @​ia319!

Commit history:
  • 0efef1 Merge pull request #33841 from storybookjs/kasper/docs-rdt-monorepo-faq

    Docs: Add troubleshooting for react-docgen-typescript in monorepos

  • a3f326 Merge pull request #33193 from storybookjs/fix-checklist-invalid-mdx-snippet

    Onboarding: Fix checklist MDX instructions

  • 5017de Merge pull request #34296 from majiayu000/fix/issue-19401-step-waitfor-nesting

    Maintenance: Add assertions outside step incorrectly nested in interactions panel

  • 81ac5b Merge branch 'next' into fix/issue-19401-step-waitfor-nesting
  • 69c844 Merge pull request #34361 from storybookjs/valentin/fix-csf4-vitest-issue

    CSF4: Fix duplicate preview loading issue in Vitest

  • 3ebc4f Fix lint
  • 127dcf Merge remote-tracking branch 'origin/next' into valentin/fix-csf4-vitest-issue
  • 6d4fcb Merge pull request #34262 from Nathan54Villaume/fix/mobile-renderLabel-react-node

    UI: Fix mobile navigation when renderLabel returns a React node

  • 73349e Merge pull request #34363 from storybookjs/fix-versions-formatting

    Build: Actually disable formatting of version json files

  • 36244e just dont be stupid
  • 3a6f20 Merge pull request #34349 from cjeonguk/cjeonguk-patch-1

    Docs: Update Node version in CI examples

  • cfb981 CSF4: Fix duplicate preview loading issue in Vitest

    Co-authored-by: Kasper Peulen <kasperpeulen@​gmail.com>

  • 4bcba4 Merge branch 'next-release' into next
  • ca6e23 Bump version from "10.4.0-alpha.4" to "10.4.0-alpha.5" [skip ci]
  • 8d1230 Merge pull request #34316 from storybookjs/jeppe/fix-error-reports-on-init

    CLI: Prompt for init crash reports

  • ab96a7 Merge pull request #34322 from storybookjs/version-non-patch-from-10.4.0-alpha.4

    Release: Prerelease 10.4.0-alpha.5

  • 82b7f6 format
  • 88a1f4 Merge pull request #34290 from whdjh/fix/28725-storybook-package-name-check

    CLI: Add automigrate check for 'storybook' package name conflict

  • cad2ca Merge branch 'next' into fix/28725-storybook-package-name-check
  • 8cf417 Upgrade versions of actions in ghp-github-action.md
  • f83936 Update versions of actions in chromatic-github-action.md
  • d1497d Merge branch 'next' into kasper/docs-rdt-monorepo-faq
  • 52db3d Merge branch 'next' into fix-checklist-invalid-mdx-snippet
  • 780885 dont prompt on non-blocking errors during init
  • ac322c Update Node.js version in docs snippet
  • 6362f7 Update Node.js version in docs snippet
  • 6de8c9 Write changelog for 10.4.0-alpha.5 [skip ci]
  • 810093 Merge pull request #34334 from storybookjs/copilot/fix-duplicate-pseudo-state-grid

    Refactor: Extract shared PseudoStateGrid component in pseudo-states stories

  • f6a6ba Merge pull request #34321 from storybookjs/jeppe/fix-release-format

    Build: Don't check format of version JSON files

  • a413a7 Merge branch 'next' into copilot/fix-duplicate-pseudo-state-grid

@michijs

michijs Bot commented Mar 30, 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 6, 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