Skip to content

Release: Prerelease 10.6.0-beta.2 - #36113

Merged
ghengeveld merged 79 commits into
next-releasefrom
version-non-patch-from-10.6.0-beta.1
Sep 1, 2026
Merged

ghengeveld merged 79 commits into
next-releasefrom
version-non-patch-from-10.6.0-beta.1

Conversation

@github-actions

@github-actions github-actions Bot commented Sep 1, 2026 •

Copy link
Copy Markdown
Contributor

This is an automated pull request that bumps the version from `10.6.0-beta.1` to `10.6.0-beta.2`.
Once this pull request is merged, it will trigger a new release of version `10.6.0-beta.2`.
If you're not a core maintainer with permissions to release you can ignore this pull request.

To do

Before merging the PR, there are a few QA steps to go through:

  • Add the "freeze" label to this PR, to ensure it doesn't get automatically forced pushed by new changes.
  • Add the "ci:daily" label to this PR, to trigger the full test suite to run on this PR.

And for each change below:

  1. Ensure the change is appropriate for the version bump. E.g. patch release should only contain patches, not new or de-stabilizing features. If a change is not appropriate, revert the PR.
  2. Ensure the PR is labeled correctly with one of: "BREAKING CHANGE", "feature request", "bug", "maintenance", "dependencies", "documentation", "build", "unknown".
  3. Ensure the PR title is correct, and follows the format "[Area]: [Summary]", e.g. "React: Fix hooks in CSF3 render functions". If it is not correct, change the title in the PR.
    • Areas include: React, Vue, Core, Docs, Controls, etc.
    • First word of summary indicates the type: “Add”, “Fix”, “Upgrade”, etc.
    • The entire title should fit on a line

This is a list of all the PRs merged and commits pushed directly to `next`, that will be part of this release:

  • 🔧 Maintenance: CLI: Align `storybook skills` with `storybook tools` shape #36121
  • 🐛 Bug: Addon-vitest: Filter Storybook instrumentation from reported stack traces #36120
  • 🐛 Bug: Angular: Declare style preprocessors as optional peers and name the missing one #36098
  • 🐛 Bug: CLI: Match Storybook instances across Windows drive-letter case #36108
  • 🐛 Bug: CLI: Silence auto-mode fallback when no Storybook is running #36092
  • ✨ Feature Request: Tools: Accept a story ID in `docs show-story` as an alternative to componentId + storyName #36104
  • 🐛 Bug: CLI: Fix stories changed hanging on attach #36093
  • 🐛 Bug: Addon Vitest: Resolve story test globs against the project root #36103
  • 🐛 Bug: Tools: Flush remote-command ack before the handler's fan-out starts #36100
  • 🐛 Bug: Manager: Fix sidebar scroll on iOS Safari #35117
  • 🐛 Bug: UI: Fix missing whitespace in search result breadcrumb #36067
  • 🐛 Bug: Tanstack: Use dependency chain for deps optimization #36101
  • 🐛 Bug: Core: Fix module resolution for packages with conditional-only exports maps #36090
  • 🔧 Maintenance: CLI: Label the tools help `Output` block as the `--json` shape #36089
  • 🐛 Bug: Core: Always show warning in story-docs if available #36079
  • 🔧 Maintenance: Telemetry: Track StyleX as a styling package #36091
  • 📝 Documentation: Docs: Remove duplicate addonDocs import used in autodocs documentation #36056
  • 🏗️ Build: Core: Make unit tests path-safe on Windows #36086

If you've made any changes doing the above QA (change PR titles, revert PRs), manually trigger a re-generation of this PR with this workflow and wait for it to finish. It will wipe your progress in this to do, which is expected.

Feel free to manually commit any changes necessary to this branch after you've done the last re-generation, following the Make Manual Changes section in the docs, especially if you're making changes to the changelog.

When everything above is done:


Generated changelog

