Skip to content

[master] Michijs Dependabot changes#112

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

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

Conversation

@michijs

michijs Bot commented Apr 20, 2026

Copy link
Copy Markdown
Contributor Author

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

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

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

        ### 0.8.28## What's Changed

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

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


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


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


        ### 0.8.17## What's Changed

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

        ### 0.8.16## What's Changed

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

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


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

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

        ### 0.8.13## What's Changed

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

        ### 0.8.12## What's Changed

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

        ### 0.8.11## What's Changed

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

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


        ### 0.8.9## What's Changed

New Contributors

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

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


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


        ### v0.8.8Automatic release


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


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


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


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


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


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


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


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


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


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


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


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


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

@michijs

michijs Bot commented Apr 20, 2026

Copy link
Copy Markdown
Contributor Author

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

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

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

        ### 0.0.36## What's Changed

New Contributors

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

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


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


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


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


        ### 0.0.30## What's Changed

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

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


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


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


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


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


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

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

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

    What is the purpose of this pull request?

    Screenshots or example usage

    Types of changes

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

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

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

    What is the purpose of this pull request?

    Screenshots or example usage

    Types of changes

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

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

  • 3c3aca chore: Release v0.0.37

@michijs

michijs Bot commented Apr 20, 2026

Copy link
Copy Markdown
Contributor Author
Changelog:
Sourced from releases.
        ### v10.4.0-alpha.10## 10.4.0-alpha.10
  • Sidebar: Fix clear status button to only clear test statuses - #34478, thanks @​valentinpalkovic!

  • Telemetry: Centralize disable logic with module-level flag - #34485, thanks @​valentinpalkovic!

          ### v10.4.0-alpha.9## 10.4.0-alpha.9
    
  • A11y: Improve boolean control contrast in forced colors mode - #34204, thanks @​anchmelev!

  • Addon-Docs: Avoid rerendering static Source blocks - #34206, thanks @​anchmelev!

  • CLI: Streamline Node.js version detection code - #34440, thanks @​Sidnioulz!

  • Core: Improve startup performance by deferring change detection initialization - #34498, thanks @​ghengeveld!

  • Core: Normalize file paths in ChangeDetectionService and trace-changed for Windows support - #34445, thanks @​ghengeveld!

  • Fix: Add vite-plus vendored libraries version detection - #34509, thanks @​huang-julien!

  • Nextjs: Handle node builtin webpack imports - #34494, thanks @​JReinhold!

  • React: Add subcomponents to component manifests - #34428, thanks @​kasperpeulen!

  • Vue3: Clear stale args/globals when nextArgs is empty in updateArgs - #34409, thanks @​whdjh!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Storybook 10.3 contains hundreds of fixes and improvements including:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • UI: Make TagsFilter state persistent #33374

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

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

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

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

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

  • Core: Fix handling complex viewport sizes #33615

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

  • Manifest: Rename experimentalComponentsManifestcomponentsManifest, default to true #33974

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Commit history:
  • d226aa Merge pull request #34586 from storybookjs/yann/change-mock-events

    CLI: Change mock event detection

  • e7a952 Merge pull request #34530 from storybookjs/worktree-abundant-leaping-quokka

    Docs: Add change detection documentation

  • ec48db Merge pull request #34504 from storybookjs/story-new-status

    Core: Show "new" status on newly added individual stories

  • 526669 Merge pull request #34585 from storybookjs/fix-sigint-handling
  • 41b7af Merge branch 'next' into story-new-status
  • 86961d CLI: Change mock event detection
  • 1d5f0b Ensure process termination on signal when telemetry is disabled
  • c757d0 Add story with changeDetection disabled
  • 4c9a45 Removed data.changedFiles from change-detection status internals and updated tests accordingly.
  • e7e367 Fix type error
  • 833841 Docs: Improve change detection page clarity

    Clarify modified vs. affected status definitions, merge thin "Sidebar
    display" section into status indicators, and tighten callout text.

    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@​anthropic.com>

  • a85b63 Merge branch 'next' into worktree-abundant-leaping-quokka

    • next:
      Extend doc types to support section-level classification
      Build: Add docs-review skill
      Fix type error
      Address feedback
      Address feedback
      Format
      Address feedback
      Address feedback
      Remove skill and workflow
      Rewrite skill to address structural/strategic issues, not just formatting
      Add weekly workflow
      Replace fast-glob with tinyglobby
      Run skill
      Expand skill with more detailed voice and tone standards
      Run skill
      Expand link check to handle anchors
      Run skill
      Expand skill with more automated checks and writing standards
      Chore: Add scripts for docs-review skill
      Docs: Standardize formatting, add docs-review skill
    • 09fb0b Merge pull request #34451 from storybookjs/docs-skill

    Build: Add docs-review skill

  • b5caab Extend doc types to support section-level classification

    Pages still have one primary doc type, but well-structured secondary
    sections (e.g., a reference table at the end of a task page) are now
    recognized and evaluated by their own type's criteria instead of being
    flagged as an antipattern or triggering a split recommendation.

    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@​anthropic.com>

  • 561baa Build: Add docs-review skill
  • db1887 Merge pull request #34330 from storybookjs/docs-formatting

    Build: Apply docs formatting, add docs:check script

  • 34dd9c Fix type error
  • 752f00 Address feedback
  • 332d97 Address feedback
  • 755d98 Format
  • cb4f07 Address feedback
  • 9328fa Merge branch 'next' into docs-formatting

    • next: (139 commits)
      Bump version from "10.4.0-alpha.9" to "10.4.0-alpha.10" [skip ci]
      Write changelog for 10.4.0-alpha.10 [skip ci]
      fix: make clearStatuses and ensurePanel resilient to null providers
      chore: add ts-ignore
      Build: remove vite-plus as devDependency
      Build: Add FIX_ON_COMMIT env var to force autofix in pre-commit hook
      telemetry: auto-send error telemetry when payload factory errors
      Bump version from "10.4.0-alpha.8" to "10.4.0-alpha.9" [skip ci]
      Remove tests and stories depending on the ComponentFactoryResolver from core angular
      Write changelog for 10.4.0-alpha.9 [skip ci]
      fix formatting
      fix lint
      format
      chore: commit yarn.lock for @​chromatic-com/storybook@​5.1.2 and enable changeDetection in internal Storybook
      Update @​chromatic-com/storybook to ^5.1.2; add clearStatuses unit tests
      Isolate clearStatuses per-provider with try/catch
      Sidebar: route clearStatuses through per-provider clear() API
      Update code/core/src/telemetry/index.ts
      Update code/addons/vitest/src/preset.ts
      make subcomponentmanifest type pick from componentmanifest type
      ...

    • fd03be Merge branch 'next' into worktree-abundant-leaping-quokka

    • next: (53 commits)
      Bump version from "10.4.0-alpha.9" to "10.4.0-alpha.10" [skip ci]
      Write changelog for 10.4.0-alpha.10 [skip ci]
      fix: make clearStatuses and ensurePanel resilient to null providers
      chore: add ts-ignore
      Build: remove vite-plus as devDependency
      Build: Add FIX_ON_COMMIT env var to force autofix in pre-commit hook
      telemetry: auto-send error telemetry when payload factory errors
      Bump version from "10.4.0-alpha.8" to "10.4.0-alpha.9" [skip ci]
      Remove tests and stories depending on the ComponentFactoryResolver from core angular
      Write changelog for 10.4.0-alpha.9 [skip ci]
      fix formatting
      fix lint
      format
      chore: commit yarn.lock for @​chromatic-com/storybook@​5.1.2 and enable changeDetection in internal Storybook
      Update @​chromatic-com/storybook to ^5.1.2; add clearStatuses unit tests
      Isolate clearStatuses per-provider with try/catch
      Sidebar: route clearStatuses through per-provider clear() API
      Update code/core/src/telemetry/index.ts
      Update code/addons/vitest/src/preset.ts
      make subcomponentmanifest type pick from componentmanifest type
      ...

    • 6aa9e7 Add images
    • 573755 Bump version from "10.4.0-alpha.9" to "10.4.0-alpha.10" [skip ci]
    • 0edb4e Merge pull request #34539 from storybookjs/version-non-patch-from-10.4.0-alpha.9

    Release: Prerelease 10.4.0-alpha.10

  • 91583d Fix change-detection status rescans to avoid stale merges
  • 31f4f1 Avoid two instances of ChangeDetectionService
  • 380ec2 Add missing decorator
  • b87bea refactor: rename storyIndexBaselineService to indexBaselineService for consistency in ChangeDetectionService tests

@michijs

michijs Bot commented Apr 20, 2026

Copy link
Copy Markdown
Contributor Author

Bump typescript from 5.9.2 to 6.0.3

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

