Skip to content

[master] Michijs Dependabot changes#113

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

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

Conversation

@michijs

michijs Bot commented Apr 27, 2026

Copy link
Copy Markdown
Contributor Author

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

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

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

        ### 0.8.28## What's Changed

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

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


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


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


        ### 0.8.17## What's Changed

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

        ### 0.8.16## What's Changed

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

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


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

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

        ### 0.8.13## What's Changed

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

        ### 0.8.12## What's Changed

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

        ### 0.8.11## What's Changed

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

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


        ### 0.8.9## What's Changed

New Contributors

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

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


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


        ### v0.8.8Automatic release


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


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


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


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


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


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


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


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


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


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


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


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


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

@michijs

michijs Bot commented Apr 27, 2026

Copy link
Copy Markdown
Contributor Author

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

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

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

        ### 0.0.36## What's Changed

New Contributors

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

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


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


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


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


        ### 0.0.30## What's Changed

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

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


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


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


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


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


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

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

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

    What is the purpose of this pull request?

    Screenshots or example usage

    Types of changes

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

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

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

    What is the purpose of this pull request?

    Screenshots or example usage

    Types of changes

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

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

  • 3c3aca chore: Release v0.0.37

@michijs

michijs Bot commented Apr 27, 2026

Copy link
Copy Markdown
Contributor Author

Bump typescript from 5.9.2 to 6.0.3

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

Downloads are available on:

Downloads are available on:

  • npm

          ### v5.9.3Note: this tag was recreated to point at the correct commit. The npm package contained the correct content.
    

For release notes, check out the release announcement

Downloads are available on:

  • npm

          ### v5.9.2Note: this tag was recreated to point at the correct commit. The npm package contained the correct content.
    

For release notes, check out the release announcement

Downloads are available on:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@michijs