10.6.0-beta.2

  • Addon Vitest: Resolve story test globs against the project root - #36103, thanks kasperpeulen!
  • Addon-vitest: Filter Storybook instrumentation from reported stack traces - #36120, thanks ghengeveld!
  • Angular: Declare style preprocessors as optional peers and name the missing one - #36098, thanks valentinpalkovic!
  • CLI: Align `storybook skills` with `storybook tools` shape - #36121, thanks ghengeveld!
  • CLI: Fix stories changed hanging on attach - #36093, thanks JReinhold!
  • CLI: Label the tools help `Output` block as the `--json` shape - #36089, thanks kasperpeulen!
  • CLI: Match Storybook instances across Windows drive-letter case - #36108, thanks JReinhold!
  • CLI: Silence auto-mode fallback when no Storybook is running - #36092, thanks JReinhold!
  • Core: Always show warning in story-docs if available - #36079, thanks huang-julien!
  • Core: Fix module resolution for packages with conditional-only exports maps - #36090, thanks kasperpeulen!
  • Manager: Fix sidebar scroll on iOS Safari - #35117, thanks ayerhs0904!
  • Tanstack: Use dependency chain for deps optimization - #36101, thanks huang-julien!
  • Telemetry: Track StyleX as a styling package - #36091, thanks valentinpalkovic!
  • Tools: Accept a story ID in `docs show-story` as an alternative to componentId + storyName - #36104, thanks kasperpeulen!
  • Tools: Flush remote-command ack before the handler's fan-out starts - #36100, thanks kasperpeulen!
  • UI: Fix missing whitespace in search result breadcrumb - #36067, thanks kroeder!

ayerhs0904 and others added 30 commits June 16, 2026 15:07
The mobile sidebar and addon panel are bottom-drawer Modals, which
react-aria portals to document.body. With `position: absolute` and no
positioned ancestor, the drawer resolved against the initial containing
block — the layout viewport, which on mobile Safari extends underneath the
retractable browser toolbars. Its bottom edge landed below the toolbar, and
because the layout container is `overflow: hidden` the page could never
scroll to expose it, so the sidebar's scroll area reached its end with the
last stretch permanently out of view.

Position the drawer `fixed` so it resolves against the visual viewport, and
size the drawers in `dvh`, since `vh` resolves to the large viewport on iOS.

This replaces the earlier approach on this branch. Restore the scroll area
root and tree leaf wrapper, whose `overflow: hidden` clips sidebar content
and tree node labels, and drop `-webkit-overflow-scrolling`, a no-op since
iOS 13.
Removed duplicate import statement for addonDocs in the preview configuration.
The path separator in search results is rendered via a `::before`
pseudo-element with `content: "' / '"`. Because `Path` is a grid
container, each segment span is a grid item and therefore blockified,
so the leading space is stripped as leading whitespace on the first
line box. Breadcrumbs rendered as `Example/ Path/ To/ Button`.

Set `whiteSpace: 'pre'` on the separator so its spaces are preserved.
CircleCI tests-unit--windows failed because three files assumed POSIX paths:
file URLs without a drive letter, node:path join in expected addon entries,
and hardcoded slashes when stubbing next.config lookup.

Co-authored-by: Jeppe Reinhold <JReinhold@users.noreply.github.com>
The help's `Output:` block is generated from a method's declared output
schema, so it documents `data` — what `--json` prints — while stdout
defaults to the rendered markdown. Nothing said so, so a tool whose two
renderings differ widely (stories preview: three fields vs one bare URL)
read as broken.

The heading now names the flag, which is what carries the qualification
into the per-method view where no notes block exists. The root help gains
one line pointing at those blocks. The `renderToolsHelp` docblock no
longer claims the Options block is the flags' only documentation.

Closes #36087
oxc-resolver matches exports maps against conditionNames and defaults to
none, so packages whose exports carry only conditional entries (e.g.
@stylexjs/stylex with types/import/require and no default) became
unresolvable when 72e6893 replaced the exports-map-ignoring `resolve`
package. That silently killed react-docgen for any component importing
such a package, dropping its props from the component manifest and making
the docs formatter dump all stories instead of truncating to three.

createModuleResolver now defaults to the browser build's resolve
conditions trimmed to what oxc-resolver understands, shared with the
module-graph resolver's previously duplicated list.
Adds `@stylexjs/*` to `STYLING_PACKAGES`, so StyleX shows up in the
`stylingPackages` telemetry group next to Tailwind, Emotion and
styled-components.

The same list feeds `categorize-render-errors`, so preview render errors
originating from StyleX are now bucketed as styling-related.
…nit-tests-a370