Downloads are available on:

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:
  • 55423a Update CONTRIBUTING.md with comment automation policy (#63412)
  • f1a928 Also check package name validity in InstallPackageRequest (#63401)
  • c7a0ae Harden ATA package name filtering (#63368)
  • 5f4350 Require AI disclosure in PR descriptions (#63366)
  • 38c327 Document charCodeAt edge case behavior in first line (#63344)
  • 7b8cb3 Fix redundant leading apostrophe in TS1344 diagnostic message (#63341)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@michijs

michijs Bot commented Apr 20, 2026

Copy link
Copy Markdown
Contributor Author

Bump storybook from 9.1.3 to 10.3.5

Changelog:
Sourced from releases.
        ### v10.4.0-alpha.10## 10.4.0-alpha.10
  • Sidebar: Fix clear status button to only clear test statuses - #34478, thanks @​valentinpalkovic!

  • Telemetry: Centralize disable logic with module-level flag - #34485, thanks @​valentinpalkovic!

          ### v10.4.0-alpha.9## 10.4.0-alpha.9
    
  • A11y: Improve boolean control contrast in forced colors mode - #34204, thanks @​anchmelev!

  • Addon-Docs: Avoid rerendering static Source blocks - #34206, thanks @​anchmelev!

  • CLI: Streamline Node.js version detection code - #34440, thanks @​Sidnioulz!

  • Core: Improve startup performance by deferring change detection initialization - #34498, thanks @​ghengeveld!

  • Core: Normalize file paths in ChangeDetectionService and trace-changed for Windows support - #34445, thanks @​ghengeveld!

  • Fix: Add vite-plus vendored libraries version detection - #34509, thanks @​huang-julien!

  • Nextjs: Handle node builtin webpack imports - #34494, thanks @​JReinhold!

  • React: Add subcomponents to component manifests - #34428, thanks @​kasperpeulen!

  • Vue3: Clear stale args/globals when nextArgs is empty in updateArgs - #34409, thanks @​whdjh!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Storybook 10.3 contains hundreds of fixes and improvements including:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • UI: Make TagsFilter state persistent #33374

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

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

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

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

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

  • Core: Fix handling complex viewport sizes #33615

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

  • Manifest: Rename experimentalComponentsManifestcomponentsManifest, default to true #33974

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Commit history:
  • d226aa Merge pull request #34586 from storybookjs/yann/change-mock-events

    CLI: Change mock event detection

  • e7a952 Merge pull request #34530 from storybookjs/worktree-abundant-leaping-quokka

    Docs: Add change detection documentation

  • ec48db Merge pull request #34504 from storybookjs/story-new-status

    Core: Show "new" status on newly added individual stories

  • 526669 Merge pull request #34585 from storybookjs/fix-sigint-handling
  • 41b7af Merge branch 'next' into story-new-status
  • 86961d CLI: Change mock event detection
  • 1d5f0b Ensure process termination on signal when telemetry is disabled
  • c757d0 Add story with changeDetection disabled
  • 4c9a45 Removed data.changedFiles from change-detection status internals and updated tests accordingly.
  • e7e367 Fix type error
  • 833841 Docs: Improve change detection page clarity

    Clarify modified vs. affected status definitions, merge thin "Sidebar
    display" section into status indicators, and tighten callout text.

    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@​anthropic.com>

  • a85b63 Merge branch 'next' into worktree-abundant-leaping-quokka

    • next:
      Extend doc types to support section-level classification
      Build: Add docs-review skill
      Fix type error
      Address feedback
      Address feedback
      Format
      Address feedback
      Address feedback
      Remove skill and workflow
      Rewrite skill to address structural/strategic issues, not just formatting
      Add weekly workflow
      Replace fast-glob with tinyglobby
      Run skill
      Expand skill with more detailed voice and tone standards
      Run skill
      Expand link check to handle anchors
      Run skill
      Expand skill with more automated checks and writing standards
      Chore: Add scripts for docs-review skill
      Docs: Standardize formatting, add docs-review skill
    • 09fb0b Merge pull request #34451 from storybookjs/docs-skill

    Build: Add docs-review skill

  • b5caab Extend doc types to support section-level classification

    Pages still have one primary doc type, but well-structured secondary
    sections (e.g., a reference table at the end of a task page) are now
    recognized and evaluated by their own type's criteria instead of being
    flagged as an antipattern or triggering a split recommendation.

    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@​anthropic.com>

  • 561baa Build: Add docs-review skill
  • db1887 Merge pull request #34330 from storybookjs/docs-formatting

    Build: Apply docs formatting, add docs:check script

  • 34dd9c Fix type error
  • 752f00 Address feedback
  • 332d97 Address feedback
  • 755d98 Format
  • cb4f07 Address feedback
  • 9328fa Merge branch 'next' into docs-formatting

    • next: (139 commits)
      Bump version from "10.4.0-alpha.9" to "10.4.0-alpha.10" [skip ci]
      Write changelog for 10.4.0-alpha.10 [skip ci]
      fix: make clearStatuses and ensurePanel resilient to null providers
      chore: add ts-ignore
      Build: remove vite-plus as devDependency
      Build: Add FIX_ON_COMMIT env var to force autofix in pre-commit hook
      telemetry: auto-send error telemetry when payload factory errors
      Bump version from "10.4.0-alpha.8" to "10.4.0-alpha.9" [skip ci]
      Remove tests and stories depending on the ComponentFactoryResolver from core angular
      Write changelog for 10.4.0-alpha.9 [skip ci]
      fix formatting
      fix lint
      format
      chore: commit yarn.lock for @​chromatic-com/storybook@​5.1.2 and enable changeDetection in internal Storybook
      Update @​chromatic-com/storybook to ^5.1.2; add clearStatuses unit tests
      Isolate clearStatuses per-provider with try/catch
      Sidebar: route clearStatuses through per-provider clear() API
      Update code/core/src/telemetry/index.ts
      Update code/addons/vitest/src/preset.ts
      make subcomponentmanifest type pick from componentmanifest type
      ...

    • fd03be Merge branch 'next' into worktree-abundant-leaping-quokka

    • next: (53 commits)
      Bump version from "10.4.0-alpha.9" to "10.4.0-alpha.10" [skip ci]
      Write changelog for 10.4.0-alpha.10 [skip ci]
      fix: make clearStatuses and ensurePanel resilient to null providers
      chore: add ts-ignore
      Build: remove vite-plus as devDependency
      Build: Add FIX_ON_COMMIT env var to force autofix in pre-commit hook
      telemetry: auto-send error telemetry when payload factory errors
      Bump version from "10.4.0-alpha.8" to "10.4.0-alpha.9" [skip ci]
      Remove tests and stories depending on the ComponentFactoryResolver from core angular
      Write changelog for 10.4.0-alpha.9 [skip ci]
      fix formatting
      fix lint
      format
      chore: commit yarn.lock for @​chromatic-com/storybook@​5.1.2 and enable changeDetection in internal Storybook
      Update @​chromatic-com/storybook to ^5.1.2; add clearStatuses unit tests
      Isolate clearStatuses per-provider with try/catch
      Sidebar: route clearStatuses through per-provider clear() API
      Update code/core/src/telemetry/index.ts
      Update code/addons/vitest/src/preset.ts
      make subcomponentmanifest type pick from componentmanifest type
      ...

    • 6aa9e7 Add images
    • 573755 Bump version from "10.4.0-alpha.9" to "10.4.0-alpha.10" [skip ci]
    • 0edb4e Merge pull request #34539 from storybookjs/version-non-patch-from-10.4.0-alpha.9

    Release: Prerelease 10.4.0-alpha.10

  • 91583d Fix change-detection status rescans to avoid stale merges
  • 31f4f1 Avoid two instances of ChangeDetectionService
  • 380ec2 Add missing decorator
  • b87bea refactor: rename storyIndexBaselineService to indexBaselineService for consistency in ChangeDetectionService tests

@michijs

michijs Bot commented Apr 20, 2026

Copy link
Copy Markdown
Contributor Author

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

Changelog:
Sourced from releases.
        ### v10.4.0-alpha.10## 10.4.0-alpha.10
  • Sidebar: Fix clear status button to only clear test statuses - #34478, thanks @​valentinpalkovic!

  • Telemetry: Centralize disable logic with module-level flag - #34485, thanks @​valentinpalkovic!

          ### v10.4.0-alpha.9## 10.4.0-alpha.9
    
  • A11y: Improve boolean control contrast in forced colors mode - #34204, thanks @​anchmelev!

  • Addon-Docs: Avoid rerendering static Source blocks - #34206, thanks @​anchmelev!

  • CLI: Streamline Node.js version detection code - #34440, thanks @​Sidnioulz!

  • Core: Improve startup performance by deferring change detection initialization - #34498, thanks @​ghengeveld!

  • Core: Normalize file paths in ChangeDetectionService and trace-changed for Windows support - #34445, thanks @​ghengeveld!

  • Fix: Add vite-plus vendored libraries version detection - #34509, thanks @​huang-julien!

  • Nextjs: Handle node builtin webpack imports - #34494, thanks @​JReinhold!

  • React: Add subcomponents to component manifests - #34428, thanks @​kasperpeulen!

  • Vue3: Clear stale args/globals when nextArgs is empty in updateArgs - #34409, thanks @​whdjh!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Storybook 10.3 contains hundreds of fixes and improvements including:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • UI: Make TagsFilter state persistent #33374

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

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

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

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

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

  • Core: Fix handling complex viewport sizes #33615

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

  • Manifest: Rename experimentalComponentsManifestcomponentsManifest, default to true #33974

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Commit history:
  • d226aa Merge pull request #34586 from storybookjs/yann/change-mock-events

    CLI: Change mock event detection

  • e7a952 Merge pull request #34530 from storybookjs/worktree-abundant-leaping-quokka

    Docs: Add change detection documentation

  • ec48db Merge pull request #34504 from storybookjs/story-new-status

    Core: Show "new" status on newly added individual stories

  • 526669 Merge pull request #34585 from storybookjs/fix-sigint-handling
  • 41b7af Merge branch 'next' into story-new-status
  • 86961d CLI: Change mock event detection
  • 1d5f0b Ensure process termination on signal when telemetry is disabled
  • c757d0 Add story with changeDetection disabled
  • 4c9a45 Removed data.changedFiles from change-detection status internals and updated tests accordingly.
  • e7e367 Fix type error
  • 833841 Docs: Improve change detection page clarity

    Clarify modified vs. affected status definitions, merge thin "Sidebar
    display" section into status indicators, and tighten callout text.

    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@​anthropic.com>

  • a85b63 Merge branch 'next' into worktree-abundant-leaping-quokka

    • next:
      Extend doc types to support section-level classification
      Build: Add docs-review skill
      Fix type error
      Address feedback
      Address feedback
      Format
      Address feedback
      Address feedback
      Remove skill and workflow
      Rewrite skill to address structural/strategic issues, not just formatting
      Add weekly workflow
      Replace fast-glob with tinyglobby
      Run skill
      Expand skill with more detailed voice and tone standards
      Run skill
      Expand link check to handle anchors
      Run skill
      Expand skill with more automated checks and writing standards
      Chore: Add scripts for docs-review skill
      Docs: Standardize formatting, add docs-review skill
    • 09fb0b Merge pull request #34451 from storybookjs/docs-skill

    Build: Add docs-review skill

  • b5caab Extend doc types to support section-level classification

    Pages still have one primary doc type, but well-structured secondary
    sections (e.g., a reference table at the end of a task page) are now
    recognized and evaluated by their own type's criteria instead of being
    flagged as an antipattern or triggering a split recommendation.

    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@​anthropic.com>

  • 561baa Build: Add docs-review skill
  • db1887 Merge pull request #34330 from storybookjs/docs-formatting

    Build: Apply docs formatting, add docs:check script

  • 34dd9c Fix type error
  • 752f00 Address feedback
  • 332d97 Address feedback
  • 755d98 Format
  • cb4f07 Address feedback
  • 9328fa Merge branch 'next' into docs-formatting

    • next: (139 commits)
      Bump version from "10.4.0-alpha.9" to "10.4.0-alpha.10" [skip ci]
      Write changelog for 10.4.0-alpha.10 [skip ci]
      fix: make clearStatuses and ensurePanel resilient to null providers
      chore: add ts-ignore
      Build: remove vite-plus as devDependency
      Build: Add FIX_ON_COMMIT env var to force autofix in pre-commit hook
      telemetry: auto-send error telemetry when payload factory errors
      Bump version from "10.4.0-alpha.8" to "10.4.0-alpha.9" [skip ci]
      Remove tests and stories depending on the ComponentFactoryResolver from core angular
      Write changelog for 10.4.0-alpha.9 [skip ci]
      fix formatting
      fix lint
      format
      chore: commit yarn.lock for @​chromatic-com/storybook@​5.1.2 and enable changeDetection in internal Storybook
      Update @​chromatic-com/storybook to ^5.1.2; add clearStatuses unit tests
      Isolate clearStatuses per-provider with try/catch
      Sidebar: route clearStatuses through per-provider clear() API
      Update code/core/src/telemetry/index.ts
      Update code/addons/vitest/src/preset.ts
      make subcomponentmanifest type pick from componentmanifest type
      ...

    • fd03be Merge branch 'next' into worktree-abundant-leaping-quokka

    • next: (53 commits)
      Bump version from "10.4.0-alpha.9" to "10.4.0-alpha.10" [skip ci]
      Write changelog for 10.4.0-alpha.10 [skip ci]
      fix: make clearStatuses and ensurePanel resilient to null providers
      chore: add ts-ignore
      Build: remove vite-plus as devDependency
      Build: Add FIX_ON_COMMIT env var to force autofix in pre-commit hook
      telemetry: auto-send error telemetry when payload factory errors
      Bump version from "10.4.0-alpha.8" to "10.4.0-alpha.9" [skip ci]
      Remove tests and stories depending on the ComponentFactoryResolver from core angular
      Write changelog for 10.4.0-alpha.9 [skip ci]
      fix formatting
      fix lint
      format
      chore: commit yarn.lock for @​chromatic-com/storybook@​5.1.2 and enable changeDetection in internal Storybook
      Update @​chromatic-com/storybook to ^5.1.2; add clearStatuses unit tests
      Isolate clearStatuses per-provider with try/catch
      Sidebar: route clearStatuses through per-provider clear() API
      Update code/core/src/telemetry/index.ts
      Update code/addons/vitest/src/preset.ts
      make subcomponentmanifest type pick from componentmanifest type
      ...

    • 6aa9e7 Add images
    • 573755 Bump version from "10.4.0-alpha.9" to "10.4.0-alpha.10" [skip ci]
    • 0edb4e Merge pull request #34539 from storybookjs/version-non-patch-from-10.4.0-alpha.9

    Release: Prerelease 10.4.0-alpha.10

  • 91583d Fix change-detection status rescans to avoid stale merges
  • 31f4f1 Avoid two instances of ChangeDetectionService
  • 380ec2 Add missing decorator
  • b87bea refactor: rename storyIndexBaselineService to indexBaselineService for consistency in ChangeDetectionService tests

@michijs

michijs Bot commented Apr 20, 2026

Copy link
Copy Markdown
Contributor Author

Bump storybook-dark-mode from 4.0.2 to 5.0.0

Changelog:
Sourced from releases.
        ### v5.0.0#### 💥 Breaking Change

🏠 Internal

Authors: 2

Authors: 1

Commit history:
  • 0fe31a Bump version to: 5.0.0 [skip ci]
  • 37ff57 Update contributors [skip ci]
  • ee3b5e Update CHANGELOG.md [skip ci]
  • ddf5d6 Merge pull request #307 from hipstersmoothie/v10

    Storybook V10 Compatibility

  • d10d8b Upgrade to strorybook 10
  • f9048f move to pnpm and get example working
  • 9347ae Merge pull request #278 from dartess/update-actions

    update actions/*

  • 9a5d67 Bump version to: 4.0.2 [skip ci]
  • c53228 Update contributors [skip ci]
  • 28fa4b Update CHANGELOG.md [skip ci]
  • 52fe0d Merge pull request #279 from adam-golab/master

    Fix for the "Storybook preview hooks can only be called inside decorators and story functions." error

  • 7342b9 fix: use the useEffect from storybook preview api
  • 153f21 fix: use useState hook from storybook preview api
  • fa7ca8 update actions
  • efbd14 Bump version to: 4.0.1 [skip ci]
  • 143e9d Update contributors [skip ci]
  • 9d8d9d Update CHANGELOG.md [skip ci]
  • 07efab Merge pull request #266 from leiit/fix-use-darkmode

    Fix useDarkMode to use correct channel

  • 576b40 Fix useDarkMode to use correct addons channel
  • df8d44 Add test story for useDarkMode
  • 8c055e Add typings & StoryObj format for Button story
  • 48638c Merge pull request #253 from hipstersmoothie/renovate/storybook-icons-1.x-lockfile

    Update dependency @​storybook/icons to v1.2.9

  • 50fc77 Bump version to: 4.0.0 [skip ci]
  • 30c0de Update contributors [skip ci]
  • 3d9bb6 Update CHANGELOG.md [skip ci]
  • 2f4f53 update auto
  • 550fe3 Update dependency @​storybook/icons to v1.2.9
  • d2f988 Merge pull request #251 from dartess/storybook-8

    Storybook 8

  • 319fe2 up node version in github workflows
  • fa60c8 update storybook to v8 stable

@michijs

michijs Bot commented Apr 20, 2026

Copy link
Copy Markdown
Contributor Author

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

Changelog:
Sourced from releases.
        ### v10.4.0-alpha.10## 10.4.0-alpha.10
  • Sidebar: Fix clear status button to only clear test statuses - #34478, thanks @​valentinpalkovic!

  • Telemetry: Centralize disable logic with module-level flag - #34485, thanks @​valentinpalkovic!

          ### v10.4.0-alpha.9## 10.4.0-alpha.9
    
  • A11y: Improve boolean control contrast in forced colors mode - #34204, thanks @​anchmelev!

  • Addon-Docs: Avoid rerendering static Source blocks - #34206, thanks @​anchmelev!

  • CLI: Streamline Node.js version detection code - #34440, thanks @​Sidnioulz!

  • Core: Improve startup performance by deferring change detection initialization - #34498, thanks @​ghengeveld!

  • Core: Normalize file paths in ChangeDetectionService and trace-changed for Windows support - #34445, thanks @​ghengeveld!

  • Fix: Add vite-plus vendored libraries version detection - #34509, thanks @​huang-julien!

  • Nextjs: Handle node builtin webpack imports - #34494, thanks @​JReinhold!

  • React: Add subcomponents to component manifests - #34428, thanks @​kasperpeulen!

  • Vue3: Clear stale args/globals when nextArgs is empty in updateArgs - #34409, thanks @​whdjh!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Storybook 10.3 contains hundreds of fixes and improvements including:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • UI: Make TagsFilter state persistent #33374

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

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

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

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

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

  • Core: Fix handling complex viewport sizes #33615

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

  • Manifest: Rename experimentalComponentsManifestcomponentsManifest, default to true #33974

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Commit history:
  • d226aa Merge pull request #34586 from storybookjs/yann/change-mock-events

    CLI: Change mock event detection

  • e7a952 Merge pull request #34530 from storybookjs/worktree-abundant-leaping-quokka

    Docs: Add change detection documentation

  • ec48db Merge pull request #34504 from storybookjs/story-new-status

    Core: Show "new" status on newly added individual stories

  • 526669 Merge pull request #34585 from storybookjs/fix-sigint-handling
  • 41b7af Merge branch 'next' into story-new-status
  • 86961d CLI: Change mock event detection
  • 1d5f0b Ensure process termination on signal when telemetry is disabled
  • c757d0 Add story with changeDetection disabled
  • 4c9a45 Removed data.changedFiles from change-detection status internals and updated tests accordingly.
  • e7e367 Fix type error
  • 833841 Docs: Improve change detection page clarity

    Clarify modified vs. affected status definitions, merge thin "Sidebar
    display" section into status indicators, and tighten callout text.

    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@​anthropic.com>

  • a85b63 Merge branch 'next' into worktree-abundant-leaping-quokka

    • next:
      Extend doc types to support section-level classification
      Build: Add docs-review skill
      Fix type error
      Address feedback
      Address feedback
      Format
      Address feedback
      Address feedback
      Remove skill and workflow
      Rewrite skill to address structural/strategic issues, not just formatting
      Add weekly workflow
      Replace fast-glob with tinyglobby
      Run skill
      Expand skill with more detailed voice and tone standards
      Run skill
      Expand link check to handle anchors
      Run skill
      Expand skill with more automated checks and writing standards
      Chore: Add scripts for docs-review skill
      Docs: Standardize formatting, add docs-review skill
    • 09fb0b Merge pull request #34451 from storybookjs/docs-skill

    Build: Add docs-review skill

  • b5caab Extend doc types to support section-level classification

    Pages still have one primary doc type, but well-structured secondary
    sections (e.g., a reference table at the end of a task page) are now
    recognized and evaluated by their own type's criteria instead of being
    flagged as an antipattern or triggering a split recommendation.

    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@​anthropic.com>

  • 561baa Build: Add docs-review skill
  • db1887 Merge pull request #34330 from storybookjs/docs-formatting

    Build: Apply docs formatting, add docs:check script

  • 34dd9c Fix type error
  • 752f00 Address feedback
  • 332d97 Address feedback
  • 755d98 Format
  • cb4f07 Address feedback
  • 9328fa Merge branch 'next' into docs-formatting

    • next: (139 commits)
      Bump version from "10.4.0-alpha.9" to "10.4.0-alpha.10" [skip ci]
      Write changelog for 10.4.0-alpha.10 [skip ci]
      fix: make clearStatuses and ensurePanel resilient to null providers
      chore: add ts-ignore
      Build: remove vite-plus as devDependency
      Build: Add FIX_ON_COMMIT env var to force autofix in pre-commit hook
      telemetry: auto-send error telemetry when payload factory errors
      Bump version from "10.4.0-alpha.8" to "10.4.0-alpha.9" [skip ci]
      Remove tests and stories depending on the ComponentFactoryResolver from core angular
      Write changelog for 10.4.0-alpha.9 [skip ci]
      fix formatting
      fix lint
      format
      chore: commit yarn.lock for @​chromatic-com/storybook@​5.1.2 and enable changeDetection in internal Storybook
      Update @​chromatic-com/storybook to ^5.1.2; add clearStatuses unit tests
      Isolate clearStatuses per-provider with try/catch
      Sidebar: route clearStatuses through per-provider clear() API
      Update code/core/src/telemetry/index.ts
      Update code/addons/vitest/src/preset.ts
      make subcomponentmanifest type pick from componentmanifest type
      ...

    • fd03be Merge branch 'next' into worktree-abundant-leaping-quokka

    • next: (53 commits)
      Bump version from "10.4.0-alpha.9" to "10.4.0-alpha.10" [skip ci]
      Write changelog for 10.4.0-alpha.10 [skip ci]
      fix: make clearStatuses and ensurePanel resilient to null providers
      chore: add ts-ignore
      Build: remove vite-plus as devDependency
      Build: Add FIX_ON_COMMIT env var to force autofix in pre-commit hook
      telemetry: auto-send error telemetry when payload factory errors
      Bump version from "10.4.0-alpha.8" to "10.4.0-alpha.9" [skip ci]
      Remove tests and stories depending on the ComponentFactoryResolver from core angular
      Write changelog for 10.4.0-alpha.9 [skip ci]
      fix formatting
      fix lint
      format
      chore: commit yarn.lock for @​chromatic-com/storybook@​5.1.2 and enable changeDetection in internal Storybook
      Update @​chromatic-com/storybook to ^5.1.2; add clearStatuses unit tests
      Isolate clearStatuses per-provider with try/catch
      Sidebar: route clearStatuses through per-provider clear() API
      Update code/core/src/telemetry/index.ts
      Update code/addons/vitest/src/preset.ts
      make subcomponentmanifest type pick from componentmanifest type
      ...

    • 6aa9e7 Add images
    • 573755 Bump version from "10.4.0-alpha.9" to "10.4.0-alpha.10" [skip ci]
    • 0edb4e Merge pull request #34539 from storybookjs/version-non-patch-from-10.4.0-alpha.9

    Release: Prerelease 10.4.0-alpha.10

  • 91583d Fix change-detection status rescans to avoid stale merges
  • 31f4f1 Avoid two instances of ChangeDetectionService
  • 380ec2 Add missing decorator
  • b87bea refactor: rename storyIndexBaselineService to indexBaselineService for consistency in ChangeDetectionService tests

@michijs

michijs Bot commented Apr 20, 2026

Copy link
Copy Markdown
Contributor Author

Bump bun from 1.2.21 to 1.3.12

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

Windows:

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

To upgrade to Bun v1.3.12:

bun upgrade

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

Thanks to 8 contributors!

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

Windows:

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

To upgrade to Bun v1.3.11:

bun upgrade

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

Thanks to 15 contributors!

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

Windows:

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

To upgrade to Bun v1.3.10:

bun upgrade

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

Thanks to 11 contributors!

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

Windows:

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

To upgrade to Bun v1.3.9:

bun upgrade

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

Thanks to 10 contributors!

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

Windows:

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

To upgrade to Bun v1.3.8:

bun upgrade

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

Thanks to 4 contributors!

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

Windows:

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

To upgrade to Bun v1.3.7:

bun upgrade

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

Thanks to 11 contributors!

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

Windows:

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

To upgrade to Bun v1.3.6:

bun upgrade

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

Thanks to 23 contributors!

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

Windows:

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

To upgrade to Bun v1.3.5:

bun upgrade

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

Thanks to 10 contributors!

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

Windows:

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

To upgrade to Bun v1.3.4:

bun upgrade

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

Thanks to 14 contributors!

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

Windows:

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

To upgrade to Bun v1.3.3:

bun upgrade

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

Thanks to 19 contributors!

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

Windows:

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

To upgrade to Bun v1.3.2:

bun upgrade

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

Thanks to 18 contributors!

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

Windows:

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

To upgrade to Bun v1.3.1:

bun upgrade

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

Thanks to 15 contributors!

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

        ### bun-v1.3.0

Read the blog post

Group 77

Windows:

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

To upgrade to Bun v1.3:

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

Windows:

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

To upgrade to Bun v1.2.23:

bun upgrade

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

Thanks to 16 contributors!

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

Windows:

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

To upgrade to Bun v1.2.22:

bun upgrade

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

Thanks to 14 contributors!

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

Windows:

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

To upgrade to Bun v1.2.21:

bun upgrade

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

Thanks to 23 contributors!

Commit history:
  • 0e2d20 test: fix memfd-disabled.test.ts E2BIG on Linux (#29501)

    Summary

    • The Blob-stdin test inlined a 64 KiB payload twice into the -e
      script via JSON.stringify, yielding a 131,394-byte argv entry — over
      Linux's MAX_ARG_STRLEN (32 × PAGE_SIZE = 128 KiB) — so posix_spawn
      failed with E2BIG. Now the payload is generated inside the child;
      canUseMemfd has no size gate for in-memory Blobs so the same code path
      is exercised.
    • Both tests asserted stderr === "", which fails on ASAN debug builds
      because JSC prints WARNING: ASAN interferes with JSC signal handlers….
      Added a stripAsanWarning filter (same approach as
      broadcast-channel-worker-gc.test.ts, fetch-abort-queued.test.ts,
      etc).

    Follow-up to #29465.

    Test plan

    • Reproduced original failure on Linux: E2BIG: argument list too long, posix_spawn
    • Fixed test passes on Linux ASAN debug build (2 pass / 0 fail)
    • CI: linux test suite green

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

  • 7e83f1 ci: don't compare binary size against release builds (#29500)

    What does this PR do?

    The binary-size step walks recent main commits looking for a build
    that uploaded binary-sizes.json to use as a baseline. Release builds
    upload that artifact too, so when the most recent main build is a
    release build, every canary PR compares against release-mode sizes.
    Windows release and canary binaries differ by several MB, so PRs
    spuriously fail the 0.5 MB threshold.

    Fix: pass --release to scripts/binary-size.ts when !options.canary
    (same release-detection check used for Windows signing), record
    release: <bool> in the uploaded binary-sizes.json, and skip any
    baseline whose release flag doesn't match the current build. Canary
    PRs now only compare against canary baselines.

    Release builds will generally show "no release comparison" since prior
    releases are well outside the 15-commit lookback window — this is
    intentional and preferable to the previous behavior of showing a
    misleading several-MB delta vs canary. Release builds are --no-fail
    regardless.

    Old artifacts without the release field are treated as canary (the
    common case), so existing baselines remain usable. The currently-stuck
    release build on main self-resolves once the next canary build lands and
    is found first in the newest-first commit walk.

    How did you verify your code works?

    Syntax/type checked both files, truth-tabled the (record.release ?? false) !== isRelease filter for all 6 release/canary/missing-field
    combinations, and confirmed !options.canary matches the existing
    release-detection pattern in ci.mjs. The script talks to Buildkite so
    it can't be exercised end-to-end locally.


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

  • d398bd build: add $BUN_ZIG_PATH to override the vendored zig compiler (#29492)

    What does this PR do?

    Mirrors the existing $BUN_WEBKIT_PATH env override: when set, points at
    an existing zig install (containing zig + lib/) and the zig_fetch ninja
    edge is skipped. Path resolution handles ~ expansion and anchors
    relative paths to the repo root so ninja's regen rule resolves the same
    path as the initial configure.

    I'm primarily interested in this for Arch Linux's bun package [1], which
    does this today on 1.3.12 via a patch [2]. However, one can imagine
    other use cases:

    • Worktree sharing (one compiler build across N worktrees, same reason
      $BUN_WEBKIT_PATH exists).

    • Testing zig compiler forks/patches without cutting a release or
      touching ZIG_COMMIT.

    • Air-gapped / restricted-network dev environments where the compiler is
      pre-staged.

    Configure-time validation checks that $BUN_ZIG_PATH/zig and
    $BUN_ZIG_PATH/lib/ both exist, and emits a hint pointing at the likely
    fix when they don't. Commit mismatch (user's zig differs from
    ZIG_COMMIT) is the user's problem — build.zig will error loudly if the
    compiler is too old for the options it receives.

    [1] https://archlinux.org/packages/extra/x86_64/bun/
    [2]
    https://gitlab.archlinux.org/archlinux/packaging/packages/bun/-/raw/main/bun-add-cmake-option-zig-local.patch

    Assisted-by: Claude Opus 4.7 <noreply@​anthropic.com>

    How did you verify your code works?

    Verified by regenerating build.ninja via bun scripts/build.ts --configure-only in three scenarios on Linux x64:

    1. BUN_ZIG_PATH unset (default) — build.ninja still contains the
      zig_fetch edge (build ../../vendor/zig/.zig-commit | ../../vendor/zig/zig: zig_fetch …). Regression check — default behavior
      is unchanged.
    2. BUN_ZIG_PATH=/tmp/nonexistent-zig — configure errors with
      BUN_ZIG_PATH='/tmp/nonexistent-zig' but no zig executable at /tmp/nonexistent-zig/zig plus the hint pointing at the likely fix.
    3. BUN_ZIG_PATH=vendor/zig (after pre-fetching the compiler via ninja -C build/debug zig-compiler) — no zig_fetch edge in build.ninja,
      but bun-zig.o still lists ../../vendor/zig/zig as an implicit input,
      and ninja treats the existing file as a source.

    Re-ran scenario 1 after scenario 3 to confirm the fetch edge is
    re-emitted once the env var is unset — no sticky state.

    Also typechecked with bunx tsc --noEmit -p scripts/build/tsconfig.json: no new errors introduced in zig.ts.

    Did not run a full bun bd end-to-end with BUN_ZIG_PATH set; the
    zig_build ninja edge is unchanged by this patch (it only references
    zigExecutable, which both code paths produce), so the risk surface is
    configure-time only.

  • 7a7905 build: bump parallel zig to 65b29282, enable on Linux (#29491)

    Summary

    • Bump ZIG_COMMIT_PARALLEL from 445fc0cb65b29282
      (oven-sh/zig@​65b29282)
    • Ungate Linux local builds from the parallel compiler now that the
      self-hosted ELF -r merge produces a complete bun-zig.o (closes
      #29132)
    • CI and Windows stay on the stable compiler

    The new commit also brings sharded unit_claims + dropped sema_lock
    under non-incremental for parallel sema, which speeds up darwin builds
    too.

    Test plan

    • bunx tsc --noEmit -p scripts/build/tsconfig.json
    • bun scripts/build.ts --configure-only — generated URL points at
      autobuild-65b29282…, all 12 platform assets present in the release
    • defaultZigCommit() returns PARALLEL for local darwin+linux,
      STABLE for CI and windows
    • bun bd --revision — clean build with the new compiler on
      darwin-arm64
    • bun bd test test/js/bun/util/which.test.ts — sanity test passes
    • Fresh bun run build on a Linux host (verifies the #29132 fix
      end-to-end)
    • bf2e2c Revert "webcore: fix ReadableStreamSource Strong cycle + Windows fromPipe ref (#29472)"

    This reverts commit 55b62eff1cf78b19b8dc0271e5d76a415b18cae3.

  • f53ef3 build: lower minimum glibc requirement from 2.26 to 2.17 (#29461)

    What

    Lowers the Linux glibc floor from 2.26 → 2.17 (RHEL/CentOS 7, Amazon
    Linux 1, aarch64 baseline).

    Only three symbols in the current release binaries required > 2.17. All
    three are handled with the same pattern: --wrap (or strong def) →
    dlsym glibc's real implementation at runtime when present, with a
    well-defined fallback for older glibc.

    Symbol glibc Handling
    getrandom 2.25 --wrapdlsym glibc's (preserves vDSO fast
    path on ≥ 2.41); fall back to syscall(SYS_getrandom) on < 2.25. All
    callers (BoringSSL, c-ares, highway) already handle ENOSYS.
    quick_exit 2.24 --wrapdlsym glibc's default version. On ≥
    2.24 that's the C11-correct one (skips thread_local dtors); on 2.17–2.23
    it's the only version available. Either way we call exactly what a
    natively-linked binary on that host would.
    __cxa_thread_atexit_impl 2.18 Strong definition
    (libstdc++/libc++abi/Rust std all weak-ref it, but lld doesn't propagate
    weakness to the verneed entry so the loader rejects on 2.17). dlsym
    glibc's on ≥ 2.18 (preserves DSO-refcount handling for FFI dlclose); on
    2.17 use libc++abi's fallback, ported verbatim from
    llvmorg-19.1.0/libcxxabi/src/cxa_thread_atexit.cpp
    under Apache-2.0 WITH LLVM-exception.

    2.17 is the floor for aarch64 glibc, so going lower on x64 alone has no
    value.

    Changes

    • build.zig — Zig glibc target 2.26 → 2.17
    • scripts/build/flags.ts — add --wrap=getrandom, --wrap=quick_exit
    • src/bun.js/bindings/workaround-missing-symbols.cpp — wraps +
      __cxa_thread_atexit_impl (libc++abi fallback)
    • test/js/bun/symbols.test.ts — enforce ≤ 2.17
    • docs/installation.mdx — note 2.17 minimum
    • LICENSE.md — libc++abi attribution

    Test plan

    • CI: symbols.test.ts passes on linux-x64 and linux-aarch64
      (objdump shows no GLIBC_ > 2.17)
    • CI: linux test suite green (verifies dlsym-forward paths work for
      normal exit / crypto)
    • CI: musl build unaffected

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

  • 91d066 sys: cache memfd_create ENOSYS + BUN_FEATURE_FLAG_DISABLE_MEMFD (#29465)

    What

    memfd_create requires kernel ≥ 3.17. A binary-level syscall audit (in
    #29461) found that every Bun caller already falls back on error — Blob →
    heap, spawn stdio → pipe, process IPC → socketpair — so kernel 3.10
    (RHEL 7) works today, but every call retries the failing syscall.

    This PR:

    • Caches ENOSYS in bun.sys.memfd_create so subsequent calls return
      immediately
    • Adds BUN_FEATURE_FLAG_DISABLE_MEMFD to force the fallback (seccomp
      environments, testing)
    • Tests that Blob and spawn-stdin work with the flag set
    • Fixes docs/installation.mdx: "minimum kernel 5.1" was never true
      (the io_uring check it referenced has zero callers). Actual floor is
      ~3.10 with degraded atomicity.

    Complements #29461 (glibc 2.17).

    Test plan

    • CI: linux test suite passes with new memfd-disabled.test.ts
    • CI: zig check on all platforms
    • 55b62e webcore: fix ReadableStreamSource Strong cycle + Windows fromPipe ref (#29472)

    Summary

    Three related fixes; the second and third are required by the first.

    1. close_jsvalue Strong → onCloseCallback cached slot

    (cross-platform)

    setOnCloseFromJS stored the callback in a jsc.Strong, which forms a
    rooted cycle: source-wrapper → close_jsvalue Strong → bound #onClose
    NativeReadableStreamSource (ReadableStreamInternals.ts:1972) →
    $stream private prop (:1959) → source-wrapper. Because a Strong is a
    global GC root, the source survives even after every JS reference
    (including the outer ReadableStream) is dropped. It only becomes
    collectable when EOF/close runs the JS-side callClose (which clears
    $stream) or at VM shutdown.

    The codegen already declares onCloseCallback in streams.classes.ts
    values; onDrain already uses its cached slot. Switch onClose to
    the same WriteBarrier-backed storage and delete the Strong field. The
    cycle becomes an ordinary intra-heap cycle that mark-sweep collects.

    2. Windows non-lazy FileReader across-read ref

    FileReader.onStart holds an incrementCount() until onReaderDone
    only on the lazy path (always) or the POSIX non-lazy path. The Windows
    non-lazy path — fromPipe, reached via Bun.spawn().stdout/.stderr
    did not. With the cycle fix above, the source is now collectable while a
    uv_read_start IOCP read is pending, and WindowsBufferedReader.deinit
    would run with a live .pipe source whose data ptr is then
    dereferenced by the queued onStreamRead. Add a Windows arm matching
    the POSIX one.

    3. Release the across-read ref in onReaderError too

    onReaderDone checks waiting_for_onReaderDone and decrements;
    onReaderError did not, so a read that ends in error (rather than EOF)
    leaked the ref taken in onStart. Pre-existing on the lazy and POSIX
    paths; commit 2 adds a Windows arm that would inherit the same gap.
    Mirror the release after pending.run().

    Verification

    On Windows, with a child that spawns a detached grandchild inheriting
    stdout (so the pipe stays open after the direct child exits), repeatedly
    accessing proc.stdout, dropping it, and forcing GC:

    | | *ReadableStreamSource heap count after 30 iters |
    WindowsBufferedReader.deinit reached with live .pipe source |
    |---|---|---|
    | baseline | 31 (linear growth; 61 at 60 iters) | no — leak masks it |
    | commit 1 only | ~14 (plateaus at live-grandchild count) | yes
    FileReader.deinit sees src=pipe, closed=false |
    | commits 1–3 | ~15 (plateaus; freed as pipes EOF; flat through 80
    iters) | no |

    Relation to #29440

    Found while verifying the review comment on #29440 about
    WindowsBufferedReader.deinit ordering. That comment correctly
    identified the buffer-free-before-detach as theoretical; this PR
    explains why (the Strong cycle pinned the source) and fixes the
    underlying leak plus the UAF that fixing the leak would have exposed.

  • 1e2290 Add missing docs
  • c2ad07 Add missing docs
  • f8d425 Migrate TCPSocket/TLSSocket from hasPendingActivity to jsc.JSRef (#29451)
  • 97d9da ci(binary-size): drop release comparison column (#29468)

    What

    Removes the "release" comparison column from the binary-size CI
    annotation. The table now compares only against canary (latest main).

    Why

    Tagged release builds are configured differently from canary/PR builds
    (less debug code baked in), so they come out ~1–2 MB smaller. That makes
    the release Δ column read as a constant "+1.x MB" on every PR regardless
    of what the PR actually changed — it's noise that looks like signal. The
    canary delta is what answers "did this PR grow the binary."

    Details

    • Dropped releaseFallback hardcoded size table
    • Dropped fetchReleaseBaseline() (git ls-remote tag lookup)
    • Dropped release field from Row and the corresponding HTML column /
      console output
    • Threshold check was already canary-only — unchanged
    • [skip size check] escape hatch — unchanged

    Net: −42 lines in scripts/binary-size.ts.

  • 40ffda deps(mimalloc): set MI_OVERRIDE=OFF on Windows (#29467)

    Summary

    Windows debug builds fail to link since the dev3 mimalloc bump (#29420 /
    #29435):

    lld-link: error: duplicate symbol: _expand
    >>> defined at mimalloc-debug.lib(alloc.c.obj)
    >>> defined at libucrtd.lib(expand.obj)
    

    Root cause: mimalloc.ts never set MI_OVERRIDE for Windows — only
    a comment claiming the upstream default was "no override". The actual
    default is ON. Pre-dev3 this was harmless because alloc-override.c's
    _MSC_VER block was an empty comment ("cannot override malloc unless
    using a dll"). Upstream
    microsoft/mimalloc#1259
    / #1263 filled it with real CRT symbol definitions (_expand, _msize,
    _msize_base, _free_base, free), so the static lib now exports them
    and collides with the debug CRT.

    Fix: explicit MI_OVERRIDE=OFF on Windows. Bun links the static CRT
    and calls mi_* directly; nothing routes through CRT malloc, so
    override has no benefit there. This restores the effective pre-dev3
    behavior.

    Not stale cache: dep_configure already uses cmake --fresh, so
    the cache was correctly regenerated — it got ON because that's the
    real default.

    Why CI didn't catch it: all ci-* profiles use buildType: "Release" (/MTlibucrt.lib). The duplicate only fires under
    /MTd because libucrtd.lib's expand.obj is pulled in for its
    debug-heap symbols. CI never builds Windows debug.

    Test plan

    • bunx tsc --noEmit -p scripts/build/tsconfig.json
    • bun scripts/build.ts --configure-only
    • Windows debug: bun bd --version1.3.13-debug (previously
      failed at link)
    • Verified build/debug/deps/mimalloc/CMakeCache.txt shows
      MI_OVERRIDE:BOOL=OFF after reconfigure
    • CI (release Windows — also flips ON→OFF; expected no-op since
      pre-dev3 override did nothing on Windows static)
    • 983ee6 debugger: block on a condvar instead of spinning while paused (#29438)

    What does this PR do?

    Fixes #21654 — Bun pegs one CPU core at 100% while paused at a
    breakpoint (or debugger; statement) in VSCode / Cursor /
    debug.bun.sh.

    Repro

    // index.js
    debugger;
    bun --inspect-wait=localhost:6499/ index.js
    # attach any inspector client, let it stop at `debugger;`
    # → ~100% of one core for as long as you're paused

    Root cause

    When JSC pauses execution, it calls
    BunInspectorConnection::runWhilePaused on the JS thread, which looped:

    while (!isDoneProcessingEvents) {
        connection->receiveMessagesOnInspectorThread(...);  // non-blocking, usually empty
    }

    receiveMessagesOnInspectorThread just swaps an almost-always-empty
    Vector under a lock and returns, so the loop spins at full speed.
    There was already a jsWaitForMessageFromInspectorLock in the file
    intended for this, but the waiting side was commented out and the lock
    was only ever unlocked, never acquired.

    Fix

    Replace the spin with a WTF::Lock + WTF::Condition wait:

    • runWhilePaused drains pending messages from each connection, then
      waits on the condition (with a 1-second safety-net timeout) until either
      a new message arrives or a connection disconnects.
    • sendMessageToInspectorFromDebuggerThread, connect() and
      disconnect() notify the condition after updating state so the paused
      thread wakes immediately — round-trips for Runtime.evaluate while
      paused stay in the low-ms range.
    • anyConnectionHasPendingWork() re-checks each connection's queue
      under pausedWaitLock before sleeping so wakeups can't be missed.
    • The single- and multi-connection branches are merged into one loop;
      when every connection is gone we continueProgram() and exit instead of
      looping forever.
    • The unused jsWaitForMessageFromInspectorLock member and its
      isLocked() / unlockFairly() dance are removed.

    Verification

    test/regression/issue/21654/21654.test.ts spawns a child with
    --inspect-wait, attaches over WebSocket, enables the debugger, hits a
    debugger; statement, sleeps 2 s while paused, then resumes. The child
    reports its own process.cpuUsage() delta across the pause.

    | | CPU while paused (2 s) | Runtime.evaluate round-trip while paused
    |
    | --- | --- | --- |
    | before | ~100% | ~1 ms |
    | after | <15% (debug+ASAN; ~0% release) | ~25 ms (debug+ASAN) |

    The test asserts <50% CPU and <500 ms round-trip. Also manually verified
    that closing the WebSocket while paused resumes the program.

    Fixes #21654

    Fixes #19347


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

  • e2fd5f Fix BroadcastChannel channelToContextIdentifier locking and dispatchMessage lifetime (#29441)

    What does this PR do?

    Fixes two data races in BroadcastChannel.cpp that surface as ASAN
    heap-use-after-free in
    test/js/web/broadcastchannel/broadcast-channel-worker-gc.test.ts.

    Bug A — channelToContextIdentifier HashMap one-sided locking

    The prior ThreadSafeWeakPtr fix only covered allBroadcastChannels().
    The second global, channelToContextIdentifier(), has its own lock —
    but it was taken at only 1 of 4 call sites:

    Site Thread Lock?
    registerChannel .add() main
    unregisterChannel .remove() main
    dispatchMessageTo .get() main
    contextIdForBroadcastChannelId .get() worker (via
    ensureOnContextThreaddispatchMessage)

    When main rehashes the HashMap (add/remove during worker
    spawn/terminate) while a worker reads it, the worker walks a freed
    bucket array → ASAN heap-UAF inside WTF::HashTable. The accessor was
    also missing WTF_REQUIRES_LOCK, so -Wthread-safety never flagged
    this.

    Fix: add Locker locker { channelToContextIdentifierLock }; at the
    three unlocked sites and annotate the accessor with
    WTF_REQUIRES_LOCK(channelToContextIdentifierLock) to match
    allBroadcastChannels().

    Bug B — dispatchMessage captures raw this in async task

    dispatchMessage posts a task with [this, message = ...] — raw
    this, no Ref { *this }. The caller (dispatchMessageTo's inner
    lambda) holds a strong RefPtr from the ThreadSafeWeakPtr lookup, but
    that ref is dropped when the outer lambda returns. During worker
    terminate the JS wrapper is destroyed → refcount 0 → ~BroadcastChannel
    → the queued task reads freed this->m_isClosed and calls
    this->dispatchEvent().

    Fix: capture protectedThis = Ref { *this } in the postTaskTo
    lambda, matching the pattern in MessagePort.cpp, Performance.cpp,
    and WebSocket.cpp.

    How did you verify your code works?

    • bun bd test test/js/web/broadcastchannel/broadcast-channel-worker-gc.test.ts — 3/3
      pass, verified stable across 3 consecutive runs under debug+ASAN
    • bun bd test test/js/web/broadcastchannel/broadcast-channel.test.ts
      10/11 pass; the one failure (broadcast channel worker wait) is
      pre-existing on main under debug+ASAN (it uses Bun.sleepSync(500)
      which isn't enough for an ASAN worker to start) and is unrelated to this
      change

    Test changes

    • Added a stress test that churns channel registrations (forcing HashMap
      rehashes) while workers cross-post (reaching the worker-side map read),
      then terminates workers mid-dispatch (leaving queued tasks whose this
      would otherwise dangle).
    • Filtered the unconditional ASAN startup warning from child-process
      stderr so expect(stderr).toBe("") holds on ASAN builds — same
      pattern as fetch-abort-queued.test.ts / string-decoder.test.js.
    • Scaled timeouts for isDebug || isASAN — worker spawn under
      debug+ASAN is ~5–10× slower; the existing tests were borderline at the
      5s default.

    Note: both races are highly timing-dependent (a HashMap rehash must land
    mid-get()); 20 local ASAN runs on macOS did not repro before the fix.
    The new stress test maximises contention but is not guaranteed to fail
    without the fix on every platform.


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

  • a96270 cron: don't report TerminationException as uncaught on worker terminate (#29457)
  • aa16dd sys(windows): don't panic on unnamed NTSTATUS in openDirAtWindowsNtPath (#29443)
  • 3845ee Fix segfault in Bun.pathToFileURL when URL construction fails on Windows (#29448)
  • 5dfa63 module_loader: remove undefined backing for bun:main source (#29450)
  • 7e4774 css/small_list: fix tryGrow over-allocating by @​sizeOf(T) on heap realloc (#29452)
  • 8f2519 deps: replace cloudflare/zlib with zlib-ng 2.3.3 (#29433)

    What does this PR do?

    Replaces the cloudflare/zlib fork (last commit Oct 2023) with
    zlib-ng 2.3.3 in ZLIB_COMPAT
    mode. zlib-ng is actively maintained, ships in Node 24+ and Chromium,
    and provides runtime-dispatched SIMD across
    AVX-512/AVX2/SSE2/NEON/SVE/RVV for CRC32, adler32, longest-match, and
    chunk-copy.

    Supersedes #16100, #8529.

    Benchmarks

    Xeon Platinum 8375C (Ice Lake, AVX-512), linux-x64 release build vs
    system bun 1.3.13. Run with bench/snippets/zlib-comprehensive.mjs and
    bench/snippets/zlib.mjs (both included).

    Operation cloudflare zlib-ng Speedup
    gzipSync html-128K L1 275 µs 107 µs 2.59x
    gzipSync html-1M L1 2.23 ms 892 µs 2.50x
    gzipSync json-128K L6 897 µs 483 µs 1.86x
    deflate 123K L6 (async) 373 µs 68 µs 5.48x
    gunzipSync html-1M 561 µs 522 µs 1.07x
    gunzipSync binary-128K 31.6 µs 26.7 µs 1.18x
    createGzip stream L1 1M 3.76 ms 2.68 ms 1.40x
    createGunzip stream 1M 1.24 ms 1.18 ms 1.05x
    fetch() 11KB gzip decode 42.9 µs 41.6 µs parity
    gzipSync 13B (init overhead) 5.04 µs 7.12 µs 0.71x

    The streaming-inflate regression that blocked #16100 (Jan 2025, zlib-ng
    pre-2.2) does not reproduce on 2.3.3. The only downside is ~2µs
    higher per-stream init cost from larger state structs, amortized away on
    payloads ≥4KB.

    Compression ratio at level=6 is +0.4% vs cloudflare (different
    match-finding heuristics). Negligible.

    Security hardening

    Built with -DWITH_INFLATE_STRICT=ON. zlib-ng commit 340f2f6e moved
    inflateBack()'s distance-too-far-back check behind a default-off
    #ifdef; upstream zlib has it unconditional. Bun doesn't call
    inflateBack(), but this hardens against heap OOB reads on malicious
    raw-deflate with windowBits<15 for anything else linking the same lib,
    at zero cost to inflate() proper.

    Why pin to 2.3.3 (not develop)

    Two regressions landed on zlib-ng develop after 2.3.3 that are not
    present at this commit (documented in zlib.ts):

    • 172b8544 — inverted COPY guard disables Chorba CRC32 fast-path on
      PCLMULQDQ-only x64
    • e5129cfedeflateBound() hits __builtin_unreachable() after
      Z_FINISH

    Re-audit before bumping past 2.3.3.

    Build system changes

    zlib-ng generates zlib.h at cmake-configure time into the build
    dir (it doesn't exist in source). This required:

    • provides.includesdepBuildDir(cfg, "zlib") instead of source dir
    • libarchive's -I → build dir
    • fetchDeps now resolves to the cross-dep's build outputs (lib
      files) instead of just the source .ref stamp, so libarchive's
      configure waits for zlib's configure to have run. resolveDep() takes a
      map of previously-resolved deps.

    Drops 4 cloudflare-specific vendor patches.

    How did you verify your code works?

    • linux-x64 release build: bun run build:release clean → smoke
      test passes
    • test/js/node/zlib/zlib.test.js: 376 pass, 0 fail (release
      build)
    • bun bd test test/js/node/zlib/: deflate/gzip/inflate tests pass
      (1 unrelated brotli timeout in debug — createBrotliCompress slowness,
      untouched by this PR)
    • Build-graph ordering verified: build.ninja shows libarchive
      configure has deps/zlib/libz.a as order-only input
    • bunx tsc --noEmit -p scripts/build/tsconfig.json clean
    • Windows (lib name → zlibstatic) — needs CI
    • aarch64/musl — needs CI

    🤖 Generated with Claude Code


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

  • 52f68d deps: bump mimalloc to 57029fb1 (upstream dev3 a3fb9498) (#29435)

    Merges upstream dev3 (22 commits) into bun-dev3-v2. With our config
    (MI_NO_OPT_ARCH=ON, MI_OSX_ZONE=OFF, MI_NO_PROCESS_DETACH=ON,
    MI_OVERRIDE=OFF on macOS/Win), only the bitmap-purge restore fixes
    (65d70e3c, d5861285) reach compiled code: when mi_arenas_try_purge
    early-exits, freed slices not yet visited are now put back on the
    purge bitmap instead of being lost, so the next scavenge cycle can
    return them to the OS.

    Also picks up oven-sh/mimalloc@​809f7f32 which extends
    MI_NO_PROCESS_DETACH (already set in #29420) to gate
    _mi_auto_process_done itself, covering Windows mi_win_main /
    .CRT$XPU paths in addition to the POSIX destructor.

  • 11ffb7 blob: clamp stat.size to max_size to avoid @​intCast panic in ReadFile (#29355)

    What does this PR do?

    Fixes a Zig safety-check panic in ReadFile.resolveSizeAndLastModified
    (called from runAsyncWithFD) when fstat reports a size larger than
    maxInt(u52).

    Fuzzer fingerprint: 6e3d2159cadcef3a

    Root cause

    this.total_size = @&ZeroWidthSpace;truncate(@&ZeroWidthSpace;as(SizeType, @&ZeroWidthSpace;intCast(@&ZeroWidthSpace;max(@&ZeroWidthSpace;as(i64, @&ZeroWidthSpace;intCast(stat.size)), 0))));

    SizeType is u52. The outer @&ZeroWidthSpace;truncate is dead code — the inner
    @&ZeroWidthSpace;intCast to u52 runs first and panics with integerOutOfBounds
    whenever the (non-negative) stat size exceeds maxInt(u52). Verified
    with objdump that resolveSizeAndLastModified contained a single call
    to debug.FullPanic.integerOutOfBounds mapping to this line.

    The fuzzer hit this via an fd-based ReadFile task scheduled on the
    thread pool in a prior REPRL iteration, which then ran after the fd
    context changed. In a standalone run of the minimized script,
    doReadFile is never invoked — the crash depends on cross-iteration
    thread-pool state, which is why it's extremely flaky and not directly
    reproducible outside the REPRL harness.

    Fix

    • Clamp stat.size to [0, Blob.max_size] before casting, so the
      @&ZeroWidthSpace;intCast is always in range. Applied to both the POSIX (ReadFile)
      and Windows (ReadFileUV) paths.
    • While here: set system_error when initCapacity fails in the POSIX
      path so OOM propagates to JS as an error instead of being silently
      treated as an empty read. This matches what ReadFileUV already does.

    How did you verify your code works?

    • objdump confirms integerOutOfBounds is no longer emitted in
      resolveSizeAndLastModified (1 → 0 call sites).
    • bun bd test test/js/bun/util/bun-stdin-slice.test.ts passes (covers
      fd-based ReadFile path).
    • bun bd test test/js/bun/util/bun-file-read.test.ts passes.
    • bun bd test test/js/bun/util/bun-file.test.ts passes.
    • Manual check: Bun.file(fd).text() on a regular file fd still works.

    No new regression test is added because triggering the original panic
    requires fstat to report a size > 4.5 PB, which is not achievable in
    the test environment; the fix is verified structurally and the affected
    code path is already covered by the existing stdin-slice tests.


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

  • ee51bb libarchive: keep upstream damaged-block retry semantics on the buffered path (#29430)

    Follow-up to #29404.

    Problem

    nonblocking-read.patch routed upstream libarchive's pre-existing
    damaged-block ARCHIVE_RETRY (bad header checksum → skip this block and
    try the next one) through the same bun_retry label as a non-blocking
    yield. That left both tar->header_in_progress and
    a->read_header_in_progress set, so the next
    archive_read_next_header() call skipped archive_entry_clear,
    archive_clear_error, ++file_count and tar_reset_header_state — a
    behaviour change on the ordinary buffered extract path even when the
    reader never returns ARCHIVE_RETRY.

    Repro

    A tarball shaped [pax 'g' global header][block with bad checksum][pax 'g' global header][regular file], installed via file:./pkg.tgz
    (always buffered — PackageManagerTask.readAndExtract
    Archiver.extractToDir):

    • upstream libarchive / this PR: the damaged block is consumed,
      state is fully reset, the second g header is accepted, the file is
      extracted.
    • main (64951540d5): seen_headers = seen_g_header leaks across the
      retry → the second g header trips "Redundant 'g' header"
      ARCHIVE_FATALerror: Fail extracting tarball.

    Fix

    Make the format reader the authority on whether a header read is
    mid-flight:

    • tar_read_header's bun_retry: label now sets
      a->read_header_in_progress = 1 explicitly.
    • The damaged-block branch clears it and exits via
      TAR_HEADER_RETURN(ARCHIVE_RETRY) (which also clears
      tar->header_in_progress), so the next call runs the full upstream
      reset.
    • archive_read_next_header2 now only clears the flag on terminal
      results instead of setting it on every ARCHIVE_RETRY.
    • archive_read_format_tar_read_header only takes the early return ARCHIVE_RETRY when tar->header_in_progress is still set; a
      damaged-block retry falls through to the original post-read handling
      (sparse-list add etc.), matching upstream.

    The streaming path is unaffected — the existing drip-feed tests in
    bun-install-streaming-extract.test.ts still pass.

    On the consume_header change (point 2 in the report)

    Zeroing next_in/avail_in before inflateInit2(-15) is intentionally
    left as-is: zlib's inflateInit2_ never reads either field (verified
    against vendor/zlib/inflate.c), and gzip_filter_read re-primes them
    from __archive_read_filter_ahead before every inflate(). Removing
    the extra read-ahead is what lets consume_header avoid an
    ARCHIVE_RETRY after the header has already been consumed; it's a no-op
    on the buffered path.

    Verification

    Fix is in patches/, so the usual git stash -- src/ gate doesn't
    cover it. Verified manually:

    # main's nonblocking-read.patch
    bun bd test test/cli/install/bun-install-streaming-extract.test.ts -t damaged-block
    (fail) buffered extract: damaged-block retry resets header state (upstream semantics)
      error: expect(received).not.toContain(expected)
      Expected to not contain: "Fail extracting tarball"
      Received: "...error: Fail extracting tarball from damaged-pkg..."
    
    # this PR's patch
    bun bd test test/cli/install/bun-install-streaming-extract.test.ts -t damaged-block
    (pass) buffered extract: damaged-block retry resets header state (upstream semantics)
    

    Full bun-install-streaming-extract.test.ts (5 tests, both streaming
    and buffered paths) and test/js/bun/archive.test.ts (99 tests) pass.


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

  • 50be3c zig: hoist try out of tagged-union literals to avoid partial writes (#29422)

    What

    Fixes four sites where a tagged-union assignment of the form lhs = .{ .tag = <expr> } has early-exit control flow (try, catch return)
    inside <expr>. Zig writes the union tag to the result location
    before evaluating the payload expression, so if the early-exit fires
    the union is left with the new tag and the old/garbage payload bytes.

    Minimal repro of the underlying Zig behavior:

    const Data = union(enum) { f1: u32, f2: u64 };
    fn bar() !u64 { return error.Oops; }
    fn foo(l: *Data) void {
        l.* = .{ .f2 = bar() catch return };
    }
    // l before: .{ .f1 = 0xDEADBEEF }
    // l after:  .{ .f2 = <0xDEADBEEF reinterpreted as u64> }

    The fix everywhere is to hoist the fallible expression into a temporary
    before assigning the union literal.

    Sites fixed

    • src/http/Decompressor.zigthis.* = .{ .zlib = try Zlib.init(...) } (and brotli/zstd). On init failure the tag flips with
      a garbage *Reader pointer; InternalState.reset() later calls
      decompressor.deinit() which dereferences it.
    • src/bun.js/webcore/Body.zigthis.* = .{ .Locked = .{ .readable = ...(try ReadableStream.fromJS(...)).?, ... } }. If fromJS
      throws, Body.Value (heap state on Request/Response) is left as
      .Locked with garbage Strong/*JSGlobalObject; later body access or
      GC finalize reads it.
    • src/bun.js/api/bun/socket/Listener.zig (Windows) —
      this.listener = .{ .namedPipe = listen(...) catch return throw(...) }
      with errdefer this.deinit() registered. On listen failure errdefer
      runs deinit(), which hits bun.assert(this.listener == .none) — but
      the tag was already flipped to .namedPipe.
    • src/bun.js/api/JSBundler.zigresolve.value = .{ .err = Msg.fromJS(...) catch { ...; return; } }. On JS exception the heap
      *Resolve/*Load is left with .err tag and garbage Msg.

    Test plan

    • bun bd builds
    • bun run zig:check-all passes (Listener.zig change is
      Windows-only)
    • CI green

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

  • 2a3278 install: fix bunx @​anthropic-ai/claude-code + add bunx claude alias (#29428)

    What

    bunx @&ZeroWidthSpace;anthropic-ai/claude-code (2.1.113+) exits silently with code 1
    instead of running the CLI.

    Also adds bunx claude as a shorthand for bunx @&ZeroWidthSpace;anthropic-ai/claude-code, matching the existing bunx tsc
    typescript alias.

    Why

    Bun's native-binlink optimization (added for esbuild and
    @&ZeroWidthSpace;anthropic-ai/claude-code in postinstall_optimizer.zig) skips the
    package's postinstall and instead symlinks .bin/<name> directly into
    the matching platform-specific optional dependency. It reused the parent
    package's bin target path when looking inside the platform
    package, which only works if both lay the binary out the same way.

    • esbuild: parent bin: {esbuild: "bin/esbuild"}, @&ZeroWidthSpace;esbuild/linux-x64
      also ships bin/esbuild → works.
    • claude-code 2.1.113+: parent bin: {claude: "bin/claude.exe"} (a
      no-shebang placeholder the postinstall normally replaces), but
      @&ZeroWidthSpace;anthropic-ai/claude-code-linux-x64 ships the real binary at the
      package root as claude and has no bin field of its own.

    So:

    1. shouldIgnoreLifecycleScripts saw a matching platform
      optionalDependency and skipped postinstall.
    2. Bin.Linker tried
      node_modules/@&ZeroWidthSpace;anthropic-ai/claude-code-linux-x64/bin/claude.exe,
      didn't exist.
    3. Fell back to linking the parent's placeholder stub.
    4. bunx execve'd a shebang-less text file → ENOEXEC → silent exit 1.

    Fix

    • src/install/bin.zig: when Bin.Linker is redirected into a
      platform package (native binlink) and the root package's bin path
      doesn't exist there, also try the root package's bin name at the
      platform package root before abandoning the redirect. Both candidates
      come straight from the root package's bin entry (value and key
      respectively). If neither exists it still falls through to the existing
      retry-without-redirect path.
    • src/cli/bunx_command.zig: bunx claude
      @&ZeroWidthSpace;anthropic-ai/claude-code (the npm package named claude is an
      unrelated squatter with no bin). Also sets initial_bin_name = "claude" for the full package name so the fast-path lookup works.
      Skipped when --package is explicitly given.

    Verification

    $ bunx claude --version
    2.1.114 (Claude Code)
    
    $ readlink node_modules/.bin/claude     # after bun add
    ../@&ZeroWidthSpace;anthropic-ai/claude-code-linux-x64/claude     # was: ../@&ZeroWidthSpace;anthropic-ai/claude-code/bin/claude.exe
    

    Hermetic tests:

    • bun-install-native-binlink.test.ts: new fixture packages mirror the
      claude-code layout for both hoisted and isolated linkers; existing
      esbuild-style and pure-fallback tests still pass.
    • bunx.test.ts: mock-registry test confirms bunx claude requests
      @&ZeroWidthSpace;anthropic-ai/claude-code, not the claude squatter.

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

  • a36b4c uws/usockets: passphrase_cb overflow, chunked 1*HEXDIG, SSM, sweep iterator (#29427)
  • 649515 install: stream tarball extraction from HTTP into libarchive (#29404)

    What

    bun install now extracts package tarballs while they are still
    downloading, instead of buffering the full .tgz and then the full
    decompressed .tar in memory before handing both to libarchive.

    How

    Zig side (src/install/TarballStream.zig, NetworkTask.zig,
    runTasks.zig):

    • NetworkTask.forTarball enables the HTTP client's
      response_body_streaming signal (same mechanism fetch() uses).
    • NetworkTask.notify now runs once per body chunk on the HTTP thread.
      On the first 2xx chunk it commits to streaming: each chunk is pushed
      into a heap-held TarballStream and a drain task is scheduled on
      manager.thread_pool. Non-2xx / transport errors before the first chunk
      fall back to the existing buffered path so retry and error reporting are
      unchanged.
    • TarballStream owns the struct archive *, the open output bun.FD,
      and a want_header/want_data phase. The drain task calls
      archive_read_next_header / archive_read_data_block until libarchive
      reports ARCHIVE_RETRY (out of input), then returns — the worker is
      released. The next chunk reschedules the drain task; be

@michijs

michijs Bot commented Apr 20, 2026

Copy link
Copy Markdown
Contributor Author

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

Changelog:
Sourced from releases.
        ### v10.4.0-alpha.10## 10.4.0-alpha.10
  • Sidebar: Fix clear status button to only clear test statuses - #34478, thanks @​valentinpalkovic!

  • Telemetry: Centralize disable logic with module-level flag - #34485, thanks @​valentinpalkovic!

          ### v10.4.0-alpha.9## 10.4.0-alpha.9
    
  • A11y: Improve boolean control contrast in forced colors mode - #34204, thanks @​anchmelev!

  • Addon-Docs: Avoid rerendering static Source blocks - #34206, thanks @​anchmelev!

  • CLI: Streamline Node.js version detection code - #34440, thanks @​Sidnioulz!

  • Core: Improve startup performance by deferring change detection initialization - #34498, thanks @​ghengeveld!

  • Core: Normalize file paths in ChangeDetectionService and trace-changed for Windows support - #34445, thanks @​ghengeveld!

  • Fix: Add vite-plus vendored libraries version detection - #34509, thanks @​huang-julien!

  • Nextjs: Handle node builtin webpack imports - #34494, thanks @​JReinhold!

  • React: Add subcomponents to component manifests - #34428, thanks @​kasperpeulen!

  • Vue3: Clear stale args/globals when nextArgs is empty in updateArgs - #34409, thanks @​whdjh!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Storybook 10.3 contains hundreds of fixes and improvements including:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • UI: Make TagsFilter state persistent #33374

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

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

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

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

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

  • Core: Fix handling complex viewport sizes #33615

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

  • Manifest: Rename experimentalComponentsManifestcomponentsManifest, default to true #33974

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Commit history:
  • d226aa Merge pull request #34586 from storybookjs/yann/change-mock-events

    CLI: Change mock event detection

  • e7a952 Merge pull request #34530 from storybookjs/worktree-abundant-leaping-quokka

    Docs: Add change detection documentation

  • ec48db Merge pull request #34504 from storybookjs/story-new-status

    Core: Show "new" status on newly added individual stories

  • 526669 Merge pull request #34585 from storybookjs/fix-sigint-handling
  • 41b7af Merge branch 'next' into story-new-status
  • 86961d CLI: Change mock event detection
  • 1d5f0b Ensure process termination on signal when telemetry is disabled
  • c757d0 Add story with changeDetection disabled
  • 4c9a45 Removed data.changedFiles from change-detection status internals and updated tests accordingly.
  • e7e367 Fix type error
  • 833841 Docs: Improve change detection page clarity

    Clarify modified vs. affected status definitions, merge thin "Sidebar
    display" section into status indicators, and tighten callout text.

    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@​anthropic.com>

  • a85b63 Merge branch 'next' into worktree-abundant-leaping-quokka

    • next:
      Extend doc types to support section-level classification
      Build: Add docs-review skill
      Fix type error
      Address feedback
      Address feedback
      Format
      Address feedback
      Address feedback
      Remove skill and workflow
      Rewrite skill to address structural/strategic issues, not just formatting
      Add weekly workflow
      Replace fast-glob with tinyglobby
      Run skill
      Expand skill with more detailed voice and tone standards
      Run skill
      Expand link check to handle anchors
      Run skill
      Expand skill with more automated checks and writing standards
      Chore: Add scripts for docs-review skill
      Docs: Standardize formatting, add docs-review skill
    • 09fb0b Merge pull request #34451 from storybookjs/docs-skill

    Build: Add docs-review skill

  • b5caab Extend doc types to support section-level classification

    Pages still have one primary doc type, but well-structured secondary
    sections (e.g., a reference table at the end of a task page) are now
    recognized and evaluated by their own type's criteria instead of being
    flagged as an antipattern or triggering a split recommendation.

    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@​anthropic.com>

  • 561baa Build: Add docs-review skill
  • db1887 Merge pull request #34330 from storybookjs/docs-formatting

    Build: Apply docs formatting, add docs:check script

  • 34dd9c Fix type error
  • 752f00 Address feedback
  • 332d97 Address feedback
  • 755d98 Format
  • cb4f07 Address feedback
  • 9328fa Merge branch 'next' into docs-formatting

    • next: (139 commits)
      Bump version from "10.4.0-alpha.9" to "10.4.0-alpha.10" [skip ci]
      Write changelog for 10.4.0-alpha.10 [skip ci]
      fix: make clearStatuses and ensurePanel resilient to null providers
      chore: add ts-ignore
      Build: remove vite-plus as devDependency
      Build: Add FIX_ON_COMMIT env var to force autofix in pre-commit hook
      telemetry: auto-send error telemetry when payload factory errors
      Bump version from "10.4.0-alpha.8" to "10.4.0-alpha.9" [skip ci]
      Remove tests and stories depending on the ComponentFactoryResolver from core angular
      Write changelog for 10.4.0-alpha.9 [skip ci]
      fix formatting
      fix lint
      format
      chore: commit yarn.lock for @​chromatic-com/storybook@​5.1.2 and enable changeDetection in internal Storybook
      Update @​chromatic-com/storybook to ^5.1.2; add clearStatuses unit tests
      Isolate clearStatuses per-provider with try/catch
      Sidebar: route clearStatuses through per-provider clear() API
      Update code/core/src/telemetry/index.ts
      Update code/addons/vitest/src/preset.ts
      make subcomponentmanifest type pick from componentmanifest type
      ...

    • fd03be Merge branch 'next' into worktree-abundant-leaping-quokka

    • next: (53 commits)
      Bump version from "10.4.0-alpha.9" to "10.4.0-alpha.10" [skip ci]
      Write changelog for 10.4.0-alpha.10 [skip ci]
      fix: make clearStatuses and ensurePanel resilient to null providers
      chore: add ts-ignore
      Build: remove vite-plus as devDependency
      Build: Add FIX_ON_COMMIT env var to force autofix in pre-commit hook
      telemetry: auto-send error telemetry when payload factory errors
      Bump version from "10.4.0-alpha.8" to "10.4.0-alpha.9" [skip ci]
      Remove tests and stories depending on the ComponentFactoryResolver from core angular
      Write changelog for 10.4.0-alpha.9 [skip ci]
      fix formatting
      fix lint
      format
      chore: commit yarn.lock for @​chromatic-com/storybook@​5.1.2 and enable changeDetection in internal Storybook
      Update @​chromatic-com/storybook to ^5.1.2; add clearStatuses unit tests
      Isolate clearStatuses per-provider with try/catch
      Sidebar: route clearStatuses through per-provider clear() API
      Update code/core/src/telemetry/index.ts
      Update code/addons/vitest/src/preset.ts
      make subcomponentmanifest type pick from componentmanifest type
      ...

    • 6aa9e7 Add images
    • 573755 Bump version from "10.4.0-alpha.9" to "10.4.0-alpha.10" [skip ci]
    • 0edb4e Merge pull request #34539 from storybookjs/version-non-patch-from-10.4.0-alpha.9

    Release: Prerelease 10.4.0-alpha.10

  • 91583d Fix change-detection status rescans to avoid stale merges
  • 31f4f1 Avoid two instances of ChangeDetectionService
  • 380ec2 Add missing decorator
  • b87bea refactor: rename storyIndexBaselineService to indexBaselineService for consistency in ChangeDetectionService tests

@michijs

michijs Bot commented Apr 20, 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 commented Apr 20, 2026

Copy link
Copy Markdown
Contributor Author

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

Changelog:
Sourced from releases.
        ### v10.4.0-alpha.10## 10.4.0-alpha.10
  • Sidebar: Fix clear status button to only clear test statuses - #34478, thanks @​valentinpalkovic!

  • Telemetry: Centralize disable logic with module-level flag - #34485, thanks @​valentinpalkovic!

          ### v10.4.0-alpha.9## 10.4.0-alpha.9
    
  • A11y: Improve boolean control contrast in forced colors mode - #34204, thanks @​anchmelev!

  • Addon-Docs: Avoid rerendering static Source blocks - #34206, thanks @​anchmelev!

  • CLI: Streamline Node.js version detection code - #34440, thanks @​Sidnioulz!

  • Core: Improve startup performance by deferring change detection initialization - #34498, thanks @​ghengeveld!

  • Core: Normalize file paths in ChangeDetectionService and trace-changed for Windows support - #34445, thanks @​ghengeveld!

  • Fix: Add vite-plus vendored libraries version detection - #34509, thanks @​huang-julien!

  • Nextjs: Handle node builtin webpack imports - #34494, thanks @​JReinhold!

  • React: Add subcomponents to component manifests - #34428, thanks @​kasperpeulen!

  • Vue3: Clear stale args/globals when nextArgs is empty in updateArgs - #34409, thanks @​whdjh!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

          ### v10.4.0-alpha.5## 10.4.0-alpha.5
    
  • Addon-a11y: Clear status transition timer on unmount to prevent test flake - #34203, thanks @​mixelburg!

  • Builder-Vite: Use djb2 hash to prevent variable name collisions in builder-vite - #34274, thanks @​chida09!

  • CLI: Fix Next.js Vite automigration corrupting configs already using `@​storybook/nextjs-vite` - #34249, thanks @​nathanjessen!

  • Core: Add changeDetection feature flag - #34314, thanks @​valentinpalkovic!

  • Manager: URL-based tag filter state + filter-aware initial story selection - #34283, thanks @​valentinpalkovic!

  • React-Vite: Upgrade @​joshwooding/vite-plugin-react-docgen-typescript to 0.7.0 - #34335, thanks @​beeswhacks!

  • Refactor: Extract shared `PseudoStateGrid` component in pseudo-states stories - #34334, thanks @​copilot-swe-agent!

          ### v10.4.0-alpha.4## 10.4.0-alpha.4
    
  • Addon-Docs: Add Reset story button to re-render stories in docs - #34086, thanks @​6810779s!

  • Code: Fix inline code blocks inside links removing link affordance - #33903, thanks @​yatishgoel!

  • Controls: Add maxPresetColors option to ColorControl - #33998, thanks @​mixelburg!

  • Core: Fix WebSocket connection for StackBlitz/WebContainers - #34281, thanks @​ghengeveld!

  • Dependencies: Update `vite-plugin-storybook-nextjs` to ^3.2.4 - #34280, thanks @​k35o!

  • React: Add component metadata extraction via Volar-style LanguageService - #33914, thanks @​kasperpeulen!

  • StatusValue: Add 'status-value:<new|modified|affected>' - #34305, thanks @​valentinpalkovic!

  • UI: Ensure Controls panel can scroll horizontally for now - #34248, thanks @​Sidnioulz!

          ### v10.4.0-alpha.3## 10.4.0-alpha.3
    
  • Addon-Vitest: Streamline vite(st) config detection across init and postinstall - #34193, thanks @​valentinpalkovic!

  • Angular: Use Story ID for renderer IDs (including standalone stories) - #33982, thanks @​ValentinFunk!

  • Bug: Skip re-processing already transformed config files for CSF factories - #34273, thanks @​huang-julien!

  • CLI: Shorten CTA link messages - #34236, thanks @​shilman!

  • React Native Web: Fix vite8 support by bumping vite-plugin-rnw - #34231, thanks @​dannyhw!

          ### v10.3.3## 10.3.3
    
  • Addon-Vitest: Streamline vite(st) config detection across init and postinstall - #34193, thanks @​valentinpalkovic!

          ### v10.3.2## 10.3.2
    
  • CLI: Shorten CTA link messages - #34236, thanks @​shilman!

  • React Native Web: Fix vite8 support by bumping vite-plugin-rnw - #34231, thanks @​dannyhw!

          ### v10.4.0-alpha.2## 10.4.0-alpha.2
    
  • CLI: Use npm info to fetch versions in repro command - #34214, thanks @​yannbf!

  • Core: Prevent story-local viewport from persisting in URL - #34153, thanks @​ghengeveld!

  • Maintenance: Remove dead-code copy of wrap-getAbsolutePath-utils - #34168, thanks @​mixelburg!

  • Security: Makes sure `serialize-javascript` is at latest version - #34034, thanks @​50bbx!

          ### v10.4.0-alpha.1## 10.4.0-alpha.1
    
  • Docs: Ensure unique control id attributes across multiple Controls blocks - #34021, thanks @​TheSeydiCharyyev!

          ### v10.3.1## 10.3.1
    
  • CLI: Use npm info to fetch versions in repro command - #34214, thanks @​yannbf!

  • Core: Prevent story-local viewport from persisting in URL - #34153, thanks @​ghengeveld!

          ### v10.4.0-alpha.0## 10.4.0-alpha.0
    
    
    
    
          ### v10.3.0## 10.3.0
    

> Improved developer experience, AI-assisting tools, and broader ecosystem support

Storybook 10.3 contains hundreds of fixes and improvements including:

  • 🤖 Storybook MCP: Agentic component dev, docs, and test (Preview release for React)
  • ⚡ Vite 8 support
  • ▲ Next.js 16.2 support
  • 📝 ESLint 10 support
  • 〰️ Addon Pseudo-States: Tailwind v4 support
  • 🔧 Addon-Vitest: Simplified configuration - no more setup files required
  • ♿ Numerous accessibility improvements across the UI
List of all updates
  • A11y: Add ScrollArea prop focusable for when it has static children - #33876, thanks @​Sidnioulz!
  • A11y: Ensure popover dialogs have an ARIA label - #33500, thanks @​gayanMatch!
  • A11y: Make resize handles for addon panel and sidebar accessible #33980
  • A11y: Underline MDX links for WCAG SC 1.4.1 compliance - #33139, thanks @​NikhilChowdhury27!
  • Actions: Add expandLevel parameter to configure tree depth - #33977, thanks @​mixelburg!
  • Actions: Fix HandlerFunction type to support async callback props - #33864, thanks @​mixelburg!
  • Addon-Docs: Add React as optimizeDeps entry - #34176, thanks @​valentinpalkovic!
  • Addon-Docs: Add support for `sourceState: 'none'` to canvas block parameters - #33627, thanks @​quisido!
  • Addon-docs: Restore `docs.components` overrides for doc blocks #34111
  • Addon-Vitest: Add channel API to programmatically trigger test runs - #33206, thanks @​JReinhold!
  • Addon-Vitest: Handle additional vitest config export patterns in postinstall - #34106, thanks @​copilot-swe-agent!
  • Addon-Vitest: Make Playwright `--with-deps` platform-aware to avoid `sudo` prompt on Linux #34121
  • Addon-Vitest: Refactor Vitest setup to eliminate the need for a dedicated setup file - #34025, thanks @​valentinpalkovic!
  • Addon-Vitest: Support Vitest canaries - #33833, thanks @​valentinpalkovic!
  • Angular: Add moduleResolution: bundler to tsconfig - #34085, thanks @​valentinpalkovic!
  • Angular: only load webpack dependencies on demand - #34043, thanks @​sod!
  • Angular: Storybook fails with unknown option silent - #33736, thanks @​tanujbhaud!
  • Build: Update @​types/node - #34037, thanks @​valentinpalkovic!
  • Builder-Vite: Centralize Vite plugins for builder-vite and addon-vitest - #33819, thanks @​valentinpalkovic!
  • Builder-Vite: Fix cold-cache vitest failures for story paths containing glob special characters - #34044, thanks @​copilot-swe-agent!
  • Builder-Vite: Use preview annotations as entry points for optimizeDeps - #33875, thanks @​copilot-swe-agent!
  • CI: declare explicit permissions for stale and weekly cron workflows - #33902, thanks @​Rohan5commit!
  • CLI: Add vike CLI metadata - #34189, thanks @​yannbf!
  • CLI: Avoid hanging of postinstall during init - #34175, thanks @​valentinpalkovic!
  • CLI: Fix onboarding not opening - #33609, thanks @​ndelangen!
  • CLI: Show multiple favicons warning as debug message - #34069, thanks @​remino!
  • Cli: Use npm for registry URL in PNPMProxy to avoid workspace errors - #33571, thanks @​ia319!
  • Controls: Allow story argTypes to override control: false from meta - #33729, thanks @​jonathan-fulton!
  • Controls: Fix Object contrast issue and tidy up code - #33923, thanks @​Sidnioulz!
  • Core: Ensure telemetry is never triggered on initial load of checklist data - #33918, thanks @​ghengeveld!
  • Core: Fix event source URL based on refId when multiple iframes share the same origin #34105
  • Core: Fix false-positive CJS warning when 'exports' appears in strings or comments - #33572, thanks @​reeseo3o!
  • Core: Fix handling complex viewport sizes #33615
  • Core: Fix iframe reference for composed Storybook on a subpath #34100
  • Core: Fix typos: occured -> occurred, recieves -> receives - #33727, thanks @​jonathan-fulton!
  • Core: Handle BROWSER=none correctly and improve error messages - #33730, thanks @​jonathan-fulton!
  • Core: Ignore empty files when indexing - #33782, thanks @​JReinhold!
  • Core: Register CORS middleware before index.json route - #33728, thanks @​jonathan-fulton!
  • Core: Revert Pull Request #33420 from Maelryn/fix/copy-button-overlap - #33877, thanks @​Sidnioulz!
  • Core: Zoom tool refinements - Hide reset button when value is initial - #33635, thanks @​superLipbalm!
  • Docs: Edit JSON button is now accessible at 320x256 viewport (WCAG 2.1 Reflow test) - #33707, thanks @​TheSeydiCharyyev!
  • Docs: Make CSS ordering in DocsContainer more predictable #34015
  • ESLint-plugin: Disallow extra properties in eslint plugin rule options - #32056, thanks @​andreww2012!
  • ESLint: bail out config setup if eslint-plugin-storybook is already imported - #34089, thanks @​copilot-swe-agent!
  • HMR: Fix race conditions causing stale play functions to fire on re-rendered stories - #33930, thanks @​copilot-swe-agent!
  • Maintenance: Revert pull request #33930 HMR events - #34190, thanks @​yannbf!
  • Maintenance: Use std-env for AI agent detection in telemetry #34114
  • Manifest: Add docs entries to debugger - #33607, thanks @​JReinhold!
  • Manifest: Rename `experimentalComponentsManifest` → `componentsManifest`, default to `true` #33974
  • Manifests: Fix Attached MDX causing wrong component entries #34101
  • Next.js-Vite: Fix failing postcss mutation - #33879, thanks @​valentinpalkovic!
  • Next.js: Move image configuration from FrameworkOptions to parameters #32639, thanks @​y-hsgw!
  • Preact: Support inferring props from component types - #33828, thanks @​JoviDeCroock!
  • React Native Web: Fix inconsistent example stories - #33891, thanks @​danielalanbates!
  • React: Add react-docgen-typescript to component manifest - #33818, thanks @​kasperpeulen!
  • Revert "Toolbar: Remove extra toolbar divider when zoom controls not shown" - #34099, thanks @​valentinpalkovic!
  • Test: Fix clearing mocks in Vitest #34078
  • Test: Update @​testing-library/jest-dom - #33928, thanks @​valentinpalkovic!
  • Theming: Export interface declaration for `ThemesGlobals` - #33343, thanks @​icopp!
  • Toolbar: Remove extra toolbar divider when zoom controls not shown - #33731, thanks @​jonathan-fulton!
  • UI: Allow direct kb/mouse actions on zoom tool button - #33496, thanks @​Sidnioulz!
  • UI: Avoid large animation for reduced motion users - #33530, thanks @​Sidnioulz!
  • UI: Ensure Link without href is keyboard-reachable - #34163, thanks @​Sidnioulz!
  • UI: Fix `z-index` problem with `popover`s and `modal`s nesting - #33757, thanks @​ndelangen!
  • UI: Fix code/copy buttons overlap with content - #33889, thanks @​Sidnioulz!
  • UI: Fix Copy button overlapping code in portrait mode - #33420, thanks @​Maelryn!
  • UI: Fix modal text selection - #33967, thanks @​Sidnioulz!
  • UI: Fix tab navigation after closing addon panel - #33971, thanks @​copilot-swe-agent!
  • UI: Handle kb nav edge cases when preview and panel are hidden - #33588, thanks @​Sidnioulz!
  • UI: Hide addon panel Drag on pages without a panel - #34162, thanks @​Sidnioulz!
  • UI: Hide manifest tag for now - #34165, thanks @​Sidnioulz!
  • UI: Make disabled Buttons keyboard-focusable - #34166, thanks @​Sidnioulz!
  • UI: Make TagsFilter state persistent #33374
  • UI: Use correct selector for addon panel focus check - #34164, thanks @​Sidnioulz!
  • UI: Zoom faster when pressing shift - #34185, thanks @​Sidnioulz!
  • Viewport: Skip viewport validation before parameters load - #33794, thanks @​ia319!
  • Vite: Add mock entries to optimizeDeps.entries - #34167, thanks @​valentinpalkovic!
  • Vue3-Vite: Allow paths in docgen tsconfig option #32310, thanks @​Thomaash!
        ### v10.3.0-beta.3## 10.3.0-beta.3
  • Addon-Vitest: Handle additional vitest config export patterns in postinstall - #34106, thanks @​copilot-swe-agent!

  • CLI: Add vike CLI metadata - #34189, thanks @​yannbf!

  • Maintenance: Revert pull request #33930 HMR events - #34190, thanks @​yannbf!

  • UI: Ensure Link without href is keyboard-reachable - #34163, thanks @​Sidnioulz!

  • UI: Zoom faster when pressing shift - #34185, thanks @​Sidnioulz!

  • Vite: Add mock entries to optimizeDeps.entries - #34167, thanks @​valentinpalkovic!

          ### v10.3.0-beta.2## 10.3.0-beta.2
    
  • UI: Hide addon panel Drag on pages without a panel - #34162, thanks @​Sidnioulz!

  • UI: Hide manifest tag for now - #34165, thanks @​Sidnioulz!

  • UI: Make disabled Buttons keyboard-focusable - #34166, thanks @​Sidnioulz!

  • UI: Use correct selector for addon panel focus check - #34164, thanks @​Sidnioulz!

  • Vue: Make globals reactive in decorators - #34116, thanks @​Sidnioulz!

          ### v10.3.0-beta.1## 10.3.0-beta.1
    
  • Addon-Docs: Add React as optimizeDeps entry - #34176, thanks @​valentinpalkovic!

  • CLI: Avoid hanging of postinstall during init - #34175, thanks @​valentinpalkovic!

          ### v10.3.0-beta.0## 10.3.0-beta.0
    
  • Test: Fix clearing mocks in Vitest #34078

  • Core: Fix event source URL based on refId when multiple iframes share the same origin #34105

  • UI: Make TagsFilter state persistent #33374

  • A11y: Make resize handles for addon panel and sidebar accessible #33980

  • Maintenance: Use std-env for AI agent detection in telemetry #34114

  • Addon-Vitest: Make Playwright --with-deps platform-aware to avoid sudo prompt on Linux #34121

  • Addon-docs: Restore docs.components overrides for doc blocks #34111

  • Maintenance: Support vite-plugin-svelte7 which supports Vite 8 #34115

  • Core: Fix handling complex viewport sizes #33615

  • Core: Fix iframe reference for composed Storybook on a subpath #34100

  • Manifest: Rename experimentalComponentsManifestcomponentsManifest, default to true #33974

  • Manifests: Fix Attached MDX causing wrong component entries #34101

  • Vue3-Vite: Allow paths in docgen tsconfig option #32310, thanks @​Thomaash!

  • Next.js: Move image configuration from FrameworkOptions to parameters #32639, thanks @​y-hsgw!

  • Docs: Make CSS ordering in DocsContainer more predictable #34015

          ### v10.3.0-alpha.17## 10.3.0-alpha.17
    
  • Core: Correctly fallback to first detected vitest config file - #33865, thanks @​yannbf!

  • ESLint-plugin: Disallow extra properties in eslint plugin rule options - #32056, thanks @​andreww2012!

  • ESLint: bail out config setup if eslint-plugin-storybook is already imported - #34089, thanks @​copilot-swe-agent!

  • Revert "Toolbar: Remove extra toolbar divider when zoom controls not shown" - #34099, thanks @​valentinpalkovic!

          ### v10.2.19## 10.2.19
    
  • Maintenance: Support vite-plugin-svelte@​7 which supports Vite 8 - #34115, thanks @​valentinpalkovic!

  • Vite: Support Vite 8 - #33788, thanks @​valentinpalkovic!

          ### v10.2.18## 10.2.18
    
  • Core: Correctly fallback to first detected vitest config file - #33865, thanks @​yannbf!

  • Core: Fix error reporting in ManagerErrorBoundary - #33915, thanks @​ghengeveld!

          ### v10.3.0-alpha.16## 10.3.0-alpha.16
    
  • A11y: Underline MDX links for WCAG SC 1.4.1 compliance - #33139, thanks @​NikhilChowdhury27!

  • Angular: Add moduleResolution: bundler to tsconfig - #34085, thanks @​valentinpalkovic!

  • Angular: only load webpack dependencies on demand - #34043, thanks @​sod!

  • CLI: Show multiple favicons warning as debug message - #34069, thanks @​remino!

  • Core: Fix error reporting in ManagerErrorBoundary - #33915, thanks @​ghengeveld!

  • Vite: Support Vite 8 - #33788, thanks @​valentinpalkovic!

          ### v10.3.0-alpha.15## 10.3.0-alpha.15
    
  • Actions: Add expandLevel parameter to configure tree depth - #33977, thanks @​mixelburg!

  • Actions: Fix HandlerFunction type to support async callback props - #33864, thanks @​mixelburg!

  • Addon-Vitest: Refactor Vitest setup to eliminate the need for a dedicated setup file - #34025, thanks @​valentinpalkovic!

  • Build: Update @​types/node - #34037, thanks @​valentinpalkovic!

  • Builder-Vite: Fix cold-cache vitest failures for story paths containing glob special characters - #34044, thanks @​copilot-swe-agent!

  • CI:: declare explicit permissions for stale and weekly cron workflows - #33902, thanks @​Rohan5commit!

  • Core: Add vike metadata frameworks - #33965, thanks @​yannbf!

  • Core: Resolve builder preset path correctly in pnpm strict mode - #34032, thanks @​braedenfoster!

  • Core: Update default allowed hosts in host validation middleware - #34045, thanks @​ghengeveld!

  • Next.js: Add support for v16.2 - #34046, thanks @​valentinpalkovic!

  • UI: Fix code/copy buttons overlap with content - #33889, thanks @​Sidnioulz!

  • UI: Fix modal text selection - #33967, thanks @​Sidnioulz!

  • UI: Fix tab navigation after closing addon panel - #33971, thanks @​copilot-swe-agent!

  • UI: Handle kb nav edge cases when preview and panel are hidden - #33588, thanks @​Sidnioulz!

          ### v10.2.17## 10.2.17
    
  • Next.js: Add support for v16.2 - #34046, thanks @​valentinpalkovic!

          ### v10.2.16## 10.2.16
    
  • CSF-Factories: Fix ConfigFile parser false warning on `definePreview({...}).type()` export default - #33885, thanks @​copilot-swe-agent!

  • Core: Add host/origin validation to requests and websocket connections - #33835, thanks @​ghengeveld!

  • Core: Add vike metadata frameworks - #33965, thanks @​yannbf!

  • Core: Resolve builder preset path correctly in pnpm strict mode - #34032, thanks @​braedenfoster!

  • Core: Update default allowed hosts in host validation middleware - #34045, thanks @​ghengeveld!

Commit history:
  • d226aa Merge pull request #34586 from storybookjs/yann/change-mock-events

    CLI: Change mock event detection

  • e7a952 Merge pull request #34530 from storybookjs/worktree-abundant-leaping-quokka

    Docs: Add change detection documentation

  • ec48db Merge pull request #34504 from storybookjs/story-new-status

    Core: Show "new" status on newly added individual stories

  • 526669 Merge pull request #34585 from storybookjs/fix-sigint-handling
  • 41b7af Merge branch 'next' into story-new-status
  • 86961d CLI: Change mock event detection
  • 1d5f0b Ensure process termination on signal when telemetry is disabled
  • c757d0 Add story with changeDetection disabled
  • 4c9a45 Removed data.changedFiles from change-detection status internals and updated tests accordingly.
  • e7e367 Fix type error
  • 833841 Docs: Improve change detection page clarity

    Clarify modified vs. affected status definitions, merge thin "Sidebar
    display" section into status indicators, and tighten callout text.

    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@​anthropic.com>

  • a85b63 Merge branch 'next' into worktree-abundant-leaping-quokka

    • next:
      Extend doc types to support section-level classification
      Build: Add docs-review skill
      Fix type error
      Address feedback
      Address feedback
      Format
      Address feedback
      Address feedback
      Remove skill and workflow
      Rewrite skill to address structural/strategic issues, not just formatting
      Add weekly workflow
      Replace fast-glob with tinyglobby
      Run skill
      Expand skill with more detailed voice and tone standards
      Run skill
      Expand link check to handle anchors
      Run skill
      Expand skill with more automated checks and writing standards
      Chore: Add scripts for docs-review skill
      Docs: Standardize formatting, add docs-review skill
    • 09fb0b Merge pull request #34451 from storybookjs/docs-skill

    Build: Add docs-review skill

  • b5caab Extend doc types to support section-level classification

    Pages still have one primary doc type, but well-structured secondary
    sections (e.g., a reference table at the end of a task page) are now
    recognized and evaluated by their own type's criteria instead of being
    flagged as an antipattern or triggering a split recommendation.

    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@​anthropic.com>

  • 561baa Build: Add docs-review skill
  • db1887 Merge pull request #34330 from storybookjs/docs-formatting

    Build: Apply docs formatting, add docs:check script

  • 34dd9c Fix type error
  • 752f00 Address feedback
  • 332d97 Address feedback
  • 755d98 Format
  • cb4f07 Address feedback
  • 9328fa Merge branch 'next' into docs-formatting

    • next: (139 commits)
      Bump version from "10.4.0-alpha.9" to "10.4.0-alpha.10" [skip ci]
      Write changelog for 10.4.0-alpha.10 [skip ci]
      fix: make clearStatuses and ensurePanel resilient to null providers
      chore: add ts-ignore
      Build: remove vite-plus as devDependency
      Build: Add FIX_ON_COMMIT env var to force autofix in pre-commit hook
      telemetry: auto-send error telemetry when payload factory errors
      Bump version from "10.4.0-alpha.8" to "10.4.0-alpha.9" [skip ci]
      Remove tests and stories depending on the ComponentFactoryResolver from core angular
      Write changelog for 10.4.0-alpha.9 [skip ci]
      fix formatting
      fix lint
      format
      chore: commit yarn.lock for @​chromatic-com/storybook@​5.1.2 and enable changeDetection in internal Storybook
      Update @​chromatic-com/storybook to ^5.1.2; add clearStatuses unit tests
      Isolate clearStatuses per-provider with try/catch
      Sidebar: route clearStatuses through per-provider clear() API
      Update code/core/src/telemetry/index.ts
      Update code/addons/vitest/src/preset.ts
      make subcomponentmanifest type pick from componentmanifest type
      ...

    • fd03be Merge branch 'next' into worktree-abundant-leaping-quokka

    • next: (53 commits)
      Bump version from "10.4.0-alpha.9" to "10.4.0-alpha.10" [skip ci]
      Write changelog for 10.4.0-alpha.10 [skip ci]
      fix: make clearStatuses and ensurePanel resilient to null providers
      chore: add ts-ignore
      Build: remove vite-plus as devDependency
      Build: Add FIX_ON_COMMIT env var to force autofix in pre-commit hook
      telemetry: auto-send error telemetry when payload factory errors
      Bump version from "10.4.0-alpha.8" to "10.4.0-alpha.9" [skip ci]
      Remove tests and stories depending on the ComponentFactoryResolver from core angular
      Write changelog for 10.4.0-alpha.9 [skip ci]
      fix formatting
      fix lint
      format
      chore: commit yarn.lock for @​chromatic-com/storybook@​5.1.2 and enable changeDetection in internal Storybook
      Update @​chromatic-com/storybook to ^5.1.2; add clearStatuses unit tests
      Isolate clearStatuses per-provider with try/catch
      Sidebar: route clearStatuses through per-provider clear() API
      Update code/core/src/telemetry/index.ts
      Update code/addons/vitest/src/preset.ts
      make subcomponentmanifest type pick from componentmanifest type
      ...

    • 6aa9e7 Add images
    • 573755 Bump version from "10.4.0-alpha.9" to "10.4.0-alpha.10" [skip ci]
    • 0edb4e Merge pull request #34539 from storybookjs/version-non-patch-from-10.4.0-alpha.9

    Release: Prerelease 10.4.0-alpha.10

  • 91583d Fix change-detection status rescans to avoid stale merges
  • 31f4f1 Avoid two instances of ChangeDetectionService
  • 380ec2 Add missing decorator
  • b87bea refactor: rename storyIndexBaselineService to indexBaselineService for consistency in ChangeDetectionService tests

@michijs michijs Bot closed this Apr 27, 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