Skip to content

[master] Michijs Dependabot changes#115

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

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

Conversation

@michijs

michijs Bot commented May 11, 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.30-beta.5## What's Changed

Full Changelog: https://github.com/michijs/dev-server/compare/0.8.28...0.8.30-beta.5

        ### 0.8.30-beta.4## What's Changed

Full Changelog: https://github.com/michijs/dev-server/compare/0.8.28...0.8.30-beta.4

        ### 0.8.30-beta.3## What's Changed

Full Changelog: https://github.com/michijs/dev-server/compare/0.8.28...0.8.30-beta.3

        ### 0.8.30-beta.2## What's Changed

Full Changelog: https://github.com/michijs/dev-server/compare/0.8.28...0.8.30-beta.2

        ### 0.8.30-beta.1## What's Changed

Full Changelog: https://github.com/michijs/dev-server/compare/0.8.28...0.8.30-beta.1

        ### 0.8.30-beta.0## What's Changed

Full Changelog: https://github.com/michijs/dev-server/compare/0.8.28...0.8.30-beta.0

        ### 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
Commit history:

@michijs

michijs Bot commented May 11, 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 May 11, 2026

Copy link
Copy Markdown
Contributor Author

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

Changelog:
Sourced from releases.
        ### v10.4.0-alpha.18## 10.4.0-alpha.18
  • Agentic Setup: Allow failed stories to persist - #34717, thanks @​Sidnioulz!

  • CLI: Add react-vite to tanstack-react automigration - #34718, thanks @​huang-julien!

  • Change-Detection: Set GIT_OPTIONAL_LOCKS=0 to avoid blocking commits - #34726, thanks @​valentinpalkovic!

  • Core: Barrel-aware named import resolution for change detection - #34675, thanks @​valentinpalkovic!

  • Fix ArgsTable borders not visible in Windows High Contrast Mode - #34264, thanks @​TheSeydiCharyyev!

  • Sidebar: Soften change-detection signals + add Review CTA - #34701, thanks @​valentinpalkovic!

  • Tanstack: Optimize tanstack react-store - #34731, thanks @​huang-julien!

  • Telemetry: Refactor init tracking - #34629, thanks @​Programer1804!

  • UI: Add Share section to onboarding checklist and redesign share tool - #34413, thanks @​valentinpalkovic!

          ### v10.4.0-alpha.17## 10.4.0-alpha.17
    
  • Agentic Setup: Keep sample content if users want onboarding - #34704, thanks @​Sidnioulz!

  • MDX: Replace `@​storybook/docs-mdx` with inline implementation - #34611, thanks @​copilot-swe-agent!

  • Maintenance: Enhance ghost stories internal tests - #34707, thanks @​yannbf!

  • ReactNative: Add Metro config AST codemod for init - #34660, thanks @​ndelangen!

  • ReactNative: New init setup - #34665, thanks @​ndelangen!

  • Tanstack: Add `@​storybook/tanstack-react` package - #34403, thanks @​huang-julien!

  • UI: Fix showing and hiding copy prompt in the correct scenarios - #34706, thanks @​yannbf!

          ### v10.4.0-alpha.16## 10.4.0-alpha.16
    
  • Automigration: Move RN on-device addons to `deviceAddons` - #34659, thanks @​ndelangen!

  • CLI: Improve self-healing scoring observability - #34699, thanks @​yannbf!

  • Prompt: Run vitest fewer times, improve play functions - #34651, thanks @​yannbf!

  • ReactNative: Add true entrypoint generation - #34663, thanks @​ndelangen!

          ### v10.4.0-alpha.15## 10.4.0-alpha.15
    
  • Vitest: Fix agent detection breaking runs - #34681, thanks @​JReinhold!

          ### v10.4.0-alpha.14## 10.4.0-alpha.14
    
  • CLI: Fix agentic check - #34678, thanks @​yannbf!

          ### v10.4.0-alpha.13## 10.4.0-alpha.13
    
  • Addon-Vitest: Use Vitest's provide-API for injecting values - #34518, thanks @​JReinhold!

  • Telemetry: Fix delayed init events - #34670, thanks @​JReinhold!

          ### v10.4.0-alpha.12## 10.4.0-alpha.12
    
  • CLI: Introduce Agentic Setup workflow - #34297, thanks @​yannbf!

          ### v10.4.0-alpha.11## 10.4.0-alpha.11
    
  • CLI: Change mock event detection - #34586, thanks @​yannbf!

  • Core: Ensure process termination on SIGINT when telemetry is disabled - #34585, thanks @​ghengeveld!

  • Core: Show "new" status on newly added individual stories - #34504, thanks @​ghengeveld!

  • React: Add optional React type peers to packages that publish React-based declarations - #34641, thanks @​copilot-swe-agent!

  • Telemetry: Add sidebar filter telemetry for change detection - #34533, thanks @​valentinpalkovic!

  • UI: Fix global background + color styles affecting stories - #34071, thanks @​Axadali!

          ### v10.3.6## 10.3.6
    
  • ESLint: Update deprecated @​storybook/test reference to storybook/test - #34430, thanks @​venkat22022202!

  • React: Add optional React type peers to packages that publish React-based declarations - #34641, thanks @​copilot-swe-agent!

  • UI: Fix global background + color styles affecting stories - #34071, thanks @​Axadali!

          ### 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

Commit history:
  • b2167d Merge pull request #34725 from storybookjs/docs-publish-via-share-menu

    Docs: Add documentation for the publishing via the share menu

  • c7472c Format
  • ea0c18 Merge branch 'next' into docs-publish-via-share-menu

    • next: (100 commits)
      Address feedback
      Remove mention of ai setup command
      Address feedback
      Cli: set ai prompt to yes if yes flag for react-vite to tanstack migration
      Update React Native entry point tests to use dynamic app name and include LiteUI component
      Add '@​storybook/react-native-ui-lite' to React Native generator and template
      Update code/lib/create-storybook/templates/react-native/index.js
      Update AppRegistry component name in React Native template
      Remove extensive prompt option and related references from ai setup
      Fix: keep original onAllStatusChange timing behavior
      Update tests
      Remove duplicate index/refs update in onAllStatusChange handler
      Address CodeRabbit review feedback
      fix(manager-api): await recompute filter calls to refresh story list
      Ensure runId for ai-setup events is always at the root
      Apply suggestion from @​valentinpalkovic
      docs: add link
      chore: move tinyclip to devdeps
      Docs: Fixes for change detection
      Rework run deduplication logic for final telemetry
      ...
    • 0874b0 Merge pull request #34732 from storybookjs/docs-change-detection-fixes

    Docs: Fixes for change detection

  • 62dac1 Address feedback
  • 982a94 Merge branch 'next' into docs-change-detection-fixes

    • next: (49 commits)
      Remove mention of ai setup command
      Address feedback
      Cli: set ai prompt to yes if yes flag for react-vite to tanstack migration
      Update React Native entry point tests to use dynamic app name and include LiteUI component
      Add '@​storybook/react-native-ui-lite' to React Native generator and template
      Update code/lib/create-storybook/templates/react-native/index.js
      Update AppRegistry component name in React Native template
      Remove extensive prompt option and related references from ai setup
      Fix: keep original onAllStatusChange timing behavior
      Update tests
      Remove duplicate index/refs update in onAllStatusChange handler
      Address CodeRabbit review feedback
      fix(manager-api): await recompute filter calls to refresh story list
      Ensure runId for ai-setup events is always at the root
      docs: add link
      chore: move tinyclip to devdeps
      Rework run deduplication logic for final telemetry
      Tanstack: optimize react-store
      Docs tweaks
      feat: always log the prompt
      ...
    • c79db7 Merge pull request #34648 from storybookjs/docs-updates

    Docs: Improve agentic setup docs

  • 0ed2f8 Remove mention of ai setup command
  • 9e4521 Merge branch 'next' into docs-updates

    • next: (108 commits)
      Cli: set ai prompt to yes if yes flag for react-vite to tanstack migration
      Update React Native entry point tests to use dynamic app name and include LiteUI component
      Add '@​storybook/react-native-ui-lite' to React Native generator and template
      Update code/lib/create-storybook/templates/react-native/index.js
      Update AppRegistry component name in React Native template
      Remove extensive prompt option and related references from ai setup
      Fix: keep original onAllStatusChange timing behavior
      Update tests
      Remove duplicate index/refs update in onAllStatusChange handler
      Address CodeRabbit review feedback
      fix(manager-api): await recompute filter calls to refresh story list
      Ensure runId for ai-setup events is always at the root
      docs: add link
      chore: move tinyclip to devdeps
      Rework run deduplication logic for final telemetry
      Tanstack: optimize react-store
      Docs tweaks
      feat: always log the prompt
      Update JSDoc
      Fix ai checklist util mocks
      ...
    • 3d4924 Address feedback
    • 245043 Merge pull request #34743 from storybookjs/fix/tanstack_automigrate_ai

    Cli: Set ai prompt to yes if yes flag for react-vite to tanstack migration

  • 2a75bc Merge pull request #34742 from storybookjs/norbert/dynamic-appname-rn

    ReactNative: AppRegistry component name in template

  • 23a2c4 Cli: set ai prompt to yes if yes flag for react-vite to tanstack migration
  • 95d2f7 Merge branch 'next' into norbert/dynamic-appname-rn
  • 60561d Update React Native entry point tests to use dynamic app name and include LiteUI component

    Modified the tests for the React Native entry point generator to replace the hardcoded 'main' string with the app name imported from app.json. Additionally, integrated the LiteUI component from '@​storybook/react-native-ui-lite' as the CustomUIComponent, enhancing the Storybook setup for React Native applications.

  • debadc Merge branch 'norbert/dynamic-appname-rn' of github.com:storybookjs/storybook into norbert/dynamic-appname-rn
  • 308fa0 Add '@​storybook/react-native-ui-lite' to React Native generator and template

    Included the '@​storybook/react-native-ui-lite' package in the React Native generator and updated the template to use LiteUI as the CustomUIComponent. This enhances the Storybook setup for React Native applications by integrating the new UI component.

  • 801237 Update code/lib/create-storybook/templates/react-native/index.js

    Co-authored-by: Daniel Williams <dannyhyunsoowilliams@​gmail.com>

  • a835ed Merge pull request #34740 from storybookjs/yann/undo-extensive-flag

    CLI: Remove extensive prompt option

  • 3d0a41 Update AppRegistry component name in React Native template

    Replaced the hardcoded 'main' string with the app name imported from app.json for better flexibility and consistency in the AppRegistry registration. This change allows for easier customization of the component name in the Storybook setup.

  • 173a76 Merge pull request #34737 from storybookjs/claude/slack-session-qE8mz

    Sidebar: Fix clear filter button not refreshing story list

  • 179179 Remove extensive prompt option and related references from ai setup
  • 433de1 Merge pull request #34730 from storybookjs/sidnioulz/two-prompt-setup
  • ee6713 Fix: keep original onAllStatusChange timing behavior

    The internal onAllStatusChange callback needs to maintain its original timing
    behavior where recomputeStatusFilter() is not awaited. This is because the
    subsequent setIndex() call relies on specific timing to properly update the
    filtered index when statuses change.

    The user-facing filter API methods (setAllTagFilters, resetStatusFilters, etc.)
    still properly await the recompute calls, which fixes the original bug where
    the clear filter button didn't refresh the story list.

    https://claude.ai/code/session_013bx4ZM9Ugco86JAdvvfKBt

  • 708483 Update tests
  • f3dee0 Remove duplicate index/refs update in onAllStatusChange handler

    Since experimental_setFilter (called by recomputeStatusFilter) already
    re-applies the index and updates refs, the additional setIndex and refs
    loop after await recomputeStatusFilter() was redundant.

    https://claude.ai/code/session_013bx4ZM9Ugco86JAdvvfKBt

  • aa020c Address CodeRabbit review feedback

    • Fix missed call site: await recomputeStatusFilter() in onAllStatusChange handler
    • Update SubAPI interface: return types changed from void to Promise for all
      8 filter methods to properly indicate they are awaitable

    https://claude.ai/code/session_013bx4ZM9Ugco86JAdvvfKBt

  • 38a009 fix(manager-api): await recompute filter calls to refresh story list

    The clear filter button in the sidebar was not refreshing the story list
    because the recompute functions were not being awaited. This caused a race
    condition where the API methods would return before the filtered index was
    updated.

    The fix ensures all filter API methods (setAllTagFilters, resetTagFilters,
    addTagFilters, removeTagFilters, resetStatusFilters, setAllStatusFilters,
    addStatusFilters, removeStatusFilters) properly await the recompute calls,
    which in turn return the promise from experimental_setFilter.

    https://claude.ai/code/session_013bx4ZM9Ugco86JAdvvfKBt

  • 228542 Merge pull request #34718 from storybookjs/feat/tanstack_automigrate

    CLI: Add react-vite to tanstack-react automigration

  • 035fd1 Ensure runId for ai-setup events is always at the root

@michijs

michijs Bot commented May 11, 2026

Copy link
Copy Markdown
Contributor Author

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