Core: Make unit tests path-safe on Windows
Telemetry: Track StyleX as a styling package
Auto mode is supposed to attach when a server is up and load locally
otherwise. A missing instance is that expected path, so do not print
start-server / --attach instructions as if something went wrong.
The attach path waited on a process-local change-detection readiness
deferred that only the instance scanner resolves. Route that check
through a delegated module-graph command so the caller returns.
Commands name an action. Align the attach readiness command with
_waitForSettledEngine instead of a getX getter.
Drop the duplicated union on the module-graph server options and use
the command output schema's InferOutput instead.
stories.changed now awaits the module-graph changeDetectionReadiness
query. Its load hook calls _waitForChangeDetectionReadiness, so attach
and local share one path and the delegated-mode branch is gone.
…-arning

Core: Always show warning in story-docs if available
An Angular project gets `sass` as a dependency of `@angular/build`, and npm
is free to leave that copy under `node_modules/@angular/build/node_modules`.
Vite's `loadPreprocessorPath` only searches from the Vite root upwards, so it
never sees it, and every SCSS-styled component 500s.

The message the user got was wrong on top of that: `loadSassPackage` tries
`sass-embedded` first and rethrows *its* error, so a project that needs `sass`
was told to install `sass-embedded`.

A pre-enforced plugin now asks the same question from the same directory Vite
does, before `vite:css` runs, and fails with the package to install. `sass` and
`less` are declared as optional peers so the contract is visible in the
manifest.
The eight tests for the check all built the plugin directly, so deleting
`enforce: 'pre'` or dropping the plugin from `viteFinal` left the suite green
while the user saw Vite's original `sass-embedded` message again. Ordering and
registration are the whole feature; two tests now hold them.

Also declare `sass-embedded` as an optional peer, since the check accepts it and
the error message offers it, and drop a `return;` the guard above already covers.
Yarn Berry stores a workspace package's peerDependencies and
peerDependenciesMeta in yarn.lock, so declaring the sass, sass-embedded
and less peers made 'yarn install --immutable' fail with YN0028.
…tigation-bf92be

CLI: Label the tools help `Output` block as the `--json` shape
JReinhold and others added 6 commits September 1, 2026 12:59
Keep resolve.test.ts focused on instance matching; cover drive-letter equality in project-path.test.ts so both Linux CI and native Windows can assert win32 rules.
Windows and POSIX path identity is an implementation of node:path, so tests spy that module. The helper no-ops when the host already is that platform so posix.resolve does not recurse.

Co-authored-by: Cursor <cursoragent@cursor.com>
A `.scss?raw` import is read as an asset and never handed to a
preprocessor, so aborting the build for a missing one refused a project
that compiles.
…ed-attach-hang-d6c0

CLI: Fix stories changed hanging on attach
…02-aacf61

Tools: Accept a story ID in `docs show-story` as an alternative to componentId + storyName
…uto-fallback-d0c7

CLI: Silence auto-mode fallback when no Storybook is running
@storybook-bot
storybook-bot force-pushed the version-non-patch-from-10.6.0-beta.1 branch from 698fec1 to 85a9237 Compare September 1, 2026 11:25
…er-instance-match

CLI: Match Storybook instances across Windows drive-letter case
@storybook-bot
storybook-bot force-pushed the version-non-patch-from-10.6.0-beta.1 branch from 85a9237 to d481e50 Compare September 1, 2026 11:44
…sass

Angular: Declare style preprocessors as optional peers and name the missing one
@storybook-bot
storybook-bot force-pushed the version-non-patch-from-10.6.0-beta.1 branch from d481e50 to fc7009d Compare September 1, 2026 13:14
ghengeveld and others added 7 commits September 1, 2026 16:07
…aces

Instrumented expect/userEvent calls put a handful of Storybook wrapper frames
between the failing assertion and the story, which Vitest then reports and uses
for its code excerpt. Register those bundles with Vitest's onStackTrace hook so
they are dropped while parsing, and build the component test status description
from the source-mapped frames instead of the raw browser stack, so MCP and the
tools CLI report file paths rather than Vite dev-server URLs.
skills help <id> was Commander's built-in help, not a skill lookup. Print a
skill with skills <id> and describe it with skills <id> --help.
The CLI still accepts skills <id>, but plugin stubs, skill cross-refs, init
outro, and help copy stay on the get spelling.
skills help <id> was Commander help, not a skill lookup. Leave list/get,
-h, and advertised get <id> copy as they were.
skills help <id> was Commander's built-in help, not a skill lookup. The
catalog now answers skills -h, skills <id> prints the document, and
skills <id> -h reuses the catalog blurb. get <id> and list still work,
and remain what the plugin stubs tell agents to run.
…ntation-stack-frames