michijs Bot commented Apr 27, 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:
  • 1925d7 fix(server): add kJSTypeBigInt to JSC C API JSType enum (#29758)

    What does this PR do?

    server.fetch() panicked with index out of bounds: index 7, len 7
    (debug) or segfaulted (release) when passed a BigInt argument.

    The Zig binding for the JavaScriptCore C API JSType enum was missing
    the kJSTypeBigInt variant. JSValueGetType can return this value, and
    the result is used as an index into an EnumArray of error messages in
    onFetch. When a BigInt was passed, the index (7) was out of bounds for
    the 7-element array.

    Repro

    const server = Bun.serve({ port: 0, fetch: () => new Response("ok") });
    server.fetch(1n);

    Fix

    • Add kJSTypeBigInt to the JSType enum in
      javascript_core_c_api.zig to match JSValueRef.h
    • Add the corresponding entries to fetch_type_error_names /
      fetch_type_error_string_values / fetch_type_error_strings

    Now rejects with TypeError: fetch() expects a string, but received BigInt instead of crashing.

    How did you verify your code works?

    Added a regression test in test/js/bun/http/bun-server.test.ts
    covering BigInt, Symbol, Boolean, and Number arguments. Verified it
    crashes on main and passes with this fix.


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

  • 9a6bf8 build: drop top-level await from fetch-cli.ts (#29771)

    fetch-cli.ts is imported by source.ts/zig.ts as a library (for
    fetchCliPath) and also runs as a CLI. The guarded await main() marks
    the module HasTLA, which forces every importer — and the
    {config,webkit,flags,source} cycle — onto the spec's async-evaluation
    path for code that's dead on import. Replace with main().catch(...) so
    the module stays sync when imported.

    This is the immediate trigger for the ReferenceError: Cannot access 'webkit' before initialization crash a freshly-built bun hits running
    scripts/build.ts, which several open farm/* branches (#29725,
    #29731, #29733, #29749, #29756, #28512) each work around by relocating
    WEBKIT_VERSION. Supersedes the scripts/build/ portions of those.

    The underlying loader regression (the depWasAlreadyEvaluatingAsync
    skip in innerModuleEvaluation over-firing for sibling static imports)
    is fixed in innerModuleEvaluation: only skip async-dep wait when cycle root has executed oven-sh/WebKit#202; tests + WEBKIT_VERSION bump are in
    #29770. This change is independently correct and lands first so the farm
    stops thrashing.

    Verified: build/debug/bun-debug scripts/build.ts --help (was crashing,
    now works), fetch-cli.ts CLI usage and BuildError/non-BuildError exit
    codes unchanged.

  • f19819 http2: heap-allocate Stream so *Stream survives map rehash during re-entrant JS (#29765)

    What does this PR do?

    H2FrameParser.streams stored Stream by value in a
    bun.U32HashMap. Any *Stream obtained from getPtr /
    getEntry().value_ptr / valueIterator() pointed into the map's
    backing storage and dangled whenever a re-entrant JS callback (an
    options getter, a write callback, a forEachStream callback,
    onStreamStart) called session.request() and triggered a rehash.
    Under ASAN this surfaces as heap-use-after-free at several distinct call
    sites.

    This changes the map to bun.U32HashMap(*Stream) with Stream
    heap-allocated via bun.TrivialNew in handleReceivedStreamID and
    freed in H2FrameParser.deinit. *Stream is now stable for the
    lifetime of the parser regardless of map growth, which fixes every
    current and future call site that holds a *Stream across a JS
    dispatch.

    Streams are never individually removed from the map today
    (freeResources() clears resources in place but the entry remains until
    parser deinit), so no ref-counting is required — the parser is already
    ref-counted and owns the streams for its full lifetime. Reclaiming
    closed-stream entries is a pre-existing concern unchanged by this PR and
    will be addressed separately.

    forEachStream and detachFromJS additionally switch from
    valueIterator() to StreamResumableIterator since they call into JS
    while walking buckets; the bucket walk itself can still be invalidated
    by rehash even though the values it yields are now stable.

    How did you verify your code works?

    test/js/node/http2/node-http2-streams-rehash.test.ts covers the three
    known repros (forEachStream timeout listener, request() options getter,
    flushQueue write callback). All three trip ASAN heap-use-after-free on a
    debug build of main and pass with this change. The existing 245-test
    node-http2.test.js suite continues to pass.

    Closes #29754
    Closes #29756
    Closes #29759

  • 35825a Fix abort in structuredClone with ArrayBuffer >= 2GiB (#29764)

    What

    structuredClone() (and bun:jsc serialize()) aborted the process
    when serializing an ArrayBuffer, SharedArrayBuffer,
    resizable/growable variant, or typed array view whose backing buffer was
    ~2GiB or larger.

    structuredClone(new ArrayBuffer(2 ** 31)); // SIGABRT

    Why

    The structured-clone serialization buffer is a WTF::Vector<uint8_t>,
    whose capacity is capped at UINT32_MAX >> 1 (2GiB - 1). Writing the
    raw bytes of a large ArrayBuffer into it via Vector::append pushes
    the total size past that cap, and append uses FailureAction::Crash,
    so allocateBuffer hits CRASH().

    Fix

    Before writing ArrayBuffer contents in the ArrayBufferTag /
    ResizableArrayBufferTag paths, call m_buffer.tryReserveCapacity(...)
    for the tag + length header(s) + payload. If the reservation fails
    (capacity limit or OOM), fail serialization with DataCloneError
    instead of crashing. Because reservation happens before the tag is
    written, the serialized stream is not left in a partially-written state,
    and because the reservation only succeeds for sizes that fit the vector,
    the subsequent write(const uint8_t*, unsigned) call (which takes a
    32-bit length) cannot receive a truncated length either.

    Found by Fuzzilli. Fingerprint 5a52c34b9bc49de3.

    Also in this PR

    scripts/build/deps/index.ts (and its 4 callers) changes allDeps from
    a module-level const array to a cached function allDeps(). This is
    unrelated to the crash fix but was required to land it: deps/webkit.ts
    flags.ts/source.tsconfig.tsdeps/webkit.ts forms an
    import cycle, and depending on which module the graph is entered
    through, the webkit binding can still be in TDZ when deps/index.ts
    eagerly constructs the allDeps array. Rebuilding with a bun built from
    current main trips this and bun bd / bun run build:release fail
    with Cannot access 'webkit' before initialization. Deferring the array
    construction to first call sidesteps the ordering dependency without
    changing the list contents or link order.


    Co-authored-by: robobun <robobun@​users.noreply.github.com>

  • 7b10e2 deps: update highway to 1.4.0 (#29743)

    What does this PR do?

    Updates highway to version 1.4.0

    Compare:
    https://github.com/google/highway/compare/ac0d5d297b13ab1b89f48484fc7911082d76a93f...2607d3b5b0113992fe84d3848859eae13b3b52c1

    Auto-updated by this
    workflow


    Co-authored-by: Jarred-Sumner <709451+Jarred-Sumner@​users.noreply.github.com>
    Co-authored-by: robobun <robobun@​users.noreply.github.com>

  • b989ff Preserve Handlers.active_connections across socket/listener reload() (#29752)

    Problem

    socket.reload() (on TCPSocket/TLSSocket) and listener.reload()
    replace the Handlers struct wholesale with the value returned by
    Handlers.fromJS(), which always initialises active_connections = 0.
    But the socket's own markActive() contribution — and, when called from
    inside a callback, the live Handlers.Scope — are still counted against
    the old value.

    Consequences

    • reload() inside a data handler → counter overwritten to 0; the
      enclosing scope.exit() then hits 0 - 1 on a u32 → integer-overflow
      panic in safe builds.
    • reload() outside any handler (client socket) → counter drops to 0;
      the next callback's enter()/exit() cycle takes it 0→1→0, and the
      client-mode branch of markInactive frees the heap Handlers
      allocation while socket.handlers still points at it →
      heap-use-after-free on the following callback (segfault in release).
    • Listener.reload() with live accepted sockets → counter zeroed;
      closing any of them underflows.

    Repro

    using server = Bun.listen({ hostname: "127.0.0.1", port: 0, socket: { open(s){ s.write("x"); }, data(){} } });
    const c = await Bun.connect({
      hostname: "127.0.0.1", port: server.port,
      socket: { data(s){ s.reload({ socket: { data(){}, drain(){} } }); }, drain(){} },
    });
    // debug build:  panic: integer overflow in Handlers.markInactive
    // release build: SIGSEGV on the second data event

    Fix

    Save active_connections before the deinit() + struct assignment and
    restore it afterwards in both NewSocket.reload
    (src/bun.js/api/bun/socket.zig) and Listener.reload
    (src/bun.js/api/bun/socket/Listener.zig).

    Verification

    New subprocess fixture test/js/bun/net/socket-reload-fixture.ts drives
    all three sequences (inside-callback reload, outside-callback reload
    with two separate onData events, listener reload with a live accepted
    socket then close). Wired into socket.test.ts.

    build result
    bun bd without fix panic(main thread): integer overflow at
    Handlers.zig:82 → test fails
    system bun (release) without fix exit 139 (SIGSEGV) → test fails

    |
    | bun bd with fix | OK, exit 0 → test passes |


    Co-authored-by: robobun <robobun@​users.noreply.github.com>

  • 146a67 usockets: fix NULL deref when socket is closed inside TLS renegotiation handshake callback (#29757)
  • e356ed spawn: close stdin pipe fd on child exit when .stdin is never read (#29751)
  • 2ee9ca [publish images] Add x86_64/aarch64-freebsd & android target (#29676)

    Adds FreeBSD as a cross-compile target, following the same model as
    #29675 (Android): host clang + --target=x86_64-unknown-freebsd14.3 --sysroot=<base.txz>.

    Closes #29675

    Stacked on #29675 — this PR includes the Android commits since both
    share the crossTarget/sysroot build infrastructure. The
    FreeBSD-specific diff starts at d892fcae0a.

    Depends on [JSCOnly] Add FreeBSD cross-compile target oven-sh/WebKit#197 for bun-webkit-freebsd-* prebuilts.

    Closes #1524, closes #22991.

    Status

    • zig build check-freebsd clean (x64+aarch64, Debug+ReleaseFast)
    • All C/C++ compiles for FreeBSD
    • bun-debug + bun (release) link as valid FreeBSD 14.3 ELF
    • Runs on real FreeBSD 14.3 (smoke
      test
      ):
      --revision, process.platform, os.*, fs, Bun.serve() +
      fetch()
      all work
    • All 4 WebKit FreeBSD prebuilts published ([JSCOnly] Add FreeBSD cross-compile target oven-sh/WebKit#197)
    • All 6 BuildKite FreeBSD jobs pass
      ({x64,aarch64}-build-{cpp,zig,bun})
    • BuildKite v32 images baked with FreeBSD sysroot
    • 10 bughunt findings fixed (copy_file_range loop, watcher
      registration, io.tick, futex wake, detached spawn, getRSS, blob
      read_len, os.machine, crash metadata, copyFile fast path)

    Approach

    FreeBSD is a separate OS (not a Linux abi like Android), so it goes
    in type OS = ...|"freebsd", Environment.isFreeBSD,
    OperatingSystem.freebsd. It shares kqueue with macOS but uses plain
    kevent/struct kevent (not Darwin's kevent64_s), and FreeBSD 13+
    has eventfd(2) and copy_file_range(2).

    Builtins: FreeBSD ships compiler-rt as /usr/lib/libgcc.a and clang's
    freebsd driver finds it via --sysroot — no resource-dir symlinking
    needed (unlike NDK).

    aarch64-unknown-freebsd is a Rust Tier 3 target (no prebuilt std), so
    lolhtml uses -Zbuild-std for that arch.

    Host-GCC include leak: on amazonlinux, clang's driver injects
    /usr/include/c++/N even with --sysroot, breaking #include_next in
    the sysroot's libc++. Fixed with -nostdlibinc + explicit -isystem
    for the two sysroot dirs.

    Prior art

    Builds on lwhsu/bun claude/freebsd-support (Zig source changes,
    adapted from old CMake build to scripts/build/*.ts) and nektro's
    af85c02f6d (zig build check-freebsd).


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

  • f97aa6 stdio: skip exit-time tcsetattr unless Bun modified termios (#29593)

    What / why

    Fixes #29592.

    When a Bun process runs with a TTY on fd 0/1/2, it snapshots termios at
    startup and unconditionally writes the snapshot back at exit. Termios is
    a property of the /dev/pts/* device, not the fd, so when a downstream
    pipeline consumer (less, fzf, fx, ...) has since opened /dev/tty
    and entered raw mode, our exit-time tcsetattr clobbers their raw-mode
    state mid-flight. The user-visible symptom is a pager that appears alive
    but unresponsive to keypresses — everything is echoed and line-buffered
    until the user hits Enter.

    bun /tmp/bun-tty-bug.js | less   # hit 'q' → nothing happens
    

    The race is timing-dependent but the mechanism is deterministic: the
    TCSETS calls happen on every run. Scripts that exit fast enough can
    win the race against less's own setRawMode, but anything heavier
    loses reliably.

    Fix

    When Bun is a pipeline producer (stdout is a pipe, not a TTY — the
    bun foo.js | less shape), gate bun_restore_stdio on a new
    bun_stdio_modified[fd] flag so fds Bun never touched are left alone at
    exit. The flag is a volatile sig_atomic_t (signal-context-safe, since
    bun_restore_stdio runs from both the atexit path and the
    SIGINT/SIGTERM handler) and is set inside Bun__ttySetMode before
    uv__tcsetattr so a signal landing mid-transition still triggers
    restoration.

    When stdout is a TTY (interactive wrapper — bun run <tui> after a
    child crash, the crash-handler banner, --watch reload, the
    signal-death re-raise in
    run_command/bunx/lifecycle_script_runner), keep the unconditional
    restore so the shell prompt comes back cooked. Those paths don't route
    through Bun__ttySetMode so a child that took termios raw via
    FFI/stty/ioctl and died would otherwise leave the terminal raw.

    Fds Bun modified via process.stdin.setRawMode(true) still get restored
    through the existing uv_tty_reset_mode atexit hook in
    wtf-bindings.cpp, which runs before bun_restore_stdio and holds the
    pre-setRawMode termios snapshot.

    Verification

    Three tests in test/js/bun/terminal/terminal-spawn.test.ts:

    1. pipeline producer exit does not clobber raw mode on shared tty device — opens a PTY via bun:ffi's openpty, spawns a child with
      stdin/stderr on the PTY slave and stdout as a pipe (the real bun foo.js | less shape), flips PTY termios raw from the parent, lets the
      child exit. Fails before the fix (ICANON restored to cooked), passes
      after.
    2. interactive wrapper (stdout tty) restores cooked termios on child exit — all three stdio on the PTY (stdout is a TTY), parent flips
      raw, child exits without touching termios; asserts ICANON/ECHO come back
      cooked. Guards against over-gating regressing bun run <tui> /
      crash-handler / watch-reload restore.
    3. child that called setRawMode restores termios on exit — child
      calls setRawMode(true), writes RAW, blocks on stdin; parent observes
      ICANON/ECHO cleared while live (proves setRawMode took effect), sends a
      byte, asserts termios back to cooked (proves uv_tty_reset_mode atexit
      still runs).

    All three are handshake-driven (no setTimeout), platform-aware (Darwin
    tcflag_t offset, glibc/musl/darwin soname differences in dlopen),
    and assert termios bits before exit code so a regression surfaces first
    in the failure diff.

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

  • d578f5 deps: update sqlite to 3.53.0 (#27912)

    What does this PR do?

    Updates SQLite to version 3.53.0

    Compare: https://sqlite.org/src/vdiff?from=3.51.2&to=3.53.0

    Auto-updated by this
    workflow

    Co-authored-by: Jarred-Sumner <709451+Jarred-Sumner@​users.noreply.github.com>

  • 923991 Bun.spawn: downgrade JSRef after async stdout/stderr drain (#29748)

    What

    Subprocess.onCloseIO now calls updateHasPendingActivity() after it
    converts a stdout/stderr .pipe to .buffer/.ignore (or clears
    stdin).

    Why

    If the child process exits while a stdout/stderr PipeReader is still
    pending — e.g. a grandchild still holds the write end of the pipe, or
    the exit notification races ahead of pipe EOF — onProcessExit's
    deferred updateHasPendingActivity() observes
    hasPendingActivityStdio() == true and keeps this_value as a
    Strong JSRef.

    Later, the pipe drains asynchronously on the event loop and
    PipeReader.onReaderDoneSubprocess.onCloseIO flips the Readable to
    .buffer/.ignore. Previously nothing re-evaluated pending activity at
    that point, so the JSRef stayed Strong forever and the JSSubprocess
    object plus its buffered output leaked for the lifetime of the parent
    process.

    Repro

    The new test/js/bun/spawn/spawn-unread-stdout-gc.test.ts spawns a
    child that immediately spawns a detached grandchild inheriting stdout,
    then exits. The grandchild writes after a short delay, so
    onProcessExit in the parent hits EAGAIN on the stdout read and the
    drain completes asynchronously via onCloseIO. A FinalizationRegistry
    then checks that the Subprocess wrappers are collectable.

    Verification

    • Without the fix: 0/10 Subprocess objects collected (consistently).
    • With the fix: 10/10 collected (consistently across multiple runs).
    • git stash -- src/ → test fails; git stash pop → test passes.
    • Existing spawn tests unaffected (spawn-noread-leak, exit-code,
      spawn-signal, spawn-stdin-destroy, spawn-many-teardown all pass).

    Co-authored-by: robobun <robobun@​users.noreply.github.com>

  • d644b4 hot: defer reload while a rejected module is unreported (#29740)

    What

    Runtime fix for the --hot sourcemap race that #29735 works around at
    the test level. Two changes:

    • VirtualMachine.reload() now also defers when
      pending_internal_promise is .rejected but its error hasn't been
      printed yet (pending_internal_promise_reported_at != hot_reload_counter), not just when .pending. The deferred reload runs
      from reportExceptionInHotReloadedModuleIfNeeded() after the error is
      remapped and printed against its own sourcemap.
    • SavedSourceMap.putMappings() keeps the existing table entry when
      the incoming InternalSourceMap has zero mappings. A 0-mapping map can
      never answer a lookup, so dropping it is never worse than installing it;
      this defends against any other path that re-transpiles a comment-only
      partial read.

    Why

    vm.source_mappings is a path-hash → blob table overwritten in place on
    every transpile. The event-loop tick drains microtasks between tasks, so
    a watcher event that arrives after a module's eval rejects but before
    reportExceptionInHotReloadedModuleIfNeeded() prints it can run another
    reload() — which re-reads the file (possibly mid-rewrite, since a 2MB
    writeFileSync is truncate + several write()s) and overwrites the
    table entry. The still-unreported error is then either remapped against
    the wrong map (transpiled coords leak through, e.g. :1:12 when the
    source is line 1003) or dropped entirely when the new
    pending_internal_promise replaces the old one.

    This was flaking on aarch64 in should work with sourcemap generation
    (see #29735) and can also affect users whose editors save
    non-atomically.

    Test

    The new test in test/cli/hot/hot.test.ts makes the window
    deterministic: the hot file truncates itself to a comment-only stub
    immediately before throwing, guaranteeing a fresh watcher event lands
    between reject and report.

    • bun bd test test/cli/hot/hot.test.ts -t "should not remap against a stale sourcemap" — 1 pass, 41 expect() calls (20 iterations)
    • USE_SYSTEM_BUN=1 bun test test/cli/hot/hot.test.ts -t "should not remap against a stale sourcemap" — fails (the error is dropped and the
      test times out waiting for it)
    • bun bd test test/cli/hot/hot.test.ts -t sourcemap — all 4
      sourcemap tests pass
    • bun run zig:check-all — clean

    Note: the self-rewriting hot file in the new test occasionally
    exposes a separate, pre-existing edge case where an entry that rewrites
    itself mid-eval and then throws can lose the error (reproduces on
    released bun too). I observed this as a rare hang on debug builds when
    running under heavy parallel load; it did not reproduce in serial bun bd test runs. If it surfaces in CI it's worth a follow-up — the root
    cause is independent of this change.

  • 86e6ab Use wtf/MathExtras.h for double→int conversions; fjcvtzs/fcvtzs on arm64 (#29746)

    What does this PR do?

    C++ (correctness): replace static_cast<intN_t>(double) with
    truncateDoubleTo{Int32,Int64,Uint32,Uint64} from wtf/MathExtras.h at
    argument-parsing sites where the input can be NaN/±Inf/out-of-range —
    JSBuffer.cpp (parseArrayIndex, toString start, write length, BigInt
    offset, Buffer.from(ArrayBuffer, offset, length)), perf_hooks
    Histogram constructor/prototype, JSHTTPParserPrototype.cpp,
    wrapAnsi.cpp. Same hardware instruction is emitted; this removes UB —
    static_cast of an out-of-range double is undefined, which lets the
    optimizer assume the input was in range and potentially elide the bounds
    check that follows. The MathExtras helpers go through intrinsics/inline
    asm so no such assumption is possible.

    Zig (perf, arm64):

    • JSValue.tryConvertToStrictInt32(f64) ?i32 mirrors
      WTF::tryConvertToStrictInt32. On targets with .jsconv (apple_m1 →
      v8.4a → v8.3a) it lowers to fjcvtzs + cset instead of
      isnan/isinf/convert/round-trip/signbit, and jsNumberWithType(f64)
      reuses the returned int instead of converting again. On x86_64 / Linux
      arm64 it falls through to a range-gated @&ZeroWidthSpace;intFromFloat (which also
      fixes a pre-existing out-of-range fptosi in the old
      canBeStrictInt32).
    • coerceJSValueDoubleTruncatingTT for i32/i64 on aarch64 is now a
      single fcvtzs via inline asm — its NaN→0 / overflow→min/max saturation
      is bit-identical to the branchy fallback. The i52 case keeps the
      branches.

    How did you verify your code works?

    • bun bd test test/js/node/buffer.test.js — 457 pass
    • bun bd test test/js/bun/perf_hooks/histogram.test.ts — 38 pass
    • bun bd test test/js/node/http/node-http-parser — 9 pass
    • bun run zig:check-all — 61/61
    • objdump -d build/debug/bun-debug | grep fjcvtzs confirms the new
      sites
    • Bun.color(NaN | ±Infinity | 1e300 | 2147483647.9, "ansi-256")
      matches system bun (probes Zig toInt64 saturation)
    • Buffer.readDoubleLE round-trip of -0.0, NaN, ±Infinity,
      INT32_MIN/MAX±1 unchanged
    • f17e91 test(resolve): cover getModuleNamespace fast-path edge cases (#29729)

    Companion to perf(JSC): O(E+N) GetModuleNamespace; iterative InnerModuleLoading oven-sh/WebKit#200.

    Adds correctness coverage for the new JSC GetModuleNamespace
    single-BFS fast path:

    • deep export * from chain — every transitive binding is present
    • two siblings with the same local — name is excluded (ambiguous), but a
      local in the importing module shadows correctly
    • indirect re-export through a star chain — still resolves via the slow
      path

    These pass on both the current and patched JSC (the optimization
    preserves observable behavior).

    Bench impact from the WebKit change (500 modules, 30k star edges, local
    release without LTO):

    • before: ~694ms
    • after: ~320ms
    • node 24: ~525ms, deno 2.7: ~157ms

    Separately found while auditing: a fresh import() that reaches a
    module whose previous load failed resolves on Bun (all versions back to
    1.3.11) but rejects on Node/Deno — pre-existing, not touched by this PR.


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

  • e2017e ws: respect perMessageDeflate: false in upgrade request (#29685)

    What

    Stop emitting Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits on the upgrade request when the caller passes
    perMessageDeflate: false — matching Node + ws.

    Why

    new WebSocket(url, { perMessageDeflate: false }) (directly or through
    the ws package) was a no-op in Bun. The upgrade builder hardcoded the
    extension offer; the ws compat shim in src/js/thirdparty/ws.js never
    looked at options.perMessageDeflate; and the JS→C++ option parser had
    no field for it. This broke gateway paths that reject upgrade requests
    advertising extensions the deployment does not want.

    Repro (before)

    const http = require("http");
    const WebSocket = require("ws");
    const server = http.createServer();
    new WebSocket.WebSocketServer({ server, perMessageDeflate: false })
      .on("connection", (_ws, req) => {
        console.log(req.headers["sec-websocket-extensions"]); // "permessage-deflate; client_max_window_bits"
        server.close(); _ws.close();
      });
    server.listen(0, () => new WebSocket(`ws://127.0.0.1:${server.address().port}`, { perMessageDeflate: false }).on("open", ws => ws.close()));

    After this change: prints undefined, matching Node.

    Changes

    • src/js/thirdparty/ws.js — read options.perMessageDeflate and
      forward perMessageDeflate: false into the native WebSocket options.
    • src/bun.js/bindings/webcore/JSWebSocket.cpp — parse the
      perMessageDeflate property from the options object.
    • src/bun.js/bindings/webcore/WebSocket.{h,cpp} — new
      m_offerPerMessageDeflate field, setter, create() overloads take it,
      connect() passes it to the Zig layer.
    • src/bun.js/bindings/headers.h — extend the
      Bun__WebSocketHTTP{,S}Client__connect signatures with the new bool offerPerMessageDeflate trailing arg.
    • src/http/websocket_client/WebSocketUpgradeClient.zig — thread
      the flag through connectbuildRequestBody, emit the extensions
      line only when the flag is true, store the flag on the client so we can
      also ignore a server-side permessage-deflate response when we did not
      offer it (RFC 6455 §9.1).
    • test/js/first_party/ws/ws.test.ts — three tests under a new
      perMessageDeflate upgrade header describe: opt-out via ws API,
      baseline still advertises extensions, opt-out via
      globalThis.WebSocket. All use a captive TCP listener that reads the
      raw upgrade request bytes.

    Verification

    bun bd test test/js/first_party/ws/ws.test.ts -t "perMessageDeflate"
     3 pass, 0 fail
    

    And the failure mode from before — src/ stashed, tests run against
    baseline — the two opt-out tests fail as expected, the baseline-behavior
    test passes. Pre-existing unrelated failures in the same file (30 tests
    timing out at 1000ms) are unchanged in count.

    Fixes #29684


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

  • 4c88df http: unref client IncomingMessage.setTimeout timer (#29701)

    What does this PR do?

    res.setTimeout(msecs) on a client-side IncomingMessage was creating
    a ref'd setTimeout which kept the event loop alive for the full
    timeout duration even after the response completed. In Node.js,
    IncomingMessage.prototype.setTimeout delegates to
    socket.setTimeout(), which uses an unref'd timer.

    Repro

    const http = require("http");
    const agent = new http.Agent({ keepAlive: true });
    http.get({ host, port, agent }, res => {
      res.setTimeout(90000);
      res.resume();
      res.on("end", () => { /* nothing left to do */ });
    });

    Node exits immediately after end. Bun (before) waits the full 90s.

    Cause

    _http_client.ts overrides res.setTimeout on the IncomingMessage
    with an inline implementation that called setTimeout(fn, msecs)
    without .unref(), without returning this, and without treating
    msecs === 0 as "clear the timeout".

    Fix

    • .unref() the timer so it doesn't keep the event loop alive
    • return res (Node returns this)
    • msecs <= 0 clears the existing timer instead of scheduling
      setTimeout(fn, 0)
    • attach the callback via res.on("timeout", cb) so repeated
      setTimeout calls stack listeners the same way Node does

    Relation to "idle keep-alive sockets block exit"

    Investigated whether Bun's HTTP keep-alive pool itself refs the event
    loop — it doesn't. http.ClientRequest goes through native fetch;
    pooled sockets live on the HTTP thread's own loop and the only JS-loop
    ref is FetchTasklet.poll_ref, which is released when the response body
    finishes. Plain http.get / https.get / axios / agentkeepalive with
    keepAlive: true all exit immediately. The one path that produces the
    "process waits N seconds after the last request" symptom is this ref'd
    res.setTimeout timer.

    How did you verify your code works?

    New test in test/js/node/http/node-http.test.ts spawns a child that
    makes a keep-alive http.get, calls res.setTimeout(60000), consumes
    the body, and asserts the child exits without hitting a 2s sentinel.

    • USE_SYSTEM_BUN=1 bun test → fails (BAD_RETURN + STILL_ALIVE)
    • bun bd test → passes
    • git stash push -- src/ && bun bd test → fails; git stash pop && bun bd test → passes

    Also verified:

    • timeout still fires when the server is slow to respond
    • listener semantics (on, not removed by setTimeout(0)) match Node
    • existing test/js/node/http/client-timeout-error.test.ts and
      node-http.test.ts -t setTimeout still pass

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

  • 4ddc37 test: deflake cpu-prof.test.ts on Windows (time-bound all workloads to 100ms) (#29741)

    What does this PR do?

    Deflakes test/cli/run/cpu-prof.test.ts on Windows, which flaked in 9
    of the last 200 builds — e.g. build
    48023
    on Windows 2019
    x64-baseline at line 187:

    expect(functionNames.some((name: string) => name !== "(root)" && name !== "(program)")).toBe(true);
    Expected: true  Received: false
    

    and again on this PR's first push (build
    48042
    ) at lines 241/285
    with Received: "No samples collected.\n".

    Root cause: On Windows, JSC's SamplingProfiler effectively ticks at
    the ~15.6ms default timer quantum (WTF::sleep is bounded by it without
    timeBeginPeriod). After #29393 (WebKit module-loader rewrite),
    entry-module evaluation is async — loadAndEvaluateModule returns a
    pending promise and user code runs after fetch→link→evaluate microtask
    checkpoints — so the first sampler tick can land in loader internals
    before user code starts. The previous workloads were either
    iteration-bounded (for (i < 1000000), JITs to <1ms) or time-bounded
    for only 32/50ms, which is no longer enough margin to guarantee even one
    sample lands in user code.

    7 of the 9 historical flakes are post-#29393; the other 2 predate it.
    The test was always borderline, the rewrite made it ~7× flakier.
    Jarred's earlier deflake (8058d78b6a) bumped 16→32ms and time-bounded
    the first test, but that's no longer sufficient.

    Fix: Time-bound every workload in the file for 100ms (~6 sampler
    ticks on Windows), including the previously iteration-bounded
    myFunction(). Under describe.concurrent the wall-clock cost is the
    max not the sum, so the suite stays at ~1.9s.

    How did you verify your code works?

    • bun bd test test/cli/run/cpu-prof.test.ts — 30/30 consecutive passes
      on Windows after each commit
    • BuildKite history scan of last 200 builds correlating flake commits
      with WebKit upgrade ancestry
    • c91c61 test(inspect): deflake test-reporter.test.ts retroactive-enable test (#29734)

    What

    Replaces wall-clock Bun.sleep synchronization in the "retroactively
    reports tests when TestReporter.enable is called after tests are
    discovered" test with a deterministic Console.messageAdded signal +
    gate file.

    Why

    The test was flaking with Timeout waiting for 3 ended tests, got 2
    (e.g. build 47992, 47990, 47989, 47988, 47986, 47982).

    TestReporter.enable is delivered cross-thread via postTaskTo onto
    the debuggee's JS event loop. The old test assumed Bun.sleep(200)
    (client) + Bun.sleep(500) (test A1) guaranteed the enable task would
    be processed before A1 finished. Under CI load that ordering doesn't
    hold: A1's 500ms timer can win, onSequenceCompleted(A1) runs with
    test_id_for_debugger == 0 and the agent still disabled
    (Execution.zig:589-591), and A1's TestReporter.end is silently
    dropped — retroactive replay (Debugger.zig:351-422) only emits
    found, never end.

    How

    • Test A1 now console.log("__A1_RUNNING__") and polls for a gate file
      instead of sleeping 500ms.
    • The client enables the Console domain, waits for that message
      (collection done, A1 executing), then sends TestReporter.enable.
    • Once the 5 retroactive found events arrive (which proves enable
      actually ran on the JS thread), the client writes the gate file,
      releasing A1.
    • A1 completes with the agent enabled, so all 3 end events fire
      deterministically.

    Test plan

    • bun bd test test/cli/inspect/test-reporter.test.ts passes
    • 30 sequential runs: 30/30 pass
    • 30 runs in parallel under 4 CPU-spinner background jobs: 30/30
      pass
    • ad5d33 test: avoid TLA self-cycle in bun-main dynamic-import test (#29738)

    Follow-up to #29719.

    bun:main statically imports the entry file, so await import("bun:main") at the entry's top level is a TLA self-cycle:
    bun:main waits for entry.mjs (async dep), and entry.mjs waits for
    bun:main's evaluation promise. Per spec that promise never settles.

    The old JSC module loader broke these cycles early, which is why #29719
    passed locally (tested against 892042c2, pre-#29393). After #29393
    (WebKit module-loader rewrite) the loader correctly leaves the promise
    unsettled, so the test now hangs and times out at 90s — see build 48023
    (debian-asan, win x64, win x64-baseline).

    Fix: drop the top-level await and use import("bun:main").then(...)
    so entry.mjs finishes synchronously, bun:main finishes, and the
    import resolves on the next microtask. The preload and --hot tests are
    unaffected (preload isn't in bun:main's dep graph).

    Note: this also surfaced that Bun now hangs forever on any unsettled-TLA
    cycle instead of exiting 13 like Node — separate PR coming for that.

    How did you verify your code works?

    • bun bd test test/js/bun/resolve/bun-main-entry-point.test.ts — 3
      pass, 20 consecutive runs on Windows
    • USE_SYSTEM_BUN=1 bun test ... — 2 fail (still catches the alias bug
      on unfixed bun)
    • 6829d1 build(windows): use -Xclang -include instead of /FI in pch rule (#29736)

    Summary

    clang-cl's /FI<header> auto-promotes itself to -include-pch <pch>
    when a .pch already exists at the /Fp path — and it does this for
    both internal cc1 jobs of /Yc, including the -emit-pch job
    that's supposed to overwrite the PCH. So when cxxflags change and ninja
    re-runs the pch rule, the create-PCH step ends up validating the stale
    PCH instead of overwriting it.

    I hit this after pulling #29653 (/EHsc/EHs-c-) into a build dir
    that had a pre-existing PCH:

    [499/864] pch pch\root-pch.h.hxx.pch
    FAILED: pch/root-pch.h.hxx.pch pch/root-pch.h.hxx.cxx.obj
    error: exception handling was enabled in precompiled file 'pch\root-pch.h.hxx.pch' but is currently disabled
    

    Minimal repro (no ccache, no Bun headers — clang 21.1.8):

    printf '#include <vector>\n' > h.hxx; printf '/* stub */\n' > stub.cxx
    clang-cl /EHsc  /Ych.hxx /FIh.hxx /Fph.hxx.pch /c stub.cxx /Fostub.obj   # ok
    clang-cl /EHs-c- /Ych.hxx /FIh.hxx /Fph.hxx.pch /c stub.cxx /Fostub.obj  # FAILS

    clang-cl -v on the second line shows the -emit-pch cc1 invocation
    receiving -include-pch h.hxx.pch instead of -include h.hxx-###
    with the .pch deleted shows -include, so it's filesystem-dependent
    driver behavior.

    Fix: swap /FI$pch_header for -Xclang -include -Xclang $pch_header. The cc1-level -include bypasses the driver's PCH
    auto-detection, so -emit-pch always reads the header source. The Unix
    pch rule and the Windows cxx_pch consumer rule already use this
    form, so this also makes the two platforms' force-include spelling
    consistent.

    Test plan

    • bunx tsc --noEmit -p scripts/build/tsconfig.json
    • Minimal repro: /Yc + -Xclang -include + stale-flag PCH on disk
      → exit 0, PCH overwritten (size changes)
    • -### confirms -emit-pch job gets -include (not
      -include-pch) with PCH on disk
    • ninja pch\root-pch.h.hxx.pch builds 156MB PCH; a cxx_pch
      consumer compiles against it
    • Windows CI green
    • f225c8 ci:errors: surface flaky (retried) tests from BuildKite annotations (#29742)

    Summary

    • bun run ci:errors only parsed style=error annotations, so the
      context=flaky style=warning annotation (tests that failed once and
      passed on retry) was silently dropped.
    • Split that bundled flaky annotation into one synthetic entry per test
      path and render them after the hard failures, tagged [flaky] in
      yellow. Multi-platform flakes are grouped under a single heading and
      reuse the existing per-platform body dedup.
    • renderAnnotation now takes the formatted tag string directly;
      --all help text updated since flaky no longer needs that flag.

    Test plan

    • bun run ci:errors 48023 --no-compare lists
      test/cli/run/cpu-prof.test.ts under a [flaky] heading
    • 26 raw flaky sections collapse to 18 unique test headings;
      dev-and-prod.test.ts and hot.test.ts each show 4 platform
      sub-sections
    • Hard-failure annotations still render first with
      [new]/[pre-existing] tags
    • 30478d test: deflake 29240.test.ts on Windows (cpu-prof sampling) (#29720)

    What does this PR do?

    Deflakes test/regression/issue/29240.test.ts on Windows, where it
    failed ~17/199 builds with anotherNodes.length === 0.

    Root cause: JSC's SamplingProfiler effectively ticks at the ~15.6ms
    default timer quantum on Windows (WTF::sleep is bounded by it without
    timeBeginPeriod). The script's anotherFunction() ran a
    fixed-iteration Math.sqrt loop that finishes in <1ms once JIT'd, so it
    was never on top of stack when the sampler fired.

    Fix: Replace the iteration-bounded loops in doWork() and
    anotherFunction() with time-bounded loops (for (const end = performance.now() + 100; performance.now() < end; )). Each function now
    occupies the CPU for a contiguous 100ms, guaranteed to span ~6 sampler
    ticks even at the Windows quantum. The outer 200ms driver loop is
    dropped — total runtime stays ~200ms.

    Function definition line numbers are deliberately preserved
    (fibonacci=1, doWork=6, anotherFunction=14) so the existing
    callFrame.lineNumber assertions don't change. Only the positionTicks
    upper bound moves 27→24 to match the new script length.

    The second test (script.ts / hot()) was already time-bounded and
    needed no changes.

    How did you verify your code works?

    • bun bd test test/regression/issue/29240.test.ts — 25/25 consecutive
      passes on Windows
    • c94252 test: deflak

@michijs

michijs Bot commented Apr 27, 2026

Copy link
Copy Markdown
Contributor Author

Bump storybook from 9.1.3 to 10.3.5

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Storybook 10.3 contains hundreds of fixes and improvements including:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • UI: Make TagsFilter state persistent #33374

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

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

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

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

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

  • Core: Fix handling complex viewport sizes #33615

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

  • Manifest: Rename experimentalComponentsManifestcomponentsManifest, default to true #33974

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Commit history:
  • b9549a Merge pull request #34071 from Axadali/33735-global-style-issue

    UI: Fix global background + color styles affecting stories

  • 890c11 Merge branch 'next' into 33735-global-style-issue
  • ff98f8 Merge pull request #34599 from storybookjs/kasper/disable-nx-workflow

    Build: Disable NX workflow

  • eae1fe Build: Disable NX workflow triggers while license is expired
  • d226aa Merge pull request #34586 from storybookjs/yann/change-mock-events

    CLI: Change mock event detection

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

    Docs: Add change detection documentation

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

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

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

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

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

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

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

    Build: Add docs-review skill

  • b5caab Extend doc types to support section-level classification

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

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

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

    Build: Apply docs formatting, add docs:check script

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

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

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

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

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

    Release: Prerelease 10.4.0-alpha.10

@michijs

michijs Bot commented Apr 27, 2026

Copy link
Copy Markdown
Contributor Author

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Storybook 10.3 contains hundreds of fixes and improvements including:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • UI: Make TagsFilter state persistent #33374

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

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

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

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

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

  • Core: Fix handling complex viewport sizes #33615

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

  • Manifest: Rename experimentalComponentsManifestcomponentsManifest, default to true #33974

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Commit history:
  • b9549a Merge pull request #34071 from Axadali/33735-global-style-issue

    UI: Fix global background + color styles affecting stories

  • 890c11 Merge branch 'next' into 33735-global-style-issue
  • ff98f8 Merge pull request #34599 from storybookjs/kasper/disable-nx-workflow

    Build: Disable NX workflow

  • eae1fe Build: Disable NX workflow triggers while license is expired
  • d226aa Merge pull request #34586 from storybookjs/yann/change-mock-events

    CLI: Change mock event detection

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

    Docs: Add change detection documentation

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

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

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

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

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

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

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

    Build: Add docs-review skill

  • b5caab Extend doc types to support section-level classification

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

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

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

    Build: Apply docs formatting, add docs:check script

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

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

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

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

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

    Release: Prerelease 10.4.0-alpha.10

@michijs

michijs Bot commented Apr 27, 2026

Copy link
Copy Markdown
Contributor Author

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

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

New Contributors

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

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


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


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


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


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


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


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


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


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


        ### v8.4.7Bump dependencies
Commit history:

@michijs

michijs Bot commented Apr 27, 2026

Copy link
Copy Markdown
Contributor Author

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Storybook 10.3 contains hundreds of fixes and improvements including:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • UI: Make TagsFilter state persistent #33374

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

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

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

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

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

  • Core: Fix handling complex viewport sizes #33615

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

  • Manifest: Rename experimentalComponentsManifestcomponentsManifest, default to true #33974

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Commit history:
  • b9549a Merge pull request #34071 from Axadali/33735-global-style-issue

    UI: Fix global background + color styles affecting stories

  • 890c11 Merge branch 'next' into 33735-global-style-issue
  • ff98f8 Merge pull request #34599 from storybookjs/kasper/disable-nx-workflow

    Build: Disable NX workflow

  • eae1fe Build: Disable NX workflow triggers while license is expired
  • d226aa Merge pull request #34586 from storybookjs/yann/change-mock-events

    CLI: Change mock event detection

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

    Docs: Add change detection documentation

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

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

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

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

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

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

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

    Build: Add docs-review skill

  • b5caab Extend doc types to support section-level classification

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

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

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

    Build: Apply docs formatting, add docs:check script

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

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

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

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

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

    Release: Prerelease 10.4.0-alpha.10

@michijs

michijs Bot commented Apr 27, 2026

Copy link
Copy Markdown
Contributor Author

Bump storybook-dark-mode from 4.0.2 to 5.0.0

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

🏠 Internal

Authors: 2

Authors: 1

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

    Storybook V10 Compatibility

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

    update actions/*

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

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

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

    Fix useDarkMode to use correct channel

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

    Update dependency @​storybook/icons to v1.2.9

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

    Storybook 8

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

@michijs

michijs Bot commented Apr 27, 2026

Copy link
Copy Markdown
Contributor Author

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Storybook 10.3 contains hundreds of fixes and improvements including:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • UI: Make TagsFilter state persistent #33374

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

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

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

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

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

  • Core: Fix handling complex viewport sizes #33615

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

  • Manifest: Rename experimentalComponentsManifestcomponentsManifest, default to true #33974

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Commit history:
  • b9549a Merge pull request #34071 from Axadali/33735-global-style-issue

    UI: Fix global background + color styles affecting stories

  • 890c11 Merge branch 'next' into 33735-global-style-issue
  • ff98f8 Merge pull request #34599 from storybookjs/kasper/disable-nx-workflow

    Build: Disable NX workflow

  • eae1fe Build: Disable NX workflow triggers while license is expired
  • d226aa Merge pull request #34586 from storybookjs/yann/change-mock-events

    CLI: Change mock event detection

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

    Docs: Add change detection documentation

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

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

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

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

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

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

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

    Build: Add docs-review skill

  • b5caab Extend doc types to support section-level classification

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

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

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

    Build: Apply docs formatting, add docs:check script

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

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

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

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

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

    Release: Prerelease 10.4.0-alpha.10

@michijs

michijs Bot commented Apr 27, 2026

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Storybook 10.3 contains hundreds of fixes and improvements including:

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

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

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

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

  • UI: Zoom faster when pressing shift - #34185, thanks @​Sidnioulz!

  • Vite: Add mock entries to optimizeDeps.entries - #34167, thanks @​valentinpalkovic!

          ### v10.3.0-beta.2## 10.3.0-beta.2
    
  • UI: Hide addon panel Drag on pages without a panel - #34162, thanks @​Sidnioulz!

  • UI: Hide manifest tag for now - #34165, thanks @​Sidnioulz!

  • UI: Make disabled Buttons keyboard-focusable - #34166, thanks @​Sidnioulz!

  • UI: Use correct selector for addon panel focus check - #34164, thanks @​Sidnioulz!

  • Vue: Make globals reactive in decorators - #34116, thanks @​Sidnioulz!

          ### v10.3.0-beta.1## 10.3.0-beta.1
    
  • Addon-Docs: Add React as optimizeDeps entry - #34176, thanks @​valentinpalkovic!

  • CLI: Avoid hanging of postinstall during init - #34175, thanks @​valentinpalkovic!

          ### v10.3.0-beta.0## 10.3.0-beta.0
    
  • Test: Fix clearing mocks in Vitest #34078

  • Core: Fix event source URL based on refId when multiple iframes share the same origin #34105

  • UI: Make TagsFilter state persistent #33374

  • A11y: Make resize handles for addon panel and sidebar accessible #33980

  • Maintenance: Use std-env for AI agent detection in telemetry #34114

  • Addon-Vitest: Make Playwright --with-deps platform-aware to avoid sudo prompt on Linux #34121

  • Addon-docs: Restore docs.components overrides for doc blocks #34111

  • Maintenance: Support vite-plugin-svelte7 which supports Vite 8 #34115

  • Core: Fix handling complex viewport sizes #33615

  • Core: Fix iframe reference for composed Storybook on a subpath #34100

  • Manifest: Rename experimentalComponentsManifestcomponentsManifest, default to true #33974

  • Manifests: Fix Attached MDX causing wrong component entries #34101

  • Vue3-Vite: Allow paths in docgen tsconfig option #32310, thanks @​Thomaash!

  • Next.js: Move image configuration from FrameworkOptions to parameters #32639, thanks @​y-hsgw!

  • Docs: Make CSS ordering in DocsContainer more predictable #34015

          ### v10.3.0-alpha.17## 10.3.0-alpha.17
    
  • Core: Correctly fallback to first detected vitest config file - #33865, thanks @​yannbf!

  • ESLint-plugin: Disallow extra properties in eslint plugin rule options - #32056, thanks @​andreww2012!

  • ESLint: bail out config setup if eslint-plugin-storybook is already imported - #34089, thanks @​copilot-swe-agent!

  • Revert "Toolbar: Remove extra toolbar divider when zoom controls not shown" - #34099, thanks @​valentinpalkovic!

          ### v10.2.19## 10.2.19
    
  • Maintenance: Support vite-plugin-svelte@​7 which supports Vite 8 - #34115, thanks @​valentinpalkovic!

  • Vite: Support Vite 8 - #33788, thanks @​valentinpalkovic!

          ### v10.2.18## 10.2.18
    
  • Core: Correctly fallback to first detected vitest config file - #33865, thanks @​yannbf!

  • Core: Fix error reporting in ManagerErrorBoundary - #33915, thanks @​ghengeveld!

          ### v10.3.0-alpha.16## 10.3.0-alpha.16
    
  • A11y: Underline MDX links for WCAG SC 1.4.1 compliance - #33139, thanks @​NikhilChowdhury27!

  • Angular: Add moduleResolution: bundler to tsconfig - #34085, thanks @​valentinpalkovic!

  • Angular: only load webpack dependencies on demand - #34043, thanks @​sod!

  • CLI: Show multiple favicons warning as debug message - #34069, thanks @​remino!

  • Core: Fix error reporting in ManagerErrorBoundary - #33915, thanks @​ghengeveld!

  • Vite: Support Vite 8 - #33788, thanks @​valentinpalkovic!

          ### v10.3.0-alpha.15## 10.3.0-alpha.15
    
  • Actions: Add expandLevel parameter to configure tree depth - #33977, thanks @​mixelburg!

  • Actions: Fix HandlerFunction type to support async callback props - #33864, thanks @​mixelburg!

  • Addon-Vitest: Refactor Vitest setup to eliminate the need for a dedicated setup file - #34025, thanks @​valentinpalkovic!

  • Build: Update @​types/node - #34037, thanks @​valentinpalkovic!

  • Builder-Vite: Fix cold-cache vitest failures for story paths containing glob special characters - #34044, thanks @​copilot-swe-agent!

  • CI:: declare explicit permissions for stale and weekly cron workflows - #33902, thanks @​Rohan5commit!

  • Core: Add vike metadata frameworks - #33965, thanks @​yannbf!

  • Core: Resolve builder preset path correctly in pnpm strict mode - #34032, thanks @​braedenfoster!

  • Core: Update default allowed hosts in host validation middleware - #34045, thanks @​ghengeveld!

  • Next.js: Add support for v16.2 - #34046, thanks @​valentinpalkovic!

  • UI: Fix code/copy buttons overlap with content - #33889, thanks @​Sidnioulz!

  • UI: Fix modal text selection - #33967, thanks @​Sidnioulz!

  • UI: Fix tab navigation after closing addon panel - #33971, thanks @​copilot-swe-agent!

  • UI: Handle kb nav edge cases when preview and panel are hidden - #33588, thanks @​Sidnioulz!

          ### v10.2.17## 10.2.17
    
  • Next.js: Add support for v16.2 - #34046, thanks @​valentinpalkovic!

          ### v10.2.16## 10.2.16
    
  • CSF-Factories: Fix ConfigFile parser false warning on `definePreview({...}).type()` export default - #33885, thanks @​copilot-swe-agent!

  • Core: Add host/origin validation to requests and websocket connections - #33835, thanks @​ghengeveld!

  • Core: Add vike metadata frameworks - #33965, thanks @​yannbf!

  • Core: Resolve builder preset path correctly in pnpm strict mode - #34032, thanks @​braedenfoster!

  • Core: Update default allowed hosts in host validation middleware - #34045, thanks @​ghengeveld!

Commit history:
  • b9549a Merge pull request #34071 from Axadali/33735-global-style-issue

    UI: Fix global background + color styles affecting stories

  • 890c11 Merge branch 'next' into 33735-global-style-issue
  • ff98f8 Merge pull request #34599 from storybookjs/kasper/disable-nx-workflow

    Build: Disable NX workflow

  • eae1fe Build: Disable NX workflow triggers while license is expired
  • d226aa Merge pull request #34586 from storybookjs/yann/change-mock-events

    CLI: Change mock event detection

  • e7a952 Merge pull request #34530 from storybookjs/worktree-abundant-leaping-quokka

    Docs: Add change detection documentation

  • ec48db Merge pull request #34504 from storybookjs/story-new-status

    Core: Show "new" status on newly added individual stories

  • 526669 Merge pull request #34585 from storybookjs/fix-sigint-handling
  • 41b7af Merge branch 'next' into story-new-status
  • 86961d CLI: Change mock event detection
  • 1d5f0b Ensure process termination on signal when telemetry is disabled
  • c757d0 Add story with changeDetection disabled
  • 4c9a45 Removed data.changedFiles from change-detection status internals and updated tests accordingly.
  • e7e367 Fix type error
  • 833841 Docs: Improve change detection page clarity

    Clarify modified vs. affected status definitions, merge thin "Sidebar
    display" section into status indicators, and tighten callout text.

    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@​anthropic.com>

  • a85b63 Merge branch 'next' into worktree-abundant-leaping-quokka

    • next:
      Extend doc types to support section-level classification
      Build: Add docs-review skill
      Fix type error
      Address feedback
      Address feedback
      Format
      Address feedback
      Address feedback
      Remove skill and workflow
      Rewrite skill to address structural/strategic issues, not just formatting
      Add weekly workflow
      Replace fast-glob with tinyglobby
      Run skill
      Expand skill with more detailed voice and tone standards
      Run skill
      Expand link check to handle anchors
      Run skill
      Expand skill with more automated checks and writing standards
      Chore: Add scripts for docs-review skill
      Docs: Standardize formatting, add docs-review skill
    • 09fb0b Merge pull request #34451 from storybookjs/docs-skill

    Build: Add docs-review skill

  • b5caab Extend doc types to support section-level classification

    Pages still have one primary doc type, but well-structured secondary
    sections (e.g., a reference table at the end of a task page) are now
    recognized and evaluated by their own type's criteria instead of being
    flagged as an antipattern or triggering a split recommendation.

    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@​anthropic.com>

  • 561baa Build: Add docs-review skill
  • db1887 Merge pull request #34330 from storybookjs/docs-formatting

    Build: Apply docs formatting, add docs:check script

  • 34dd9c Fix type error
  • 752f00 Address feedback
  • 332d97 Address feedback
  • 755d98 Format
  • cb4f07 Address feedback
  • 9328fa Merge branch 'next' into docs-formatting

    • next: (139 commits)
      Bump version from "10.4.0-alpha.9" to "10.4.0-alpha.10" [skip ci]
      Write changelog for 10.4.0-alpha.10 [skip ci]
      fix: make clearStatuses and ensurePanel resilient to null providers
      chore: add ts-ignore
      Build: remove vite-plus as devDependency
      Build: Add FIX_ON_COMMIT env var to force autofix in pre-commit hook
      telemetry: auto-send error telemetry when payload factory errors
      Bump version from "10.4.0-alpha.8" to "10.4.0-alpha.9" [skip ci]
      Remove tests and stories depending on the ComponentFactoryResolver from core angular
      Write changelog for 10.4.0-alpha.9 [skip ci]
      fix formatting
      fix lint
      format
      chore: commit yarn.lock for @​chromatic-com/storybook@​5.1.2 and enable changeDetection in internal Storybook
      Update @​chromatic-com/storybook to ^5.1.2; add clearStatuses unit tests
      Isolate clearStatuses per-provider with try/catch
      Sidebar: route clearStatuses through per-provider clear() API
      Update code/core/src/telemetry/index.ts
      Update code/addons/vitest/src/preset.ts
      make subcomponentmanifest type pick from componentmanifest type
      ...

    • fd03be Merge branch 'next' into worktree-abundant-leaping-quokka

    • next: (53 commits)
      Bump version from "10.4.0-alpha.9" to "10.4.0-alpha.10" [skip ci]
      Write changelog for 10.4.0-alpha.10 [skip ci]
      fix: make clearStatuses and ensurePanel resilient to null providers
      chore: add ts-ignore
      Build: remove vite-plus as devDependency
      Build: Add FIX_ON_COMMIT env var to force autofix in pre-commit hook
      telemetry: auto-send error telemetry when payload factory errors
      Bump version from "10.4.0-alpha.8" to "10.4.0-alpha.9" [skip ci]
      Remove tests and stories depending on the ComponentFactoryResolver from core angular
      Write changelog for 10.4.0-alpha.9 [skip ci]
      fix formatting
      fix lint
      format
      chore: commit yarn.lock for @​chromatic-com/storybook@​5.1.2 and enable changeDetection in internal Storybook
      Update @​chromatic-com/storybook to ^5.1.2; add clearStatuses unit tests
      Isolate clearStatuses per-provider with try/catch
      Sidebar: route clearStatuses through per-provider clear() API
      Update code/core/src/telemetry/index.ts
      Update code/addons/vitest/src/preset.ts
      make subcomponentmanifest type pick from componentmanifest type
      ...

    • 6aa9e7 Add images
    • 573755 Bump version from "10.4.0-alpha.9" to "10.4.0-alpha.10" [skip ci]
    • 0edb4e Merge pull request #34539 from storybookjs/version-non-patch-from-10.4.0-alpha.9

    Release: Prerelease 10.4.0-alpha.10

@michijs

michijs Bot commented Apr 27, 2026

Copy link
Copy Markdown
Contributor Author

Bump @​storybook/addon-a11y from 9.1.3 to 10.3.5

Changelog:
Sourced from releases.
        ### v10.4.0-alpha.10## 10.4.0-alpha.10
  • Sidebar: Fix clear status button to only clear test statuses - #34478, thanks @​valentinpalkovic!

  • Telemetry: Centralize disable logic with module-level flag - #34485, thanks @​valentinpalkovic!

          ### v10.4.0-alpha.9## 10.4.0-alpha.9
    
  • A11y: Improve boolean control contrast in forced colors mode - #34204, thanks @​anchmelev!

  • Addon-Docs: Avoid rerendering static Source blocks - #34206, thanks @​anchmelev!

  • CLI: Streamline Node.js version detection code - #34440, thanks @​Sidnioulz!

  • Core: Improve startup performance by deferring change detection initialization - #34498, thanks @​ghengeveld!

  • Core: Normalize file paths in ChangeDetectionService and trace-changed for Windows support - #34445, thanks @​ghengeveld!

  • Fix: Add vite-plus vendored libraries version detection - #34509, thanks @​huang-julien!

  • Nextjs: Handle node builtin webpack imports - #34494, thanks @​JReinhold!

  • React: Add subcomponents to component manifests - #34428, thanks @​kasperpeulen!

  • Vue3: Clear stale args/globals when nextArgs is empty in updateArgs - #34409, thanks @​whdjh!

          ### v10.4.0-alpha.8## 10.4.0-alpha.8
    
  • A11y: Add aria-live announcements via @​react-aria/live-announcer - #33970, thanks @​copilot-swe-agent!

  • Actions: Fix state mutation and keep newest actions when limit reached - #34286, thanks @​Sidnioulz!

  • Core: Disable component manifest by default - #34408, thanks @​yannbf!

  • Core: Implement Git change detection - #34420, thanks @​ghengeveld!

  • Core: Rename preview.ts to preview.tsx in generated projects - #34396, thanks @​Sidnioulz!

  • Sidebar: Add dual-slot status icons for change detection and test results - #34346, thanks @​valentinpalkovic!

  • UI: Improve interactions panel accessibility - #34110, thanks @​anchmelev!

          ### v10.3.5## 10.3.5
    
  • Core: Disable component manifest by default - #34408, thanks @​yannbf!

[!NOTE]
Version >=0.5.0 of @&ZeroWidthSpace;storybook/addon-mcp enables component manifests again. If you're upgrading Storybook from version >= 10.3.0 to >= 10.3.5 and are using the MCP addon, you should also upgrade @&ZeroWidthSpace;storybook/addon-mcp to keep the docs toolset in the MCP server.

        ### v10.4.0-alpha.7## 10.4.0-alpha.7
  • CLI: Explicitly tell whether smoke tests passed or failed - #34419, thanks @​Sidnioulz!

  • Core: Add `ChangeDetectionService` and wire up builder-vite - #34369, thanks @​ghengeveld!

  • Maintenance: Extract parseFilterParam shared helper from tags and statuses modules - #34436, thanks @​mixelburg!

  • Sidebar: Add status-based filtering with refactored status architecture - #34339, thanks @​valentinpalkovic!

  • UI: Fix global shortcuts not showing region focus indicator - #34201, thanks @​Sidnioulz!

          ### v10.3.4## 10.3.4
    
  • Addon-a11y: Clear status transition timer on unmount to prevent test flake - #34203, thanks @​mixelburg!

  • Bug: Skip re-processing already transformed config files for CSF factories - #34273, thanks @​huang-julien!

  • Builder-Vite: Use djb2 hash to prevent variable name collisions in builder-vite - #34274, thanks @​chida09!

  • CLI: Prompt for init crash reports - #34316, thanks @​JReinhold!

  • CSF4: Fix duplicate preview loading issue in Vitest - #34361, thanks @​valentinpalkovic!

  • Core: Fix WebSocket connection for StackBlitz/WebContainers - #34281, thanks @​ghengeveld!

  • React-Docgen: Try .tsx fallback when resolving .js ESM imports in docgen resolvers - #34393, thanks @​mixelburg!

  • React-Vite: Upgrade @​joshwooding/vite-plugin-react-docgen-typescript to 0.7.0 - #34335, thanks @​beeswhacks!

          ### v10.4.0-alpha.6## 10.4.0-alpha.6
    
  • Builder-Vite: Add onModuleGraphChange method - #34323, thanks @​ghengeveld!

  • CLI: Add automigrate check for 'storybook' package name conflict - #34290, thanks @​whdjh!

  • CLI: Prompt for init crash reports - #34316, thanks @​JReinhold!

  • CSF4: Fix duplicate preview loading issue in Vitest - #34361, thanks @​valentinpalkovic!

  • Maintenance: Add assertions outside step incorrectly nested in interactions panel - #34296, thanks @​majiayu000!

  • Maintenance: Extract getBuilderOptions helper across framewo… - #34260, thanks @​alex-js-ltd!

  • Maintenance: Use errorToErrorLike in boot-test-runner for consistent stack deduplication - #34385, thanks @​mixelburg!

  • Onboarding: Fix checklist MDX instructions - #33193, thanks @​kylegach!

  • React-Docgen: Add tsconfig fallback chain and warning for monorepos - #34353, thanks @​viditkbhatnagar!

  • React-Docgen: Try .tsx fallback when resolving .js ESM imports in docgen resolvers - #34393, thanks @​mixelburg!

  • UI: Fix mobile navigation when renderLabel returns a React node - #34262, thanks @​Nathan54Villaume!

  • Vite: Use vite hook filter for performance improvements - #34022, thanks @​huang-julien!

          ### v10.4.0-alpha.5## 10.4.0-alpha.5
    
  • Addon-a11y: Clear status transition timer on unmount to prevent test flake - #34203, thanks @​mixelburg!

  • Builder-Vite: Use djb2 hash to prevent variable name collisions in builder-vite - #34274, thanks @​chida09!

  • CLI: Fix Next.js Vite automigration corrupting configs already using `@​storybook/nextjs-vite` - #34249, thanks @​nathanjessen!

  • Core: Add changeDetection feature flag - #34314, thanks @​valentinpalkovic!

  • Manager: URL-based tag filter state + filter-aware initial story selection - #34283, thanks @​valentinpalkovic!

  • React-Vite: Upgrade @​joshwooding/vite-plugin-react-docgen-typescript to 0.7.0 - #34335, thanks @​beeswhacks!

  • Refactor: Extract shared `PseudoStateGrid` component in pseudo-states stories - #34334, thanks @​copilot-swe-agent!

          ### v10.4.0-alpha.4## 10.4.0-alpha.4
    
  • Addon-Docs: Add Reset story button to re-render stories in docs - #34086, thanks @​6810779s!

  • Code: Fix inline code blocks inside links removing link affordance - #33903, thanks @​yatishgoel!

  • Controls: Add maxPresetColors option to ColorControl - #33998, thanks @​mixelburg!

  • Core: Fix WebSocket connection for StackBlitz/WebContainers - #34281, thanks @​ghengeveld!

  • Dependencies: Update `vite-plugin-storybook-nextjs` to ^3.2.4 - #34280, thanks @​k35o!

  • React: Add component metadata extraction via Volar-style LanguageService - #33914, thanks @​kasperpeulen!

  • StatusValue: Add 'status-value:<new|modified|affected>' - #34305, thanks @​valentinpalkovic!

  • UI: Ensure Controls panel can scroll horizontally for now - #34248, thanks @​Sidnioulz!

          ### v10.4.0-alpha.3## 10.4.0-alpha.3
    
  • Addon-Vitest: Streamline vite(st) config detection across init and postinstall - #34193, thanks @​valentinpalkovic!

  • Angular: Use Story ID for renderer IDs (including standalone stories) - #33982, thanks @​ValentinFunk!

  • Bug: Skip re-processing already transformed config files for CSF factories - #34273, thanks @​huang-julien!

  • CLI: Shorten CTA link messages - #34236, thanks @​shilman!

  • React Native Web: Fix vite8 support by bumping vite-plugin-rnw - #34231, thanks @​dannyhw!

          ### v10.3.3## 10.3.3
    
  • Addon-Vitest: Streamline vite(st) config detection across init and postinstall - #34193, thanks @​valentinpalkovic!

          ### v10.3.2## 10.3.2
    
  • CLI: Shorten CTA link messages - #34236, thanks @​shilman!

  • React Native Web: Fix vite8 support by bumping vite-plugin-rnw - #34231, thanks @​dannyhw!

          ### v10.4.0-alpha.2## 10.4.0-alpha.2
    
  • CLI: Use npm info to fetch versions in repro command - #34214, thanks @​yannbf!

  • Core: Prevent story-local viewport from persisting in URL - #34153, thanks @​ghengeveld!

  • Maintenance: Remove dead-code copy of wrap-getAbsolutePath-utils - #34168, thanks @​mixelburg!

  • Security: Makes sure `serialize-javascript` is at latest version - #34034, thanks @​50bbx!

          ### v10.4.0-alpha.1## 10.4.0-alpha.1
    
  • Docs: Ensure unique control id attributes across multiple Controls blocks - #34021, thanks @​TheSeydiCharyyev!

          ### v10.3.1## 10.3.1
    
  • CLI: Use npm info to fetch versions in repro command - #34214, thanks @​yannbf!

  • Core: Prevent story-local viewport from persisting in URL - #34153, thanks @​ghengeveld!

          ### v10.4.0-alpha.0## 10.4.0-alpha.0
    
    
    
    
          ### v10.3.0## 10.3.0
    

> Improved developer experience, AI-assisting tools, and broader ecosystem support

Storybook 10.3 contains hundreds of fixes and improvements including:

  • 🤖 Storybook MCP: Agentic component dev, docs, and test (Preview release for React)
  • ⚡ Vite 8 support
  • ▲ Next.js 16.2 support
  • 📝 ESLint 10 support
  • 〰️ Addon Pseudo-States: Tailwind v4 support
  • 🔧 Addon-Vitest: Simplified configuration - no more setup files required
  • ♿ Numerous accessibility improvements across the UI
List of all updates
  • A11y: Add ScrollArea prop focusable for when it has static children - #33876, thanks @​Sidnioulz!
  • A11y: Ensure popover dialogs have an ARIA label - #33500, thanks @​gayanMatch!
  • A11y: Make resize handles for addon panel and sidebar accessible #33980
  • A11y: Underline MDX links for WCAG SC 1.4.1 compliance - #33139, thanks @​NikhilChowdhury27!
  • Actions: Add expandLevel parameter to configure tree depth - #33977, thanks @​mixelburg!
  • Actions: Fix HandlerFunction type to support async callback props - #33864, thanks @​mixelburg!
  • Addon-Docs: Add React as optimizeDeps entry - #34176, thanks @​valentinpalkovic!
  • Addon-Docs: Add support for `sourceState: 'none'` to canvas block parameters - #33627, thanks @​quisido!
  • Addon-docs: Restore `docs.components` overrides for doc blocks #34111
  • Addon-Vitest: Add channel API to programmatically trigger test runs - #33206, thanks @​JReinhold!
  • Addon-Vitest: Handle additional vitest config export patterns in postinstall - #34106, thanks @​copilot-swe-agent!
  • Addon-Vitest: Make Playwright `--with-deps` platform-aware to avoid `sudo` prompt on Linux #34121
  • Addon-Vitest: Refactor Vitest setup to eliminate the need for a dedicated setup file - #34025, thanks @​valentinpalkovic!
  • Addon-Vitest: Support Vitest canaries - #33833, thanks @​valentinpalkovic!
  • Angular: Add moduleResolution: bundler to tsconfig - #34085, thanks @​valentinpalkovic!
  • Angular: only load webpack dependencies on demand - #34043, thanks @​sod!
  • Angular: Storybook fails with unknown option silent - #33736, thanks @​tanujbhaud!
  • Build: Update @​types/node - #34037, thanks @​valentinpalkovic!
  • Builder-Vite: Centralize Vite plugins for builder-vite and addon-vitest - #33819, thanks @​valentinpalkovic!
  • Builder-Vite: Fix cold-cache vitest failures for story paths containing glob special characters - #34044, thanks @​copilot-swe-agent!
  • Builder-Vite: Use preview annotations as entry points for optimizeDeps - #33875, thanks @​copilot-swe-agent!
  • CI: declare explicit permissions for stale and weekly cron workflows - #33902, thanks @​Rohan5commit!
  • CLI: Add vike CLI metadata - #34189, thanks @​yannbf!
  • CLI: Avoid hanging of postinstall during init - #34175, thanks @​valentinpalkovic!
  • CLI: Fix onboarding not opening - #33609, thanks @​ndelangen!
  • CLI: Show multiple favicons warning as debug message - #34069, thanks @​remino!
  • Cli: Use npm for registry URL in PNPMProxy to avoid workspace errors - #33571, thanks @​ia319!
  • Controls: Allow story argTypes to override control: false from meta - #33729, thanks @​jonathan-fulton!
  • Controls: Fix Object contrast issue and tidy up code - #33923, thanks @​Sidnioulz!
  • Core: Ensure telemetry is never triggered on initial load of checklist data - #33918, thanks @​ghengeveld!
  • Core: Fix event source URL based on refId when multiple iframes share the same origin #34105
  • Core: Fix false-positive CJS warning when 'exports' appears in strings or comments - #33572, thanks @​reeseo3o!
  • Core: Fix handling complex viewport sizes #33615
  • Core: Fix iframe reference for composed Storybook on a subpath #34100
  • Core: Fix typos: occured -> occurred, recieves -> receives - #33727, thanks @​jonathan-fulton!
  • Core: Handle BROWSER=none correctly and improve error messages - #33730, thanks @​jonathan-fulton!
  • Core: Ignore empty files when indexing - #33782, thanks @​JReinhold!
  • Core: Register CORS middleware before index.json route - #33728, thanks @​jonathan-fulton!
  • Core: Revert Pull Request #33420 from Maelryn/fix/copy-button-overlap - #33877, thanks @​Sidnioulz!
  • Core: Zoom tool refinements - Hide reset button when value is initial - #33635, thanks @​superLipbalm!
  • Docs: Edit JSON button is now accessible at 320x256 viewport (WCAG 2.1 Reflow test) - #33707, thanks @​TheSeydiCharyyev!
  • Docs: Make CSS ordering in DocsContainer more predictable #34015
  • ESLint-plugin: Disallow extra properties in eslint plugin rule options - #32056, thanks @​andreww2012!
  • ESLint: bail out config setup if eslint-plugin-storybook is already imported - #34089, thanks @​copilot-swe-agent!
  • HMR: Fix race conditions causing stale play functions to fire on re-rendered stories - #33930, thanks @​copilot-swe-agent!
  • Maintenance: Revert pull request #33930 HMR events - #34190, thanks @​yannbf!
  • Maintenance: Use std-env for AI agent detection in telemetry #34114
  • Manifest: Add docs entries to debugger - #33607, thanks @​JReinhold!
  • Manifest: Rename `experimentalComponentsManifest` → `componentsManifest`, default to `true` #33974
  • Manifests: Fix Attached MDX causing wrong component entries #34101
  • Next.js-Vite: Fix failing postcss mutation - #33879, thanks @​valentinpalkovic!
  • Next.js: Move image configuration from FrameworkOptions to parameters #32639, thanks @​y-hsgw!
  • Preact: Support inferring props from component types - #33828, thanks @​JoviDeCroock!
  • React Native Web: Fix inconsistent example stories - #33891, thanks @​danielalanbates!
  • React: Add react-docgen-typescript to component manifest - #33818, thanks @​kasperpeulen!
  • Revert "Toolbar: Remove extra toolbar divider when zoom controls not shown" - #34099, thanks @​valentinpalkovic!
  • Test: Fix clearing mocks in Vitest #34078
  • Test: Update @​testing-library/jest-dom - #33928, thanks @​valentinpalkovic!
  • Theming: Export interface declaration for `ThemesGlobals` - #33343, thanks @​icopp!
  • Toolbar: Remove extra toolbar divider when zoom controls not shown - #33731, thanks @​jonathan-fulton!
  • UI: Allow direct kb/mouse actions on zoom tool button - #33496, thanks @​Sidnioulz!
  • UI: Avoid large animation for reduced motion users - #33530, thanks @​Sidnioulz!
  • UI: Ensure Link without href is keyboard-reachable - #34163, thanks @​Sidnioulz!
  • UI: Fix `z-index` problem with `popover`s and `modal`s nesting - #33757, thanks @​ndelangen!
  • UI: Fix code/copy buttons overlap with content - #33889, thanks @​Sidnioulz!
  • UI: Fix Copy button overlapping code in portrait mode - #33420, thanks @​Maelryn!
  • UI: Fix modal text selection - #33967, thanks @​Sidnioulz!
  • UI: Fix tab navigation after closing addon panel - #33971, thanks @​copilot-swe-agent!
  • UI: Handle kb nav edge cases when preview and panel are hidden - #33588, thanks @​Sidnioulz!
  • UI: Hide addon panel Drag on pages without a panel - #34162, thanks @​Sidnioulz!
  • UI: Hide manifest tag for now - #34165, thanks @​Sidnioulz!
  • UI: Make disabled Buttons keyboard-focusable - #34166, thanks @​Sidnioulz!
  • UI: Make TagsFilter state persistent #33374
  • UI: Use correct selector for addon panel focus check - #34164, thanks @​Sidnioulz!
  • UI: Zoom faster when pressing shift - #34185, thanks @​Sidnioulz!
  • Viewport: Skip viewport validation before parameters load - #33794, thanks @​ia319!
  • Vite: Add mock entries to optimizeDeps.entries - #34167, thanks @​valentinpalkovic!
  • Vue3-Vite: Allow paths in docgen tsconfig option #32310, thanks @​Thomaash!
        ### v10.3.0-beta.3## 10.3.0-beta.3
  • Addon-Vitest: Handle additional vitest config export patterns in postinstall - #34106, thanks @​copilot-swe-agent!

  • CLI: Add vike CLI metadata - #34189, thanks @​yannbf!

  • Maintenance: Revert pull request #33930 HMR events - #34190, thanks @​yannbf!

  • UI: Ensure Link without href is keyboard-reachable - #34163, thanks @​Sidnioulz!

  • UI: Zoom faster when pressing shift - #34185, thanks @​Sidnioulz!

  • Vite: Add mock entries to optimizeDeps.entries - #34167, thanks @​valentinpalkovic!

          ### v10.3.0-beta.2## 10.3.0-beta.2
    
  • UI: Hide addon panel Drag on pages without a panel - #34162, thanks @​Sidnioulz!

  • UI: Hide manifest tag for now - #34165, thanks @​Sidnioulz!

  • UI: Make disabled Buttons keyboard-focusable - #34166, thanks @​Sidnioulz!

  • UI: Use correct selector for addon panel focus check - #34164, thanks @​Sidnioulz!

  • Vue: Make globals reactive in decorators - #34116, thanks @​Sidnioulz!

          ### v10.3.0-beta.1## 10.3.0-beta.1
    
  • Addon-Docs: Add React as optimizeDeps entry - #34176, thanks @​valentinpalkovic!

  • CLI: Avoid hanging of postinstall during init - #34175, thanks @​valentinpalkovic!

          ### v10.3.0-beta.0## 10.3.0-beta.0
    
  • Test: Fix clearing mocks in Vitest #34078

  • Core: Fix event source URL based on refId when multiple iframes share the same origin #34105

  • UI: Make TagsFilter state persistent #33374

  • A11y: Make resize handles for addon panel and sidebar accessible #33980

  • Maintenance: Use std-env for AI agent detection in telemetry #34114

  • Addon-Vitest: Make Playwright --with-deps platform-aware to avoid sudo prompt on Linux #34121

  • Addon-docs: Restore docs.components overrides for doc blocks #34111

  • Maintenance: Support vite-plugin-svelte7 which supports Vite 8 #34115

  • Core: Fix handling complex viewport sizes #33615

  • Core: Fix iframe reference for composed Storybook on a subpath #34100

  • Manifest: Rename experimentalComponentsManifestcomponentsManifest, default to true #33974

  • Manifests: Fix Attached MDX causing wrong component entries #34101

  • Vue3-Vite: Allow paths in docgen tsconfig option #32310, thanks @​Thomaash!

  • Next.js: Move image configuration from FrameworkOptions to parameters #32639, thanks @​y-hsgw!

  • Docs: Make CSS ordering in DocsContainer more predictable #34015

          ### v10.3.0-alpha.17## 10.3.0-alpha.17
    
  • Core: Correctly fallback to first detected vitest config file - #33865, thanks @​yannbf!

  • ESLint-plugin: Disallow extra properties in eslint plugin rule options - #32056, thanks @​andreww2012!

  • ESLint: bail out config setup if eslint-plugin-storybook is already imported - #34089, thanks @​copilot-swe-agent!

  • Revert "Toolbar: Remove extra toolbar divider when zoom controls not shown" - #34099, thanks @​valentinpalkovic!

          ### v10.2.19## 10.2.19
    
  • Maintenance: Support vite-plugin-svelte@​7 which supports Vite 8 - #34115, thanks @​valentinpalkovic!

  • Vite: Support Vite 8 - #33788, thanks @​valentinpalkovic!

          ### v10.2.18## 10.2.18
    
  • Core: Correctly fallback to first detected vitest config file - #33865, thanks @​yannbf!

  • Core: Fix error reporting in ManagerErrorBoundary - #33915, thanks @​ghengeveld!

          ### v10.3.0-alpha.16## 10.3.0-alpha.16
    
  • A11y: Underline MDX links for WCAG SC 1.4.1 compliance - #33139, thanks @​NikhilChowdhury27!

  • Angular: Add moduleResolution: bundler to tsconfig - #34085, thanks @​valentinpalkovic!

  • Angular: only load webpack dependencies on demand - #34043, thanks @​sod!

  • CLI: Show multiple favicons warning as debug message - #34069, thanks @​remino!

  • Core: Fix error reporting in ManagerErrorBoundary - #33915, thanks @​ghengeveld!

  • Vite: Support Vite 8 - #33788, thanks @​valentinpalkovic!

          ### v10.3.0-alpha.15## 10.3.0-alpha.15
    
  • Actions: Add expandLevel parameter to configure tree depth - #33977, thanks @​mixelburg!

  • Actions: Fix HandlerFunction type to support async callback props - #33864, thanks @​mixelburg!

  • Addon-Vitest: Refactor Vitest setup to eliminate the need for a dedicated setup file - #34025, thanks @​valentinpalkovic!

  • Build: Update @​types/node - #34037, thanks @​valentinpalkovic!

  • Builder-Vite: Fix cold-cache vitest failures for story paths containing glob special characters - #34044, thanks @​copilot-swe-agent!

  • CI:: declare explicit permissions for stale and weekly cron workflows - #33902, thanks @​Rohan5commit!

  • Core: Add vike metadata frameworks - #33965, thanks @​yannbf!

  • Core: Resolve builder preset path correctly in pnpm strict mode - #34032, thanks @​braedenfoster!

  • Core: Update default allowed hosts in host validation middleware - #34045, thanks @​ghengeveld!

  • Next.js: Add support for v16.2 - #34046, thanks @​valentinpalkovic!

  • UI: Fix code/copy buttons overlap with content - #33889, thanks @​Sidnioulz!

  • UI: Fix modal text selection - #33967, thanks @​Sidnioulz!

  • UI: Fix tab navigation after closing addon panel - #33971, thanks @​copilot-swe-agent!

  • UI: Handle kb nav edge cases when preview and panel are hidden - #33588, thanks @​Sidnioulz!

          ### v10.2.17## 10.2.17
    
  • Next.js: Add support for v16.2 - #34046, thanks @​valentinpalkovic!

          ### v10.2.16## 10.2.16
    
  • CSF-Factories: Fix ConfigFile parser false warning on `definePreview({...}).type()` export default - #33885, thanks @​copilot-swe-agent!

  • Core: Add host/origin validation to requests and websocket connections - #33835, thanks @​ghengeveld!

  • Core: Add vike metadata frameworks - #33965, thanks @​yannbf!

  • Core: Resolve builder preset path correctly in pnpm strict mode - #34032, thanks @​braedenfoster!

  • Core: Update default allowed hosts in host validation middleware - #34045, thanks @​ghengeveld!

Commit history:
  • b9549a Merge pull request #34071 from Axadali/33735-global-style-issue

    UI: Fix global background + color styles affecting stories

  • 890c11 Merge branch 'next' into 33735-global-style-issue
  • ff98f8 Merge pull request #34599 from storybookjs/kasper/disable-nx-workflow

    Build: Disable NX workflow

  • eae1fe Build: Disable NX workflow triggers while license is expired
  • d226aa Merge pull request #34586 from storybookjs/yann/change-mock-events

    CLI: Change mock event detection

  • e7a952 Merge pull request #34530 from storybookjs/worktree-abundant-leaping-quokka

    Docs: Add change detection documentation

  • ec48db Merge pull request #34504 from storybookjs/story-new-status

    Core: Show "new" status on newly added individual stories

  • 526669 Merge pull request #34585 from storybookjs/fix-sigint-handling
  • 41b7af Merge branch 'next' into story-new-status
  • 86961d CLI: Change mock event detection
  • 1d5f0b Ensure process termination on signal when telemetry is disabled
  • c757d0 Add story with changeDetection disabled
  • 4c9a45 Removed data.changedFiles from change-detection status internals and updated tests accordingly.
  • e7e367 Fix type error
  • 833841 Docs: Improve change detection page clarity

    Clarify modified vs. affected status definitions, merge thin "Sidebar
    display" section into status indicators, and tighten callout text.

    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@​anthropic.com>

  • a85b63 Merge branch 'next' into worktree-abundant-leaping-quokka

    • next:
      Extend doc types to support section-level classification
      Build: Add docs-review skill
      Fix type error
      Address feedback
      Address feedback
      Format
      Address feedback
      Address feedback
      Remove skill and workflow
      Rewrite skill to address structural/strategic issues, not just formatting
      Add weekly workflow
      Replace fast-glob with tinyglobby
      Run skill
      Expand skill with more detailed voice and tone standards
      Run skill
      Expand link check to handle anchors
      Run skill
      Expand skill with more automated checks and writing standards
      Chore: Add scripts for docs-review skill
      Docs: Standardize formatting, add docs-review skill
    • 09fb0b Merge pull request #34451 from storybookjs/docs-skill

    Build: Add docs-review skill

  • b5caab Extend doc types to support section-level classification

    Pages still have one primary doc type, but well-structured secondary
    sections (e.g., a reference table at the end of a task page) are now
    recognized and evaluated by their own type's criteria instead of being
    flagged as an antipattern or triggering a split recommendation.

    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@​anthropic.com>

  • 561baa Build: Add docs-review skill
  • db1887 Merge pull request #34330 from storybookjs/docs-formatting

    Build: Apply docs formatting, add docs:check script

  • 34dd9c Fix type error
  • 752f00 Address feedback
  • 332d97 Address feedback
  • 755d98 Format
  • cb4f07 Address feedback
  • 9328fa Merge branch 'next' into docs-formatting

    • next: (139 commits)
      Bump version from "10.4.0-alpha.9" to "10.4.0-alpha.10" [skip ci]
      Write changelog for 10.4.0-alpha.10 [skip ci]
      fix: make clearStatuses and ensurePanel resilient to null providers
      chore: add ts-ignore
      Build: remove vite-plus as devDependency
      Build: Add FIX_ON_COMMIT env var to force autofix in pre-commit hook
      telemetry: auto-send error telemetry when payload factory errors
      Bump version from "10.4.0-alpha.8" to "10.4.0-alpha.9" [skip ci]
      Remove tests and stories depending on the ComponentFactoryResolver from core angular
      Write changelog for 10.4.0-alpha.9 [skip ci]
      fix formatting
      fix lint
      format
      chore: commit yarn.lock for @​chromatic-com/storybook@​5.1.2 and enable changeDetection in internal Storybook
      Update @​chromatic-com/storybook to ^5.1.2; add clearStatuses unit tests
      Isolate clearStatuses per-provider with try/catch
      Sidebar: route clearStatuses through per-provider clear() API
      Update code/core/src/telemetry/index.ts
      Update code/addons/vitest/src/preset.ts
      make subcomponentmanifest type pick from componentmanifest type
      ...

    • fd03be Merge branch 'next' into worktree-abundant-leaping-quokka

    • next: (53 commits)
      Bump version from "10.4.0-alpha.9" to "10.4.0-alpha.10" [skip ci]
      Write changelog for 10.4.0-alpha.10 [skip ci]
      fix: make clearStatuses and ensurePanel resilient to null providers
      chore: add ts-ignore
      Build: remove vite-plus as devDependency
      Build: Add FIX_ON_COMMIT env var to force autofix in pre-commit hook
      telemetry: auto-send error telemetry when payload factory errors
      Bump version from "10.4.0-alpha.8" to "10.4.0-alpha.9" [skip ci]
      Remove tests and stories depending on the ComponentFactoryResolver from core angular
      Write changelog for 10.4.0-alpha.9 [skip ci]
      fix formatting
      fix lint
      format
      chore: commit yarn.lock for @​chromatic-com/storybook@​5.1.2 and enable changeDetection in internal Storybook
      Update @​chromatic-com/storybook to ^5.1.2; add clearStatuses unit tests
      Isolate clearStatuses per-provider with try/catch
      Sidebar: route clearStatuses through per-provider clear() API
      Update code/core/src/telemetry/index.ts
      Update code/addons/vitest/src/preset.ts
      make subcomponentmanifest type pick from componentmanifest type
      ...

    • 6aa9e7 Add images
    • 573755 Bump version from "10.4.0-alpha.9" to "10.4.0-alpha.10" [skip ci]
    • 0edb4e Merge pull request #34539 from storybookjs/version-non-patch-from-10.4.0-alpha.9

    Release: Prerelease 10.4.0-alpha.10

@michijs michijs Bot closed this May 4, 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