Changelog:
Sourced from releases.
        ### v10.4.0-alpha.18## 10.4.0-alpha.18
  • Agentic Setup: Allow failed stories to persist - #34717, thanks @​Sidnioulz!

  • CLI: Add react-vite to tanstack-react automigration - #34718, thanks @​huang-julien!

  • Change-Detection: Set GIT_OPTIONAL_LOCKS=0 to avoid blocking commits - #34726, thanks @​valentinpalkovic!

  • Core: Barrel-aware named import resolution for change detection - #34675, thanks @​valentinpalkovic!

  • Fix ArgsTable borders not visible in Windows High Contrast Mode - #34264, thanks @​TheSeydiCharyyev!

  • Sidebar: Soften change-detection signals + add Review CTA - #34701, thanks @​valentinpalkovic!

  • Tanstack: Optimize tanstack react-store - #34731, thanks @​huang-julien!

  • Telemetry: Refactor init tracking - #34629, thanks @​Programer1804!

  • UI: Add Share section to onboarding checklist and redesign share tool - #34413, thanks @​valentinpalkovic!

          ### v10.4.0-alpha.17## 10.4.0-alpha.17
    
  • Agentic Setup: Keep sample content if users want onboarding - #34704, thanks @​Sidnioulz!

  • MDX: Replace `@​storybook/docs-mdx` with inline implementation - #34611, thanks @​copilot-swe-agent!

  • Maintenance: Enhance ghost stories internal tests - #34707, thanks @​yannbf!

  • ReactNative: Add Metro config AST codemod for init - #34660, thanks @​ndelangen!

  • ReactNative: New init setup - #34665, thanks @​ndelangen!

  • Tanstack: Add `@​storybook/tanstack-react` package - #34403, thanks @​huang-julien!

  • UI: Fix showing and hiding copy prompt in the correct scenarios - #34706, thanks @​yannbf!

          ### v10.4.0-alpha.16## 10.4.0-alpha.16
    
  • Automigration: Move RN on-device addons to `deviceAddons` - #34659, thanks @​ndelangen!

  • CLI: Improve self-healing scoring observability - #34699, thanks @​yannbf!

  • Prompt: Run vitest fewer times, improve play functions - #34651, thanks @​yannbf!

  • ReactNative: Add true entrypoint generation - #34663, thanks @​ndelangen!

          ### v10.4.0-alpha.15## 10.4.0-alpha.15
    
  • Vitest: Fix agent detection breaking runs - #34681, thanks @​JReinhold!

          ### v10.4.0-alpha.14## 10.4.0-alpha.14
    
  • CLI: Fix agentic check - #34678, thanks @​yannbf!

          ### v10.4.0-alpha.13## 10.4.0-alpha.13
    
  • Addon-Vitest: Use Vitest's provide-API for injecting values - #34518, thanks @​JReinhold!

  • Telemetry: Fix delayed init events - #34670, thanks @​JReinhold!

          ### v10.4.0-alpha.12## 10.4.0-alpha.12
    
  • CLI: Introduce Agentic Setup workflow - #34297, thanks @​yannbf!

          ### v10.4.0-alpha.11## 10.4.0-alpha.11
    
  • CLI: Change mock event detection - #34586, thanks @​yannbf!

  • Core: Ensure process termination on SIGINT when telemetry is disabled - #34585, thanks @​ghengeveld!

  • Core: Show "new" status on newly added individual stories - #34504, thanks @​ghengeveld!

  • React: Add optional React type peers to packages that publish React-based declarations - #34641, thanks @​copilot-swe-agent!

  • Telemetry: Add sidebar filter telemetry for change detection - #34533, thanks @​valentinpalkovic!

  • UI: Fix global background + color styles affecting stories - #34071, thanks @​Axadali!

          ### v10.3.6## 10.3.6
    
  • ESLint: Update deprecated @​storybook/test reference to storybook/test - #34430, thanks @​venkat22022202!

  • React: Add optional React type peers to packages that publish React-based declarations - #34641, thanks @​copilot-swe-agent!

  • UI: Fix global background + color styles affecting stories - #34071, thanks @​Axadali!

          ### 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

Commit history:
  • b2167d Merge pull request #34725 from storybookjs/docs-publish-via-share-menu

    Docs: Add documentation for the publishing via the share menu

  • c7472c Format
  • ea0c18 Merge branch 'next' into docs-publish-via-share-menu

    • next: (100 commits)
      Address feedback
      Remove mention of ai setup command
      Address feedback
      Cli: set ai prompt to yes if yes flag for react-vite to tanstack migration
      Update React Native entry point tests to use dynamic app name and include LiteUI component
      Add '@​storybook/react-native-ui-lite' to React Native generator and template
      Update code/lib/create-storybook/templates/react-native/index.js
      Update AppRegistry component name in React Native template
      Remove extensive prompt option and related references from ai setup
      Fix: keep original onAllStatusChange timing behavior
      Update tests
      Remove duplicate index/refs update in onAllStatusChange handler
      Address CodeRabbit review feedback
      fix(manager-api): await recompute filter calls to refresh story list
      Ensure runId for ai-setup events is always at the root
      Apply suggestion from @​valentinpalkovic
      docs: add link
      chore: move tinyclip to devdeps
      Docs: Fixes for change detection
      Rework run deduplication logic for final telemetry
      ...
    • 0874b0 Merge pull request #34732 from storybookjs/docs-change-detection-fixes

    Docs: Fixes for change detection

  • 62dac1 Address feedback
  • 982a94 Merge branch 'next' into docs-change-detection-fixes

    • next: (49 commits)
      Remove mention of ai setup command
      Address feedback
      Cli: set ai prompt to yes if yes flag for react-vite to tanstack migration
      Update React Native entry point tests to use dynamic app name and include LiteUI component
      Add '@​storybook/react-native-ui-lite' to React Native generator and template
      Update code/lib/create-storybook/templates/react-native/index.js
      Update AppRegistry component name in React Native template
      Remove extensive prompt option and related references from ai setup
      Fix: keep original onAllStatusChange timing behavior
      Update tests
      Remove duplicate index/refs update in onAllStatusChange handler
      Address CodeRabbit review feedback
      fix(manager-api): await recompute filter calls to refresh story list
      Ensure runId for ai-setup events is always at the root
      docs: add link
      chore: move tinyclip to devdeps
      Rework run deduplication logic for final telemetry
      Tanstack: optimize react-store
      Docs tweaks
      feat: always log the prompt
      ...
    • c79db7 Merge pull request #34648 from storybookjs/docs-updates

    Docs: Improve agentic setup docs

  • 0ed2f8 Remove mention of ai setup command
  • 9e4521 Merge branch 'next' into docs-updates

    • next: (108 commits)
      Cli: set ai prompt to yes if yes flag for react-vite to tanstack migration
      Update React Native entry point tests to use dynamic app name and include LiteUI component
      Add '@​storybook/react-native-ui-lite' to React Native generator and template
      Update code/lib/create-storybook/templates/react-native/index.js
      Update AppRegistry component name in React Native template
      Remove extensive prompt option and related references from ai setup
      Fix: keep original onAllStatusChange timing behavior
      Update tests
      Remove duplicate index/refs update in onAllStatusChange handler
      Address CodeRabbit review feedback
      fix(manager-api): await recompute filter calls to refresh story list
      Ensure runId for ai-setup events is always at the root
      docs: add link
      chore: move tinyclip to devdeps
      Rework run deduplication logic for final telemetry
      Tanstack: optimize react-store
      Docs tweaks
      feat: always log the prompt
      Update JSDoc
      Fix ai checklist util mocks
      ...
    • 3d4924 Address feedback
    • 245043 Merge pull request #34743 from storybookjs/fix/tanstack_automigrate_ai

    Cli: Set ai prompt to yes if yes flag for react-vite to tanstack migration

  • 2a75bc Merge pull request #34742 from storybookjs/norbert/dynamic-appname-rn

    ReactNative: AppRegistry component name in template

  • 23a2c4 Cli: set ai prompt to yes if yes flag for react-vite to tanstack migration
  • 95d2f7 Merge branch 'next' into norbert/dynamic-appname-rn
  • 60561d Update React Native entry point tests to use dynamic app name and include LiteUI component

    Modified the tests for the React Native entry point generator to replace the hardcoded 'main' string with the app name imported from app.json. Additionally, integrated the LiteUI component from '@​storybook/react-native-ui-lite' as the CustomUIComponent, enhancing the Storybook setup for React Native applications.

  • debadc Merge branch 'norbert/dynamic-appname-rn' of github.com:storybookjs/storybook into norbert/dynamic-appname-rn
  • 308fa0 Add '@​storybook/react-native-ui-lite' to React Native generator and template

    Included the '@​storybook/react-native-ui-lite' package in the React Native generator and updated the template to use LiteUI as the CustomUIComponent. This enhances the Storybook setup for React Native applications by integrating the new UI component.

  • 801237 Update code/lib/create-storybook/templates/react-native/index.js

    Co-authored-by: Daniel Williams <dannyhyunsoowilliams@​gmail.com>

  • a835ed Merge pull request #34740 from storybookjs/yann/undo-extensive-flag

    CLI: Remove extensive prompt option

  • 3d0a41 Update AppRegistry component name in React Native template

    Replaced the hardcoded 'main' string with the app name imported from app.json for better flexibility and consistency in the AppRegistry registration. This change allows for easier customization of the component name in the Storybook setup.

  • 173a76 Merge pull request #34737 from storybookjs/claude/slack-session-qE8mz

    Sidebar: Fix clear filter button not refreshing story list

  • 179179 Remove extensive prompt option and related references from ai setup
  • 433de1 Merge pull request #34730 from storybookjs/sidnioulz/two-prompt-setup
  • ee6713 Fix: keep original onAllStatusChange timing behavior

    The internal onAllStatusChange callback needs to maintain its original timing
    behavior where recomputeStatusFilter() is not awaited. This is because the
    subsequent setIndex() call relies on specific timing to properly update the
    filtered index when statuses change.

    The user-facing filter API methods (setAllTagFilters, resetStatusFilters, etc.)
    still properly await the recompute calls, which fixes the original bug where
    the clear filter button didn't refresh the story list.

    https://claude.ai/code/session_013bx4ZM9Ugco86JAdvvfKBt

  • 708483 Update tests
  • f3dee0 Remove duplicate index/refs update in onAllStatusChange handler

    Since experimental_setFilter (called by recomputeStatusFilter) already
    re-applies the index and updates refs, the additional setIndex and refs
    loop after await recomputeStatusFilter() was redundant.

    https://claude.ai/code/session_013bx4ZM9Ugco86JAdvvfKBt

  • aa020c Address CodeRabbit review feedback

    • Fix missed call site: await recomputeStatusFilter() in onAllStatusChange handler
    • Update SubAPI interface: return types changed from void to Promise for all
      8 filter methods to properly indicate they are awaitable

    https://claude.ai/code/session_013bx4ZM9Ugco86JAdvvfKBt

  • 38a009 fix(manager-api): await recompute filter calls to refresh story list

    The clear filter button in the sidebar was not refreshing the story list
    because the recompute functions were not being awaited. This caused a race
    condition where the API methods would return before the filtered index was
    updated.

    The fix ensures all filter API methods (setAllTagFilters, resetTagFilters,
    addTagFilters, removeTagFilters, resetStatusFilters, setAllStatusFilters,
    addStatusFilters, removeStatusFilters) properly await the recompute calls,
    which in turn return the promise from experimental_setFilter.

    https://claude.ai/code/session_013bx4ZM9Ugco86JAdvvfKBt

  • 228542 Merge pull request #34718 from storybookjs/feat/tanstack_automigrate

    CLI: Add react-vite to tanstack-react automigration

  • 035fd1 Ensure runId for ai-setup events is always at the root

@michijs

