10.4.0
AI-assisted setup, change-aware review, and stronger framework support
Storybook 10.4 contains hundreds of fixes and improvements including:
- π€ Agentic Setup: New CLI workflow for AI-assisted Storybook setup and onboarding
- π Change review: Sidebar filtering to highlight new, modified, and related stories based on git changes
- π§ Sidebar review tools: Status filtering, URL-persisted filters, and clearer review signals in the sidebar
- βοΈ TanStack React: New `@storybook/tanstack-react` framework with routing and server function support
- π§© React MCP: Faster, more accurate component docgen powered by the TypeScript Language Server
- π± React Native: Zero config RN project initialization
- π€ Sharing: Easily publish and share your local Storybook with teammates, powered by Chromatic
List of all updates
- A11y: Add aria-live announcements via @react-aria/live-announcer - #33970, thanks @copilot-swe-agent!
- A11y: Improve boolean control contrast in forced colors mode - #34204, thanks @anchmelev!
- Actions: Fix state mutation and keep newest actions when limit reached - #34286, thanks @Sidnioulz!
- Addon-Docs: Add Reset story button to re-render stories in docs - #34086, thanks @6810779s!
- Addon-Docs: Avoid rerendering static Source blocks - #34206, thanks @anchmelev!
- Addon-Vitest: Use Vitest's provide-API for injecting values - #34518, thanks @JReinhold!
- Agentic Setup: Add --extensive for an extra prompt - #34730, thanks @Sidnioulz!
- Agentic Setup: Allow failed stories to persist - #34717, thanks @Sidnioulz!
- Agentic Setup: Keep sample content if users want onboarding - #34704, thanks @Sidnioulz!
- Agentic Setup: Rework ai-init-opt-in logic - #34739, thanks @Sidnioulz!
- Angular: Use Story ID for renderer IDs (including standalone stories) - #33982, thanks @ValentinFunk!
- Automigration: Move RN on-device addons to `deviceAddons` - #34659, thanks @ndelangen!
- Builder-Vite: Add onModuleGraphChange method - #34323, thanks @ghengeveld!
- CLI: Add automigrate check for 'storybook' package name conflict - #34290, thanks @whdjh!
- CLI: Add react-vite to tanstack-react automigration - #34718, thanks @huang-julien!
- CLI: Change mock event detection - #34586, thanks @yannbf!
- CLI: Explicitly tell whether smoke tests passed or failed - #34419, thanks @Sidnioulz!
- CLI: Fix Next.js Vite automigration corrupting configs already using `@storybook/nextjs-vite` - #34249, thanks @nathanjessen!
- CLI: Fix agentic check - #34678, thanks @yannbf!
- CLI: Handle minimumReleaseAge conflicts across package managers - #34769, thanks @JReinhold!
- CLI: Improve package incompatibility detection and warning - #34559, thanks @copilot-swe-agent!
- CLI: Improve self-healing scoring observability - #34699, thanks @yannbf!
- CLI: Introduce Agentic Setup workflow - #34297, thanks @yannbf!
- CLI: Remove extensive prompt option - #34740, thanks @yannbf!
- CLI: Streamline Node.js version detection code - #34440, thanks @Sidnioulz!
- Change-Detection: Set GIT_OPTIONAL_LOCKS=0 to avoid blocking commits - #34726, thanks @valentinpalkovic!
- Cli: Set ai prompt to yes if yes flag for react-vite to tanstack migration - #34743, thanks @huang-julien!
- Code: Fix inline code blocks inside links removing link affordance - #33903, thanks @yatishgoel!
- Controls: Add maxPresetColors option to ColorControl - #33998, thanks @mixelburg!
- Core: Add `ChangeDetectionService` and wire up builder-vite - #34369, thanks @ghengeveld!
- Core: Add changeDetection feature flag - #34314, thanks @valentinpalkovic!
- Core: Barrel-aware named import resolution for change detection - #34675, thanks @valentinpalkovic!
- Core: Ensure process termination on SIGINT when telemetry is disabled - #34585, thanks @ghengeveld!
- Core: Fix "Open In Editor" support for VSCode - #34747, thanks @JReinhold!
- Core: Fix telemetry not handling canceling of prompts - #34680, thanks @JReinhold!
- Core: Implement Git change detection - #34420, thanks @ghengeveld!
- 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!
- Core: Quiet change-detection regex warning and swap clear icon - #34758, thanks @valentinpalkovic!
- Core: Rename preview.ts to preview.tsx in generated projects - #34396, thanks @Sidnioulz!
- Core: Show "new" status on newly added individual stories - #34504, thanks @ghengeveld!
- Dependencies: Update `vite-plugin-storybook-nextjs` to ^3.2.4 - #34280, thanks @k35o!
- Docs: Ensure unique control id attributes across multiple Controls blocks - #34021, thanks @TheSeydiCharyyev!
- Fix ArgsTable borders not visible in Windows High Contrast Mode - #34264, thanks @TheSeydiCharyyev!
- Fix: Add vite-plus vendored libraries version detection - #34509, thanks @huang-julien!
- MDX: Replace `@storybook/docs-mdx` with inline implementation - #34611, thanks @copilot-swe-agent!
- Maintenance: Add assertions outside step incorrectly nested in interactions panel - #34296, thanks @majiayu000!
- Maintenance: Enhance ghost stories internal tests - #34707, thanks @yannbf!
- Maintenance: Extract getBuilderOptions helper across framewo⦠- #34260, thanks @alex-js-ltd!
- Maintenance: Extract parseFilterParam shared helper from tags and statuses modules - #34436, thanks @mixelburg!
- Maintenance: Fix self healing payload - #34782, thanks @yannbf!
- Maintenance: Remove dead-code copy of wrap-getAbsolutePath-utils - #34168, thanks @mixelburg!
- Maintenance: Use errorToErrorLike in boot-test-runner for consistent stack deduplication - #34385, thanks @mixelburg!
- Manager: URL-based tag filter state + filter-aware initial story selection - #34283, thanks @valentinpalkovic!
- Nextjs: Handle node builtin webpack imports - #34494, thanks @JReinhold!
- Onboarding: Fix checklist MDX instructions - #33193, thanks @kylegach!
- Prompt: Run vitest fewer times, improve play functions - #34651, thanks @yannbf!
- React-Docgen: Add tsconfig fallback chain and warning for monorepos - #34353, thanks @viditkbhatnagar!
- React: Add component metadata extraction via Volar-style LanguageService - #33914, thanks @kasperpeulen!
- React: Add subcomponents to component manifests - #34428, thanks @kasperpeulen!
- ReactNative: Add Metro config AST codemod for init - #34660, thanks @ndelangen!
- ReactNative: Add true entrypoint generation - #34663, thanks @ndelangen!
- ReactNative: AppRegistry component name in template - #34742, thanks @ndelangen!
- ReactNative: New init setup - #34665, thanks @ndelangen!
- Refactor: Extract shared `PseudoStateGrid` component in pseudo-states stories - #34334, thanks @copilot-swe-agent!
- Security: Makes sure `serialize-javascript` is at latest version - #34034, thanks @50bbx!
- Sidebar: Add dual-slot status icons for change detection and test results - #34346, thanks @valentinpalkovic!
- Sidebar: Add status-based filtering with refactored status architecture - #34339, thanks @valentinpalkovic!
- Sidebar: Fix clear filter button not refreshing story list - #34737, thanks @valentinpalkovic!
- Sidebar: Fix clear status button to only clear test statuses - #34478, thanks @valentinpalkovic!
- Sidebar: Show same status icon at story and group level - #34702, thanks @valentinpalkovic!
- Sidebar: Soften change-detection signals + add Review CTA - #34701, thanks @valentinpalkovic!
- StatusValue: Add 'status-value:<new|modified|affected>' - #34305, thanks @valentinpalkovic!
- Svelte: Fix Vite 8 + Vitest breaking rolldown deps scanner - #34783, thanks @JReinhold!
- Tanstack: Add `@storybook/tanstack-react` package - #34403, thanks @huang-julien!
- Tanstack: Optimize tanstack react-store - #34731, thanks @huang-julien!
- Tanstack: Treeshake top-level unused functions - #34760, thanks @huang-julien!
- Telemetry: Add sidebar filter telemetry for change detection - #34533, thanks @valentinpalkovic!
- Telemetry: Centralize disable logic with module-level flag - #34485, thanks @valentinpalkovic!
- Telemetry: Fix delayed init events - #34670, thanks @JReinhold!
- Telemetry: Refactor init tracking - #34629, thanks @Programer1804!
- UI: Add Share section to onboarding checklist and redesign share tool - #34413, thanks @valentinpalkovic!
- UI: Ensure Controls panel can scroll horizontally for now - #34248, thanks @Sidnioulz!
- UI: Fix global shortcuts not showing region focus indicator - #34201, thanks @Sidnioulz!
- UI: Fix mobile navigation when renderLabel returns a React node - #34262, thanks @Nathan54Villaume!
- UI: Fix showing and hiding copy prompt in the correct scenarios - #34706, thanks @yannbf!
- UI: Improve interactions panel accessibility - #34110, thanks @anchmelev!
- Vite: Use vite hook filter for performance improvements - #34022, thanks @huang-julien!
- Vitest: Fix agent detection breaking runs - #34681, thanks @JReinhold!
- Vue3: Clear stale args/globals when nextArgs is empty in updateArgs - #34409, thanks @whdjh!