This release includes 1 security fix for security teams reviewing exposed deployments.
Topics
+14 more
ReleasePort's take
Moderate signalStorybook 10.4.0 adds AI-assisted setup, git-aware sidebar filtering for review workflows, and a TanStack React framework. Agentic Setup removes the extensive-prompt option; teams with custom prompts must validate before upgrading.
Why it matters: Agentic Setup users must test custom-prompt workflows before deploying. Startup performance gains and git-aware review filtering accelerate component review and story triage for all teams.
Summary
AI summaryAI‑assisted Storybook setup workflow and change‑aware review tools are introduced.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Security | Medium |
Ensure serialize-javascript is at latest version to mitigate vulnerabilities Ensure serialize-javascript is at latest version to mitigate vulnerabilities Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Breaking | Medium |
Remove extensive prompt option from Agentic Setup workflow Remove extensive prompt option from Agentic Setup workflow Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Feature | Medium |
AI-assisted Storybook setup and onboarding workflow introduced AI-assisted Storybook setup and onboarding workflow introduced Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Feature | Medium |
Sidebar filtering to highlight new, modified, and related stories based on git changes Sidebar filtering to highlight new, modified, and related stories based on git changes Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Feature | Medium |
Status filtering, URL-persisted filters, and clearer review signals in the sidebar Status filtering, URL-persisted filters, and clearer review signals in the sidebar Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Feature | Medium |
New @storybook/tanstack-react framework with routing and server function support New @storybook/tanstack-react framework with routing and server function support Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Feature | Medium |
Zero config React Native project initialization Zero config React Native project initialization Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Feature | Medium |
Add ChangeDetectionService and wire up builder-vite for git change detection Add ChangeDetectionService and wire up builder-vite for git change detection Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Feature | Medium |
Faster, more accurate component docgen powered by TypeScript Language Server (React MCP) Faster, more accurate component docgen powered by TypeScript Language Server (React MCP) Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Feature | Medium |
Easily publish and share local Storybook with teammates via Chromatic Easily publish and share local Storybook with teammates via Chromatic Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Feature | Medium |
Improve React MCP component docgen using TypeScript Language Server for speed and accuracy Improve React MCP component docgen using TypeScript Language Server for speed and accuracy Source: granite4.1:30b@2026-05-22-audit Confidence: low |
— |
| Feature | Low |
Enable easy publishing and sharing of local Storybook via Chromatic Enable easy publishing and sharing of local Storybook via Chromatic Source: granite4.1:30b@2026-05-22-audit Confidence: low |
— |
| Performance | Medium |
Improve startup performance by deferring change detection initialization Improve startup performance by deferring change detection initialization Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Bugfix | Medium |
Fix state mutation and keep newest actions when limit reached (Actions) Fix state mutation and keep newest actions when limit reached (Actions) Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Bugfix | Medium |
Avoid rerendering static Source blocks (Addon-Docs) Avoid rerendering static Source blocks (Addon-Docs) Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Bugfix | Medium |
Use Vitest's provide-API for injecting values (Addon-Vitest) Use Vitest's provide-API for injecting values (Addon-Vitest) Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Refactor | Medium |
Extract shared PseudoStateGrid component in pseudo-states stories Extract shared PseudoStateGrid component in pseudo-states stories Source: llm_adapter@2026-05-21 Confidence: low |
— |
Full changelog
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
- 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!
Security Fixes
- Dependency upgrade – `serialize-javascript` pinned to the latest version (CVE mitigation)
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About storybook
Storybook is the industry standard workshop for building, documenting, and testing UI components in isolation
Beta — feedback welcome: [email protected]