Addon-vitest: Filter Storybook instrumentation from reported stack traces
@storybook-bot
storybook-bot force-pushed the version-non-patch-from-10.6.0-beta.1 branch from fc7009d to 53d2988 Compare September 1, 2026 18:38
@storybook-bot
storybook-bot force-pushed the version-non-patch-from-10.6.0-beta.1 branch from 53d2988 to 4cf5375 Compare September 1, 2026 21:29
@ghengeveld ghengeveld added ci:daily Run the CI jobs that normally run in the daily job. freeze Freeze the Release PR with this label labels Sep 1, 2026
@storybook-app-bot

Copy link
Copy Markdown
Contributor

Package Benchmarks

Commit: 4cf5375, ran on 1 September 2026 at 21:58:18 UTC

The following packages have significant changes to their size or dependencies:

@storybook/builder-webpack5

Before After Difference
Dependency count 182 182 0
Self size 92 KB 92 KB 🎉 -48 B 🎉
Dependency size 37.46 MB 37.49 MB 🚨 +25 KB 🚨
Bundle Size Analyzer Link Link

storybook

Before After Difference
Dependency count 73 73 0
Self size 22.05 MB 22.17 MB 🚨 +119 KB 🚨
Dependency size 31.21 MB 31.21 MB 0 B
Bundle Size Analyzer Link Link

@storybook/ember

Before After Difference
Dependency count 181 181 0
Self size 13 KB 13 KB 🎉 -18 B 🎉
Dependency size 32.82 MB 32.85 MB 🚨 +25 KB 🚨
Bundle Size Analyzer Link Link

@storybook/nextjs

Before After Difference
Dependency count 536 536 0
Self size 642 KB 642 KB 0 B
Dependency size 64.75 MB 64.78 MB 🚨 +25 KB 🚨
Bundle Size Analyzer Link Link

@storybook/react-webpack5

Before After Difference
Dependency count 268 268 0
Self size 23 KB 23 KB 0 B
Dependency size 49.91 MB 49.94 MB 🚨 +25 KB 🚨
Bundle Size Analyzer Link Link

@storybook/server-webpack5

Before After Difference
Dependency count 194 194 0
Self size 15 KB 15 KB 0 B
Dependency size 38.74 MB 38.76 MB 🚨 +25 KB 🚨
Bundle Size Analyzer Link Link

@storybook/cli

Before After Difference
Dependency count 205 205 0
Self size 869 KB 869 KB 🚨 +84 B 🚨
Dependency size 87.63 MB 87.75 MB 🚨 +119 KB 🚨
Bundle Size Analyzer Link Link

@storybook/codemod

Before After Difference
Dependency count 198 198 0
Self size 44 KB 44 KB 0 B
Dependency size 86.09 MB 86.21 MB 🚨 +119 KB 🚨
Bundle Size Analyzer Link Link

create-storybook

Before After Difference
Dependency count 74 74 0
Self size 1.09 MB 1.09 MB 0 B
Dependency size 53.26 MB 53.38 MB 🚨 +119 KB 🚨
Bundle Size Analyzer node node

@storybook/preset-react-webpack

Before After Difference
Dependency count 157 157 0
Self size 18 KB 18 KB 0 B
Dependency size 34.42 MB 34.45 MB 🚨 +25 KB 🚨
Bundle Size Analyzer Link Link

@ghengeveld
ghengeveld merged commit 4d9abf3 into next-release Sep 1, 2026
299 of 303 checks passed
@ghengeveld
ghengeveld deleted the version-non-patch-from-10.6.0-beta.1 branch September 1, 2026 22:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci:daily Run the CI jobs that normally run in the daily job. freeze Freeze the Release PR with this label release For PRs that trigger new releases. Automated

Projects

None yet

Development

Successfully merging this pull request may close these issues.