michijs Bot commented May 11, 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:
  • f350b5 Redirect Claude Code to read AGENTS.md (#63446)
  • af087e docs: improve Math.sign JSDoc grammar and clarity (#63433)
  • 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>

@michijs

michijs Bot commented May 11, 2026

Copy link
Copy Markdown
Contributor Author

Bump storybook from 9.1.3 to 10.3.6

Changelog:
Sourced from releases.
        ### v10.4.0-alpha.18## 10.4.0-alpha.18
  • Agentic Setup: Allow failed stories to persist - #34717, thanks @​Sidnioulz!

  • CLI: Add react-vite to tanstack-react automigration - #34718, thanks @​huang-julien!

  • Change-Detection: Set GIT_OPTIONAL_LOCKS=0 to avoid blocking commits - #34726, thanks @​valentinpalkovic!

  • Core: Barrel-aware named import resolution for change detection - #34675, thanks @​valentinpalkovic!

  • Fix ArgsTable borders not visible in Windows High Contrast Mode - #34264, thanks @​TheSeydiCharyyev!

  • Sidebar: Soften change-detection signals + add Review CTA - #34701, thanks @​valentinpalkovic!

  • Tanstack: Optimize tanstack react-store - #34731, thanks @​huang-julien!

  • Telemetry: Refactor init tracking - #34629, thanks @​Programer1804!

  • UI: Add Share section to onboarding checklist and redesign share tool - #34413, thanks @​valentinpalkovic!

          ### v10.4.0-alpha.17## 10.4.0-alpha.17
    
  • Agentic Setup: Keep sample content if users want onboarding - #34704, thanks @​Sidnioulz!

  • MDX: Replace `@​storybook/docs-mdx` with inline implementation - #34611, thanks @​copilot-swe-agent!

  • Maintenance: Enhance ghost stories internal tests - #34707, thanks @​yannbf!

  • ReactNative: Add Metro config AST codemod for init - #34660, thanks @​ndelangen!

  • ReactNative: New init setup - #34665, thanks @​ndelangen!

  • Tanstack: Add `@​storybook/tanstack-react` package - #34403, thanks @​huang-julien!

  • UI: Fix showing and hiding copy prompt in the correct scenarios - #34706, thanks @​yannbf!

          ### v10.4.0-alpha.16## 10.4.0-alpha.16
    
  • Automigration: Move RN on-device addons to `deviceAddons` - #34659, thanks @​ndelangen!

  • CLI: Improve self-healing scoring observability - #34699, thanks @​yannbf!

  • Prompt: Run vitest fewer times, improve play functions - #34651, thanks @​yannbf!

  • ReactNative: Add true entrypoint generation - #34663, thanks @​ndelangen!

          ### v10.4.0-alpha.15## 10.4.0-alpha.15
    
  • Vitest: Fix agent detection breaking runs - #34681, thanks @​JReinhold!

          ### v10.4.0-alpha.14## 10.4.0-alpha.14
    
  • CLI: Fix agentic check - #34678, thanks @​yannbf!

          ### v10.4.0-alpha.13## 10.4.0-alpha.13
    
  • Addon-Vitest: Use Vitest's provide-API for injecting values - #34518, thanks @​JReinhold!

  • Telemetry: Fix delayed init events - #34670, thanks @​JReinhold!

          ### v10.4.0-alpha.12## 10.4.0-alpha.12
    
  • CLI: Introduce Agentic Setup workflow - #34297, thanks @​yannbf!

          ### v10.4.0-alpha.11## 10.4.0-alpha.11
    
  • CLI: Change mock event detection - #34586, thanks @​yannbf!

  • Core: Ensure process termination on SIGINT when telemetry is disabled - #34585, thanks @​ghengeveld!

  • Core: Show "new" status on newly added individual stories - #34504, thanks @​ghengeveld!

  • React: Add optional React type peers to packages that publish React-based declarations - #34641, thanks @​copilot-swe-agent!

  • Telemetry: Add sidebar filter telemetry for change detection - #34533, thanks @​valentinpalkovic!

  • UI: Fix global background + color styles affecting stories - #34071, thanks @​Axadali!

          ### v10.3.6## 10.3.6
    
  • ESLint: Update deprecated @​storybook/test reference to storybook/test - #34430, thanks @​venkat22022202!

  • React: Add optional React type peers to packages that publish React-based declarations - #34641, thanks @​copilot-swe-agent!

  • UI: Fix global background + color styles affecting stories - #34071, thanks @​Axadali!

          ### 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

Commit history:
  • b2167d Merge pull request #34725 from storybookjs/docs-publish-via-share-menu

    Docs: Add documentation for the publishing via the share menu

  • c7472c Format
  • ea0c18 Merge branch 'next' into docs-publish-via-share-menu

    • next: (100 commits)
      Address feedback
      Remove mention of ai setup command
      Address feedback
      Cli: set ai prompt to yes if yes flag for react-vite to tanstack migration
      Update React Native entry point tests to use dynamic app name and include LiteUI component
      Add '@​storybook/react-native-ui-lite' to React Native generator and template
      Update code/lib/create-storybook/templates/react-native/index.js
      Update AppRegistry component name in React Native template
      Remove extensive prompt option and related references from ai setup
      Fix: keep original onAllStatusChange timing behavior
      Update tests
      Remove duplicate index/refs update in onAllStatusChange handler
      Address CodeRabbit review feedback
      fix(manager-api): await recompute filter calls to refresh story list
      Ensure runId for ai-setup events is always at the root
      Apply suggestion from @​valentinpalkovic
      docs: add link
      chore: move tinyclip to devdeps
      Docs: Fixes for change detection
      Rework run deduplication logic for final telemetry
      ...
    • 0874b0 Merge pull request #34732 from storybookjs/docs-change-detection-fixes

    Docs: Fixes for change detection

  • 62dac1 Address feedback
  • 982a94 Merge branch 'next' into docs-change-detection-fixes

    • next: (49 commits)
      Remove mention of ai setup command
      Address feedback
      Cli: set ai prompt to yes if yes flag for react-vite to tanstack migration
      Update React Native entry point tests to use dynamic app name and include LiteUI component
      Add '@​storybook/react-native-ui-lite' to React Native generator and template
      Update code/lib/create-storybook/templates/react-native/index.js
      Update AppRegistry component name in React Native template
      Remove extensive prompt option and related references from ai setup
      Fix: keep original onAllStatusChange timing behavior
      Update tests
      Remove duplicate index/refs update in onAllStatusChange handler
      Address CodeRabbit review feedback
      fix(manager-api): await recompute filter calls to refresh story list
      Ensure runId for ai-setup events is always at the root
      docs: add link
      chore: move tinyclip to devdeps
      Rework run deduplication logic for final telemetry
      Tanstack: optimize react-store
      Docs tweaks
      feat: always log the prompt
      ...
    • c79db7 Merge pull request #34648 from storybookjs/docs-updates

    Docs: Improve agentic setup docs

  • 0ed2f8 Remove mention of ai setup command
  • 9e4521 Merge branch 'next' into docs-updates

    • next: (108 commits)
      Cli: set ai prompt to yes if yes flag for react-vite to tanstack migration
      Update React Native entry point tests to use dynamic app name and include LiteUI component
      Add '@​storybook/react-native-ui-lite' to React Native generator and template
      Update code/lib/create-storybook/templates/react-native/index.js
      Update AppRegistry component name in React Native template
      Remove extensive prompt option and related references from ai setup
      Fix: keep original onAllStatusChange timing behavior
      Update tests
      Remove duplicate index/refs update in onAllStatusChange handler
      Address CodeRabbit review feedback
      fix(manager-api): await recompute filter calls to refresh story list
      Ensure runId for ai-setup events is always at the root
      docs: add link
      chore: move tinyclip to devdeps
      Rework run deduplication logic for final telemetry
      Tanstack: optimize react-store
      Docs tweaks
      feat: always log the prompt
      Update JSDoc
      Fix ai checklist util mocks
      ...
    • 3d4924 Address feedback
    • 245043 Merge pull request #34743 from storybookjs/fix/tanstack_automigrate_ai

    Cli: Set ai prompt to yes if yes flag for react-vite to tanstack migration

  • 2a75bc Merge pull request #34742 from storybookjs/norbert/dynamic-appname-rn

    ReactNative: AppRegistry component name in template

  • 23a2c4 Cli: set ai prompt to yes if yes flag for react-vite to tanstack migration
  • 95d2f7 Merge branch 'next' into norbert/dynamic-appname-rn
  • 60561d Update React Native entry point tests to use dynamic app name and include LiteUI component

    Modified the tests for the React Native entry point generator to replace the hardcoded 'main' string with the app name imported from app.json. Additionally, integrated the LiteUI component from '@​storybook/react-native-ui-lite' as the CustomUIComponent, enhancing the Storybook setup for React Native applications.

  • debadc Merge branch 'norbert/dynamic-appname-rn' of github.com:storybookjs/storybook into norbert/dynamic-appname-rn
  • 308fa0 Add '@​storybook/react-native-ui-lite' to React Native generator and template

    Included the '@​storybook/react-native-ui-lite' package in the React Native generator and updated the template to use LiteUI as the CustomUIComponent. This enhances the Storybook setup for React Native applications by integrating the new UI component.

  • 801237 Update code/lib/create-storybook/templates/react-native/index.js

    Co-authored-by: Daniel Williams <dannyhyunsoowilliams@​gmail.com>

  • a835ed Merge pull request #34740 from storybookjs/yann/undo-extensive-flag

    CLI: Remove extensive prompt option

  • 3d0a41 Update AppRegistry component name in React Native template

    Replaced the hardcoded 'main' string with the app name imported from app.json for better flexibility and consistency in the AppRegistry registration. This change allows for easier customization of the component name in the Storybook setup.

  • 173a76 Merge pull request #34737 from storybookjs/claude/slack-session-qE8mz

    Sidebar: Fix clear filter button not refreshing story list

  • 179179 Remove extensive prompt option and related references from ai setup
  • 433de1 Merge pull request #34730 from storybookjs/sidnioulz/two-prompt-setup
  • ee6713 Fix: keep original onAllStatusChange timing behavior

    The internal onAllStatusChange callback needs to maintain its original timing
    behavior where recomputeStatusFilter() is not awaited. This is because the
    subsequent setIndex() call relies on specific timing to properly update the
    filtered index when statuses change.

    The user-facing filter API methods (setAllTagFilters, resetStatusFilters, etc.)
    still properly await the recompute calls, which fixes the original bug where
    the clear filter button didn't refresh the story list.

    https://claude.ai/code/session_013bx4ZM9Ugco86JAdvvfKBt

  • 708483 Update tests
  • f3dee0 Remove duplicate index/refs update in onAllStatusChange handler

    Since experimental_setFilter (called by recomputeStatusFilter) already
    re-applies the index and updates refs, the additional setIndex and refs
    loop after await recomputeStatusFilter() was redundant.

    https://claude.ai/code/session_013bx4ZM9Ugco86JAdvvfKBt

  • aa020c Address CodeRabbit review feedback

    • Fix missed call site: await recomputeStatusFilter() in onAllStatusChange handler
    • Update SubAPI interface: return types changed from void to Promise for all
      8 filter methods to properly indicate they are awaitable

    https://claude.ai/code/session_013bx4ZM9Ugco86JAdvvfKBt

  • 38a009 fix(manager-api): await recompute filter calls to refresh story list

    The clear filter button in the sidebar was not refreshing the story list
    because the recompute functions were not being awaited. This caused a race
    condition where the API methods would return before the filtered index was
    updated.

    The fix ensures all filter API methods (setAllTagFilters, resetTagFilters,
    addTagFilters, removeTagFilters, resetStatusFilters, setAllStatusFilters,
    addStatusFilters, removeStatusFilters) properly await the recompute calls,
    which in turn return the promise from experimental_setFilter.

    https://claude.ai/code/session_013bx4ZM9Ugco86JAdvvfKBt

  • 228542 Merge pull request #34718 from storybookjs/feat/tanstack_automigrate

    CLI: Add react-vite to tanstack-react automigration

  • 035fd1 Ensure runId for ai-setup events is always at the root

@michijs

michijs Bot commented May 11, 2026

Copy link
Copy Markdown
Contributor Author
Changelog:
Sourced from releases.
        ### v10.4.0-alpha.18## 10.4.0-alpha.18
  • Agentic Setup: Allow failed stories to persist - #34717, thanks @​Sidnioulz!

  • CLI: Add react-vite to tanstack-react automigration - #34718, thanks @​huang-julien!

  • Change-Detection: Set GIT_OPTIONAL_LOCKS=0 to avoid blocking commits - #34726, thanks @​valentinpalkovic!

  • Core: Barrel-aware named import resolution for change detection - #34675, thanks @​valentinpalkovic!

  • Fix ArgsTable borders not visible in Windows High Contrast Mode - #34264, thanks @​TheSeydiCharyyev!

  • Sidebar: Soften change-detection signals + add Review CTA - #34701, thanks @​valentinpalkovic!

  • Tanstack: Optimize tanstack react-store - #34731, thanks @​huang-julien!

  • Telemetry: Refactor init tracking - #34629, thanks @​Programer1804!

  • UI: Add Share section to onboarding checklist and redesign share tool - #34413, thanks @​valentinpalkovic!

          ### v10.4.0-alpha.17## 10.4.0-alpha.17
    
  • Agentic Setup: Keep sample content if users want onboarding - #34704, thanks @​Sidnioulz!

  • MDX: Replace `@​storybook/docs-mdx` with inline implementation - #34611, thanks @​copilot-swe-agent!

  • Maintenance: Enhance ghost stories internal tests - #34707, thanks @​yannbf!

  • ReactNative: Add Metro config AST codemod for init - #34660, thanks @​ndelangen!

  • ReactNative: New init setup - #34665, thanks @​ndelangen!

  • Tanstack: Add `@​storybook/tanstack-react` package - #34403, thanks @​huang-julien!

  • UI: Fix showing and hiding copy prompt in the correct scenarios - #34706, thanks @​yannbf!

          ### v10.4.0-alpha.16## 10.4.0-alpha.16
    
  • Automigration: Move RN on-device addons to `deviceAddons` - #34659, thanks @​ndelangen!

  • CLI: Improve self-healing scoring observability - #34699, thanks @​yannbf!

  • Prompt: Run vitest fewer times, improve play functions - #34651, thanks @​yannbf!

  • ReactNative: Add true entrypoint generation - #34663, thanks @​ndelangen!

          ### v10.4.0-alpha.15## 10.4.0-alpha.15
    
  • Vitest: Fix agent detection breaking runs - #34681, thanks @​JReinhold!

          ### v10.4.0-alpha.14## 10.4.0-alpha.14
    
  • CLI: Fix agentic check - #34678, thanks @​yannbf!

          ### v10.4.0-alpha.13## 10.4.0-alpha.13
    
  • Addon-Vitest: Use Vitest's provide-API for injecting values - #34518, thanks @​JReinhold!

  • Telemetry: Fix delayed init events - #34670, thanks @​JReinhold!

          ### v10.4.0-alpha.12## 10.4.0-alpha.12
    
  • CLI: Introduce Agentic Setup workflow - #34297, thanks @​yannbf!

          ### v10.4.0-alpha.11## 10.4.0-alpha.11
    
  • CLI: Change mock event detection - #34586, thanks @​yannbf!

  • Core: Ensure process termination on SIGINT when telemetry is disabled - #34585, thanks @​ghengeveld!

  • Core: Show "new" status on newly added individual stories - #34504, thanks @​ghengeveld!

  • React: Add optional React type peers to packages that publish React-based declarations - #34641, thanks @​copilot-swe-agent!

  • Telemetry: Add sidebar filter telemetry for change detection - #34533, thanks @​valentinpalkovic!

  • UI: Fix global background + color styles affecting stories - #34071, thanks @​Axadali!

          ### v10.3.6## 10.3.6
    
  • ESLint: Update deprecated @​storybook/test reference to storybook/test - #34430, thanks @​venkat22022202!

  • React: Add optional React type peers to packages that publish React-based declarations - #34641, thanks @​copilot-swe-agent!

  • UI: Fix global background + color styles affecting stories - #34071, thanks @​Axadali!

          ### 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

Commit history:
  • b2167d Merge pull request #34725 from storybookjs/docs-publish-via-share-menu

    Docs: Add documentation for the publishing via the share menu

  • c7472c Format
  • ea0c18 Merge branch 'next' into docs-publish-via-share-menu

    • next: (100 commits)
      Address feedback
      Remove mention of ai setup command
      Address feedback
      Cli: set ai prompt to yes if yes flag for react-vite to tanstack migration
      Update React Native entry point tests to use dynamic app name and include LiteUI component
      Add '@​storybook/react-native-ui-lite' to React Native generator and template
      Update code/lib/create-storybook/templates/react-native/index.js
      Update AppRegistry component name in React Native template
      Remove extensive prompt option and related references from ai setup
      Fix: keep original onAllStatusChange timing behavior
      Update tests
      Remove duplicate index/refs update in onAllStatusChange handler
      Address CodeRabbit review feedback
      fix(manager-api): await recompute filter calls to refresh story list
      Ensure runId for ai-setup events is always at the root
      Apply suggestion from @​valentinpalkovic
      docs: add link
      chore: move tinyclip to devdeps
      Docs: Fixes for change detection
      Rework run deduplication logic for final telemetry
      ...
    • 0874b0 Merge pull request #34732 from storybookjs/docs-change-detection-fixes

    Docs: Fixes for change detection

  • 62dac1 Address feedback
  • 982a94 Merge branch 'next' into docs-change-detection-fixes

    • next: (49 commits)
      Remove mention of ai setup command
      Address feedback
      Cli: set ai prompt to yes if yes flag for react-vite to tanstack migration
      Update React Native entry point tests to use dynamic app name and include LiteUI component
      Add '@​storybook/react-native-ui-lite' to React Native generator and template
      Update code/lib/create-storybook/templates/react-native/index.js
      Update AppRegistry component name in React Native template
      Remove extensive prompt option and related references from ai setup
      Fix: keep original onAllStatusChange timing behavior
      Update tests
      Remove duplicate index/refs update in onAllStatusChange handler
      Address CodeRabbit review feedback
      fix(manager-api): await recompute filter calls to refresh story list
      Ensure runId for ai-setup events is always at the root
      docs: add link
      chore: move tinyclip to devdeps
      Rework run deduplication logic for final telemetry
      Tanstack: optimize react-store
      Docs tweaks
      feat: always log the prompt
      ...
    • c79db7 Merge pull request #34648 from storybookjs/docs-updates

    Docs: Improve agentic setup docs

  • 0ed2f8 Remove mention of ai setup command
  • 9e4521 Merge branch 'next' into docs-updates

    • next: (108 commits)
      Cli: set ai prompt to yes if yes flag for react-vite to tanstack migration
      Update React Native entry point tests to use dynamic app name and include LiteUI component
      Add '@​storybook/react-native-ui-lite' to React Native generator and template
      Update code/lib/create-storybook/templates/react-native/index.js
      Update AppRegistry component name in React Native template
      Remove extensive prompt option and related references from ai setup
      Fix: keep original onAllStatusChange timing behavior
      Update tests
      Remove duplicate index/refs update in onAllStatusChange handler
      Address CodeRabbit review feedback
      fix(manager-api): await recompute filter calls to refresh story list
      Ensure runId for ai-setup events is always at the root
      docs: add link
      chore: move tinyclip to devdeps
      Rework run deduplication logic for final telemetry
      Tanstack: optimize react-store
      Docs tweaks
      feat: always log the prompt
      Update JSDoc
      Fix ai checklist util mocks
      ...
    • 3d4924 Address feedback
    • 245043 Merge pull request #34743 from storybookjs/fix/tanstack_automigrate_ai

    Cli: Set ai prompt to yes if yes flag for react-vite to tanstack migration

  • 2a75bc Merge pull request #34742 from storybookjs/norbert/dynamic-appname-rn

    ReactNative: AppRegistry component name in template

  • 23a2c4 Cli: set ai prompt to yes if yes flag for react-vite to tanstack migration
  • 95d2f7 Merge branch 'next' into norbert/dynamic-appname-rn
  • 60561d Update React Native entry point tests to use dynamic app name and include LiteUI component

    Modified the tests for the React Native entry point generator to replace the hardcoded 'main' string with the app name imported from app.json. Additionally, integrated the LiteUI component from '@​storybook/react-native-ui-lite' as the CustomUIComponent, enhancing the Storybook setup for React Native applications.

  • debadc Merge branch 'norbert/dynamic-appname-rn' of github.com:storybookjs/storybook into norbert/dynamic-appname-rn
  • 308fa0 Add '@​storybook/react-native-ui-lite' to React Native generator and template

    Included the '@​storybook/react-native-ui-lite' package in the React Native generator and updated the template to use LiteUI as the CustomUIComponent. This enhances the Storybook setup for React Native applications by integrating the new UI component.

  • 801237 Update code/lib/create-storybook/templates/react-native/index.js

    Co-authored-by: Daniel Williams <dannyhyunsoowilliams@​gmail.com>

  • a835ed Merge pull request #34740 from storybookjs/yann/undo-extensive-flag

    CLI: Remove extensive prompt option

  • 3d0a41 Update AppRegistry component name in React Native template

    Replaced the hardcoded 'main' string with the app name imported from app.json for better flexibility and consistency in the AppRegistry registration. This change allows for easier customization of the component name in the Storybook setup.

  • 173a76 Merge pull request #34737 from storybookjs/claude/slack-session-qE8mz

    Sidebar: Fix clear filter button not refreshing story list

  • 179179 Remove extensive prompt option and related references from ai setup
  • 433de1 Merge pull request #34730 from storybookjs/sidnioulz/two-prompt-setup
  • ee6713 Fix: keep original onAllStatusChange timing behavior

    The internal onAllStatusChange callback needs to maintain its original timing
    behavior where recomputeStatusFilter() is not awaited. This is because the
    subsequent setIndex() call relies on specific timing to properly update the
    filtered index when statuses change.

    The user-facing filter API methods (setAllTagFilters, resetStatusFilters, etc.)
    still properly await the recompute calls, which fixes the original bug where
    the clear filter button didn't refresh the story list.

    https://claude.ai/code/session_013bx4ZM9Ugco86JAdvvfKBt

  • 708483 Update tests
  • f3dee0 Remove duplicate index/refs update in onAllStatusChange handler

    Since experimental_setFilter (called by recomputeStatusFilter) already
    re-applies the index and updates refs, the additional setIndex and refs
    loop after await recomputeStatusFilter() was redundant.

    https://claude.ai/code/session_013bx4ZM9Ugco86JAdvvfKBt

  • aa020c Address CodeRabbit review feedback

    • Fix missed call site: await recomputeStatusFilter() in onAllStatusChange handler
    • Update SubAPI interface: return types changed from void to Promise for all
      8 filter methods to properly indicate they are awaitable

    https://claude.ai/code/session_013bx4ZM9Ugco86JAdvvfKBt

  • 38a009 fix(manager-api): await recompute filter calls to refresh story list

    The clear filter button in the sidebar was not refreshing the story list
    because the recompute functions were not being awaited. This caused a race
    condition where the API methods would return before the filtered index was
    updated.

    The fix ensures all filter API methods (setAllTagFilters, resetTagFilters,
    addTagFilters, removeTagFilters, resetStatusFilters, setAllStatusFilters,
    addStatusFilters, removeStatusFilters) properly await the recompute calls,
    which in turn return the promise from experimental_setFilter.

    https://claude.ai/code/session_013bx4ZM9Ugco86JAdvvfKBt

  • 228542 Merge pull request #34718 from storybookjs/feat/tanstack_automigrate

    CLI: Add react-vite to tanstack-react automigration

  • 035fd1 Ensure runId for ai-setup events is always at the root

@michijs

michijs Bot commented May 11, 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 May 11, 2026

Copy link
Copy Markdown
Contributor Author

Bump bun from 1.2.21 to 1.3.13

Changelog:
Sourced from releases.
        ### bun-v1.3.13To install Bun v1.3.13
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.13:

bun upgrade

Read Bun v1.3.13'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.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:
  • 03ebdf chore: prevent auto-update actions from running on forks (#30464)

    What does this PR do?

    Makes these actions only run on upstream Bun. I don't need PRs like
    these
    to be
    opened since I only keep my repo up for sending PRs back here, and Bun
    will merge those updates itself.

    How did you verify your code works?

  • fe735f http: arm idle timer on open so a stalled TLS handshake times out (#30376)

    Fixes the bun install hang reported in #30325 (latest comment — still
    reproducing on 1.3.13).

    Repro

    Point bun install at an HTTPS registry that accepts TCP but never
    answers the TLS ClientHello:

    // raw TCP server that swallows the ClientHello and never replies
    net.createServer(s => s.on("data", () => {})).listen(0);
    [install]
    registry = "https://127.0.0.1:<port>/"

    bun install connects, the socket goes ESTABLISHED, and the process
    blocks in epoll_wait forever with no timer armed. This is the state
    the reporter captured in their Gitea/Kubernetes CI: three ESTABLISHED
    sockets to the npm CDN, zero rx/tx, 14+ minutes and counting.

    Root cause

    HTTPClient.onOpen() starts the TLS handshake but does not arm the
    socket's idle timer — the first setTimeout(socket, 5) call is in
    onWritable(), which only runs after the handshake completes.
    Freshly-connected sockets inherit long_timeout = 255 (disabled) from
    the connecting socket, so a stall anywhere between TCP-connect and
    handshake-done has no timer at all. The bun install main loop then
    waits forever on pendingTaskCount() == 0 because the NetworkTask
    callback never fires.

    The earlier fixes in #29611 / #29649 covered a different hang (4xx/5xx
    tarball responses not releasing the task slot); they didn't touch this
    path.

    Fix

    • Arm the idle timer in onOpen() so it covers the TLS handshake.
    • Wire the short-tick onTimeout handler in HTTPContext.Handler
      alongside the existing onLongTimeoutsocket.setTimeout(seconds)
      picks whichever timer fits the duration, so both must dispatch.
    • Read the idle-timeout duration from a new
      BUN_CONFIG_HTTP_IDLE_TIMEOUT env var (seconds). Default is 300 — the
      previous hard-coded 5 minutes — so nothing changes for unconfigured
      environments except that the handshake phase is now covered. 0
      disables the timer (same as disable_timeout = true).
    • Route the experimental h2 client session's rearmTimeout through the
      same value for consistency.

    Verification

    New test test/cli/install/bun-install-stalled-tls.test.ts starts a raw
    TCP server that accepts connections and never replies, points bun install at it over https://, sets BUN_CONFIG_HTTP_IDLE_TIMEOUT=3 /
    BUN_CONFIG_HTTP_RETRY_COUNT=0, and asserts the install fails with a
    timeout error.

    # without this change
    (fail) bun install times out when the registry accepts TCP but never completes the TLS handshake [60004.48ms]
      ^ this test timed out after 60000ms.
    
    # with this change
    (pass) bun install times out when the registry accepts TCP but never completes the TLS handshake [4483.87ms]
    

    fetch-http2-client.test.ts (58 tests) and bun-install-retry.test.ts
    still pass.

    Fixes #30325


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

  • 6d0d86 Bun.serve: validate websocket.perMessageDeflate is a boolean or object (#30398)

    What does this PR do?

    Fixes a debug assertion crash when websocket.perMessageDeflate is set
    to a primitive value that isn't a boolean (e.g. a number, string,
    bigint, or symbol).

    Bun.serve({
      port: 0,
      fetch: () => new Response(),
      websocket: {
        message() {},
        perMessageDeflate: 1073741824,
      },
    });

    Previously this fell through the undefined / boolean / null checks
    in WebSocketServerContext.onCreate and called
    JSValue.getTruthy("compress") on the primitive, hitting
    bun.debugAssert(target.isObject()) in JSValue.get.

    Now it throws TypeError: websocket expects perMessageDeflate to be a boolean or an object.

    How did you verify your code works?

    Added validation tests in
    test/js/bun/websocket/websocket-server.test.ts covering invalid
    primitives (number, string, bigint, symbol) and valid values (true,
    false, null, undefined, {}, { compress, decompress }).

    Found by Fuzzilli. Fingerprint: 3fbce3302b421eec

  • 3457c1 Bun.mmap: throw on non-object options instead of asserting (#30404)

    What does this PR do?

    Bun.mmap(path, 256) (or any non-object second argument) hit a debug
    assertion in JSValue.get() because the options value was passed
    straight to getBooleanLoose without first checking that it is an
    object.

    Now non-object, non-nullish values throw ERR_INVALID_ARG_TYPE, and
    undefined/null are treated the same as omitting the options
    argument.

    panic(main thread): reached unreachable code
    bun.debugAssert
    jsc.JSValue.JSValue.get                 src/jsc/JSValue.zig:1534
    jsc.JSValue.JSValue.getBooleanLoose     src/jsc/JSValue.zig:1867
    runtime.api.BunObject.mmapFile          src/runtime/api/BunObject.zig:1219
    

    How did you verify your code works?

    Added a test to test/js/bun/util/mmap.test.js covering
    number/string/boolean (throw) and undefined/null (no throw).

    Found by Fuzzilli (fingerprint b1832bde6df73226).


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

  • 1600ac tls: load intermediates and trusted-people from Windows system stores (#30408)

    What does this PR do?

    Brings --use-system-ca / NODE_USE_SYSTEM_CA on Windows to parity
    with Node.js's ReadWindowsCertificates
    (src/crypto/crypto_context.cc).

    Before this change, root_certs_windows.cpp only enumerated the ROOT
    store for CURRENT_USER and LOCAL_MACHINE (2 CertOpenStore calls).
    Node opens 13: ROOT, CA (intermediates), and TrustedPeople across
    LOCAL_MACHINE, CURRENT_USER, and the group-policy / enterprise
    variants — and filters by EKU.

    The most user-visible consequence of the old behavior: when a server is
    misconfigured and sends only the leaf cert without its intermediates
    (very common on intranets, the primary use case for --use-system-ca),
    Node can still build the chain from the intermediates Windows keeps in
    the CA store; Bun would fail with unable to get local issuer certificate.

    Changes, all mirroring Node:

    before after
    Store names ROOT ROOT, CA, TrustedPeople
    Locations LOCAL_MACHINE, CURRENT_USER + GROUP_POLICY,
    ENTERPRISE variants
    CERT_STORE_OPEN_EXISTING_FLAG no yes (don't create a missing
    store)
    EKU server-auth filter (CertGetEnhancedKeyUsage) no yes (skip
    certs restricted to e.g. code-signing only)

    IsCertTrustedForServerAuth and GatherCertsForLocation are direct
    ports of the equivalents in Node's crypto_context.cc, adapted to Bun's
    raw-DER-blob layering (this TU is kept OpenSSL-free to avoid
    wincrypt.h / BoringSSL macro collisions; root_certs.cpp does the
    d2i_X509 conversion).

    Related issues (context, not fixes)

    The issue-finder bot flagged #17108, #28612, and #9365. None of them are
    closed by this PR because it only changes behavior when
    --use-system-ca / NODE_USE_SYSTEM_CA=1 is set:

    • #17108 asked for the base feature, which #22441 already shipped — this
      PR refines which Windows stores it reads.
    • #28612 reports unable to get local issuer certificate with no
      --use-system-ca set (default bundled store, public CAs, TTY-startup
      race) — different layer.
    • #9365 reproduces on WSL/Linux too and predates --use-system-ca
      likely a server omitting intermediates with no system-store fallback at
      all.
    • d5945c Add bun.sys.sigaction with bionic-correct layout for Android (#30389)

    Problem

    std.c.Sigaction / std.c.sigset_t for .linux assume the glibc/musl
    layout: { handler, mask[128B], flags, restorer }. bionic LP64 is { int sa_flags; sa_handler; sigset_t sa_mask; sa_restorer } where
    sigset_t is a single unsigned long.

    When Bun calls std.posix.sigaction() on Android, bionic reads
    sa_handler from offset 8 — which is Zig's mask[0]:

    • Every handler installed with mask = sigemptyset() (SIGPIPE/SIGXFSZ
      in main, the crash handler, SIGINT in
      repl/filter_run/multi_run/Coordinator) silently becomes SIG_DFL.
      Broken-pipe kills the process, no crash trace on SEGV, Ctrl+C isn't
      caught.
    • WaiterThread.reloadHandlers() sets mask[0] = 1<<16 (SIGCHLD), so
      bionic installs the handler 0x10000. When SIGCHLD fires, the kernel
      jumps there → SEGV_MAPERR, rip=0x10000, rdi=17. Reproduces 100% on
      a full Android emulator (not under qemu-user).

    Fix

    Add bun.sys.{Sigaction, sigset_t, sigemptyset, sigaddset, sigaction}
    in src/sys/sys.zig:

    • Android: an extern struct matching bionic bits/signal_types.h
      (__LP64__) and an @&ZeroWidthSpace;extern to libc sigaction that takes it.
      sigset_t = c_ulong.
    • Everywhere else: transparent aliases of std.posix.*, so nothing
      changes.

    Replace all nine callsites (main.zig, crash_handler.zig,
    process.zig, repl.zig, filter_run.zig, multi_run.zig,
    Coordinator.zig, Global.zig).

    A comptime tripwire fires if @&ZeroWidthSpace;sizeOf(std.c.Sigaction) ever shrinks to
    the bionic 32 bytes, so the workaround can be dropped once the Zig
    stdlib bug is fixed upstream.

    Also adds zig build check-android[-debug], gated on
    -Dandroid_ndk_sysroot like check-freebsd, so the Android-only struct
    gets compile-checked.

    Verification

    $ zig build check-android-debug -Dandroid_ndk_sysroot=…/sysroot
    check-android-debug success
      compile obj bun-debug Debug x86_64-linux-android  success
      compile obj bun-debug Debug aarch64-linux-android success
    

    bun run zig:check-all still passes all 16 targets. Host smoke tests
    (spawn/exit-code, spawn/spawn-signal, spawn/spawn-kill-signal,
    plus BUN_FEATURE_FLAG_FORCE_WAITER_THREAD=1 to hit the modified
    SIGCHLD path) pass.

    No runtime test is included because the misbehaviour only surfaces on a
    real Android kernel, which CI does not run.


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

  • 9ed6e8 publish: send readme and readmeFilename to the registry (#30257)

    What

    bun publish packed README.md into the published tarball but never
    populated the version-level readme / readmeFilename fields in the
    JSON body sent to the npm registry. Packages published with Bun
    therefore show an empty readme via the registry API (e.g. npm view <pkg> readme readmeFilename), even though the tarball contains one —
    exactly what was reported in #30255.

    How

    Find the first file whose name matches README or README.*
    (case-insensitive); if found, read it and include readme (contents) +
    readmeFilename in the version metadata. A non-empty readme already
    present in package.json wins.

    Two publish flows:

    • Workspace publish (bun publish): findWorkspaceReadme scans the
      workspace directory directly.
    • Tarball publish (bun publish path.tgz): track the first
      README-matching entry during the existing libarchive iteration
      (one-shot, so bytes get read as encountered).

    First match wins — no markdown-preference / tie-breaking / empty-string
    sentinel. The reporter wanted npm parity; they pushed back on
    competing-readme edge cases, not on scope.

    No change to what ends up in the tarball — the README was already being
    packed by isUnconditionallyIncludedFile.

    Verification

    Two tests in test/cli/install/bun-publish.test.ts under
    describe("readme") — workspace publish, and tarball publish
    (pre-packed .tgz fed to bun publish path.tgz). Both run against a
    mock registry, capture the PUT body, and assert
    body.versions[version].readme / readmeFilename. Fail on main, pass
    with the fix.

    Closes #30255


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

  • d352df usockets: don't defer TLS close when close_notify flush fails (#30368)

    What

    ssl_handle_shutdown in packages/bun-usockets/src/crypto/openssl.c
    returned 0 ("wait for the peer") when SSL_shutdown failed with
    SSL_ERROR_WANT_WRITE / WANT_READ during a graceful close
    (force_fast_shutdown == 0). Change it to return 1 so the raw socket
    closes (and SSL_free runs) immediately.

    Why

    SSL_shutdown allocates BoringSSL's ssl->s3->write_buffer to hold the
    encoded close_notify alert. If the BIO write fails (kernel buffer
    full, peer already gone), SSL_shutdown returns -1 with WANT_WRITE.
    The old code returned 0 from ssl_handle_shutdown, which told
    us_internal_ssl_close to leave the fd open and wait for the peer.

    That deferral is correct for the SSL_shutdown() == 0 case (alert
    flushed, waiting for the peer's reply — see the comment in
    us_internal_ssl_close). It's wrong here: the alert never went out,
    SSL_SENT_SHUTDOWN is already set on the first call, and once
    us_internal_ssl_is_shut_down is true on_writable/on_data
    short-circuit without ever re-dispatching the queued alert. There is no
    retry path, so the socket stays in limbo holding s->ssl and the write
    buffer until some other event arrives — which may never happen.

    This shows up as an intermittent LSan failure on the Debian x64-asan
    lane in test/js/node/http/node-https-checkServerIdentity.test.ts: the
    spawned child calls server.close() and exits right after the request
    emits error, so the lingering accepted socket never gets another event
    and SSL_free never runs.

    Direct leak of 417 byte(s) in 1 object(s) allocated from:
      bssl::SSLBuffer::EnsureCap          vendor/boringssl/ssl/ssl_buffer.cc:72
      bssl::do_tls_write                  vendor/boringssl/ssl/s3_pkt.cc:194
      bssl::tls_dispatch_alert            vendor/boringssl/ssl/s3_pkt.cc:373
      SSL_shutdown                        vendor/boringssl/ssl/ssl_lib.cc:1039
      ssl_handle_shutdown                 packages/bun-usockets/src/crypto/openssl.c:821
      us_internal_ssl_close               packages/bun-usockets/src/crypto/openssl.c:871
      us_internal_ssl_on_data
    

    This is a recurring pre-existing flake on main — see retrigger commits
    8722a10109, 13a267eabb, ded11f3fb7.

    Behavior

    • The unsent close_notify is best-effort. Closing without it produces
      an abrupt FIN, which is indistinguishable from a half-close to the peer
      (TLS 1.3 doesn't require it; TLS 1.2 implementations tolerate it).
    • The deferred-graceful-close path (SSL_shutdown() == 0 → wait for the
      peer's close_notify) is unchanged.
    • force_fast_shutdown == 1 (forceful close from _destroy() / abort)
      already returned 1 here, so no change.

    Testing

    • bun bd test test/js/node/http/node-https-checkServerIdentity.test.ts
      — 4 pass, 0 fail.
    • bun bd test test/js/node/tls/node-tls-connect.test.ts test/js/bun/net/socket.test.ts — 57 pass, 3 skip, 1 fail. The single
      failure (setSession() should not leak the SSL_SESSION returned by d2i_SSL_SESSION, RSS-growth threshold 40 MiB exceeded at ~293 MiB)
      reproduces identically on unmodified main in a macOS debug build —
      pre-existing, unrelated to this change.
    • The LSan leak itself is Linux-ASAN-only and timing-dependent; not
      reproducible on macOS, so there is no deterministic regression test.
    • 58fcda fix(tls): macOS keychain enumeration no longer triggers per-cert revocation network access (#30323)

    What's wrong

    tls.getCACertificates('system') on macOS evaluates every keychain
    certificate with SecTrustEvaluateWithError under a
    SecPolicyCreateSSL policy, which makes trustd attempt OCSP/CRL/AIA
    fetches per cert. On managed Macs running a NetworkExtension content
    filter, every denied flow still pays the filter's per-flow
    cryptographic-signing overhead — turning what should be a local lookup
    into ~10 s of wall-clock time. The same code path also passes
    kSecMatchTrustedOnly to SecItemCopyMatching, which forces trustd to
    evaluate every keychain cert with the default
    (network-revocation-enabled) policy before the per-cert loop even
    starts.

    A sample of the stall puts 100 % of thread time inside
    SecTrustEvaluateWithError → securityd_send_sync_and_do, and log stream shows ~650 outbound flows to AIA/cross-cert URLs each being
    signed and policy-denied by the NE filter. The Security framework itself
    is not the bottleneck — the same SecTrustEvaluateWithError calls under
    SecPolicyCreateBasicX509 complete in ~50 ms on the same machine.

    What this changes

    Bring the macOS loader in line with how Node.js
    (ReadMacOSKeychainCertificates / IsCertificateTrustedForPolicy in
    src/crypto/crypto_context.cc) and Chromium
    (net/cert/internal/trust_store_mac.cc) enumerate the keychain trust
    store, plus skip the network entirely:

    • Drop kSecMatchTrustedOnly from SecItemCopyMatching. Per-cert
      filtering already happens below; the query-level flag only adds
      redundant network-revocation-enabled evaluations. Node does not pass it.
    • Replace the trust-settings stub with a full parser. The previous
      is_trust_settings_trusted_for_policy was a placeholder that always
      returned UNSPECIFIED, so every cert fell through to the slow trust
      evaluation. The new parser is a port of Node's
      IsTrustDictionaryTrustedForPolicy / IsTrustSettingsTrustedForPolicy
      and resolves certs with explicit user/admin/system trust settings via
      cheap local XPC lookups.
    • Defer the SecTrustEvaluateWithError fallback until after every
      domain is consulted.
      Only certs with no decisive settings in any
      domain reach it. This both avoids redundant XPC round-trips and respects
      an explicit Deny in a later domain (the previous structure could call
      the fallback during the user-domain iteration and short-circuit before
      seeing an admin-domain Deny).
    • Use SecPolicyCreateBasicX509 +
      SecTrustSetNetworkFetchAllowed(false) for that fallback
      so it builds
      the chain without touching the network. This is enumeration, not
      connection-time validation; EKU/server-auth is enforced by OpenSSL at
      handshake time against the resulting trust store. Trust-anchor
      enumeration only needs to know whether the cert is a usable anchor.

    The kSecTrustSettings{Application,Policy,PolicyString,Result}
    dictionary keys are CFSTR() macros in SecTrustSettings.h, not
    exported data symbols, so they are constructed at runtime with
    CFStringCreateWithCString rather than dlsym'd like the rest of the
    loader. kSecPolicyOid and kSecPolicyAppleSSL are exported and
    continue to be dlsym'd.

    Behavior

    Intended to be a perf-only change. On a clean Mac the result is
    unchanged (verified: 0 certs both before and after — the default
    keychain search list does not include
    SystemRootCertificates.keychain). On a managed Mac, certs that
    previously fell through to SecTrustEvaluateWithError because the stub
    never resolved them now resolve via the trust-settings parser, which is
    the more authoritative answer.

    Risk / non-goals

    SecPolicyCreateBasicX509 is less strict than SecPolicyCreateSSL — it
    does not check for server-auth EKU on the chain. That check is
    appropriate for connection-time validation of a server's leaf cert, not
    for deciding whether a CA cert in the local keychain should be a trust
    anchor; OpenSSL applies its own EKU/basic-constraint checks at handshake
    time. The change can therefore include a CA cert that the SSL policy
    would have rejected, but those certs are already present and trusted in
    the user's keychain.

    SecTrustSetNetworkFetchAllowed is treated as optional (not in the
    required-symbols check) since it's only a perf hint.

    Testing

    • clang++ -fsyntax-only -Wall -Wextra against the same flags as the
      build: clean.
    • Side-by-side test harness linking the old and new translation units
      against BoringSSL: us_load_system_certificates_macos returns identical
      results (0 certs, ~10 ms) on a clean dev Mac.
    • The trust-settings parser was exercised against the real System-domain
      keychain dictionaries
      (SecTrustSettingsCopyCertificates(kSecTrustSettingsDomainSystem), 159
      certs) to confirm runtime-built CFString keys match CFSTR()-built
      dictionary keys via content equality.
    • All dlsym symbol names verified to exist in Security.framework
      (and the four that don't — the kSecTrustSettings* macros — are
      constructed with CFStringCreateWithCString instead).
    • Existing test/regression/issue/24339.test.ts already skips on macOS
      because the result is environment-dependent; no new test is added for
      the same reason. A deterministic test would require installing a
      temporary trust setting into a keychain, which needs elevated privileges
      and is unsuitable for CI.
    • a17a13 process: surface CTRL_CLOSE_EVENT as SIGHUP / CTRL_BREAK_EVENT as SIGBREAK on Windows (#30321)

    Fixes #16899

    What

    process.on('SIGHUP', …) and process.on('SIGBREAK', …) now receive
    Windows console-control events, matching Node.js:

    Console event Signal
    CTRL_CLOSE_EVENT (closing the console window) SIGHUP
    CTRL_BREAK_EVENT (Ctrl+Break) SIGBREAK

    Why

    libuv's uv__signal_control_handler already maps these events to
    SIGHUP/SIGBREAK, but Bun's Windows signalNameToNumberMap was
    missing both entries. So process.on('SIGHUP', …) was treated as a
    plain EventEmitter event, no uv_signal_t was created, and libuv's
    dispatch had nowhere to deliver the signal — the default handler
    terminated the process.

    How

    • Add SIGHUP and SIGBREAK to the Windows branch of
      signalNameToNumberMap
    • Add SIGBREAK to signalNames[] and signalNumberToNameMap (#ifdef SIGBREAK, so POSIX builds are unaffected)

    Notes on #16899

    • The repro uses process.on('exit', …) only. That alone does not
      fire on console-window close in Node.js either — Windows hard-terminates
      the process after the control handler returns. The portable pattern is:

    process.on('SIGHUP', () => process.exit()); // 'exit' listeners now run
    on console close

    After this PR, that works in Bun.
    - `CTRL_LOGOFF_EVENT` / `CTRL_SHUTDOWN_EVENT` are [deliberately not
    handled by
    libuv](https://github.com/libuv/libuv/blob/v1.x/src/win/signal.c) (and
    therefore Node.js): they are only sent to services, which have their own
    SCM notification path. Interactive console processes don't receive them,
    so there is nothing to wire up.
    
    ## Testing
    
    `test/js/node/process/process-signal-windows.test.ts`:
    - **SIGHUP**: child allocs its own console
    (`FreeConsole`+`AllocConsole`), posts `WM_CLOSE` to its own
    `GetConsoleWindow()` → conhost sends `CTRL_CLOSE_EVENT` → libuv
    dispatches `SIGHUP`
    - **SIGBREAK**: child in its own process group, parent calls
    `GenerateConsoleCtrlEvent(CTRL_BREAK_EVENT, pid)`
    
    The first commit on this branch contains only the tests (expected to
    fail on Windows CI = red); the second commit adds the fix (= green).
    
    ---------
    
    Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@&ZeroWidthSpace;users.noreply.github.com></li><li><a href="https://github.com/oven-sh/bun/commit/79c3d4d169f2bf80db69d54617f4d1a5cad55278"><code>79c3d4</code></a> Fix TLA sibling import running before shared dep settles (#30259) (#30262)
    
    Fixes #30259. Bumps WebKit to `88b2f7a2159c913f7dd0d73c0e88d66138cd67ba`
    (oven-sh/WebKit#215, merged).
    
    ## What
    
    A static import that re-imports a TLA dep already visited by a sibling
    earlier in the **same** `Evaluate()` pass was skipping the spec-mandated
    wait and running with the dep's post-`await` bindings still in TDZ:
    
    ```ts
    // root.ts
    import { foo } from "./await.ts"; // await.ts → EvaluatingAsync, suspended at `await 0`
    import "./child.ts";              // child.ts visits await.ts, skips wait, runs too early
    
    // await.ts
    await 0;
    export const foo = 123;
    
    // child.ts
    import { foo } from "./await.ts";
    console.log(foo); // ReferenceError: Cannot access 'foo' before initialization
    

    Why

    The Bun-specific skip at innerModuleEvaluation 11.c.v (which avoids
    self-deadlock when require(esm) / dynamic import re-enters a TLA
    module from inside its own suspension) used pendingAsyncDependencies == 0 as the discriminator for "body already entered". A TLA dep with no
    async deps of its own also has count 0 after suspending at its first
    await within the same DFS, so the discriminator matched the sibling
    case.

    How ([JSC] innerModuleEvaluation: don't skip async-dep wait for siblings in same Evaluate() oven-sh/WebKit#215)

    Snapshot vm.moduleAsyncEvaluationCount() at the start of each
    Evaluate() and thread it through innerModuleEvaluation as
    asyncOrderWatermark. Only skip the wait when the cycle root's
    asyncEvaluationOrder() predates the watermark (i.e. it became
    EvaluatingAsync in a prior Evaluate() — the re-entrant deadlock
    case). Siblings that transition during the current DFS get order >= watermark and keep the spec wait.

    Tests

    Two regression tests in
    test/js/bun/resolve/dynamic-import-tla-cycle.test.ts:

    • direct sibling re-import (the issue repro)
    • indirectly-shared TLA dep through different parents (guards against
      discriminating by "asyncParentModule on stack")

    Existing re-entrancy / deadlock-avoidance tests in the same file
    continue to pass.

  • c5a2f8 MessageEvent: name Locker so m_data lock is actually held (#30290)

    Found by Fuzzilli (fingerprint 8ffe5d0751a9d31e).

    What

    MessageEvent::initMessageEvent() and MessageEvent::memoryCost() both
    intend to hold m_concurrentDataAccessLock while accessing the m_data
    variant, but were written as:

    Locker { m_concurrentDataAccessLock };

    This constructs an unnamed temporary that destructs (and unlocks) at the
    end of the full-expression — the lock is never held over the critical
    section. Upstream WebKit names the locker (Locker locker { … }); the
    Locker<Lock> specialization is not [[nodiscard]], so there was no
    compiler diagnostic.

    Why it crashes

    memoryCost() is called from JSMessageEvent::visitChildrenImpl on the
    GC marker thread and does std::visit(..., m_data).
    initMessageEvent() on the mutator thread reassigns m_data = JSValueTag {}. When m_data previously held a
    Ref<SerializedScriptValue> (MessageEvents delivered through
    BroadcastChannel / MessagePort), the visitor can observe a torn
    variant and call data->memoryCost() on a moved-from Ref:

    ASSERTION FAILED: m_ptr
    wtf/Ref.h(165) : T *WTF::Ref<WebCore::SerializedScriptValue>::operator->() const
    

    In release builds this is a SIGSEGV with no ASAN report (not a heap UAF
    — a torn inline variant read).

    Repro

    With BUN_JSC_collectContinuously=1: receive ~100 MessageEvents via
    BroadcastChannel, then call initMessageEvent() on each in a tight
    loop. Before this change it crashed ~20% of the time; after, 0/20 runs
    crash. Added as
    test/js/web/broadcastchannel/message-event-init-gc.test.ts.


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

  • 090a5f Fix crash when new Bun.Terminal() receives a non-object argument (#30310)

    Fuzzilli found a debug assertion failure in Bun.Terminal when the
    constructor is called with a primitive value:

    new Bun.Terminal(8);
    panic(main thread): reached unreachable code
    jsc.JSValue.JSValue.get
    /workspace/bun/src/jsc/JSValue.zig:1534:24
    jsc.JSValue.JSValue.getOptional
    /workspace/bun/src/jsc/JSValue.zig:1886:34
    runtime.api.bun.Terminal.Options.parseFromJS
    /workspace/bun/src/runtime/api/bun/Terminal.zig:122:39
    

    The constructor checked for undefined/null but passed any other
    value (numbers, strings, booleans, bigints, symbols) straight to
    Options.parseFromJS, which calls JSValue.get and asserts the target
    is an object.

    Now the constructor rejects any non-object argument with the existing
    "Terminal constructor requires an options object" error.

    Fingerprint: 2bd73cb78c0aa42e

  • 611740 tty: update process.stdin.isRaw after setRawMode succeeds on Windows (#30288)

    What

    process.stdin.isRaw now reflects the current raw mode on Windows after
    process.stdin.setRawMode(flag) succeeds, matching Node.js and Bun on
    POSIX.

    Repro (Windows, real terminal)

    process.stdin.setRawMode(true);
    console.log(process.stdin.isRaw); // before: false — after: true
    process.stdin.setRawMode(false);
    process.exit(0);

    Root cause

    In src/js/node/tty.ts, the Windows fd === 0 branch of
    ReadStream.prototype.setRawMode did:

    if (this.fd === 0) {
      const err = ttySetMode(flag);
      if (err) {
        this.emit("error", new Error("setRawMode failed with errno: " + err));
      }
      return this;   // ← returns on BOTH error and success
    }
    // ...
    this.isRaw = flag;  // ← never reached for Windows stdin

    so this.isRaw = flag at the end of the method was unreachable for
    process.stdin on Windows. The other two paths (Windows fd !== 0 and
    POSIX) only return early on error and fall through to the assignment.

    Any code that reads isRaw to decide whether to restore cooked mode on
    teardown (e.g. readline's _setRawMode, which consults input.isRaw)
    would always restore cooked mode on Windows, which can leave a pending
    cooked ReadConsole blocking the next raw-mode consumer until the user
    presses Enter.

    Fix

    Restructure so the fd === 0 case only returns early on error and
    otherwise falls through to the shared this.isRaw = flag assignment —
    same shape as the other branches.

    Verification

    Added a test in test/js/node/tty.test.ts that spawns a child in a
    Bun.Terminal (so stdin is a real TTY on both POSIX and
    Windows/ConPTY), calls setRawMode(true) / setRawMode(false), and
    asserts isRaw tracks the mode and the method returns this.

    bun bd test test/js/node/tty.test.ts
     4 pass
     0 fail
    

    The affected code path is guarded by process.platform === "win32"
    (inlined at bundle time), so the fail-before/pass-after delta is only
    observable on Windows CI. On POSIX the test locks in the existing
    (already correct) behaviour.

    Fixes #9853


    Co-authored-by: Dylan Conway <dylan.conway567@​gmail.com>

  • a28a3a bundler: trim empty else {} left behind by DCE (#30275)

    Problem

    bun build --define Bun.env.NODE_ENV="'production'" test.ts on:

    if ("foo" === "foo") {
      console.log("success!");
    } else {
      console.log("fail!");
    }

    produced:

    if (true) {
      console.log("success!");
    } else {}

    The constant-folded test expression and the pruned dead branch are
    correct, but the empty else {} remnant is left behind. The --define
    docs guide
    also
    promised full collapse to just console.log("success!"); — which only
    ever happened with --minify-syntax.

    Cause

    visitStmt's s_if handler had an "else trim" gated on
    minify_syntax:

    // Trim unnecessary "else" clauses
    if (p.options.features.minify_syntax) {
        if (data.no != null and @&ZeroWidthSpace;as(Stmt.Tag, data.no.?.data) == .s_empty) {
            data.no = null;
        }
    }

    Two issues:

    1. Gated on minify_syntax, even though the thing it's cleaning up (an
      else body emptied by DCE statement-pruning) is produced by DCE itself.
    2. Checked for .s_empty, but visitSingleStmtBlock only converts an
      empty block to .s_empty when minify_syntax is on — otherwise the
      pruned body stays as an .s_block with stmts.len == 0.

    The scaffolding collapse (if (true) { A }A) intentionally stays
    behind --minify-syntax since tests (e.g. transpiler.test.js's DCE
    block, "if (undefined) { let y = Math.random(); }" → "if (undefined) {}") lock that contract in, matching esbuild. This change is strictly
    about cleaning up the ugly empty-else remnant.

    Fix

    Gate the else-trim on dead_code_elimination and treat an .s_block
    with zero stmts as equivalent to .s_empty:

    if (p.options.features.dead_code_elimination) {
        if (data.no) |no_stmt| {
            const no_is_empty = switch (no_stmt.data) {
                .s_empty => true,
                .s_block => |block| block.stmts.len == 0,
                else => false,
            };
            if (no_is_empty) {
                data.no = null;
            }
        }
    }

    Also updates the define-constant docs page so the promised before/after
    output matches what the bundler actually emits, and points users to
    --minify-syntax / --minify for the full scaffolding collapse shown
    as the final step.

    Verification

    test/bundler/bundler_edgecase.test.ts's DCEEmptyElseTrimmed#30271
    asserts the output of the repro contains neither fail nor else. It
    fails on main (output is if (true) { console.log("success"); } else {}) and passes on this branch (if (true) { console.log("success"); }).

    Existing DCE tests (bundler_edgecase.test.ts's DCE*,
    transpiler.test.js's DCE block, esbuild/dce.test.ts,
    esbuild/default.test.ts, esbuild/ts.test.ts,
    bundler_minify.test.ts) all pass — no test depended on an else {}
    remnant surviving.

    Fixes #30271

  • ff38b2 process: drop EPOLLONESHOT for Linux pidfd exit poll (#30301)

    What

    On Linux, a subprocess's pidfd was registered with EPOLLONESHOT. If
    the event was dropped in user-space after epoll_wait returned it
    (before onUpdate ran), the kernel had already disarmed the fd, so the
    process's 'exit' event never fired — it only arrived when the next
    unrelated timer happened to wake the loop.

    Observed in the wild as a 5s afterAll timeout in
    anthropic-experimental/sandbox-runtime on GH Actions ubuntu-24.04
    x86 runners (~80% hit rate): two socat bridges with stdio: 'ignore'
    are SIGTERM'd together; both exit within a few ms, but one's 'exit'
    event doesn't fire until the 5000ms setTimeout fallback.

    Root cause

    epoll_wait returns a batch of ready events into loop->ready_polls
    and disarms every EPOLLONESHOT fd in that batch before user-space sees
    any of them. us_internal_dispatch_ready_polls then iterates the batch
    via loop->current_ready_poll.

    A poll callback can re-enter us_loop_run_bun_tick — the tick_depth
    guard in loop.c acknowledges this for expect().toThrow()
    waitForPromiseautoTick, and the same applies to
    expect().resolves/.rejects and any other waitForPromise caller.
    The inner tick calls epoll_wait again, overwriting
    loop->ready_polls, num_ready_polls, and current_ready_poll. When
    control returns to the outer dispatch loop, its remaining indices now
    point at the inner tick's data (or past the new num_ready_polls), so
    those events are silently skipped.

    For a one-shot pidfd, a skipped event is unrecoverable: the fd is
    disarmed in the kernel, onUpdate never ran so .needs_rearm was never
    set, and nothing re-arms it. The next epoll_wait can't return it.

    Fix

    Register the pidfd level-triggered (no EPOLLONESHOT) on Linux. A pidfd
    stays readable from process exit until close(), so a dropped
    ready_polls slot is harmless — the next epoll_wait just returns it
    again. After wait4 succeeds we close the pidfd anyway (via
    Process.close()), which removes it from epoll, so there's no
    busy-loop. rewatchPosix still defensively re-registers if
    wait4(WNOHANG) returns 0; with level-triggered that's a harmless
    CTL_MOD.

    macOS/FreeBSD continue to use EV_ONESHOT with EVFILT_PROC +
    NOTE_EXIT, which is inherently once-per-process and auto-removed by
    the kernel.

    This doesn't address the underlying nested-tick ready_polls corruption
    (which also affects other one-shot FilePoll owners), but pidfds are
    the case where it's both silent and common — pipes/sockets report the
    drop via EPOLLHUP on the next wait, whereas a disarmed pidfd has no
    second signal.

    Verification

    test/js/bun/spawn/pidfd-exit-nested-tick.test.ts spawns 20 stdio: 'ignore' children so their pidfd events land in one epoll_wait batch,
    then forces a nested autoTick from the first onExit via
    expect(Bun.sleep(1)).resolves.toBe(undefined).

    system bun 1.3.14 bun bd without fix bun bd with fix
    result fail 5/5 (4001–4016ms) fail 5/5 (4009–4068ms) pass 5/5
    (46–76ms)

    bun run zig:check-all passes for all targets.


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

  • b00945 Update README.md
  • 0a7bed [autofix.ci] apply automated fixes
  • e643d7 restructure src/: path fixups + extract JSC bridges and leaf types

    Follow-up to the pure-rename commit. Makes the build green and enforces
    the per-directory dependency boundaries:

    • @​import path fixups (948 relative paths) following the renames; bun.zig
      re-export targets; scripts/build/.ts, glob-sources.ts, src/codegen/.ts
      path literals; .gitignore; @​embedFile/$newZigFunction targets; bindgen
      emit path; .bind.ts/.classes.ts relative imports.

    • *_jsc/ extractions: every toJS/fromJS/JSValue/JSGlobalObject-touching fn
      moved out of the layer dirs into a sibling *_jsc/ file (or runtime/ or
      jsc/), with a 'pub const toJS = @​import(...).xToJS;' alias left on the
      original struct so call sites are unchanged. Covers http, logger, sys,
      string, url, css, semver, patch, sourcemap, dns, cares, js_parser,
      install, bundler, sql, valkey, csrf, fmt, crash_handler, s3, resolver,
      paths, ini, collections, standalone_graph, uws, boringssl, lolhtml,
      options_types/schema.

    • *_sys/ extern extractions: uws_sys/ (256 externs across 19 files via
      dir-invert + uws/ facade), windows_sys/externs.zig (41 kernel32/ntdll/
      advapi32 fns), mimalloc_sys/ (whole file).

    • install_types/: NodeLinker, SemverString, ExternalString, SlicedString.

    • options_types/: ContextData (+ nested BundlerOptions/TestOptions/
      DebugOptions/RuntimeOptions), CommandTag, CompileTarget, BundleEnums
      (Format/WindowsOptions/BundlePackage), CodeCoverageOptions, GlobalCache,
      OfflineMode. test_filter_regex stored as ?*anyopaque + accessor.

    • Phase-1 placement corrections: Task.zig + 5 event_loop bridges → jsc/;
      SSLConfig/ssl_wrapper → runtime/socket/; FormData → runtime/webcore/;
      ValkeyCommand → runtime/valkey_jsc/; sql JS layer (15 files) → sql_jsc/.

    After this commit: rg 'JSValue|JSGlobalObject|CallFrame' across all 75
    non-jsc/-runtime dirs returns only 7 false positives (comments, an
    enum-tag string, a README). bun bd + zig:check-all 61/61 green.

  • c8b4c3 restructure src/: pure git mv into subject-area directories

    Relocates ~2050 files into per-area subdirectories. Zero content edits —
    every change is a rename so git log --follow and blame survive. Build is
    broken until the follow-up commit (bun.zig re-exports + build-script paths

    • relative @​import fixups).

    Top-level src/*.zig is now the 8 entry-point files only. src/bun.js/ is
    gone (split into src/jsc/ + src/runtime/ + src/event_loop/). src/deps/
    is gone except uucode and the libuwsockets .cpp shims.

  • c18740 Fix heap overflows in normalizePathWindows (#30135)

    Problem

    normalizePathWindows in src/sys.zig writes into pooled [32767]u16
    buffers at several points without bounds-checking the input length. The
    originally reported case was the dirfd-join branch, but the same pattern
    exists at every write site in the function:

    1. UTF-8→UTF-16 conversion (T == u8): convertUTF8toUTF16InBuffer
      forwards only output.ptr to simdutf, which performs no output bounds
      checking. Upstream path validation caps at MAX_PATH_BYTES (~98302
      bytes on Windows), not PATH_MAX_WIDE (32767), so an ASCII input in
      (32767, 98302] bytes writes past the conversion buffer before any
      downstream check runs.
    2. Device-path (\\.\) early-return: copies the path verbatim into
      buf and writes a NUL at buf[path.len] with no length check.
    3. Absolute-path normalization: calls normalizeStringGenericTZ
      into buf with .add_nt_prefix=true and .zero_terminate=true; that
      function performs no bounds checking, and the NT prefix adds up to 6 u16
      (\\\??\UNC\) plus a NUL.
    4. **Separator-free early-r

@michijs

michijs Bot commented May 11, 2026

Copy link
Copy Markdown
Contributor Author

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

Changelog:
Sourced from releases.
        ### v10.4.0-alpha.18## 10.4.0-alpha.18
  • Agentic Setup: Allow failed stories to persist - #34717, thanks @​Sidnioulz!

  • CLI: Add react-vite to tanstack-react automigration - #34718, thanks @​huang-julien!

  • Change-Detection: Set GIT_OPTIONAL_LOCKS=0 to avoid blocking commits - #34726, thanks @​valentinpalkovic!

  • Core: Barrel-aware named import resolution for change detection - #34675, thanks @​valentinpalkovic!

  • Fix ArgsTable borders not visible in Windows High Contrast Mode - #34264, thanks @​TheSeydiCharyyev!

  • Sidebar: Soften change-detection signals + add Review CTA - #34701, thanks @​valentinpalkovic!

  • Tanstack: Optimize tanstack react-store - #34731, thanks @​huang-julien!

  • Telemetry: Refactor init tracking - #34629, thanks @​Programer1804!

  • UI: Add Share section to onboarding checklist and redesign share tool - #34413, thanks @​valentinpalkovic!

          ### v10.4.0-alpha.17## 10.4.0-alpha.17
    
  • Agentic Setup: Keep sample content if users want onboarding - #34704, thanks @​Sidnioulz!

  • MDX: Replace `@​storybook/docs-mdx` with inline implementation - #34611, thanks @​copilot-swe-agent!

  • Maintenance: Enhance ghost stories internal tests - #34707, thanks @​yannbf!

  • ReactNative: Add Metro config AST codemod for init - #34660, thanks @​ndelangen!

  • ReactNative: New init setup - #34665, thanks @​ndelangen!

  • Tanstack: Add `@​storybook/tanstack-react` package - #34403, thanks @​huang-julien!

  • UI: Fix showing and hiding copy prompt in the correct scenarios - #34706, thanks @​yannbf!

          ### v10.4.0-alpha.16## 10.4.0-alpha.16
    
  • Automigration: Move RN on-device addons to `deviceAddons` - #34659, thanks @​ndelangen!

  • CLI: Improve self-healing scoring observability - #34699, thanks @​yannbf!

  • Prompt: Run vitest fewer times, improve play functions - #34651, thanks @​yannbf!

  • ReactNative: Add true entrypoint generation - #34663, thanks @​ndelangen!

          ### v10.4.0-alpha.15## 10.4.0-alpha.15
    
  • Vitest: Fix agent detection breaking runs - #34681, thanks @​JReinhold!

          ### v10.4.0-alpha.14## 10.4.0-alpha.14
    
  • CLI: Fix agentic check - #34678, thanks @​yannbf!

          ### v10.4.0-alpha.13## 10.4.0-alpha.13
    
  • Addon-Vitest: Use Vitest's provide-API for injecting values - #34518, thanks @​JReinhold!

  • Telemetry: Fix delayed init events - #34670, thanks @​JReinhold!

          ### v10.4.0-alpha.12## 10.4.0-alpha.12
    
  • CLI: Introduce Agentic Setup workflow - #34297, thanks @​yannbf!

          ### v10.4.0-alpha.11## 10.4.0-alpha.11
    
  • CLI: Change mock event detection - #34586, thanks @​yannbf!

  • Core: Ensure process termination on SIGINT when telemetry is disabled - #34585, thanks @​ghengeveld!

  • Core: Show "new" status on newly added individual stories - #34504, thanks @​ghengeveld!

  • React: Add optional React type peers to packages that publish React-based declarations - #34641, thanks @​copilot-swe-agent!

  • Telemetry: Add sidebar filter telemetry for change detection - #34533, thanks @​valentinpalkovic!

  • UI: Fix global background + color styles affecting stories - #34071, thanks @​Axadali!

          ### v10.3.6## 10.3.6
    
  • ESLint: Update deprecated @​storybook/test reference to storybook/test - #34430, thanks @​venkat22022202!

  • React: Add optional React type peers to packages that publish React-based declarations - #34641, thanks @​copilot-swe-agent!

  • UI: Fix global background + color styles affecting stories - #34071, thanks @​Axadali!

          ### 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

Commit history:
  • b2167d Merge pull request #34725 from storybookjs/docs-publish-via-share-menu

    Docs: Add documentation for the publishing via the share menu

  • c7472c Format
  • ea0c18 Merge branch 'next' into docs-publish-via-share-menu

    • next: (100 commits)
      Address feedback
      Remove mention of ai setup command
      Address feedback
      Cli: set ai prompt to yes if yes flag for react-vite to tanstack migration
      Update React Native entry point tests to use dynamic app name and include LiteUI component
      Add '@​storybook/react-native-ui-lite' to React Native generator and template
      Update code/lib/create-storybook/templates/react-native/index.js
      Update AppRegistry component name in React Native template
      Remove extensive prompt option and related references from ai setup
      Fix: keep original onAllStatusChange timing behavior
      Update tests
      Remove duplicate index/refs update in onAllStatusChange handler
      Address CodeRabbit review feedback
      fix(manager-api): await recompute filter calls to refresh story list
      Ensure runId for ai-setup events is always at the root
      Apply suggestion from @​valentinpalkovic
      docs: add link
      chore: move tinyclip to devdeps
      Docs: Fixes for change detection
      Rework run deduplication logic for final telemetry
      ...
    • 0874b0 Merge pull request #34732 from storybookjs/docs-change-detection-fixes

    Docs: Fixes for change detection

  • 62dac1 Address feedback
  • 982a94 Merge branch 'next' into docs-change-detection-fixes

    • next: (49 commits)
      Remove mention of ai setup command
      Address feedback
      Cli: set ai prompt to yes if yes flag for react-vite to tanstack migration
      Update React Native entry point tests to use dynamic app name and include LiteUI component
      Add '@​storybook/react-native-ui-lite' to React Native generator and template
      Update code/lib/create-storybook/templates/react-native/index.js
      Update AppRegistry component name in React Native template
      Remove extensive prompt option and related references from ai setup
      Fix: keep original onAllStatusChange timing behavior
      Update tests
      Remove duplicate index/refs update in onAllStatusChange handler
      Address CodeRabbit review feedback
      fix(manager-api): await recompute filter calls to refresh story list
      Ensure runId for ai-setup events is always at the root
      docs: add link
      chore: move tinyclip to devdeps
      Rework run deduplication logic for final telemetry
      Tanstack: optimize react-store
      Docs tweaks
      feat: always log the prompt
      ...
    • c79db7 Merge pull request #34648 from storybookjs/docs-updates

    Docs: Improve agentic setup docs

  • 0ed2f8 Remove mention of ai setup command
  • 9e4521 Merge branch 'next' into docs-updates

    • next: (108 commits)
      Cli: set ai prompt to yes if yes flag for react-vite to tanstack migration
      Update React Native entry point tests to use dynamic app name and include LiteUI component
      Add '@​storybook/react-native-ui-lite' to React Native generator and template
      Update code/lib/create-storybook/templates/react-native/index.js
      Update AppRegistry component name in React Native template
      Remove extensive prompt option and related references from ai setup
      Fix: keep original onAllStatusChange timing behavior
      Update tests
      Remove duplicate index/refs update in onAllStatusChange handler
      Address CodeRabbit review feedback
      fix(manager-api): await recompute filter calls to refresh story list
      Ensure runId for ai-setup events is always at the root
      docs: add link
      chore: move tinyclip to devdeps
      Rework run deduplication logic for final telemetry
      Tanstack: optimize react-store
      Docs tweaks
      feat: always log the prompt
      Update JSDoc
      Fix ai checklist util mocks
      ...
    • 3d4924 Address feedback
    • 245043 Merge pull request #34743 from storybookjs/fix/tanstack_automigrate_ai

    Cli: Set ai prompt to yes if yes flag for react-vite to tanstack migration

  • 2a75bc Merge pull request #34742 from storybookjs/norbert/dynamic-appname-rn

    ReactNative: AppRegistry component name in template

  • 23a2c4 Cli: set ai prompt to yes if yes flag for react-vite to tanstack migration
  • 95d2f7 Merge branch 'next' into norbert/dynamic-appname-rn
  • 60561d Update React Native entry point tests to use dynamic app name and include LiteUI component

    Modified the tests for the React Native entry point generator to replace the hardcoded 'main' string with the app name imported from app.json. Additionally, integrated the LiteUI component from '@​storybook/react-native-ui-lite' as the CustomUIComponent, enhancing the Storybook setup for React Native applications.

  • debadc Merge branch 'norbert/dynamic-appname-rn' of github.com:storybookjs/storybook into norbert/dynamic-appname-rn
  • 308fa0 Add '@​storybook/react-native-ui-lite' to React Native generator and template

    Included the '@​storybook/react-native-ui-lite' package in the React Native generator and updated the template to use LiteUI as the CustomUIComponent. This enhances the Storybook setup for React Native applications by integrating the new UI component.

  • 801237 Update code/lib/create-storybook/templates/react-native/index.js

    Co-authored-by: Daniel Williams <dannyhyunsoowilliams@​gmail.com>

  • a835ed Merge pull request #34740 from storybookjs/yann/undo-extensive-flag

    CLI: Remove extensive prompt option

  • 3d0a41 Update AppRegistry component name in React Native template

    Replaced the hardcoded 'main' string with the app name imported from app.json for better flexibility and consistency in the AppRegistry registration. This change allows for easier customization of the component name in the Storybook setup.

  • 173a76 Merge pull request #34737 from storybookjs/claude/slack-session-qE8mz

    Sidebar: Fix clear filter button not refreshing story list

  • 179179 Remove extensive prompt option and related references from ai setup
  • 433de1 Merge pull request #34730 from storybookjs/sidnioulz/two-prompt-setup
  • ee6713 Fix: keep original onAllStatusChange timing behavior

    The internal onAllStatusChange callback needs to maintain its original timing
    behavior where recomputeStatusFilter() is not awaited. This is because the
    subsequent setIndex() call relies on specific timing to properly update the
    filtered index when statuses change.

    The user-facing filter API methods (setAllTagFilters, resetStatusFilters, etc.)
    still properly await the recompute calls, which fixes the original bug where
    the clear filter button didn't refresh the story list.

    https://claude.ai/code/session_013bx4ZM9Ugco86JAdvvfKBt

  • 708483 Update tests
  • f3dee0 Remove duplicate index/refs update in onAllStatusChange handler

    Since experimental_setFilter (called by recomputeStatusFilter) already
    re-applies the index and updates refs, the additional setIndex and refs
    loop after await recomputeStatusFilter() was redundant.

    https://claude.ai/code/session_013bx4ZM9Ugco86JAdvvfKBt

  • aa020c Address CodeRabbit review feedback

    • Fix missed call site: await recomputeStatusFilter() in onAllStatusChange handler
    • Update SubAPI interface: return types changed from void to Promise for all
      8 filter methods to properly indicate they are awaitable

    https://claude.ai/code/session_013bx4ZM9Ugco86JAdvvfKBt

  • 38a009 fix(manager-api): await recompute filter calls to refresh story list

    The clear filter button in the sidebar was not refreshing the story list
    because the recompute functions were not being awaited. This caused a race
    condition where the API methods would return before the filtered index was
    updated.

    The fix ensures all filter API methods (setAllTagFilters, resetTagFilters,
    addTagFilters, removeTagFilters, resetStatusFilters, setAllStatusFilters,
    addStatusFilters, removeStatusFilters) properly await the recompute calls,
    which in turn return the promise from experimental_setFilter.

    https://claude.ai/code/session_013bx4ZM9Ugco86JAdvvfKBt

  • 228542 Merge pull request #34718 from storybookjs/feat/tanstack_automigrate

    CLI: Add react-vite to tanstack-react automigration

  • 035fd1 Ensure runId for ai-setup events is always at the root

@michijs

michijs Bot commented May 11, 2026

Copy link
Copy Markdown
Contributor Author

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

Changelog:
Sourced from releases.
        ### v10.4.0-alpha.18## 10.4.0-alpha.18
  • Agentic Setup: Allow failed stories to persist - #34717, thanks @​Sidnioulz!

  • CLI: Add react-vite to tanstack-react automigration - #34718, thanks @​huang-julien!

  • Change-Detection: Set GIT_OPTIONAL_LOCKS=0 to avoid blocking commits - #34726, thanks @​valentinpalkovic!

  • Core: Barrel-aware named import resolution for change detection - #34675, thanks @​valentinpalkovic!

  • Fix ArgsTable borders not visible in Windows High Contrast Mode - #34264, thanks @​TheSeydiCharyyev!

  • Sidebar: Soften change-detection signals + add Review CTA - #34701, thanks @​valentinpalkovic!

  • Tanstack: Optimize tanstack react-store - #34731, thanks @​huang-julien!

  • Telemetry: Refactor init tracking - #34629, thanks @​Programer1804!

  • UI: Add Share section to onboarding checklist and redesign share tool - #34413, thanks @​valentinpalkovic!

          ### v10.4.0-alpha.17## 10.4.0-alpha.17
    
  • Agentic Setup: Keep sample content if users want onboarding - #34704, thanks @​Sidnioulz!

  • MDX: Replace `@​storybook/docs-mdx` with inline implementation - #34611, thanks @​copilot-swe-agent!

  • Maintenance: Enhance ghost stories internal tests - #34707, thanks @​yannbf!

  • ReactNative: Add Metro config AST codemod for init - #34660, thanks @​ndelangen!

  • ReactNative: New init setup - #34665, thanks @​ndelangen!

  • Tanstack: Add `@​storybook/tanstack-react` package - #34403, thanks @​huang-julien!

  • UI: Fix showing and hiding copy prompt in the correct scenarios - #34706, thanks @​yannbf!

          ### v10.4.0-alpha.16## 10.4.0-alpha.16
    
  • Automigration: Move RN on-device addons to `deviceAddons` - #34659, thanks @​ndelangen!

  • CLI: Improve self-healing scoring observability - #34699, thanks @​yannbf!

  • Prompt: Run vitest fewer times, improve play functions - #34651, thanks @​yannbf!

  • ReactNative: Add true entrypoint generation - #34663, thanks @​ndelangen!

          ### v10.4.0-alpha.15## 10.4.0-alpha.15
    
  • Vitest: Fix agent detection breaking runs - #34681, thanks @​JReinhold!

          ### v10.4.0-alpha.14## 10.4.0-alpha.14
    
  • CLI: Fix agentic check - #34678, thanks @​yannbf!

          ### v10.4.0-alpha.13## 10.4.0-alpha.13
    
  • Addon-Vitest: Use Vitest's provide-API for injecting values - #34518, thanks @​JReinhold!

  • Telemetry: Fix delayed init events - #34670, thanks @​JReinhold!

          ### v10.4.0-alpha.12## 10.4.0-alpha.12
    
  • CLI: Introduce Agentic Setup workflow - #34297, thanks @​yannbf!

          ### v10.4.0-alpha.11## 10.4.0-alpha.11
    
  • CLI: Change mock event detection - #34586, thanks @​yannbf!

  • Core: Ensure process termination on SIGINT when telemetry is disabled - #34585, thanks @​ghengeveld!

  • Core: Show "new" status on newly added individual stories - #34504, thanks @​ghengeveld!

  • React: Add optional React type peers to packages that publish React-based declarations - #34641, thanks @​copilot-swe-agent!

  • Telemetry: Add sidebar filter telemetry for change detection - #34533, thanks @​valentinpalkovic!

  • UI: Fix global background + color styles affecting stories - #34071, thanks @​Axadali!

          ### v10.3.6## 10.3.6
    
  • ESLint: Update deprecated @​storybook/test reference to storybook/test - #34430, thanks @​venkat22022202!

  • React: Add optional React type peers to packages that publish React-based declarations - #34641, thanks @​copilot-swe-agent!

  • UI: Fix global background + color styles affecting stories - #34071, thanks @​Axadali!

          ### 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

Commit history:
  • b2167d Merge pull request #34725 from storybookjs/docs-publish-via-share-menu

    Docs: Add documentation for the publishing via the share menu

  • c7472c Format
  • ea0c18 Merge branch 'next' into docs-publish-via-share-menu

    • next: (100 commits)
      Address feedback
      Remove mention of ai setup command
      Address feedback
      Cli: set ai prompt to yes if yes flag for react-vite to tanstack migration
      Update React Native entry point tests to use dynamic app name and include LiteUI component
      Add '@​storybook/react-native-ui-lite' to React Native generator and template
      Update code/lib/create-storybook/templates/react-native/index.js
      Update AppRegistry component name in React Native template
      Remove extensive prompt option and related references from ai setup
      Fix: keep original onAllStatusChange timing behavior
      Update tests
      Remove duplicate index/refs update in onAllStatusChange handler
      Address CodeRabbit review feedback
      fix(manager-api): await recompute filter calls to refresh story list
      Ensure runId for ai-setup events is always at the root
      Apply suggestion from @​valentinpalkovic
      docs: add link
      chore: move tinyclip to devdeps
      Docs: Fixes for change detection
      Rework run deduplication logic for final telemetry
      ...
    • 0874b0 Merge pull request #34732 from storybookjs/docs-change-detection-fixes

    Docs: Fixes for change detection

  • 62dac1 Address feedback
  • 982a94 Merge branch 'next' into docs-change-detection-fixes

    • next: (49 commits)
      Remove mention of ai setup command
      Address feedback
      Cli: set ai prompt to yes if yes flag for react-vite to tanstack migration
      Update React Native entry point tests to use dynamic app name and include LiteUI component
      Add '@​storybook/react-native-ui-lite' to React Native generator and template
      Update code/lib/create-storybook/templates/react-native/index.js
      Update AppRegistry component name in React Native template
      Remove extensive prompt option and related references from ai setup
      Fix: keep original onAllStatusChange timing behavior
      Update tests
      Remove duplicate index/refs update in onAllStatusChange handler
      Address CodeRabbit review feedback
      fix(manager-api): await recompute filter calls to refresh story list
      Ensure runId for ai-setup events is always at the root
      docs: add link
      chore: move tinyclip to devdeps
      Rework run deduplication logic for final telemetry
      Tanstack: optimize react-store
      Docs tweaks
      feat: always log the prompt
      ...
    • c79db7 Merge pull request #34648 from storybookjs/docs-updates

    Docs: Improve agentic setup docs

  • 0ed2f8 Remove mention of ai setup command
  • 9e4521 Merge branch 'next' into docs-updates

    • next: (108 commits)
      Cli: set ai prompt to yes if yes flag for react-vite to tanstack migration
      Update React Native entry point tests to use dynamic app name and include LiteUI component
      Add '@​storybook/react-native-ui-lite' to React Native generator and template
      Update code/lib/create-storybook/templates/react-native/index.js
      Update AppRegistry component name in React Native template
      Remove extensive prompt option and related references from ai setup
      Fix: keep original onAllStatusChange timing behavior
      Update tests
      Remove duplicate index/refs update in onAllStatusChange handler
      Address CodeRabbit review feedback
      fix(manager-api): await recompute filter calls to refresh story list
      Ensure runId for ai-setup events is always at the root
      docs: add link
      chore: move tinyclip to devdeps
      Rework run deduplication logic for final telemetry
      Tanstack: optimize react-store
      Docs tweaks
      feat: always log the prompt
      Update JSDoc
      Fix ai checklist util mocks
      ...
    • 3d4924 Address feedback
    • 245043 Merge pull request #34743 from storybookjs/fix/tanstack_automigrate_ai

    Cli: Set ai prompt to yes if yes flag for react-vite to tanstack migration

  • 2a75bc Merge pull request #34742 from storybookjs/norbert/dynamic-appname-rn

    ReactNative: AppRegistry component name in template

  • 23a2c4 Cli: set ai prompt to yes if yes flag for react-vite to tanstack migration
  • 95d2f7 Merge branch 'next' into norbert/dynamic-appname-rn
  • 60561d Update React Native entry point tests to use dynamic app name and include LiteUI component

    Modified the tests for the React Native entry point generator to replace the hardcoded 'main' string with the app name imported from app.json. Additionally, integrated the LiteUI component from '@​storybook/react-native-ui-lite' as the CustomUIComponent, enhancing the Storybook setup for React Native applications.

  • debadc Merge branch 'norbert/dynamic-appname-rn' of github.com:storybookjs/storybook into norbert/dynamic-appname-rn
  • 308fa0 Add '@​storybook/react-native-ui-lite' to React Native generator and template

    Included the '@​storybook/react-native-ui-lite' package in the React Native generator and updated the template to use LiteUI as the CustomUIComponent. This enhances the Storybook setup for React Native applications by integrating the new UI component.

  • 801237 Update code/lib/create-storybook/templates/react-native/index.js

    Co-authored-by: Daniel Williams <dannyhyunsoowilliams@​gmail.com>

  • a835ed Merge pull request #34740 from storybookjs/yann/undo-extensive-flag

    CLI: Remove extensive prompt option

  • 3d0a41 Update AppRegistry component name in React Native template

    Replaced the hardcoded 'main' string with the app name imported from app.json for better flexibility and consistency in the AppRegistry registration. This change allows for easier customization of the component name in the Storybook setup.

  • 173a76 Merge pull request #34737 from storybookjs/claude/slack-session-qE8mz

    Sidebar: Fix clear filter button not refreshing story list

  • 179179 Remove extensive prompt option and related references from ai setup
  • 433de1 Merge pull request #34730 from storybookjs/sidnioulz/two-prompt-setup
  • ee6713 Fix: keep original onAllStatusChange timing behavior

    The internal onAllStatusChange callback needs to maintain its original timing
    behavior where recomputeStatusFilter() is not awaited. This is because the
    subsequent setIndex() call relies on specific timing to properly update the
    filtered index when statuses change.

    The user-facing filter API methods (setAllTagFilters, resetStatusFilters, etc.)
    still properly await the recompute calls, which fixes the original bug where
    the clear filter button didn't refresh the story list.

    https://claude.ai/code/session_013bx4ZM9Ugco86JAdvvfKBt

  • 708483 Update tests
  • f3dee0 Remove duplicate index/refs update in onAllStatusChange handler

    Since experimental_setFilter (called by recomputeStatusFilter) already
    re-applies the index and updates refs, the additional setIndex and refs
    loop after await recomputeStatusFilter() was redundant.

    https://claude.ai/code/session_013bx4ZM9Ugco86JAdvvfKBt

  • aa020c Address CodeRabbit review feedback

    • Fix missed call site: await recomputeStatusFilter() in onAllStatusChange handler
    • Update SubAPI interface: return types changed from void to Promise for all
      8 filter methods to properly indicate they are awaitable

    https://claude.ai/code/session_013bx4ZM9Ugco86JAdvvfKBt

  • 38a009 fix(manager-api): await recompute filter calls to refresh story list

    The clear filter button in the sidebar was not refreshing the story list
    because the recompute functions were not being awaited. This caused a race
    condition where the API methods would return before the filtered index was
    updated.

    The fix ensures all filter API methods (setAllTagFilters, resetTagFilters,
    addTagFilters, removeTagFilters, resetStatusFilters, setAllStatusFilters,
    addStatusFilters, removeStatusFilters) properly await the recompute calls,
    which in turn return the promise from experimental_setFilter.

    https://claude.ai/code/session_013bx4ZM9Ugco86JAdvvfKBt

  • 228542 Merge pull request #34718 from storybookjs/feat/tanstack_automigrate

    CLI: Add react-vite to tanstack-react automigration

  • 035fd1 Ensure runId for ai-setup events is always at the root

@michijs

michijs Bot commented May 11, 2026

Copy link
Copy Markdown
Contributor Author

Bump @​michijs/storybook-utils from 8.4.7 to 8.4.8

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

New Contributors

Full Changelog: https://github.com/michijs/storybook-utils/compare/v8.4.7...8.4.8

        ### v8.4.8-beta.8Automatic release


        ### v8.4.8-beta.7Automatic release


        ### v8.4.8-beta.6Automatic release


        ### v8.4.8-beta.5Automatic release


        ### v8.4.8-beta.4Automatic release


        ### v8.4.8-beta.3Automatic release


        ### v8.4.8-beta.2Automatic release


        ### v8.4.8-beta.1Automatic release


        ### v8.4.8-beta.0Automatic release


        ### v8.4.7Bump dependencies
Commit history:

@michijs michijs Bot closed this May 18, 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