Commit Graph

2940 Commits

Author SHA1 Message Date
github-actions[bot] 2f88a7116c chore: version packages (#2509)
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


# Releases
## @langchain/langgraph-sdk@1.9.20

### Patch Changes

- [#2508](https://github.com/langchain-ai/langgraphjs/pull/2508)
[`41cd05a`](https://github.com/langchain-ai/langgraphjs/commit/41cd05a411ed262443c2bd1048e1b728b7331ac6)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): hydrate custom HttpAgentServerAdapter via transport getState

StreamController now prefers adapter getState() before
client.threads.getState,
HttpAgentServerAdapter implements GET /threads/:id/state, and useStream
inherits
apiUrl from the transport so hydration no longer defaults to
localhost:8123.

## @langchain/angular@1.0.20

### Patch Changes

- [#2508](https://github.com/langchain-ai/langgraphjs/pull/2508)
[`41cd05a`](https://github.com/langchain-ai/langgraphjs/commit/41cd05a411ed262443c2bd1048e1b728b7331ac6)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): hydrate custom HttpAgentServerAdapter via transport getState

StreamController now prefers adapter getState() before
client.threads.getState,
HttpAgentServerAdapter implements GET /threads/:id/state, and useStream
inherits
apiUrl from the transport so hydration no longer defaults to
localhost:8123.

- Updated dependencies
\[[`41cd05a`](https://github.com/langchain-ai/langgraphjs/commit/41cd05a411ed262443c2bd1048e1b728b7331ac6)]:
    -   @langchain/langgraph-sdk@1.9.20

## @langchain/react@1.0.20

### Patch Changes

- [#2508](https://github.com/langchain-ai/langgraphjs/pull/2508)
[`41cd05a`](https://github.com/langchain-ai/langgraphjs/commit/41cd05a411ed262443c2bd1048e1b728b7331ac6)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): hydrate custom HttpAgentServerAdapter via transport getState

StreamController now prefers adapter getState() before
client.threads.getState,
HttpAgentServerAdapter implements GET /threads/:id/state, and useStream
inherits
apiUrl from the transport so hydration no longer defaults to
localhost:8123.

- Updated dependencies
\[[`41cd05a`](https://github.com/langchain-ai/langgraphjs/commit/41cd05a411ed262443c2bd1048e1b728b7331ac6)]:
    -   @langchain/langgraph-sdk@1.9.20

## @langchain/svelte@1.0.20

### Patch Changes

- [#2508](https://github.com/langchain-ai/langgraphjs/pull/2508)
[`41cd05a`](https://github.com/langchain-ai/langgraphjs/commit/41cd05a411ed262443c2bd1048e1b728b7331ac6)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): hydrate custom HttpAgentServerAdapter via transport getState

StreamController now prefers adapter getState() before
client.threads.getState,
HttpAgentServerAdapter implements GET /threads/:id/state, and useStream
inherits
apiUrl from the transport so hydration no longer defaults to
localhost:8123.

- Updated dependencies
\[[`41cd05a`](https://github.com/langchain-ai/langgraphjs/commit/41cd05a411ed262443c2bd1048e1b728b7331ac6)]:
    -   @langchain/langgraph-sdk@1.9.20

## @langchain/vue@1.0.20

### Patch Changes

- [#2508](https://github.com/langchain-ai/langgraphjs/pull/2508)
[`41cd05a`](https://github.com/langchain-ai/langgraphjs/commit/41cd05a411ed262443c2bd1048e1b728b7331ac6)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): hydrate custom HttpAgentServerAdapter via transport getState

StreamController now prefers adapter getState() before
client.threads.getState,
HttpAgentServerAdapter implements GET /threads/:id/state, and useStream
inherits
apiUrl from the transport so hydration no longer defaults to
localhost:8123.

- Updated dependencies
\[[`41cd05a`](https://github.com/langchain-ai/langgraphjs/commit/41cd05a411ed262443c2bd1048e1b728b7331ac6)]:
    -   @langchain/langgraph-sdk@1.9.20

## @example/ai-elements@0.1.35

### Patch Changes

- Updated dependencies
\[[`41cd05a`](https://github.com/langchain-ai/langgraphjs/commit/41cd05a411ed262443c2bd1048e1b728b7331ac6)]:
    -   @langchain/react@1.0.20

## @examples/assistant-ui-claude@0.1.35

### Patch Changes

- Updated dependencies
\[[`41cd05a`](https://github.com/langchain-ai/langgraphjs/commit/41cd05a411ed262443c2bd1048e1b728b7331ac6)]:
    -   @langchain/react@1.0.20

## @examples/ui-angular@0.0.45

### Patch Changes

- Updated dependencies
\[[`41cd05a`](https://github.com/langchain-ai/langgraphjs/commit/41cd05a411ed262443c2bd1048e1b728b7331ac6)]:
    -   @langchain/langgraph-sdk@1.9.20
    -   @langchain/angular@1.0.20

## @examples/ui-multimodal@0.0.21

### Patch Changes

- Updated dependencies
\[[`41cd05a`](https://github.com/langchain-ai/langgraphjs/commit/41cd05a411ed262443c2bd1048e1b728b7331ac6)]:
    -   @langchain/react@1.0.20

## @examples/ui-react@0.0.21

### Patch Changes

- Updated dependencies
\[[`41cd05a`](https://github.com/langchain-ai/langgraphjs/commit/41cd05a411ed262443c2bd1048e1b728b7331ac6)]:
    -   @langchain/langgraph-sdk@1.9.20
    -   @langchain/react@1.0.20

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@langchain/angular@1.0.20 @langchain/langgraph-sdk@1.9.20 @langchain/react@1.0.20 @langchain/svelte@1.0.20 @langchain/vue@1.0.20
2026-06-08 18:08:19 -07:00
Christian Bromann 41cd05a411 fix(sdk): hydrate custom transport without extra client config (#2508)
## Summary
- `StreamController.hydrate()` calls `transport.getState()` when the
adapter implements it, then falls back to `client.threads.getState()`.
- `HttpAgentServerAdapter` / `ProtocolSseTransportAdapter` add
`getState()` via `GET /threads/:threadId/state` (optional `paths.state`
override).
- `resolveClientApiUrl()` lets `useStream` build the hydration `Client`
from the transport’s `apiUrl` when none is passed explicitly.
- React, Vue, and Angular `useStream` hooks use the resolver so
custom-backend apps only need `transport={adapter}`.
2026-06-08 18:06:16 -07:00
github-actions[bot] 92ea6ab754 chore: version packages (#2507)
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


# Releases
## @langchain/langgraph-checkpoint-validation@1.1.0

### Minor Changes

- [#2503](https://github.com/langchain-ai/langgraphjs/pull/2503)
[`6e850fb`](https://github.com/langchain-ai/langgraphjs/commit/6e850fbabc842bb495352fbd6ef424c67ab0948f)
Thanks [@jkennedyvz](https://github.com/jkennedyvz)! -
fix(langgraph-checkpoint-validation): align node engine with vitest

## @langchain/langgraph-api@1.3.0

### Minor Changes

- [#2505](https://github.com/langchain-ai/langgraphjs/pull/2505)
[`cad31b4`](https://github.com/langchain-ai/langgraphjs/commit/cad31b42f001a87fcdf57c4c084c655c8762b6a5)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
Consolidate the protocol session's channel inference, channel-set
validation, and namespace prefix matching onto the shared
`@langchain/langgraph/stream` helpers instead of maintaining local
copies. This removes duplicated logic across `session/index.mts`,
`session/namespace.mts`, `session/internal-types.mts`, and
`service.mts`.

This also aligns SSE event-sink filtering (`matchesSinkFilter`) with the
WebSocket subscription matcher: both now normalize dynamic namespace
suffixes (e.g. a `["fetcher"]` namespace filter matches an event emitted
under `["fetcher:<uuid>"]`). Previously the SSE path used a stricter
exact-segment match.

Because the session now imports `@langchain/langgraph/stream`, the
`@langchain/langgraph` peer dependency floor is raised to `^1.3.6` (the
first release that ships the `/stream` entrypoint).

### Patch Changes

-   Updated dependencies \[]:
    -   @langchain/langgraph-ui@1.3.0

## @langchain/langgraph-checkpoint-sqlite@1.0.2

### Patch Changes

- [#2504](https://github.com/langchain-ai/langgraphjs/pull/2504)
[`e8a0940`](https://github.com/langchain-ai/langgraphjs/commit/e8a09409ac4a997012e78081160c91188ebe39fc)
Thanks [@jackjin1997](https://github.com/jackjin1997)! - fix:
`SqliteSaver.list({}, { filter })` now honors arbitrary metadata keys
(e.g. `tenant_id`, `env`), matching the behavior of the MongoDB,
Postgres, and Redis checkpointers. Previously only `source`, `step`, and
`parents` were honored — any other key was silently dropped, returning
unfiltered results.

## @langchain/langgraph-cli@1.3.0

### Patch Changes

- Updated dependencies
\[[`cad31b4`](https://github.com/langchain-ai/langgraphjs/commit/cad31b42f001a87fcdf57c4c084c655c8762b6a5)]:
    -   @langchain/langgraph-api@1.3.0

## @langchain/langgraph@1.3.7

### Patch Changes

- [#2505](https://github.com/langchain-ai/langgraphjs/pull/2505)
[`cad31b4`](https://github.com/langchain-ai/langgraphjs/commit/cad31b42f001a87fcdf57c4c084c655c8762b6a5)
Thanks [@christian-bromann](https://github.com/christian-bromann)! - Add
the `@langchain/langgraph/stream` entrypoint — a transport-agnostic
backend toolkit for building custom servers on top of the v2 streaming
protocol. Alongside the existing `StreamChannel` and
`convertToProtocolEvent`, it exposes subscription primitives, typed
against a minimal `MatchableEvent` shape so they work on both the core
`ProtocolEvent` and the wire-level `Event` from `@langchain/protocol`:

- `inferChannel(event)` — map an event to its subscription `Channel`
(named `custom:<name>` channels included).
- `matchesSubscription(event, definition)` — decide whether a buffered
event should be delivered for a `SubscribeParams` filter, honoring
channel, namespace prefix/depth, and an optional `since` replay cursor.
- `isPrefixMatch(namespace, prefix)` /
`normalizeNamespaceSegment(segment)` — namespace prefix matching with
dynamic-suffix normalization (e.g. `fetcher:<uuid>` matches the
`fetcher` prefix).
- `SUPPORTED_CHANNELS` / `isSupportedChannel(value)` — the recognized
channel set and a guard for validating subscription requests.

- Updated dependencies
\[[`cad31b4`](https://github.com/langchain-ai/langgraphjs/commit/cad31b42f001a87fcdf57c4c084c655c8762b6a5)]:
    -   @langchain/langgraph-sdk@1.9.19

## @langchain/langgraph-sdk@1.9.19

### Patch Changes

- [#2505](https://github.com/langchain-ai/langgraphjs/pull/2505)
[`cad31b4`](https://github.com/langchain-ai/langgraphjs/commit/cad31b42f001a87fcdf57c4c084c655c8762b6a5)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
Deduplicate the client stream transports: the protocol transport now
shares the SSE decoder and `IterableReadableStream` helpers with the
legacy transport instead of carrying its own copies. Removes the
redundant `transport/decoder.ts` and `transport/stream.ts` shims (and a
dead `StreamPart` re-export), importing the shared utilities from
`utils/sse.ts` directly. No public API or behavior change.

## @langchain/angular@1.0.19

### Patch Changes

- Updated dependencies
\[[`cad31b4`](https://github.com/langchain-ai/langgraphjs/commit/cad31b42f001a87fcdf57c4c084c655c8762b6a5)]:
    -   @langchain/langgraph-sdk@1.9.19

## @langchain/react@1.0.19

### Patch Changes

- Updated dependencies
\[[`cad31b4`](https://github.com/langchain-ai/langgraphjs/commit/cad31b42f001a87fcdf57c4c084c655c8762b6a5)]:
    -   @langchain/langgraph-sdk@1.9.19

## @langchain/svelte@1.0.19

### Patch Changes

- Updated dependencies
\[[`cad31b4`](https://github.com/langchain-ai/langgraphjs/commit/cad31b42f001a87fcdf57c4c084c655c8762b6a5)]:
    -   @langchain/langgraph-sdk@1.9.19

## @langchain/vue@1.0.19

### Patch Changes

- Updated dependencies
\[[`cad31b4`](https://github.com/langchain-ai/langgraphjs/commit/cad31b42f001a87fcdf57c4c084c655c8762b6a5)]:
    -   @langchain/langgraph-sdk@1.9.19

## @langchain/langgraph-ui@1.3.0



## @example/ai-elements@0.1.34

### Patch Changes

- Updated dependencies
\[[`cad31b4`](https://github.com/langchain-ai/langgraphjs/commit/cad31b42f001a87fcdf57c4c084c655c8762b6a5)]:
    -   @langchain/langgraph@1.3.7
    -   @langchain/react@1.0.19

## @examples/assistant-ui-claude@0.1.34

### Patch Changes

- Updated dependencies
\[[`cad31b4`](https://github.com/langchain-ai/langgraphjs/commit/cad31b42f001a87fcdf57c4c084c655c8762b6a5)]:
    -   @langchain/langgraph@1.3.7
    -   @langchain/react@1.0.19

## @examples/ui-angular@0.0.44

### Patch Changes

- Updated dependencies
\[[`cad31b4`](https://github.com/langchain-ai/langgraphjs/commit/cad31b42f001a87fcdf57c4c084c655c8762b6a5),
[`cad31b4`](https://github.com/langchain-ai/langgraphjs/commit/cad31b42f001a87fcdf57c4c084c655c8762b6a5)]:
    -   @langchain/langgraph@1.3.7
    -   @langchain/langgraph-sdk@1.9.19
    -   @langchain/angular@1.0.19

## @examples/ui-multimodal@0.0.20

### Patch Changes

- Updated dependencies
\[[`cad31b4`](https://github.com/langchain-ai/langgraphjs/commit/cad31b42f001a87fcdf57c4c084c655c8762b6a5)]:
    -   @langchain/langgraph@1.3.7
    -   @langchain/react@1.0.19

## @examples/ui-react@0.0.20

### Patch Changes

- Updated dependencies
\[[`cad31b4`](https://github.com/langchain-ai/langgraphjs/commit/cad31b42f001a87fcdf57c4c084c655c8762b6a5),
[`cad31b4`](https://github.com/langchain-ai/langgraphjs/commit/cad31b42f001a87fcdf57c4c084c655c8762b6a5)]:
    -   @langchain/langgraph@1.3.7
    -   @langchain/langgraph-sdk@1.9.19
    -   @langchain/react@1.0.19

## langgraph@1.0.39

### Patch Changes

- Updated dependencies
\[[`cad31b4`](https://github.com/langchain-ai/langgraphjs/commit/cad31b42f001a87fcdf57c4c084c655c8762b6a5)]:
    -   @langchain/langgraph@1.3.7

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@langchain/angular@1.0.19 @langchain/langgraph-api@1.3.0 @langchain/langgraph-checkpoint-sqlite@1.0.2 @langchain/langgraph-checkpoint-validation@1.1.0 @langchain/langgraph-cli@1.3.0 @langchain/langgraph-sdk@1.9.19 @langchain/langgraph-ui@1.3.0 @langchain/langgraph@1.3.7 @langchain/react@1.0.19 @langchain/svelte@1.0.19 @langchain/vue@1.0.19
2026-06-08 14:00:32 -07:00
Christian Bromann cad31b42f0 chore(sdk): centralize protocol helpers across core, api, and sdk (#2505)
## Summary
- Add `@langchain/langgraph/stream` in `@langchain/langgraph` — a
curated backend entrypoint for custom transports with `StreamChannel`,
`convertToProtocolEvent`, and shared subscription primitives
(`inferChannel`, `matchesSubscription`, `isPrefixMatch`,
`normalizeNamespaceSegment`, `SUPPORTED_CHANNELS`,
`isSupportedChannel`), typed against a minimal `MatchableEvent` shape.
- Refactor `@langchain/langgraph-api` to import those helpers instead of
maintaining local copies in the protocol session and SSE sink filter,
and raise the `@langchain/langgraph` peer floor to `^1.3.6`.
- Align SSE `matchesSinkFilter` with WebSocket subscription matching by
using the same namespace suffix normalization (e.g. `["fetcher"]` now
matches `["fetcher:<uuid>"]`).
- Deduplicate `@langchain/langgraph-sdk` client transports by removing
redundant protocol `transport/decoder.ts` and `transport/stream.ts`
shims and importing shared utilities from `utils/sse.ts` directly.
2026-06-08 13:54:07 -07:00
Jackjin e8a09409ac fix(langgraph-checkpoint-sqlite): allow filter on arbitrary metadata keys in list() (#2504)
## Summary

`SqliteSaver.list({}, { filter })` was silently dropping any filter key
that wasn't `source`, `step`, or `parents` — returning the full
unfiltered result set instead. The other checkpointers (MongoDB,
Postgres, Redis) all accept arbitrary metadata keys, so SQLite was the
only odd one out.

### Repro (failing on `main`)

```ts
await saver.put({ configurable: { thread_id: "1" } }, cp, { source: "update", step: 0, parents: {}, tenant_id: "acme" });
await saver.put({ configurable: { thread_id: "2" } }, cp, { source: "update", step: 0, parents: {}, tenant_id: "globex" });

// expected: 1 result (only thread 1)
// actual on main: 2 results (filter silently ignored)
for await (const t of saver.list({}, { filter: { tenant_id: "acme" } })) { ... }
```

### Fix

- Drop the `validCheckpointMetadataKeys` allow-list (`["source", "step",
"parents"]`).
- Pass the JSON path as a bound parameter (`jsonb(...)->? = ?`) so
arbitrary user keys flow through safely without SQL-injection risk.
Validated `better-sqlite3` supports parameterized JSON path on the `->`
operator.

### Tests

New test `should filter on arbitrary metadata keys, not just
CheckpointMetadata keys` exercises three custom keys (`tenant_id`,
`env`, missing) plus combined filters. **Reverse-verified**: with the
fix reverted the new test fails with `expected 2, actual 3` (filter
silently no-ops).

### Consistency parity

| Checkpointer | Arbitrary metadata filter | Before this PR |
|--------------|---------------------------|----------------|
| MongoDB |  via `metadata_search.{key}` (#2186) |  |
| Postgres |  via `metadata @> $1` |  |
| Redis |  via RediSearch tags |  |
| **SQLite** |  via `jsonb(metadata)->? = ?` (this PR) |  |

## AI Disclosure
This bug was identified through cross-checkpointer code review with AI
assistance, and the fix was validated against the existing test suite
plus a new regression test.

---------

Co-authored-by: Christian Bromann <git@bromann.dev>
2026-06-08 13:53:12 -07:00
John Kennedy 6e850fbabc fix(langgraph-checkpoint-validation): align node engine with vitest (#2503)
## Summary
- align checkpoint validation package Node engine with Vitest 4 runtime
requirements
- document the CLI Node requirement
- add missing secret file patterns to .gitignore per commit safety
preflight

## Testing
- Not run per request

---------

Co-authored-by: John Kennedy <jkennedyvz@users.noreply.github.com>
Co-authored-by: Christian Bromann <git@bromann.dev>
2026-06-08 13:52:39 -07:00
dependabot[bot] 4468bdf512 chore(deps): bump the npm_and_yarn group across 16 directories with 1 update (#2487)
Bumps the npm_and_yarn group with 1 update in the /internal/bench
directory:
[vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest).
Bumps the npm_and_yarn group with 1 update in the
/internal/environment_tests/test-exports-cf directory:
[vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest).
Bumps the npm_and_yarn group with 1 update in the /libs/checkpoint
directory:
[vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest).
Bumps the npm_and_yarn group with 1 update in the
/libs/checkpoint-mongodb directory:
[vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest).
Bumps the npm_and_yarn group with 1 update in the
/libs/checkpoint-postgres directory:
[vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest).
Bumps the npm_and_yarn group with 1 update in the /libs/checkpoint-redis
directory:
[vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest).
Bumps the npm_and_yarn group with 1 update in the
/libs/checkpoint-sqlite directory:
[vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest).
Bumps the npm_and_yarn group with 1 update in the
/libs/checkpoint-validation directory:
[vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest).
Bumps the npm_and_yarn group with 1 update in the /libs/langgraph-api
directory:
[vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest).
Bumps the npm_and_yarn group with 1 update in the /libs/langgraph-cli
directory:
[vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest).
Bumps the npm_and_yarn group with 1 update in the /libs/langgraph-core
directory:
[vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest).
Bumps the npm_and_yarn group with 1 update in the /libs/langgraph-cua
directory:
[vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest).
Bumps the npm_and_yarn group with 1 update in the
/libs/langgraph-supervisor directory:
[vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest).
Bumps the npm_and_yarn group with 1 update in the /libs/langgraph-swarm
directory:
[vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest).
Bumps the npm_and_yarn group with 1 update in the /libs/langgraph-ui
directory:
[vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest).
Bumps the npm_and_yarn group with 1 update in the /libs/sdk directory:
[vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest).

Updates `vitest` from 3.2.4 to 4.1.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vitest-dev/vitest/releases">vitest's
releases</a>.</em></p>
<blockquote>
<h2>v4.1.0</h2>
<p>Vitest 4.1 is out!</p>
<p>This release page lists all changes made to the project during the
4.1 beta. To get a review of all the new features, read our <a
href="https://vitest.dev/blog/vitest-4-1">blog post</a>.</p>
<h3>   🚀 Features</h3>
<ul>
<li>Return a disposable from doMock()  -  by <a
href="https://github.com/kirkwaiblinger"><code>@​kirkwaiblinger</code></a>
in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9332">vitest-dev/vitest#9332</a>
<a href="https://github.com/vitest-dev/vitest/commit/e3e659a96"><!-- raw
HTML omitted -->(e3e65)<!-- raw HTML omitted --></a></li>
<li>Added chai style assertions  -  by <a
href="https://github.com/ronnakamoto"><code>@​ronnakamoto</code></a> and
<a href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a>
in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/8842">vitest-dev/vitest#8842</a>
<a href="https://github.com/vitest-dev/vitest/commit/841df9ac5"><!-- raw
HTML omitted -->(841df)<!-- raw HTML omitted --></a></li>
<li>Update to sinon/fake-timers v15 and add <code>setTickMode</code> to
timer controls  -  by <a
href="https://github.com/atscott"><code>@​atscott</code></a> and <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/8726">vitest-dev/vitest#8726</a>
<a href="https://github.com/vitest-dev/vitest/commit/4b480aaed"><!-- raw
HTML omitted -->(4b480)<!-- raw HTML omitted --></a></li>
<li>Expose matcher types  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9448">vitest-dev/vitest#9448</a>
<a href="https://github.com/vitest-dev/vitest/commit/3e4b913b1"><!-- raw
HTML omitted -->(3e4b9)<!-- raw HTML omitted --></a></li>
<li>Add <code>toTestSpecification</code> to reported tasks  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9464">vitest-dev/vitest#9464</a>
<a href="https://github.com/vitest-dev/vitest/commit/1a4705da9"><!-- raw
HTML omitted -->(1a470)<!-- raw HTML omitted --></a></li>
<li>Show a warning if <code>vi.mock</code> or <code>vi.hoisted</code>
are declared outside of top level of the module  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9387">vitest-dev/vitest#9387</a>
<a href="https://github.com/vitest-dev/vitest/commit/5db54a468"><!-- raw
HTML omitted -->(5db54)<!-- raw HTML omitted --></a></li>
<li>Track and display expectedly failed tests (.fails) in UI and CLI  - 
by <a href="https://github.com/Copilot"><code>@​Copilot</code></a>,
<strong>sheremet-va</strong> and <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9476">vitest-dev/vitest#9476</a>
<a href="https://github.com/vitest-dev/vitest/commit/77d75fd34"><!-- raw
HTML omitted -->(77d75)<!-- raw HTML omitted --></a></li>
<li>Support tags  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9478">vitest-dev/vitest#9478</a>
<a href="https://github.com/vitest-dev/vitest/commit/de7c8a521"><!-- raw
HTML omitted -->(de7c8)<!-- raw HTML omitted --></a></li>
<li>Implement <code>aroundEach</code> and <code>aroundAll</code> hooks
 -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9450">vitest-dev/vitest#9450</a>
<a href="https://github.com/vitest-dev/vitest/commit/2a8cb9dc2"><!-- raw
HTML omitted -->(2a8cb)<!-- raw HTML omitted --></a></li>
<li>Stabilize experimental features  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9529">vitest-dev/vitest#9529</a>
<a href="https://github.com/vitest-dev/vitest/commit/b5fd2a16a"><!-- raw
HTML omitted -->(b5fd2)<!-- raw HTML omitted --></a></li>
<li>Accept <code>new</code> or <code>all</code> in <code>--update</code>
flag  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9543">vitest-dev/vitest#9543</a>
<a href="https://github.com/vitest-dev/vitest/commit/a5acf28a5"><!-- raw
HTML omitted -->(a5acf)<!-- raw HTML omitted --></a></li>
<li>Support <code>meta</code> in test options  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9535">vitest-dev/vitest#9535</a>
<a href="https://github.com/vitest-dev/vitest/commit/7d622e3d1"><!-- raw
HTML omitted -->(7d622)<!-- raw HTML omitted --></a></li>
<li>Support type inference with a new <code>test.extend</code> syntax
 -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9550">vitest-dev/vitest#9550</a>
<a href="https://github.com/vitest-dev/vitest/commit/e53854fcc"><!-- raw
HTML omitted -->(e5385)<!-- raw HTML omitted --></a></li>
<li>Support vite 8 beta, fix type issues in the config with different
vite versions  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9587">vitest-dev/vitest#9587</a>
<a href="https://github.com/vitest-dev/vitest/commit/990281dfd"><!-- raw
HTML omitted -->(99028)<!-- raw HTML omitted --></a></li>
<li>Add assertion helper to hide internal stack traces  -  by <a
href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a> and
<strong>Claude Opus 4.6</strong> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9594">vitest-dev/vitest#9594</a>
<a href="https://github.com/vitest-dev/vitest/commit/eeb0ae2f8"><!-- raw
HTML omitted -->(eeb0a)<!-- raw HTML omitted --></a></li>
<li>Store failure screenshots using artifacts API  -  by <a
href="https://github.com/macarie"><code>@​macarie</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9588">vitest-dev/vitest#9588</a>
<a href="https://github.com/vitest-dev/vitest/commit/24603e3c4"><!-- raw
HTML omitted -->(24603)<!-- raw HTML omitted --></a></li>
<li>Allow <code>vitest list</code> to statically collect tests instead
of running files to collect them  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9630">vitest-dev/vitest#9630</a>
<a href="https://github.com/vitest-dev/vitest/commit/7a8e7fc20"><!-- raw
HTML omitted -->(7a8e7)<!-- raw HTML omitted --></a></li>
<li>Add <code>--detect-async-leaks</code>  -  by <a
href="https://github.com/AriPerkkio"><code>@​AriPerkkio</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9528">vitest-dev/vitest#9528</a>
<a href="https://github.com/vitest-dev/vitest/commit/c594d4af3"><!-- raw
HTML omitted -->(c594d)<!-- raw HTML omitted --></a></li>
<li>Implement <code>mockThrow</code> and <code>mockThrowOnce</code>  - 
by <a
href="https://github.com/thor-juhasz"><code>@​thor-juhasz</code></a> and
<a href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a>
in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9512">vitest-dev/vitest#9512</a>
<a href="https://github.com/vitest-dev/vitest/commit/619179fb7"><!-- raw
HTML omitted -->(61917)<!-- raw HTML omitted --></a></li>
<li>Support <code>update: &quot;none&quot;</code> and add docs about
snapshots behavior on CI  -  by <a
href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9700">vitest-dev/vitest#9700</a>
<a href="https://github.com/vitest-dev/vitest/commit/05f1854e2"><!-- raw
HTML omitted -->(05f18)<!-- raw HTML omitted --></a></li>
<li>Support playwright <code>launchOptions</code> with
<code>connectOptions</code>  -  by <a
href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9702">vitest-dev/vitest#9702</a>
<a href="https://github.com/vitest-dev/vitest/commit/f0ff1b2a0"><!-- raw
HTML omitted -->(f0ff1)<!-- raw HTML omitted --></a></li>
<li>Add <code>page/locator.mark</code> API to enhance playwright trace
 -  by <a href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a>
in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9652">vitest-dev/vitest#9652</a>
<a href="https://github.com/vitest-dev/vitest/commit/d0ee546fe"><!-- raw
HTML omitted -->(d0ee5)<!-- raw HTML omitted --></a></li>
<li><strong>api</strong>:
<ul>
<li>Support tests starting or ending with <code>test</code> in
<code>experimental_parseSpecification</code>  -  by <a
href="https://github.com/jgillick"><code>@​jgillick</code></a> and
<strong>Jeremy Gillick</strong> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9235">vitest-dev/vitest#9235</a>
<a href="https://github.com/vitest-dev/vitest/commit/2f367fad3"><!-- raw
HTML omitted -->(2f367)<!-- raw HTML omitted --></a></li>
<li>Add filters to <code>createSpecification</code>  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9336">vitest-dev/vitest#9336</a>
<a href="https://github.com/vitest-dev/vitest/commit/c8e6c7fbf"><!-- raw
HTML omitted -->(c8e6c)<!-- raw HTML omitted --></a></li>
<li>Expose <code>runTestFiles</code> as alternative to
<code>runTestSpecifications</code>  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9443">vitest-dev/vitest#9443</a>
<a href="https://github.com/vitest-dev/vitest/commit/43d761821"><!-- raw
HTML omitted -->(43d76)<!-- raw HTML omitted --></a></li>
<li>Add <code>allowWrite</code> and <code>allowExec</code> options to
<code>api</code>  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9350">vitest-dev/vitest#9350</a>
<a href="https://github.com/vitest-dev/vitest/commit/20e00ef78"><!-- raw
HTML omitted -->(20e00)<!-- raw HTML omitted --></a></li>
<li>Allow passing down test cases to <code>toTestSpecification</code>
 -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9627">vitest-dev/vitest#9627</a>
<a href="https://github.com/vitest-dev/vitest/commit/6f17d5ddf"><!-- raw
HTML omitted -->(6f17d)<!-- raw HTML omitted --></a></li>
</ul>
</li>
<li><strong>browser</strong>:
<ul>
<li>Add <code>userEvent.wheel</code> API  -  by <a
href="https://github.com/macarie"><code>@​macarie</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9188">vitest-dev/vitest#9188</a>
<a href="https://github.com/vitest-dev/vitest/commit/660801979"><!-- raw
HTML omitted -->(66080)<!-- raw HTML omitted --></a></li>
<li>Add <code>filterNode</code> option to prettyDOM for filtering
browser assertion error output  -  by <a
href="https://github.com/Copilot"><code>@​Copilot</code></a>,
<strong>sheremet-va</strong> and <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9475">vitest-dev/vitest#9475</a>
<a href="https://github.com/vitest-dev/vitest/commit/d3220fcd8"><!-- raw
HTML omitted -->(d3220)<!-- raw HTML omitted --></a></li>
<li>Support playwright persistent context  -  by <a
href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a>,
<strong>Claude Opus 4.6</strong> and <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9229">vitest-dev/vitest#9229</a>
<a href="https://github.com/vitest-dev/vitest/commit/f865d2ba4"><!-- raw
HTML omitted -->(f865d)<!-- raw HTML omitted --></a></li>
<li>Added <code>detailsPanelPosition</code> option and button  -  by <a
href="https://github.com/shairez"><code>@​shairez</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9525">vitest-dev/vitest#9525</a>
<a href="https://github.com/vitest-dev/vitest/commit/c8a31147c"><!-- raw
HTML omitted -->(c8a31)<!-- raw HTML omitted --></a></li>
<li>Use BlazeDiff instead of pixelmatch  -  by <a
href="https://github.com/macarie"><code>@​macarie</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9514">vitest-dev/vitest#9514</a>
<a href="https://github.com/vitest-dev/vitest/commit/309362089"><!-- raw
HTML omitted -->(30936)<!-- raw HTML omitted --></a></li>
<li>Add <code>findElement</code> and enable strict mode in webdriverio
and preview  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9677">vitest-dev/vitest#9677</a>
<a href="https://github.com/vitest-dev/vitest/commit/c3f37721c"><!-- raw
HTML omitted -->(c3f37)<!-- raw HTML omitted --></a></li>
</ul>
</li>
<li><strong>cli</strong>:
<ul>
<li>Add <a href="https://github.com/bomb"><code>@​bomb</code></a>.sh/tab
completions  -  by <a
href="https://github.com/AmirSa12"><code>@​AmirSa12</code></a> and <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/8639">vitest-dev/vitest#8639</a>
<a href="https://github.com/vitest-dev/vitest/commit/200f31704"><!-- raw
HTML omitted -->(200f3)<!-- raw HTML omitted --></a></li>
</ul>
</li>
<li><strong>coverage</strong>:
<ul>
<li>Support <code>ignore start/stop</code> ignore hints  -  by <a
href="https://github.com/AriPerkkio"><code>@​AriPerkkio</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9204">vitest-dev/vitest#9204</a>
<a href="https://github.com/vitest-dev/vitest/commit/e59c94ba6"><!-- raw
HTML omitted -->(e59c9)<!-- raw HTML omitted --></a></li>
<li>Add <code>coverage.changed</code> option to report only changed
files  -  by <a
href="https://github.com/kykim00"><code>@​kykim00</code></a> and <a
href="https://github.com/AriPerkkio"><code>@​AriPerkkio</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9521">vitest-dev/vitest#9521</a>
<a href="https://github.com/vitest-dev/vitest/commit/1d9392c67"><!-- raw
HTML omitted -->(1d939)<!-- raw HTML omitted --></a></li>
</ul>
</li>
<li><strong>experimental</strong>:
<ul>
<li>Add <code>onModuleRunner</code> hook to <code>worker.init</code>  - 
by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9286">vitest-dev/vitest#9286</a>
<a href="https://github.com/vitest-dev/vitest/commit/e977f3deb"><!-- raw
HTML omitted -->(e977f)<!-- raw HTML omitted --></a></li>
<li>Option to disable the module runner  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> and
<a href="https://github.com/AriPerkkio"><code>@​AriPerkkio</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9210">vitest-dev/vitest#9210</a>
<a href="https://github.com/vitest-dev/vitest/commit/9be6121ee"><!-- raw
HTML omitted -->(9be61)<!-- raw HTML omitted --></a></li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/vitest-dev/vitest/commit/4150b913171bda3971a4a4c47c633c26d0c6ae45"><code>4150b91</code></a>
chore: release v4.1.0</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/1de0aa22dd6311a93546a75a3c58a6be519c1baf"><code>1de0aa2</code></a>
fix: correctly identify concurrent test during static analysis (<a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/9846">#9846</a>)</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/c3cac1c1b5a91d921942e9391fbd94841717363f"><code>c3cac1c</code></a>
fix: use isAgent check, not just TTY, for watch mode (<a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/9841">#9841</a>)</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/eab68ba2b8ea6f89717c0b885c573579659d7c3b"><code>eab68ba</code></a>
chore(deps): update all non-major dependencies (<a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/9824">#9824</a>)</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/031f02a89be34491c441b4da9c4e2bacb7db71df"><code>031f02a</code></a>
fix: allow catch/finally for async assertion (<a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/9827">#9827</a>)</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/3e9e096a231fa0ec6475da82e36cbd6fcc9bc8f9"><code>3e9e096</code></a>
feat(reporters): add <code>agent</code> reporter to reduce ai agent
token usage (<a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/9779">#9779</a>)</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/0c2c01361a95dd26d0d7fd7bc38bcca8dbc6e5d2"><code>0c2c013</code></a>
chore: release v4.1.0-beta.6</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/8181e06e765f4d043818b244c76795022fa78ff6"><code>8181e06</code></a>
fix: <code>hideSkippedTests</code> should not hide
<code>test.todo</code> (fix <a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/9562">#9562</a>)
(<a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/9781">#9781</a>)</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/a8216b0014b83612e40ef49f919d5293b68717b3"><code>a8216b0</code></a>
fix: manual and redirect mock shouldn't <code>load</code> or
<code>transform</code> original module...</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/689a22a1b8c79595f6f4ae82d2b43c895d7f1c50"><code>689a22a</code></a>
fix(browser): types of <code>getCDPSession</code> and <code>cdp()</code>
(<a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/9716">#9716</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/vitest-dev/vitest/commits/v4.1.0/packages/vitest">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a
href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new
releaser for vitest since your current version.</p>
</details>
<br />

Updates `vitest` from 0.34.3 to 4.1.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vitest-dev/vitest/releases">vitest's
releases</a>.</em></p>
<blockquote>
<h2>v4.1.0</h2>
<p>Vitest 4.1 is out!</p>
<p>This release page lists all changes made to the project during the
4.1 beta. To get a review of all the new features, read our <a
href="https://vitest.dev/blog/vitest-4-1">blog post</a>.</p>
<h3>   🚀 Features</h3>
<ul>
<li>Return a disposable from doMock()  -  by <a
href="https://github.com/kirkwaiblinger"><code>@​kirkwaiblinger</code></a>
in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9332">vitest-dev/vitest#9332</a>
<a href="https://github.com/vitest-dev/vitest/commit/e3e659a96"><!-- raw
HTML omitted -->(e3e65)<!-- raw HTML omitted --></a></li>
<li>Added chai style assertions  -  by <a
href="https://github.com/ronnakamoto"><code>@​ronnakamoto</code></a> and
<a href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a>
in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/8842">vitest-dev/vitest#8842</a>
<a href="https://github.com/vitest-dev/vitest/commit/841df9ac5"><!-- raw
HTML omitted -->(841df)<!-- raw HTML omitted --></a></li>
<li>Update to sinon/fake-timers v15 and add <code>setTickMode</code> to
timer controls  -  by <a
href="https://github.com/atscott"><code>@​atscott</code></a> and <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/8726">vitest-dev/vitest#8726</a>
<a href="https://github.com/vitest-dev/vitest/commit/4b480aaed"><!-- raw
HTML omitted -->(4b480)<!-- raw HTML omitted --></a></li>
<li>Expose matcher types  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9448">vitest-dev/vitest#9448</a>
<a href="https://github.com/vitest-dev/vitest/commit/3e4b913b1"><!-- raw
HTML omitted -->(3e4b9)<!-- raw HTML omitted --></a></li>
<li>Add <code>toTestSpecification</code> to reported tasks  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9464">vitest-dev/vitest#9464</a>
<a href="https://github.com/vitest-dev/vitest/commit/1a4705da9"><!-- raw
HTML omitted -->(1a470)<!-- raw HTML omitted --></a></li>
<li>Show a warning if <code>vi.mock</code> or <code>vi.hoisted</code>
are declared outside of top level of the module  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9387">vitest-dev/vitest#9387</a>
<a href="https://github.com/vitest-dev/vitest/commit/5db54a468"><!-- raw
HTML omitted -->(5db54)<!-- raw HTML omitted --></a></li>
<li>Track and display expectedly failed tests (.fails) in UI and CLI  - 
by <a href="https://github.com/Copilot"><code>@​Copilot</code></a>,
<strong>sheremet-va</strong> and <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9476">vitest-dev/vitest#9476</a>
<a href="https://github.com/vitest-dev/vitest/commit/77d75fd34"><!-- raw
HTML omitted -->(77d75)<!-- raw HTML omitted --></a></li>
<li>Support tags  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9478">vitest-dev/vitest#9478</a>
<a href="https://github.com/vitest-dev/vitest/commit/de7c8a521"><!-- raw
HTML omitted -->(de7c8)<!-- raw HTML omitted --></a></li>
<li>Implement <code>aroundEach</code> and <code>aroundAll</code> hooks
 -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9450">vitest-dev/vitest#9450</a>
<a href="https://github.com/vitest-dev/vitest/commit/2a8cb9dc2"><!-- raw
HTML omitted -->(2a8cb)<!-- raw HTML omitted --></a></li>
<li>Stabilize experimental features  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9529">vitest-dev/vitest#9529</a>
<a href="https://github.com/vitest-dev/vitest/commit/b5fd2a16a"><!-- raw
HTML omitted -->(b5fd2)<!-- raw HTML omitted --></a></li>
<li>Accept <code>new</code> or <code>all</code> in <code>--update</code>
flag  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9543">vitest-dev/vitest#9543</a>
<a href="https://github.com/vitest-dev/vitest/commit/a5acf28a5"><!-- raw
HTML omitted -->(a5acf)<!-- raw HTML omitted --></a></li>
<li>Support <code>meta</code> in test options  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9535">vitest-dev/vitest#9535</a>
<a href="https://github.com/vitest-dev/vitest/commit/7d622e3d1"><!-- raw
HTML omitted -->(7d622)<!-- raw HTML omitted --></a></li>
<li>Support type inference with a new <code>test.extend</code> syntax
 -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9550">vitest-dev/vitest#9550</a>
<a href="https://github.com/vitest-dev/vitest/commit/e53854fcc"><!-- raw
HTML omitted -->(e5385)<!-- raw HTML omitted --></a></li>
<li>Support vite 8 beta, fix type issues in the config with different
vite versions  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9587">vitest-dev/vitest#9587</a>
<a href="https://github.com/vitest-dev/vitest/commit/990281dfd"><!-- raw
HTML omitted -->(99028)<!-- raw HTML omitted --></a></li>
<li>Add assertion helper to hide internal stack traces  -  by <a
href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a> and
<strong>Claude Opus 4.6</strong> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9594">vitest-dev/vitest#9594</a>
<a href="https://github.com/vitest-dev/vitest/commit/eeb0ae2f8"><!-- raw
HTML omitted -->(eeb0a)<!-- raw HTML omitted --></a></li>
<li>Store failure screenshots using artifacts API  -  by <a
href="https://github.com/macarie"><code>@​macarie</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9588">vitest-dev/vitest#9588</a>
<a href="https://github.com/vitest-dev/vitest/commit/24603e3c4"><!-- raw
HTML omitted -->(24603)<!-- raw HTML omitted --></a></li>
<li>Allow <code>vitest list</code> to statically collect tests instead
of running files to collect them  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9630">vitest-dev/vitest#9630</a>
<a href="https://github.com/vitest-dev/vitest/commit/7a8e7fc20"><!-- raw
HTML omitted -->(7a8e7)<!-- raw HTML omitted --></a></li>
<li>Add <code>--detect-async-leaks</code>  -  by <a
href="https://github.com/AriPerkkio"><code>@​AriPerkkio</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9528">vitest-dev/vitest#9528</a>
<a href="https://github.com/vitest-dev/vitest/commit/c594d4af3"><!-- raw
HTML omitted -->(c594d)<!-- raw HTML omitted --></a></li>
<li>Implement <code>mockThrow</code> and <code>mockThrowOnce</code>  - 
by <a
href="https://github.com/thor-juhasz"><code>@​thor-juhasz</code></a> and
<a href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a>
in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9512">vitest-dev/vitest#9512</a>
<a href="https://github.com/vitest-dev/vitest/commit/619179fb7"><!-- raw
HTML omitted -->(61917)<!-- raw HTML omitted --></a></li>
<li>Support <code>update: &quot;none&quot;</code> and add docs about
snapshots behavior on CI  -  by <a
href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9700">vitest-dev/vitest#9700</a>
<a href="https://github.com/vitest-dev/vitest/commit/05f1854e2"><!-- raw
HTML omitted -->(05f18)<!-- raw HTML omitted --></a></li>
<li>Support playwright <code>launchOptions</code> with
<code>connectOptions</code>  -  by <a
href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9702">vitest-dev/vitest#9702</a>
<a href="https://github.com/vitest-dev/vitest/commit/f0ff1b2a0"><!-- raw
HTML omitted -->(f0ff1)<!-- raw HTML omitted --></a></li>
<li>Add <code>page/locator.mark</code> API to enhance playwright trace
 -  by <a href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a>
in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9652">vitest-dev/vitest#9652</a>
<a href="https://github.com/vitest-dev/vitest/commit/d0ee546fe"><!-- raw
HTML omitted -->(d0ee5)<!-- raw HTML omitted --></a></li>
<li><strong>api</strong>:
<ul>
<li>Support tests starting or ending with <code>test</code> in
<code>experimental_parseSpecification</code>  -  by <a
href="https://github.com/jgillick"><code>@​jgillick</code></a> and
<strong>Jeremy Gillick</strong> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9235">vitest-dev/vitest#9235</a>
<a href="https://github.com/vitest-dev/vitest/commit/2f367fad3"><!-- raw
HTML omitted -->(2f367)<!-- raw HTML omitted --></a></li>
<li>Add filters to <code>createSpecification</code>  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9336">vitest-dev/vitest#9336</a>
<a href="https://github.com/vitest-dev/vitest/commit/c8e6c7fbf"><!-- raw
HTML omitted -->(c8e6c)<!-- raw HTML omitted --></a></li>
<li>Expose <code>runTestFiles</code> as alternative to
<code>runTestSpecifications</code>  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9443">vitest-dev/vitest#9443</a>
<a href="https://github.com/vitest-dev/vitest/commit/43d761821"><!-- raw
HTML omitted -->(43d76)<!-- raw HTML omitted --></a></li>
<li>Add <code>allowWrite</code> and <code>allowExec</code> options to
<code>api</code>  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9350">vitest-dev/vitest#9350</a>
<a href="https://github.com/vitest-dev/vitest/commit/20e00ef78"><!-- raw
HTML omitted -->(20e00)<!-- raw HTML omitted --></a></li>
<li>Allow passing down test cases to <code>toTestSpecification</code>
 -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9627">vitest-dev/vitest#9627</a>
<a href="https://github.com/vitest-dev/vitest/commit/6f17d5ddf"><!-- raw
HTML omitted -->(6f17d)<!-- raw HTML omitted --></a></li>
</ul>
</li>
<li><strong>browser</strong>:
<ul>
<li>Add <code>userEvent.wheel</code> API  -  by <a
href="https://github.com/macarie"><code>@​macarie</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9188">vitest-dev/vitest#9188</a>
<a href="https://github.com/vitest-dev/vitest/commit/660801979"><!-- raw
HTML omitted -->(66080)<!-- raw HTML omitted --></a></li>
<li>Add <code>filterNode</code> option to prettyDOM for filtering
browser assertion error output  -  by <a
href="https://github.com/Copilot"><code>@​Copilot</code></a>,
<strong>sheremet-va</strong> and <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9475">vitest-dev/vitest#9475</a>
<a href="https://github.com/vitest-dev/vitest/commit/d3220fcd8"><!-- raw
HTML omitted -->(d3220)<!-- raw HTML omitted --></a></li>
<li>Support playwright persistent context  -  by <a
href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a>,
<strong>Claude Opus 4.6</strong> and <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9229">vitest-dev/vitest#9229</a>
<a href="https://github.com/vitest-dev/vitest/commit/f865d2ba4"><!-- raw
HTML omitted -->(f865d)<!-- raw HTML omitted --></a></li>
<li>Added <code>detailsPanelPosition</code> option and button  -  by <a
href="https://github.com/shairez"><code>@​shairez</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9525">vitest-dev/vitest#9525</a>
<a href="https://github.com/vitest-dev/vitest/commit/c8a31147c"><!-- raw
HTML omitted -->(c8a31)<!-- raw HTML omitted --></a></li>
<li>Use BlazeDiff instead of pixelmatch  -  by <a
href="https://github.com/macarie"><code>@​macarie</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9514">vitest-dev/vitest#9514</a>
<a href="https://github.com/vitest-dev/vitest/commit/309362089"><!-- raw
HTML omitted -->(30936)<!-- raw HTML omitted --></a></li>
<li>Add <code>findElement</code> and enable strict mode in webdriverio
and preview  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9677">vitest-dev/vitest#9677</a>
<a href="https://github.com/vitest-dev/vitest/commit/c3f37721c"><!-- raw
HTML omitted -->(c3f37)<!-- raw HTML omitted --></a></li>
</ul>
</li>
<li><strong>cli</strong>:
<ul>
<li>Add <a href="https://github.com/bomb"><code>@​bomb</code></a>.sh/tab
completions  -  by <a
href="https://github.com/AmirSa12"><code>@​AmirSa12</code></a> and <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/8639">vitest-dev/vitest#8639</a>
<a href="https://github.com/vitest-dev/vitest/commit/200f31704"><!-- raw
HTML omitted -->(200f3)<!-- raw HTML omitted --></a></li>
</ul>
</li>
<li><strong>coverage</strong>:
<ul>
<li>Support <code>ignore start/stop</code> ignore hints  -  by <a
href="https://github.com/AriPerkkio"><code>@​AriPerkkio</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9204">vitest-dev/vitest#9204</a>
<a href="https://github.com/vitest-dev/vitest/commit/e59c94ba6"><!-- raw
HTML omitted -->(e59c9)<!-- raw HTML omitted --></a></li>
<li>Add <code>coverage.changed</code> option to report only changed
files  -  by <a
href="https://github.com/kykim00"><code>@​kykim00</code></a> and <a
href="https://github.com/AriPerkkio"><code>@​AriPerkkio</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9521">vitest-dev/vitest#9521</a>
<a href="https://github.com/vitest-dev/vitest/commit/1d9392c67"><!-- raw
HTML omitted -->(1d939)<!-- raw HTML omitted --></a></li>
</ul>
</li>
<li><strong>experimental</strong>:
<ul>
<li>Add <code>onModuleRunner</code> hook to <code>worker.init</code>  - 
by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9286">vitest-dev/vitest#9286</a>
<a href="https://github.com/vitest-dev/vitest/commit/e977f3deb"><!-- raw
HTML omitted -->(e977f)<!-- raw HTML omitted --></a></li>
<li>Option to disable the module runner  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> and
<a href="https://github.com/AriPerkkio"><code>@​AriPerkkio</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9210">vitest-dev/vitest#9210</a>
<a href="https://github.com/vitest-dev/vitest/commit/9be6121ee"><!-- raw
HTML omitted -->(9be61)<!-- raw HTML omitted --></a></li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/vitest-dev/vitest/commit/4150b913171bda3971a4a4c47c633c26d0c6ae45"><code>4150b91</code></a>
chore: release v4.1.0</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/1de0aa22dd6311a93546a75a3c58a6be519c1baf"><code>1de0aa2</code></a>
fix: correctly identify concurrent test during static analysis (<a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/9846">#9846</a>)</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/c3cac1c1b5a91d921942e9391fbd94841717363f"><code>c3cac1c</code></a>
fix: use isAgent check, not just TTY, for watch mode (<a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/9841">#9841</a>)</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/eab68ba2b8ea6f89717c0b885c573579659d7c3b"><code>eab68ba</code></a>
chore(deps): update all non-major dependencies (<a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/9824">#9824</a>)</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/031f02a89be34491c441b4da9c4e2bacb7db71df"><code>031f02a</code></a>
fix: allow catch/finally for async assertion (<a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/9827">#9827</a>)</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/3e9e096a231fa0ec6475da82e36cbd6fcc9bc8f9"><code>3e9e096</code></a>
feat(reporters): add <code>agent</code> reporter to reduce ai agent
token usage (<a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/9779">#9779</a>)</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/0c2c01361a95dd26d0d7fd7bc38bcca8dbc6e5d2"><code>0c2c013</code></a>
chore: release v4.1.0-beta.6</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/8181e06e765f4d043818b244c76795022fa78ff6"><code>8181e06</code></a>
fix: <code>hideSkippedTests</code> should not hide
<code>test.todo</code> (fix <a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/9562">#9562</a>)
(<a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/9781">#9781</a>)</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/a8216b0014b83612e40ef49f919d5293b68717b3"><code>a8216b0</code></a>
fix: manual and redirect mock shouldn't <code>load</code> or
<code>transform</code> original module...</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/689a22a1b8c79595f6f4ae82d2b43c895d7f1c50"><code>689a22a</code></a>
fix(browser): types of <code>getCDPSession</code> and <code>cdp()</code>
(<a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/9716">#9716</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/vitest-dev/vitest/commits/v4.1.0/packages/vitest">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a
href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new
releaser for vitest since your current version.</p>
</details>
<br />

Updates `vitest` from 0.34.3 to 4.1.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vitest-dev/vitest/releases">vitest's
releases</a>.</em></p>
<blockquote>
<h2>v4.1.0</h2>
<p>Vitest 4.1 is out!</p>
<p>This release page lists all changes made to the project during the
4.1 beta. To get a review of all the new features, read our <a
href="https://vitest.dev/blog/vitest-4-1">blog post</a>.</p>
<h3>   🚀 Features</h3>
<ul>
<li>Return a disposable from doMock()  -  by <a
href="https://github.com/kirkwaiblinger"><code>@​kirkwaiblinger</code></a>
in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9332">vitest-dev/vitest#9332</a>
<a href="https://github.com/vitest-dev/vitest/commit/e3e659a96"><!-- raw
HTML omitted -->(e3e65)<!-- raw HTML omitted --></a></li>
<li>Added chai style assertions  -  by <a
href="https://github.com/ronnakamoto"><code>@​ronnakamoto</code></a> and
<a href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a>
in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/8842">vitest-dev/vitest#8842</a>
<a href="https://github.com/vitest-dev/vitest/commit/841df9ac5"><!-- raw
HTML omitted -->(841df)<!-- raw HTML omitted --></a></li>
<li>Update to sinon/fake-timers v15 and add <code>setTickMode</code> to
timer controls  -  by <a
href="https://github.com/atscott"><code>@​atscott</code></a> and <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/8726">vitest-dev/vitest#8726</a>
<a href="https://github.com/vitest-dev/vitest/commit/4b480aaed"><!-- raw
HTML omitted -->(4b480)<!-- raw HTML omitted --></a></li>
<li>Expose matcher types  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9448">vitest-dev/vitest#9448</a>
<a href="https://github.com/vitest-dev/vitest/commit/3e4b913b1"><!-- raw
HTML omitted -->(3e4b9)<!-- raw HTML omitted --></a></li>
<li>Add <code>toTestSpecification</code> to reported tasks  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9464">vitest-dev/vitest#9464</a>
<a href="https://github.com/vitest-dev/vitest/commit/1a4705da9"><!-- raw
HTML omitted -->(1a470)<!-- raw HTML omitted --></a></li>
<li>Show a warning if <code>vi.mock</code> or <code>vi.hoisted</code>
are declared outside of top level of the module  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9387">vitest-dev/vitest#9387</a>
<a href="https://github.com/vitest-dev/vitest/commit/5db54a468"><!-- raw
HTML omitted -->(5db54)<!-- raw HTML omitted --></a></li>
<li>Track and display expectedly failed tests (.fails) in UI and CLI  - 
by <a href="https://github.com/Copilot"><code>@​Copilot</code></a>,
<strong>sheremet-va</strong> and <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9476">vitest-dev/vitest#9476</a>
<a href="https://github.com/vitest-dev/vitest/commit/77d75fd34"><!-- raw
HTML omitted -->(77d75)<!-- raw HTML omitted --></a></li>
<li>Support tags  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9478">vitest-dev/vitest#9478</a>
<a href="https://github.com/vitest-dev/vitest/commit/de7c8a521"><!-- raw
HTML omitted -->(de7c8)<!-- raw HTML omitted --></a></li>
<li>Implement <code>aroundEach</code> and <code>aroundAll</code> hooks
 -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9450">vitest-dev/vitest#9450</a>
<a href="https://github.com/vitest-dev/vitest/commit/2a8cb9dc2"><!-- raw
HTML omitted -->(2a8cb)<!-- raw HTML omitted --></a></li>
<li>Stabilize experimental features  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9529">vitest-dev/vitest#9529</a>
<a href="https://github.com/vitest-dev/vitest/commit/b5fd2a16a"><!-- raw
HTML omitted -->(b5fd2)<!-- raw HTML omitted --></a></li>
<li>Accept <code>new</code> or <code>all</code> in <code>--update</code>
flag  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9543">vitest-dev/vitest#9543</a>
<a href="https://github.com/vitest-dev/vitest/commit/a5acf28a5"><!-- raw
HTML omitted -->(a5acf)<!-- raw HTML omitted --></a></li>
<li>Support <code>meta</code> in test options  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9535">vitest-dev/vitest#9535</a>
<a href="https://github.com/vitest-dev/vitest/commit/7d622e3d1"><!-- raw
HTML omitted -->(7d622)<!-- raw HTML omitted --></a></li>
<li>Support type inference with a new <code>test.extend</code> syntax
 -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9550">vitest-dev/vitest#9550</a>
<a href="https://github.com/vitest-dev/vitest/commit/e53854fcc"><!-- raw
HTML omitted -->(e5385)<!-- raw HTML omitted --></a></li>
<li>Support vite 8 beta, fix type issues in the config with different
vite versions  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9587">vitest-dev/vitest#9587</a>
<a href="https://github.com/vitest-dev/vitest/commit/990281dfd"><!-- raw
HTML omitted -->(99028)<!-- raw HTML omitted --></a></li>
<li>Add assertion helper to hide internal stack traces  -  by <a
href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a> and
<strong>Claude Opus 4.6</strong> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9594">vitest-dev/vitest#9594</a>
<a href="https://github.com/vitest-dev/vitest/commit/eeb0ae2f8"><!-- raw
HTML omitted -->(eeb0a)<!-- raw HTML omitted --></a></li>
<li>Store failure screenshots using artifacts API  -  by <a
href="https://github.com/macarie"><code>@​macarie</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9588">vitest-dev/vitest#9588</a>
<a href="https://github.com/vitest-dev/vitest/commit/24603e3c4"><!-- raw
HTML omitted -->(24603)<!-- raw HTML omitted --></a></li>
<li>Allow <code>vitest list</code> to statically collect tests instead
of running files to collect them  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9630">vitest-dev/vitest#9630</a>
<a href="https://github.com/vitest-dev/vitest/commit/7a8e7fc20"><!-- raw
HTML omitted -->(7a8e7)<!-- raw HTML omitted --></a></li>
<li>Add <code>--detect-async-leaks</code>  -  by <a
href="https://github.com/AriPerkkio"><code>@​AriPerkkio</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9528">vitest-dev/vitest#9528</a>
<a href="https://github.com/vitest-dev/vitest/commit/c594d4af3"><!-- raw
HTML omitted -->(c594d)<!-- raw HTML omitted --></a></li>
<li>Implement <code>mockThrow</code> and <code>mockThrowOnce</code>  - 
by <a
href="https://github.com/thor-juhasz"><code>@​thor-juhasz</code></a> and
<a href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a>
in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9512">vitest-dev/vitest#9512</a>
<a href="https://github.com/vitest-dev/vitest/commit/619179fb7"><!-- raw
HTML omitted -->(61917)<!-- raw HTML omitted --></a></li>
<li>Support <code>update: &quot;none&quot;</code> and add docs about
snapshots behavior on CI  -  by <a
href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9700">vitest-dev/vitest#9700</a>
<a href="https://github.com/vitest-dev/vitest/commit/05f1854e2"><!-- raw
HTML omitted -->(05f18)<!-- raw HTML omitted --></a></li>
<li>Support playwright <code>launchOptions</code> with
<code>connectOptions</code>  -  by <a
href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9702">vitest-dev/vitest#9702</a>
<a href="https://github.com/vitest-dev/vitest/commit/f0ff1b2a0"><!-- raw
HTML omitted -->(f0ff1)<!-- raw HTML omitted --></a></li>
<li>Add <code>page/locator.mark</code> API to enhance playwright trace
 -  by <a href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a>
in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9652">vitest-dev/vitest#9652</a>
<a href="https://github.com/vitest-dev/vitest/commit/d0ee546fe"><!-- raw
HTML omitted -->(d0ee5)<!-- raw HTML omitted --></a></li>
<li><strong>api</strong>:
<ul>
<li>Support tests starting or ending with <code>test</code> in
<code>experimental_parseSpecification</code>  -  by <a
href="https://github.com/jgillick"><code>@​jgillick</code></a> and
<strong>Jeremy Gillick</strong> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9235">vitest-dev/vitest#9235</a>
<a href="https://github.com/vitest-dev/vitest/commit/2f367fad3"><!-- raw
HTML omitted -->(2f367)<!-- raw HTML omitted --></a></li>
<li>Add filters to <code>createSpecification</code>  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9336">vitest-dev/vitest#9336</a>
<a href="https://github.com/vitest-dev/vitest/commit/c8e6c7fbf"><!-- raw
HTML omitted -->(c8e6c)<!-- raw HTML omitted --></a></li>
<li>Expose <code>runTestFiles</code> as alternative to
<code>runTestSpecifications</code>  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9443">vitest-dev/vitest#9443</a>
<a href="https://github.com/vitest-dev/vitest/commit/43d761821"><!-- raw
HTML omitted -->(43d76)<!-- raw HTML omitted --></a></li>
<li>Add <code>allowWrite</code> and <code>allowExec</code> options to
<code>api</code>  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9350">vitest-dev/vitest#9350</a>
<a href="https://github.com/vitest-dev/vitest/commit/20e00ef78"><!-- raw
HTML omitted -->(20e00)<!-- raw HTML omitted --></a></li>
<li>Allow passing down test cases to <code>toTestSpecification</code>
 -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9627">vitest-dev/vitest#9627</a>
<a href="https://github.com/vitest-dev/vitest/commit/6f17d5ddf"><!-- raw
HTML omitted -->(6f17d)<!-- raw HTML omitted --></a></li>
</ul>
</li>
<li><strong>browser</strong>:
<ul>
<li>Add <code>userEvent.wheel</code> API  -  by <a
href="https://github.com/macarie"><code>@​macarie</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9188">vitest-dev/vitest#9188</a>
<a href="https://github.com/vitest-dev/vitest/commit/660801979"><!-- raw
HTML omitted -->(66080)<!-- raw HTML omitted --></a></li>
<li>Add <code>filterNode</code> option to prettyDOM for filtering
browser assertion error output  -  by <a
href="https://github.com/Copilot"><code>@​Copilot</code></a>,
<strong>sheremet-va</strong> and <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9475">vitest-dev/vitest#9475</a>
<a href="https://github.com/vitest-dev/vitest/commit/d3220fcd8"><!-- raw
HTML omitted -->(d3220)<!-- raw HTML omitted --></a></li>
<li>Support playwright persistent context  -  by <a
href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a>,
<strong>Claude Opus 4.6</strong> and <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9229">vitest-dev/vitest#9229</a>
<a href="https://github.com/vitest-dev/vitest/commit/f865d2ba4"><!-- raw
HTML omitted -->(f865d)<!-- raw HTML omitted --></a></li>
<li>Added <code>detailsPanelPosition</code> option and button  -  by <a
href="https://github.com/shairez"><code>@​shairez</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9525">vitest-dev/vitest#9525</a>
<a href="https://github.com/vitest-dev/vitest/commit/c8a31147c"><!-- raw
HTML omitted -->(c8a31)<!-- raw HTML omitted --></a></li>
<li>Use BlazeDiff instead of pixelmatch  -  by <a
href="https://github.com/macarie"><code>@​macarie</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9514">vitest-dev/vitest#9514</a>
<a href="https://github.com/vitest-dev/vitest/commit/309362089"><!-- raw
HTML omitted -->(30936)<!-- raw HTML omitted --></a></li>
<li>Add <code>findElement</code> and enable strict mode in webdriverio
and preview  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9677">vitest-dev/vitest#9677</a>
<a href="https://github.com/vitest-dev/vitest/commit/c3f37721c"><!-- raw
HTML omitted -->(c3f37)<!-- raw HTML omitted --></a></li>
</ul>
</li>
<li><strong>cli</strong>:
<ul>
<li>Add <a href="https://github.com/bomb"><code>@​bomb</code></a>.sh/tab
completions  -  by <a
href="https://github.com/AmirSa12"><code>@​AmirSa12</code></a> and <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/8639">vitest-dev/vitest#8639</a>
<a href="https://github.com/vitest-dev/vitest/commit/200f31704"><!-- raw
HTML omitted -->(200f3)<!-- raw HTML omitted --></a></li>
</ul>
</li>
<li><strong>coverage</strong>:
<ul>
<li>Support <code>ignore start/stop</code> ignore hints  -  by <a
href="https://github.com/AriPerkkio"><code>@​AriPerkkio</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9204">vitest-dev/vitest#9204</a>
<a href="https://github.com/vitest-dev/vitest/commit/e59c94ba6"><!-- raw
HTML omitted -->(e59c9)<!-- raw HTML omitted --></a></li>
<li>Add <code>coverage.changed</code> option to report only changed
files  -  by <a
href="https://github.com/kykim00"><code>@​kykim00</code></a> and <a
href="https://github.com/AriPerkkio"><code>@​AriPerkkio</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9521">vitest-dev/vitest#9521</a>
<a href="https://github.com/vitest-dev/vitest/commit/1d9392c67"><!-- raw
HTML omitted -->(1d939)<!-- raw HTML omitted --></a></li>
</ul>
</li>
<li><strong>experimental</strong>:
<ul>
<li>Add <code>onModuleRunner</code> hook to <code>worker.init</code>  - 
by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9286">vitest-dev/vitest#9286</a>
<a href="https://github.com/vitest-dev/vitest/commit/e977f3deb"><!-- raw
HTML omitted -->(e977f)<!-- raw HTML omitted --></a></li>
<li>Option to disable the module runner  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> and
<a href="https://github.com/AriPerkkio"><code>@​AriPerkkio</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9210">vitest-dev/vitest#9210</a>
<a href="https://github.com/vitest-dev/vitest/commit/9be6121ee"><!-- raw
HTML omitted -->(9be61)<!-- raw HTML omitted --></a></li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/vitest-dev/vitest/commit/4150b913171bda3971a4a4c47c633c26d0c6ae45"><code>4150b91</code></a>
chore: release v4.1.0</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/1de0aa22dd6311a93546a75a3c58a6be519c1baf"><code>1de0aa2</code></a>
fix: correctly identify concurrent test during static analysis (<a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/9846">#9846</a>)</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/c3cac1c1b5a91d921942e9391fbd94841717363f"><code>c3cac1c</code></a>
fix: use isAgent check, not just TTY, for watch mode (<a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/9841">#9841</a>)</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/eab68ba2b8ea6f89717c0b885c573579659d7c3b"><code>eab68ba</code></a>
chore(deps): update all non-major dependencies (<a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/9824">#9824</a>)</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/031f02a89be34491c441b4da9c4e2bacb7db71df"><code>031f02a</code></a>
fix: allow catch/finally for async assertion (<a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/9827">#9827</a>)</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/3e9e096a231fa0ec6475da82e36cbd6fcc9bc8f9"><code>3e9e096</code></a>
feat(reporters): add <code>agent</code> reporter to reduce ai agent
token usage (<a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/9779">#9779</a>)</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/0c2c01361a95dd26d0d7fd7bc38bcca8dbc6e5d2"><code>0c2c013</code></a>
chore: release v4.1.0-beta.6</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/8181e06e765f4d043818b244c76795022fa78ff6"><code>8181e06</code></a>
fix: <code>hideSkippedTests</code> should not hide
<code>test.todo</code> (fix <a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/9562">#9562</a>)
(<a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/9781">#9781</a>)</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/a8216b0014b83612e40ef49f919d5293b68717b3"><code>a8216b0</code></a>
fix: manual and redirect mock shouldn't <code>load</code> or
<code>transform</code> original module...</li>
<li><a
href="https://github.com/vitest-dev/vitest/commit/689a22a1b8c79595f6f4ae82d2b43c895d7f1c50"><code>689a22a</code></a>
fix(browser): types of <code>getCDPSession</code> and <code>cdp()</code>
(<a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/9716">#9716</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/vitest-dev/vitest/commits/v4.1.0/packages/vitest">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a
href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new
releaser for vitest since your current version.</p>
</details>
<br />

Updates `vitest` from 0.34.3 to 4.1.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vitest-dev/vitest/releases">vitest's
releases</a>.</em></p>
<blockquote>
<h2>v4.1.0</h2>
<p>Vitest 4.1 is out!</p>
<p>This release page lists all changes made to the project during the
4.1 beta. To get a review of all the new features, read our <a
href="https://vitest.dev/blog/vitest-4-1">blog post</a>.</p>
<h3>   🚀 Features</h3>
<ul>
<li>Return a disposable from doMock()  -  by <a
href="https://github.com/kirkwaiblinger"><code>@​kirkwaiblinger</code></a>
in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9332">vitest-dev/vitest#9332</a>
<a href="https://github.com/vitest-dev/vitest/commit/e3e659a96"><!-- raw
HTML omitted -->(e3e65)<!-- raw HTML omitted --></a></li>
<li>Added chai style assertions  -  by <a
href="https://github.com/ronnakamoto"><code>@​ronnakamoto</code></a> and
<a href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a>
in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/8842">vitest-dev/vitest#8842</a>
<a href="https://github.com/vitest-dev/vitest/commit/841df9ac5"><!-- raw
HTML omitted -->(841df)<!-- raw HTML omitted --></a></li>
<li>Update to sinon/fake-timers v15 and add <code>setTickMode</code> to
timer controls  -  by <a
href="https://github.com/atscott"><code>@​atscott</code></a> and <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/8726">vitest-dev/vitest#8726</a>
<a href="https://github.com/vitest-dev/vitest/commit/4b480aaed"><!-- raw
HTML omitted -->(4b480)<!-- raw HTML omitted --></a></li>
<li>Expose matcher types  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9448">vitest-dev/vitest#9448</a>
<a href="https://github.com/vitest-dev/vitest/commit/3e4b913b1"><!-- raw
HTML omitted -->(3e4b9)<!-- raw HTML omitted --></a></li>
<li>Add <code>toTestSpecification</code> to reported tasks  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9464">vitest-dev/vitest#9464</a>
<a href="https://github.com/vitest-dev/vitest/commit/1a4705da9"><!-- raw
HTML omitted -->(1a470)<!-- raw HTML omitted --></a></li>
<li>Show a warning if <code>vi.mock</code> or <code>vi.hoisted</code>
are declared outside of top level of the module  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9387">vitest-dev/vitest#9387</a>
<a href="https://github.com/vitest-dev/vitest/commit/5db54a468"><!-- raw
HTML omitted -->(5db54)<!-- raw HTML omitted --></a></li>
<li>Track and display expectedly failed tests (.fails) in UI and CLI  - 
by <a href="https://github.com/Copilot"><code>@​Copilot</code></a>,
<strong>sheremet-va</strong> and <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9476">vitest-dev/vitest#9476</a>
<a href="https://github.com/vitest-dev/vitest/commit/77d75fd34"><!-- raw
HTML omitted -->(77d75)<!-- raw HTML omitted --></a></li>
<li>Support tags  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9478">vitest-dev/vitest#9478</a>
<a href="https://github.com/vitest-dev/vitest/commit/de7c8a521"><!-- raw
HTML omitted -->(de7c8)<!-- raw HTML omitted --></a></li>
<li>Implement <code>aroundEach</code> and <code>aroundAll</code> hooks
 -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9450">vitest-dev/vitest#9450</a>
<a href="https://github.com/vitest-dev/vitest/commit/2a8cb9dc2"><!-- raw
HTML omitted -->(2a8cb)<!-- raw HTML omitted --></a></li>
<li>Stabilize experimental features  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9529">vitest-dev/vitest#9529</a>
<a href="https://github.com/vitest-dev/vitest/commit/b5fd2a16a"><!-- raw
HTML omitted -->(b5fd2)<!-- raw HTML omitted --></a></li>
<li>Accept <code>new</code> or <code>all</code> in <code>--update</code>
flag  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9543">vitest-dev/vitest#9543</a>
<a href="https://github.com/vitest-dev/vitest/commit/a5acf28a5"><!-- raw
HTML omitted -->(a5acf)<!-- raw HTML omitted --></a></li>
<li>Support <code>meta</code> in test options  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9535">vitest-dev/vitest#9535</a>
<a href="https://github.com/vitest-dev/vitest/commit/7d622e3d1"><!-- raw
HTML omitted -->(7d622)<!-- raw HTML omitted --></a></li>
<li>Support type inference with a new <code>test.extend</code> syntax
 -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9550">vitest-dev/vitest#9550</a>
<a href="https://github.com/vitest-dev/vitest/commit/e53854fcc"><!-- raw
HTML omitted -->(e5385)<!-- raw HTML omitted --></a></li>
<li>Support vite 8 beta, fix type issues in the config with different
vite versions  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/9587">vitest-dev/vitest#9587</a>
<a href="https://github.com/vitest-dev/vitest/commit/990281dfd"><!-- raw
HTML omitted -->(99028)<!-- raw HTML omitted --></a></li>
<li>Add assertion helper to hide internal stack traces  -  by <a
href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a> and
<strong>Claude Opus 4.6</strong> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9594">vitest-dev/vitest#9594</a>
<a href="https://github.com/vitest-dev/vitest/commit/eeb0ae2f8"><!-- raw
HTML omitted -->(eeb0a)<!-- raw HTML omitted --></a></li>
<li>Store failure screenshots using artifacts API  -  by <a
href="https://github.com/macarie"><code>@​macarie</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/9588">vitest-dev/vitest#9588</a>
<a href="https://github.com/vitest-dev/vitest/commit/24603e3c4"><!-- raw
HTML omitted -->(24603)...

_Description has been truncated_

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: John Kennedy <jkennedyvz@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-07 14:10:31 -07:00
github-actions[bot] 133d0bd52e chore: version packages (#2501)
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


# Releases
## @langchain/langgraph-sdk@1.9.18

### Patch Changes

- [#2500](https://github.com/langchain-ai/langgraphjs/pull/2500)
[`f67772f`](https://github.com/langchain-ai/langgraphjs/commit/f67772ff3f7ac13d81576d395d7529de4eb4390b)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): resume useChannel subscriptions across serial runs

Enable `resumeOnPause` on the channel projection so `useChannel` keeps
accumulating events across prompts on the same thread. Clarify selector
docs and JSDoc: `useChannel` for the full event stream, `useExtension`
    for the latest payload.

## @langchain/angular@1.0.18

### Patch Changes

- [#2500](https://github.com/langchain-ai/langgraphjs/pull/2500)
[`f67772f`](https://github.com/langchain-ai/langgraphjs/commit/f67772ff3f7ac13d81576d395d7529de4eb4390b)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): resume useChannel subscriptions across serial runs

Enable `resumeOnPause` on the channel projection so `useChannel` keeps
accumulating events across prompts on the same thread. Clarify selector
docs and JSDoc: `useChannel` for the full event stream, `useExtension`
    for the latest payload.

- Updated dependencies
\[[`f67772f`](https://github.com/langchain-ai/langgraphjs/commit/f67772ff3f7ac13d81576d395d7529de4eb4390b)]:
    -   @langchain/langgraph-sdk@1.9.18

## @langchain/react@1.0.18

### Patch Changes

- [#2500](https://github.com/langchain-ai/langgraphjs/pull/2500)
[`f67772f`](https://github.com/langchain-ai/langgraphjs/commit/f67772ff3f7ac13d81576d395d7529de4eb4390b)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): resume useChannel subscriptions across serial runs

Enable `resumeOnPause` on the channel projection so `useChannel` keeps
accumulating events across prompts on the same thread. Clarify selector
docs and JSDoc: `useChannel` for the full event stream, `useExtension`
    for the latest payload.

- Updated dependencies
\[[`f67772f`](https://github.com/langchain-ai/langgraphjs/commit/f67772ff3f7ac13d81576d395d7529de4eb4390b)]:
    -   @langchain/langgraph-sdk@1.9.18

## @langchain/svelte@1.0.18

### Patch Changes

- [#2500](https://github.com/langchain-ai/langgraphjs/pull/2500)
[`f67772f`](https://github.com/langchain-ai/langgraphjs/commit/f67772ff3f7ac13d81576d395d7529de4eb4390b)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): resume useChannel subscriptions across serial runs

Enable `resumeOnPause` on the channel projection so `useChannel` keeps
accumulating events across prompts on the same thread. Clarify selector
docs and JSDoc: `useChannel` for the full event stream, `useExtension`
    for the latest payload.

- Updated dependencies
\[[`f67772f`](https://github.com/langchain-ai/langgraphjs/commit/f67772ff3f7ac13d81576d395d7529de4eb4390b)]:
    -   @langchain/langgraph-sdk@1.9.18

## @langchain/vue@1.0.18

### Patch Changes

- [#2500](https://github.com/langchain-ai/langgraphjs/pull/2500)
[`f67772f`](https://github.com/langchain-ai/langgraphjs/commit/f67772ff3f7ac13d81576d395d7529de4eb4390b)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): resume useChannel subscriptions across serial runs

Enable `resumeOnPause` on the channel projection so `useChannel` keeps
accumulating events across prompts on the same thread. Clarify selector
docs and JSDoc: `useChannel` for the full event stream, `useExtension`
    for the latest payload.

- Updated dependencies
\[[`f67772f`](https://github.com/langchain-ai/langgraphjs/commit/f67772ff3f7ac13d81576d395d7529de4eb4390b)]:
    -   @langchain/langgraph-sdk@1.9.18

## @example/ai-elements@0.1.33

### Patch Changes

- Updated dependencies
\[[`f67772f`](https://github.com/langchain-ai/langgraphjs/commit/f67772ff3f7ac13d81576d395d7529de4eb4390b)]:
    -   @langchain/react@1.0.18

## @examples/assistant-ui-claude@0.1.33

### Patch Changes

- Updated dependencies
\[[`f67772f`](https://github.com/langchain-ai/langgraphjs/commit/f67772ff3f7ac13d81576d395d7529de4eb4390b)]:
    -   @langchain/react@1.0.18

## @examples/ui-angular@0.0.43

### Patch Changes

- Updated dependencies
\[[`f67772f`](https://github.com/langchain-ai/langgraphjs/commit/f67772ff3f7ac13d81576d395d7529de4eb4390b)]:
    -   @langchain/langgraph-sdk@1.9.18
    -   @langchain/angular@1.0.18

## @examples/ui-multimodal@0.0.19

### Patch Changes

- Updated dependencies
\[[`f67772f`](https://github.com/langchain-ai/langgraphjs/commit/f67772ff3f7ac13d81576d395d7529de4eb4390b)]:
    -   @langchain/react@1.0.18

## @examples/ui-react@0.0.19

### Patch Changes

- Updated dependencies
\[[`f67772f`](https://github.com/langchain-ai/langgraphjs/commit/f67772ff3f7ac13d81576d395d7529de4eb4390b)]:
    -   @langchain/langgraph-sdk@1.9.18
    -   @langchain/react@1.0.18

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@langchain/angular@1.0.18 @langchain/langgraph-sdk@1.9.18 @langchain/react@1.0.18 @langchain/svelte@1.0.18 @langchain/vue@1.0.18
2026-06-06 15:34:59 -07:00
Christian Bromann f67772ff3f fix(sdk): resume useChannel subscriptions across serial runs (#2500)
## Summary
- Fix `channelProjection` to pass `resumeOnPause: true`, matching
`extensionProjection`, so `useChannel` continues receiving events after
each run's terminal lifecycle event instead of going silent after the
first prompt on a thread.
- Add a unit test that simulates a paused subscription resuming with a
second event batch, and a React browser integration test asserting
`useChannel` event count grows across two serial submits (3 → 6).
- Update selector JSDoc and `selectors.md` / `selector-composables.md`
across React, Vue, Svelte, and Angular to document the complementary
roles: `useChannel` = full bounded event history across runs;
`useExtension` = latest payload only.
2026-06-06 15:29:59 -07:00
github-actions[bot] c418781870 chore: version packages (#2495)
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


# Releases
## @langchain/langgraph-api@1.2.5

### Patch Changes

-
[`658a076`](https://github.com/langchain-ai/langgraphjs/commit/658a076d5b50af9f5b96ab99f26ed629da6e182f)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(langgraph): forward named custom stream channels consistently

Forward remote `StreamChannel` emissions as `custom:<name>` protocol
events and normalize them back to custom-channel payloads in the API
session. This aligns JavaScript stream-channel forwarding with the
protocol subscription shape used by remote clients, so `custom:<name>`
subscriptions receive extension channel data consistently.

-   Updated dependencies \[]:
    -   @langchain/langgraph-ui@1.2.5

## @langchain/langgraph-cli@1.2.5

### Patch Changes

- Updated dependencies
\[[`658a076`](https://github.com/langchain-ai/langgraphjs/commit/658a076d5b50af9f5b96ab99f26ed629da6e182f)]:
    -   @langchain/langgraph-api@1.2.5

## @langchain/langgraph@1.3.6

### Patch Changes

-
[`658a076`](https://github.com/langchain-ai/langgraphjs/commit/658a076d5b50af9f5b96ab99f26ed629da6e182f)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(langgraph): forward named custom stream channels consistently

Forward remote `StreamChannel` emissions as `custom:<name>` protocol
events and normalize them back to custom-channel payloads in the API
session. This aligns JavaScript stream-channel forwarding with the
protocol subscription shape used by remote clients, so `custom:<name>`
subscriptions receive extension channel data consistently.

- Updated dependencies
\[[`0a0e04e`](https://github.com/langchain-ai/langgraphjs/commit/0a0e04e9ff7e82fd08411cc0094e1f94729a1e1e),
[`658a076`](https://github.com/langchain-ai/langgraphjs/commit/658a076d5b50af9f5b96ab99f26ed629da6e182f),
[`a9aa8d6`](https://github.com/langchain-ai/langgraphjs/commit/a9aa8d6a9b23f5f7d4c56889fa68697b1e076b31)]:
    -   @langchain/langgraph-sdk@1.9.17

## @langchain/langgraph-sdk@1.9.17

### Patch Changes

- [#2494](https://github.com/langchain-ai/langgraphjs/pull/2494)
[`0a0e04e`](https://github.com/langchain-ai/langgraphjs/commit/0a0e04e9ff7e82fd08411cc0094e1f94729a1e1e)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): revive automatic optimistic submit echo

Echo `submit()` input into `values` / `messages` immediately with
client-side
id minting and id-based reconciliation as the server streams back.
Expose
per-message `optimisticStatus` via message metadata (`pending` → `sent`
/
`failed`), shallow-merge non-message keys with rollback when no `values`
arrive, and add an `optimistic: false` hook opt-out. Plumb through
React,
    Vue, Svelte, and Angular with browser e2e coverage.

-
[`658a076`](https://github.com/langchain-ai/langgraphjs/commit/658a076d5b50af9f5b96ab99f26ed629da6e182f)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): coalesce duplicate thread read requests

Coalesce concurrent identical `threads.getState()` and
`threads.getHistory()` reads within the SDK client so transient remounts
do not issue duplicate hydrate requests. Request identity includes the
prepared URL, body, method, and headers, and coalescing is skipped for
caller-provided abort signals, raw response reads, and `onRequest` hooks
to preserve auth and cancellation isolation.

- [#2497](https://github.com/langchain-ai/langgraphjs/pull/2497)
[`a9aa8d6`](https://github.com/langchain-ai/langgraphjs/commit/a9aa8d6a9b23f5f7d4c56889fa68697b1e076b31)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): reconcile subagents and subgraphs on thread reconnect

Seed deep-agent subagent cards from checkpoint messages and subgraph
hosts from a single bounded `getHistory` read during `hydrate()`, so
parallel fan-out discovery reappears immediately on refresh instead of
waiting for SSE replay. Subagent execution namespaces are promoted
through the existing guarded discovery state machine (bulk at hydrate,
lazily per opened card via the selector layer). The getHistory cost is
O(1) in requests regardless of fan-out width.

## @langchain/angular@1.0.17

### Patch Changes

- [#2494](https://github.com/langchain-ai/langgraphjs/pull/2494)
[`0a0e04e`](https://github.com/langchain-ai/langgraphjs/commit/0a0e04e9ff7e82fd08411cc0094e1f94729a1e1e)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): revive automatic optimistic submit echo

Echo `submit()` input into `values` / `messages` immediately with
client-side
id minting and id-based reconciliation as the server streams back.
Expose
per-message `optimisticStatus` via message metadata (`pending` → `sent`
/
`failed`), shallow-merge non-message keys with rollback when no `values`
arrive, and add an `optimistic: false` hook opt-out. Plumb through
React,
    Vue, Svelte, and Angular with browser e2e coverage.

- [#2497](https://github.com/langchain-ai/langgraphjs/pull/2497)
[`a9aa8d6`](https://github.com/langchain-ai/langgraphjs/commit/a9aa8d6a9b23f5f7d4c56889fa68697b1e076b31)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): reconcile subagents and subgraphs on thread reconnect

Seed deep-agent subagent cards from checkpoint messages and subgraph
hosts from a single bounded `getHistory` read during `hydrate()`, so
parallel fan-out discovery reappears immediately on refresh instead of
waiting for SSE replay. Subagent execution namespaces are promoted
through the existing guarded discovery state machine (bulk at hydrate,
lazily per opened card via the selector layer). The getHistory cost is
O(1) in requests regardless of fan-out width.

- Updated dependencies
\[[`0a0e04e`](https://github.com/langchain-ai/langgraphjs/commit/0a0e04e9ff7e82fd08411cc0094e1f94729a1e1e),
[`658a076`](https://github.com/langchain-ai/langgraphjs/commit/658a076d5b50af9f5b96ab99f26ed629da6e182f),
[`a9aa8d6`](https://github.com/langchain-ai/langgraphjs/commit/a9aa8d6a9b23f5f7d4c56889fa68697b1e076b31)]:
    -   @langchain/langgraph-sdk@1.9.17

## @langchain/react@1.0.17

### Patch Changes

- [#2494](https://github.com/langchain-ai/langgraphjs/pull/2494)
[`0a0e04e`](https://github.com/langchain-ai/langgraphjs/commit/0a0e04e9ff7e82fd08411cc0094e1f94729a1e1e)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): revive automatic optimistic submit echo

Echo `submit()` input into `values` / `messages` immediately with
client-side
id minting and id-based reconciliation as the server streams back.
Expose
per-message `optimisticStatus` via message metadata (`pending` → `sent`
/
`failed`), shallow-merge non-message keys with rollback when no `values`
arrive, and add an `optimistic: false` hook opt-out. Plumb through
React,
    Vue, Svelte, and Angular with browser e2e coverage.

- [#2497](https://github.com/langchain-ai/langgraphjs/pull/2497)
[`a9aa8d6`](https://github.com/langchain-ai/langgraphjs/commit/a9aa8d6a9b23f5f7d4c56889fa68697b1e076b31)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): reconcile subagents and subgraphs on thread reconnect

Seed deep-agent subagent cards from checkpoint messages and subgraph
hosts from a single bounded `getHistory` read during `hydrate()`, so
parallel fan-out discovery reappears immediately on refresh instead of
waiting for SSE replay. Subagent execution namespaces are promoted
through the existing guarded discovery state machine (bulk at hydrate,
lazily per opened card via the selector layer). The getHistory cost is
O(1) in requests regardless of fan-out width.

- Updated dependencies
\[[`0a0e04e`](https://github.com/langchain-ai/langgraphjs/commit/0a0e04e9ff7e82fd08411cc0094e1f94729a1e1e),
[`658a076`](https://github.com/langchain-ai/langgraphjs/commit/658a076d5b50af9f5b96ab99f26ed629da6e182f),
[`a9aa8d6`](https://github.com/langchain-ai/langgraphjs/commit/a9aa8d6a9b23f5f7d4c56889fa68697b1e076b31)]:
    -   @langchain/langgraph-sdk@1.9.17

## @langchain/svelte@1.0.17

### Patch Changes

- [#2494](https://github.com/langchain-ai/langgraphjs/pull/2494)
[`0a0e04e`](https://github.com/langchain-ai/langgraphjs/commit/0a0e04e9ff7e82fd08411cc0094e1f94729a1e1e)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): revive automatic optimistic submit echo

Echo `submit()` input into `values` / `messages` immediately with
client-side
id minting and id-based reconciliation as the server streams back.
Expose
per-message `optimisticStatus` via message metadata (`pending` → `sent`
/
`failed`), shallow-merge non-message keys with rollback when no `values`
arrive, and add an `optimistic: false` hook opt-out. Plumb through
React,
    Vue, Svelte, and Angular with browser e2e coverage.

- [#2497](https://github.com/langchain-ai/langgraphjs/pull/2497)
[`a9aa8d6`](https://github.com/langchain-ai/langgraphjs/commit/a9aa8d6a9b23f5f7d4c56889fa68697b1e076b31)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): reconcile subagents and subgraphs on thread reconnect

Seed deep-agent subagent cards from checkpoint messages and subgraph
hosts from a single bounded `getHistory` read during `hydrate()`, so
parallel fan-out discovery reappears immediately on refresh instead of
waiting for SSE replay. Subagent execution namespaces are promoted
through the existing guarded discovery state machine (bulk at hydrate,
lazily per opened card via the selector layer). The getHistory cost is
O(1) in requests regardless of fan-out width.

- Updated dependencies
\[[`0a0e04e`](https://github.com/langchain-ai/langgraphjs/commit/0a0e04e9ff7e82fd08411cc0094e1f94729a1e1e),
[`658a076`](https://github.com/langchain-ai/langgraphjs/commit/658a076d5b50af9f5b96ab99f26ed629da6e182f),
[`a9aa8d6`](https://github.com/langchain-ai/langgraphjs/commit/a9aa8d6a9b23f5f7d4c56889fa68697b1e076b31)]:
    -   @langchain/langgraph-sdk@1.9.17

## @langchain/vue@1.0.17

### Patch Changes

- [#2494](https://github.com/langchain-ai/langgraphjs/pull/2494)
[`0a0e04e`](https://github.com/langchain-ai/langgraphjs/commit/0a0e04e9ff7e82fd08411cc0094e1f94729a1e1e)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): revive automatic optimistic submit echo

Echo `submit()` input into `values` / `messages` immediately with
client-side
id minting and id-based reconciliation as the server streams back.
Expose
per-message `optimisticStatus` via message metadata (`pending` → `sent`
/
`failed`), shallow-merge non-message keys with rollback when no `values`
arrive, and add an `optimistic: false` hook opt-out. Plumb through
React,
    Vue, Svelte, and Angular with browser e2e coverage.

- [#2497](https://github.com/langchain-ai/langgraphjs/pull/2497)
[`a9aa8d6`](https://github.com/langchain-ai/langgraphjs/commit/a9aa8d6a9b23f5f7d4c56889fa68697b1e076b31)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): reconcile subagents and subgraphs on thread reconnect

Seed deep-agent subagent cards from checkpoint messages and subgraph
hosts from a single bounded `getHistory` read during `hydrate()`, so
parallel fan-out discovery reappears immediately on refresh instead of
waiting for SSE replay. Subagent execution namespaces are promoted
through the existing guarded discovery state machine (bulk at hydrate,
lazily per opened card via the selector layer). The getHistory cost is
O(1) in requests regardless of fan-out width.

- Updated dependencies
\[[`0a0e04e`](https://github.com/langchain-ai/langgraphjs/commit/0a0e04e9ff7e82fd08411cc0094e1f94729a1e1e),
[`658a076`](https://github.com/langchain-ai/langgraphjs/commit/658a076d5b50af9f5b96ab99f26ed629da6e182f),
[`a9aa8d6`](https://github.com/langchain-ai/langgraphjs/commit/a9aa8d6a9b23f5f7d4c56889fa68697b1e076b31)]:
    -   @langchain/langgraph-sdk@1.9.17

## @langchain/langgraph-ui@1.2.5



## @example/ai-elements@0.1.32

### Patch Changes

- Updated dependencies
\[[`658a076`](https://github.com/langchain-ai/langgraphjs/commit/658a076d5b50af9f5b96ab99f26ed629da6e182f),
[`0a0e04e`](https://github.com/langchain-ai/langgraphjs/commit/0a0e04e9ff7e82fd08411cc0094e1f94729a1e1e),
[`a9aa8d6`](https://github.com/langchain-ai/langgraphjs/commit/a9aa8d6a9b23f5f7d4c56889fa68697b1e076b31)]:
    -   @langchain/langgraph@1.3.6
    -   @langchain/react@1.0.17

## @examples/assistant-ui-claude@0.1.32

### Patch Changes

- Updated dependencies
\[[`658a076`](https://github.com/langchain-ai/langgraphjs/commit/658a076d5b50af9f5b96ab99f26ed629da6e182f),
[`0a0e04e`](https://github.com/langchain-ai/langgraphjs/commit/0a0e04e9ff7e82fd08411cc0094e1f94729a1e1e),
[`a9aa8d6`](https://github.com/langchain-ai/langgraphjs/commit/a9aa8d6a9b23f5f7d4c56889fa68697b1e076b31)]:
    -   @langchain/langgraph@1.3.6
    -   @langchain/react@1.0.17

## @examples/ui-angular@0.0.42

### Patch Changes

- Updated dependencies
\[[`658a076`](https://github.com/langchain-ai/langgraphjs/commit/658a076d5b50af9f5b96ab99f26ed629da6e182f),
[`0a0e04e`](https://github.com/langchain-ai/langgraphjs/commit/0a0e04e9ff7e82fd08411cc0094e1f94729a1e1e),
[`658a076`](https://github.com/langchain-ai/langgraphjs/commit/658a076d5b50af9f5b96ab99f26ed629da6e182f),
[`a9aa8d6`](https://github.com/langchain-ai/langgraphjs/commit/a9aa8d6a9b23f5f7d4c56889fa68697b1e076b31)]:
    -   @langchain/langgraph@1.3.6
    -   @langchain/langgraph-sdk@1.9.17
    -   @langchain/angular@1.0.17

## @examples/ui-multimodal@0.0.18

### Patch Changes

- Updated dependencies
\[[`658a076`](https://github.com/langchain-ai/langgraphjs/commit/658a076d5b50af9f5b96ab99f26ed629da6e182f),
[`0a0e04e`](https://github.com/langchain-ai/langgraphjs/commit/0a0e04e9ff7e82fd08411cc0094e1f94729a1e1e),
[`a9aa8d6`](https://github.com/langchain-ai/langgraphjs/commit/a9aa8d6a9b23f5f7d4c56889fa68697b1e076b31)]:
    -   @langchain/langgraph@1.3.6
    -   @langchain/react@1.0.17

## @examples/ui-react@0.0.18

### Patch Changes

- Updated dependencies
\[[`658a076`](https://github.com/langchain-ai/langgraphjs/commit/658a076d5b50af9f5b96ab99f26ed629da6e182f),
[`0a0e04e`](https://github.com/langchain-ai/langgraphjs/commit/0a0e04e9ff7e82fd08411cc0094e1f94729a1e1e),
[`658a076`](https://github.com/langchain-ai/langgraphjs/commit/658a076d5b50af9f5b96ab99f26ed629da6e182f),
[`a9aa8d6`](https://github.com/langchain-ai/langgraphjs/commit/a9aa8d6a9b23f5f7d4c56889fa68697b1e076b31)]:
    -   @langchain/langgraph@1.3.6
    -   @langchain/langgraph-sdk@1.9.17
    -   @langchain/react@1.0.17

## langgraph@1.0.38

### Patch Changes

- Updated dependencies
\[[`658a076`](https://github.com/langchain-ai/langgraphjs/commit/658a076d5b50af9f5b96ab99f26ed629da6e182f)]:
    -   @langchain/langgraph@1.3.6

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@langchain/angular@1.0.17 @langchain/langgraph-api@1.2.5 @langchain/langgraph-cli@1.2.5 @langchain/langgraph-sdk@1.9.17 @langchain/langgraph-ui@1.2.5 @langchain/langgraph@1.3.6 @langchain/react@1.0.17 @langchain/svelte@1.0.17 @langchain/vue@1.0.17
2026-06-05 15:52:16 -07:00
Christian Bromann 658a076d5b chore: update changesets 2026-06-05 15:47:20 -07:00
Christian Bromann a9aa8d6a9b fix(sdk): reconcile subagents and subgraphs on thread reconnect (#2497)
## Summary
- Subagent cards are seeded from checkpoint messages and subgraph hosts
from a single bounded `getHistory` during `hydrate()`, so reconnecting
to a thread restores parallel fan-out discovery immediately instead of
waiting for full SSE replay.
- Subagent execution namespaces are resolved from history through the
existing guarded discovery state machine — bulk-promoted at hydrate, and
lazily per opened card via a selector-layer trigger added to
React/Vue/Svelte/Angular.
- `getHistory` usage is bounded (one page + at most one `before`-cursor
fallback) and O(1) in requests regardless of how many
subagents/subgraphs ran in parallel.

---------

Co-authored-by: open-swe[bot] <215916821+open-swe[bot]@users.noreply.github.com>
2026-06-05 15:25:05 -07:00
dependabot[bot] f552c05813 chore(deps): bump hono from 4.12.18 to 4.12.21 (#2492)
Bumps [hono](https://github.com/honojs/hono) from 4.12.18 to 4.12.21.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/honojs/hono/releases">hono's
releases</a>.</em></p>
<blockquote>
<h2>v4.12.21</h2>
<h2>Security fixes</h2>
<p>This release includes fixes for the following security issues:</p>
<h3>app.mount() strips mount prefix using undecoded path, causing
incorrect routing for percent-encoded paths</h3>
<p>Affects: <code>app.mount()</code>. Fixes prefix stripping using the
raw URL pathname instead of the decoded path, where percent-encoded
characters in the mount prefix or path could cause the prefix to be
removed at the wrong position, resulting in the sub-application
receiving an incorrect path. GHSA-2gcr-mfcq-wcc3</p>
<h3>IP Restriction bypasses static deny rules for non-canonical
IPv6</h3>
<p>Affects: <code>hono/ip-restriction</code>. Fixes IP address
comparison using string equality, where non-canonical IPv6
representations of a denied address — such as compressed forms or
hex-notation IPv4-mapped addresses — could bypass static deny rules.
GHSA-xrhx-7g5j-rcj5</p>
<h3>Cookie helper does not sanitize sameSite and priority, allowing
Set-Cookie injection</h3>
<p>Affects: <code>hono/cookie</code>. Fixes missing validation of
<code>sameSite</code> and <code>priority</code> options against
injection characters (<code>;</code>, <code>\r</code>, <code>\n</code>),
where user-controlled input passed to either option could inject
additional attributes into the Set-Cookie response header.
GHSA-3hrh-pfw6-9m5x</p>
<h3>JWT middleware accepts any Authorization scheme, not only
Bearer</h3>
<p>Affects: <code>hono/jwt</code>, <code>hono/jwk</code>. Fixes missing
scheme validation in the Authorization header, where any two-part header
value was accepted regardless of the scheme name, allowing non-Bearer
schemes to pass JWT authentication. GHSA-f577-qrjj-4474</p>
<hr />
<p>Users who use <code>app.mount()</code>,
<code>hono/ip-restriction</code>, <code>hono/cookie</code>, or
<code>hono/jwt</code>/<code>hono/jwk</code> are encouraged to upgrade to
this version.</p>
<h2>v4.12.20</h2>
<h2>What's Changed</h2>
<ul>
<li>fix(route): preserve the base path of the mounted route() app by <a
href="https://github.com/usualoma"><code>@​usualoma</code></a> in <a
href="https://redirect.github.com/honojs/hono/pull/4942">honojs/hono#4942</a></li>
<li>fix(jsx): widen jsx and jsxFn children to Child[] by <a
href="https://github.com/ashunar0"><code>@​ashunar0</code></a> in <a
href="https://redirect.github.com/honojs/hono/pull/4947">honojs/hono#4947</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/ashunar0"><code>@​ashunar0</code></a>
made their first contribution in <a
href="https://redirect.github.com/honojs/hono/pull/4947">honojs/hono#4947</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/honojs/hono/compare/v4.12.19...v4.12.20">https://github.com/honojs/hono/compare/v4.12.19...v4.12.20</a></p>
<h2>v4.12.19</h2>
<h2>What's Changed</h2>
<ul>
<li>ci: pin GitHub Actions to SHAs by <a
href="https://github.com/yusukebe"><code>@​yusukebe</code></a> in <a
href="https://redirect.github.com/honojs/hono/pull/4932">honojs/hono#4932</a></li>
<li>fix(serveStatic): make options parameter optional in all adapters by
<a href="https://github.com/mixelburg"><code>@​mixelburg</code></a> in
<a
href="https://redirect.github.com/honojs/hono/pull/4934">honojs/hono#4934</a></li>
<li>fix(cookie): return the first cookie when there are multiple cookies
with the same name by <a
href="https://github.com/usualoma"><code>@​usualoma</code></a> in <a
href="https://redirect.github.com/honojs/hono/pull/4922">honojs/hono#4922</a></li>
<li>feat(bearer-auth): make bearerAuth generic for typed context in
verifyToken by <a
href="https://github.com/justinnais"><code>@​justinnais</code></a> in <a
href="https://redirect.github.com/honojs/hono/pull/4913">honojs/hono#4913</a></li>
<li>feat(cache): key cache entries by configured vary headers by <a
href="https://github.com/usualoma"><code>@​usualoma</code></a> in <a
href="https://redirect.github.com/honojs/hono/pull/4915">honojs/hono#4915</a></li>
<li>feat(request): add <code>bytes()</code> by <a
href="https://github.com/yusukebe"><code>@​yusukebe</code></a> in <a
href="https://redirect.github.com/honojs/hono/pull/4921">honojs/hono#4921</a></li>
<li>fix(stream): upgrade <code>@hono/node-server</code> to v2 and fix
abort handling by <a
href="https://github.com/yusukebe"><code>@​yusukebe</code></a> in <a
href="https://redirect.github.com/honojs/hono/pull/4940">honojs/hono#4940</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/justinnais"><code>@​justinnais</code></a> made
their first contribution in <a
href="https://redirect.github.com/honojs/hono/pull/4913">honojs/hono#4913</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/honojs/hono/compare/v4.12.18...v4.12.19">https://github.com/honojs/hono/compare/v4.12.18...v4.12.19</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/honojs/hono/commit/a83ddb882e0c0b8c336050dba087bb2e1b12488e"><code>a83ddb8</code></a>
4.12.21</li>
<li><a
href="https://github.com/honojs/hono/commit/6cbb025ff87fca1a3d00d0ccca0eaf3a6385c3f1"><code>6cbb025</code></a>
Merge commit from fork</li>
<li><a
href="https://github.com/honojs/hono/commit/c831020fb1fa2e929d222f6c84e1abfe013e512b"><code>c831020</code></a>
Merge commit from fork</li>
<li><a
href="https://github.com/honojs/hono/commit/905aedbc20661e0e2fa378783a7ec44a5c3df43d"><code>905aedb</code></a>
Merge commit from fork</li>
<li><a
href="https://github.com/honojs/hono/commit/5463db2735476959b8af67756f4e513f4fe19115"><code>5463db2</code></a>
Merge commit from fork</li>
<li><a
href="https://github.com/honojs/hono/commit/c657a39ccc8d3194d345d9e82c8587bd25b5b6e8"><code>c657a39</code></a>
4.12.20</li>
<li><a
href="https://github.com/honojs/hono/commit/eb2d0c238adbcee5933d0f8c15f1a65a88f50565"><code>eb2d0c2</code></a>
fix(jsx): widen jsx and jsxFn children to Child[] (<a
href="https://redirect.github.com/honojs/hono/issues/4947">#4947</a>)</li>
<li><a
href="https://github.com/honojs/hono/commit/dcabbece347817ef7193439c39d28546b8ac3a85"><code>dcabbec</code></a>
fix(route): preserve the base path of the mounted route() app (<a
href="https://redirect.github.com/honojs/hono/issues/4942">#4942</a>)</li>
<li><a
href="https://github.com/honojs/hono/commit/7e62bcd22fa4e8f0e83cb564bac85e32f5434dd3"><code>7e62bcd</code></a>
4.12.19</li>
<li><a
href="https://github.com/honojs/hono/commit/e2f252a8745eb25f06485b8d43e8410bf027c8ef"><code>e2f252a</code></a>
fix(stream): upgrade <code>@hono/node-server</code> to v2 and fix abort
handling (<a
href="https://redirect.github.com/honojs/hono/issues/4940">#4940</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/honojs/hono/compare/v4.12.18...v4.12.21">compare
view</a></li>
</ul>
</details>
<br />

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-04 22:35:51 -07:00
Christian Bromann 0a0e04e9ff fix(sdk): revive automatic optimistic submit echo (#2494)
## Summary
- revive automatic optimistic updates to `@langchain/langgraph-sdk`:
`submit()` input is echoed into `values` / `messages` immediately,
messages without ids get client-minted ids for server reconciliation,
and non-message keys are shallow-merged with rollback when no `values`
snapshot arrives.
- Track per-message lifecycle via
`useMessageMetadata(...).optimisticStatus` (`pending` → `sent` /
`failed`); failed optimistic messages are kept for retry UX and dropped
on `hydrate()`.
- Plumb `optimistic?: boolean` through React, Vue, Svelte, and Angular
`useStream` hooks (defaults to enabled) and document the v1 migration
path replacing legacy `optimisticValues`.
- Add browser e2e tests across all four framework SDKs covering message
happy path, id reconciliation, failure handling, opt-out, and
non-message state convergence/rollback.
2026-06-04 20:58:57 -07:00
github-actions[bot] 28fbf1dc4e chore: version packages (#2490)
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


# Releases
## @langchain/langgraph@1.3.5

### Patch Changes

- [#2489](https://github.com/langchain-ai/langgraphjs/pull/2489)
[`e3a1933`](https://github.com/langchain-ai/langgraphjs/commit/e3a1933a8825a515d847b38b24a0743f4d418646)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(core): keep stream chunks as three-element tuples

    Emit lightweight checkpoint envelopes as separate
`[namespace, "checkpoints", envelope]` chunks before paired `values`
chunks.
    Public `stream()` always yields `[namespace, mode, payload]`; the v3
    protocol path surfaces envelopes via `convertToProtocolEvent`.

- Updated dependencies
\[[`244c24e`](https://github.com/langchain-ai/langgraphjs/commit/244c24eaccff4009df7d83e4320e51a4b310b15f)]:
    -   @langchain/langgraph-sdk@1.9.16

## @langchain/langgraph-sdk@1.9.16

### Patch Changes

- [#2486](https://github.com/langchain-ai/langgraphjs/pull/2486)
[`244c24e`](https://github.com/langchain-ai/langgraphjs/commit/244c24eaccff4009df7d83e4320e51a4b310b15f)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): surface resumed run failures on stream.error

Route `respond()` and `respondAll()` through a coordinator dispatch path
that
writes the reactive `rootStore.error` slot when a resumed run reaches a
failed
terminal or when `input.respond` dispatch fails, matching submit()
behavior so
framework consumers (e.g. API-key retry UIs) observe resume failures via
    `stream.error` instead of only `isLoading` transitions.

## @langchain/angular@1.0.16

### Patch Changes

- Updated dependencies
\[[`244c24e`](https://github.com/langchain-ai/langgraphjs/commit/244c24eaccff4009df7d83e4320e51a4b310b15f)]:
    -   @langchain/langgraph-sdk@1.9.16

## @langchain/react@1.0.16

### Patch Changes

- Updated dependencies
\[[`244c24e`](https://github.com/langchain-ai/langgraphjs/commit/244c24eaccff4009df7d83e4320e51a4b310b15f)]:
    -   @langchain/langgraph-sdk@1.9.16

## @langchain/svelte@1.0.16

### Patch Changes

- Updated dependencies
\[[`244c24e`](https://github.com/langchain-ai/langgraphjs/commit/244c24eaccff4009df7d83e4320e51a4b310b15f)]:
    -   @langchain/langgraph-sdk@1.9.16

## @langchain/vue@1.0.16

### Patch Changes

- Updated dependencies
\[[`244c24e`](https://github.com/langchain-ai/langgraphjs/commit/244c24eaccff4009df7d83e4320e51a4b310b15f)]:
    -   @langchain/langgraph-sdk@1.9.16

## @example/ai-elements@0.1.31

### Patch Changes

- Updated dependencies
\[[`e3a1933`](https://github.com/langchain-ai/langgraphjs/commit/e3a1933a8825a515d847b38b24a0743f4d418646)]:
    -   @langchain/langgraph@1.3.5
    -   @langchain/react@1.0.16

## @examples/assistant-ui-claude@0.1.31

### Patch Changes

- Updated dependencies
\[[`e3a1933`](https://github.com/langchain-ai/langgraphjs/commit/e3a1933a8825a515d847b38b24a0743f4d418646)]:
    -   @langchain/langgraph@1.3.5
    -   @langchain/react@1.0.16

## @examples/ui-angular@0.0.41

### Patch Changes

- Updated dependencies
\[[`244c24e`](https://github.com/langchain-ai/langgraphjs/commit/244c24eaccff4009df7d83e4320e51a4b310b15f),
[`e3a1933`](https://github.com/langchain-ai/langgraphjs/commit/e3a1933a8825a515d847b38b24a0743f4d418646)]:
    -   @langchain/langgraph-sdk@1.9.16
    -   @langchain/langgraph@1.3.5
    -   @langchain/angular@1.0.16

## @examples/ui-multimodal@0.0.17

### Patch Changes

- Updated dependencies
\[[`e3a1933`](https://github.com/langchain-ai/langgraphjs/commit/e3a1933a8825a515d847b38b24a0743f4d418646)]:
    -   @langchain/langgraph@1.3.5
    -   @langchain/react@1.0.16

## @examples/ui-react@0.0.17

### Patch Changes

- Updated dependencies
\[[`244c24e`](https://github.com/langchain-ai/langgraphjs/commit/244c24eaccff4009df7d83e4320e51a4b310b15f),
[`e3a1933`](https://github.com/langchain-ai/langgraphjs/commit/e3a1933a8825a515d847b38b24a0743f4d418646)]:
    -   @langchain/langgraph-sdk@1.9.16
    -   @langchain/langgraph@1.3.5
    -   @langchain/react@1.0.16

## langgraph@1.0.37

### Patch Changes

- Updated dependencies
\[[`e3a1933`](https://github.com/langchain-ai/langgraphjs/commit/e3a1933a8825a515d847b38b24a0743f4d418646)]:
    -   @langchain/langgraph@1.3.5

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@langchain/angular@1.0.16 @langchain/langgraph-sdk@1.9.16 @langchain/langgraph@1.3.5 @langchain/react@1.0.16 @langchain/svelte@1.0.16 @langchain/vue@1.0.16
2026-06-04 14:25:44 -07:00
Christian Bromann c6528b2ff4 chore(sdk): update vitest browser dependency (#2493)
Updating Vitest dependencies due to vulnerability concerns.
2026-06-04 14:21:50 -07:00
Christian Bromann e3a1933a88 fix(core): keep stream() on 3-tuple shape (#2489)
## Summary
- Fixes `ValueError: too many values to unpack (expected 3)` when JS
graphs on `@langchain/langgraph` >=1.3 stream through the legacy path
(plain `stream()` / `streamEvents` v2 → `on_chain_stream`), which
affected deepagents 1.10.x and similar stacks on runtimes that expect
Python's 3-tuple stream shape.
- **Root cause:** `_streamIterator` always yielded a 4-element
`[namespace, mode, payload, meta]` when `subgraphs` + multi-mode and a
checkpointer were active, even though `StreamChunkMeta` is only for the
native v3 protocol stream (`streamEvents(..., { version: "v3" })` /
`pump()`).
- **Fix:** Introduce `isV3` and only append `meta` when `options.version
=== "v3"`; all other consumers get the Python-aligned 3-tuple
`[namespace, mode, payload]`.
- **Tests:** Add `stream() shape parity with Python` regression coverage
(3-tuples for subgraphs + multi-mode with checkpointer; v3 still emits
companion `checkpoints` events).
2026-06-04 12:59:18 -07:00
Christian Bromann db75ba3d5b docs(sdk): update event based streaming migration guide (#2488)
This patch updates the migration docs to the new event based streaming
mechanism. Improves wording and correctness.
2026-06-04 10:08:48 -07:00
Christian Bromann 244c24eacc fix(sdk): surface resumed run failures on stream.error (#2486)
## Summary
- Route `respond()` / `respondAll()` through
`SubmitCoordinator.dispatchResume()` so resumed runs write failures to
the reactive `rootStore.error` slot (same path `submit()` uses), instead
of only toggling `isLoading` via the lifecycle listener.
- Arm a background terminal watch before dispatch so `respond()` still
resolves on `input.respond` while a later `failed` lifecycle populates
`stream.error`.
- Add controller tests for failed resume, dispatch failure, and batched
`respondAll()` failure.
2026-06-04 10:08:32 -07:00
dependabot[bot] a4919b667e chore(deps): bump the langchain group across 1 directory with 8 updates (#2476)
Bumps the langchain group with 8 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@langchain/anthropic](https://github.com/langchain-ai/langchainjs) |
`1.3.28` | `1.4.0` |
| [@langchain/core](https://github.com/langchain-ai/langchainjs) |
`1.1.44` | `1.1.48` |
| [langchain](https://github.com/langchain-ai/langchainjs) |
`1.4.0-dev-1777615538778` | `1.4.4` |
| [@langchain/openai](https://github.com/langchain-ai/langchainjs) |
`1.4.5` | `1.4.7` |
| [@langchain/groq](https://github.com/langchain-ai/langchainjs) |
`1.2.0` | `1.2.1` |
| [@langchain/mistralai](https://github.com/langchain-ai/langchainjs) |
`1.0.8` | `1.1.0` |
| [@langchain/classic](https://github.com/langchain-ai/langchainjs) |
`1.0.32` | `1.0.34` |
| [langsmith](https://github.com/langchain-ai/langsmith-sdk) | `0.6.0` |
`0.7.4` |


Updates `@langchain/anthropic` from 1.3.28 to 1.4.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/langchain-ai/langchainjs/releases">@​langchain/anthropic's
releases</a>.</em></p>
<blockquote>
<h2><code>@​langchain/anthropic</code><a
href="https://github.com/1"><code>@​1</code></a>.4.0</h2>
<h3>Minor Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/langchain-ai/langchainjs/pull/10777">#10777</a>
<a
href="https://github.com/langchain-ai/langchainjs/commit/0cfcfc66897d8fafeb7e7ed90b7299eace9a7c37"><code>0cfcfc6</code></a>
Thanks <a
href="https://github.com/jonaslalin"><code>@​jonaslalin</code></a>! -
feat(anthropic): support strict tool calling for custom tools</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/langchain-ai/langchainjs/commits/@langchain/anthropic@1.4.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `@langchain/core` from 1.1.44 to 1.1.48
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/langchain-ai/langchainjs/releases">@​langchain/core's
releases</a>.</em></p>
<blockquote>
<h2><code>@​langchain/core</code><a
href="https://github.com/1"><code>@​1</code></a>.1.48</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/langchain-ai/langchainjs/pull/10832">#10832</a>
<a
href="https://github.com/langchain-ai/langchainjs/commit/1b24369a970ad6f56f1f428027f48601f87e62eb"><code>1b24369</code></a>
Thanks <a
href="https://github.com/info-arnav"><code>@​info-arnav</code></a>! -
fix(core, openrouter): make CJS default re-exports callable</p>
</li>
<li>
<p><a
href="https://redirect.github.com/langchain-ai/langchainjs/pull/10666">#10666</a>
<a
href="https://github.com/langchain-ai/langchainjs/commit/2bb55b053f49f89e81e3252a7af08e86d71ddd95"><code>2bb55b0</code></a>
Thanks <a
href="https://github.com/hnustwjj"><code>@​hnustwjj</code></a>! -
feat(openrouter): surface reasoning content as v1 standard content
blocks</p>
<p><code>convertOpenRouterResponseToBaseMessage</code> and
<code>convertOpenRouterDeltaToBaseMessageChunk</code> now copy
OpenRouter's
<code>reasoning</code> (flat string) and <code>reasoning_details</code>
(structured array) fields
onto <code>additional_kwargs.reasoning_content</code> /
<code>additional_kwargs.reasoning_details</code>.
A new <code>ChatOpenRouterTranslator</code> is registered in
<code>@langchain/core</code> under
the <code>&quot;openrouter&quot;</code> provider key so
<code>AIMessage.contentBlocks</code> emits standard
<code>{type: &quot;reasoning&quot;}</code> blocks alongside text and
tool calls.</p>
<p>Previously, reasoning text returned by reasoning-capable models
routed
through OpenRouter (DeepSeek R1, Minimax M2, Claude extended thinking,
o-series, etc.) was silently dropped: only the
<code>reasoning_tokens</code> count
was preserved via <code>usage_metadata</code>. Consumers using standard
content blocks
(including the frontend agent UI patterns shown in the docs) could not
display the model's chain of thought.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/langchain-ai/langchainjs/pull/10918">#10918</a>
<a
href="https://github.com/langchain-ai/langchainjs/commit/3999fab55870c6eea22d6d90c08aa472f9b2fac3"><code>3999fab</code></a>
Thanks <a
href="https://github.com/christian-bromann"><code>@​christian-bromann</code></a>!
- fix(openai): stream custom tool calls through Responses API chunks</p>
</li>
</ul>
<h2><code>@​langchain/core</code><a
href="https://github.com/1"><code>@​1</code></a>.1.47</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/langchain-ai/langchainjs/pull/10906">#10906</a>
<a
href="https://github.com/langchain-ai/langchainjs/commit/f61b3450f275831e47e69c08899b4a2b67b4bdb3"><code>f61b345</code></a>
Thanks <a href="https://github.com/hntrl"><code>@​hntrl</code></a>! -
feat(core): add uuid v6 utility support</p>
<p>Add <code>v6</code> UUID generation support to
<code>@langchain/core/utils/uuid</code> by vendoring the upstream uuidjs
<code>v6</code> implementation and its <code>v1ToV6</code> helper,
exporting <code>v6</code> from the UUID utils index, and adding tests
for deterministic generation, buffer/offset behavior,
validation/versioning, and ordering.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/langchain-ai/langchainjs/pull/10872">#10872</a>
<a
href="https://github.com/langchain-ai/langchainjs/commit/a64007997a4940f51bba3c1c83dae89d1ccfb692"><code>a640079</code></a>
Thanks <a href="https://github.com/hntrl"><code>@​hntrl</code></a>! -
chore(deps): remove redundant <code>@​types/uuid</code> declarations</p>
<p>Remove <code>@types/uuid</code> from package manifests that rely on
<code>@langchain/core/utils/uuid</code> or do not require uuid type
stubs directly, and refresh the lockfile entries accordingly.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/langchain-ai/langchainjs/pull/10792">#10792</a>
<a
href="https://github.com/langchain-ai/langchainjs/commit/3682268cd1844b2573b01f07bee367e21cb7bdc7"><code>3682268</code></a>
Thanks <a href="https://github.com/Genmin"><code>@​Genmin</code></a>! -
fix(core): apply v1 message casting after implicit streaming
aggregation</p>
</li>
<li>
<p><a
href="https://redirect.github.com/langchain-ai/langchainjs/pull/10901">#10901</a>
<a
href="https://github.com/langchain-ai/langchainjs/commit/f26fc4a6f461d6d0f86d59bd00197ad510432c4a"><code>f26fc4a</code></a>
Thanks <a
href="https://github.com/christian-bromann"><code>@​christian-bromann</code></a>!
- fix(testing): share fakeModel invocation state across bindTools
instances</p>
</li>
</ul>
<h2><code>@​langchain/core</code><a
href="https://github.com/1"><code>@​1</code></a>.1.46</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/langchain-ai/langchainjs/pull/10847">#10847</a>
<a
href="https://github.com/langchain-ai/langchainjs/commit/1659e7d36e31e315c890fa98f43db887f7a2d52b"><code>1659e7d</code></a>
Thanks <a href="https://github.com/hntrl"><code>@​hntrl</code></a>! -
chore(core): reduce transitive dependency exposure and tighten release
hygiene</p>
<p>Remove direct runtime dependencies on <code>ansi-styles</code>,
<code>camelcase</code>, and <code>decamelize</code>
by inlining equivalent logic in core internals, and enable npm
provenance in the
release workflow.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/langchain-ai/langchainjs/pull/10790">#10790</a>
<a
href="https://github.com/langchain-ai/langchainjs/commit/ef78bc6a21f9a8808ba95c98db2023f0a6b51bcc"><code>ef78bc6</code></a>
Thanks <a href="https://github.com/Genmin"><code>@​Genmin</code></a>! -
fix(core): keep different content block types separate when merging
chunks</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/langchain-ai/langchainjs/commits/@langchain/core@1.1.48">compare
view</a></li>
</ul>
</details>
<br />

Updates `langchain` from 1.4.0-dev-1777615538778 to 1.4.4
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/langchain-ai/langchainjs/releases">langchain's
releases</a>.</em></p>
<blockquote>
<h2>langchain@1.4.2</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/langchain-ai/langchainjs/pull/10900">#10900</a>
<a
href="https://github.com/langchain-ai/langchainjs/commit/6bbddca1f8f7f280583fd839bb40c00bf19a0d51"><code>6bbddca</code></a>
Thanks <a
href="https://github.com/christian-bromann"><code>@​christian-bromann</code></a>!
- fix(langchain): unwrap tool message outputs in agent streams</p>
</li>
<li>
<p><a
href="https://redirect.github.com/langchain-ai/langchainjs/pull/10706">#10706</a>
<a
href="https://github.com/langchain-ai/langchainjs/commit/4ecb6606feae3156a07de67e39e2027f857c476e"><code>4ecb660</code></a>
Thanks <a
href="https://github.com/JadenKim-dev"><code>@​JadenKim-dev</code></a>!
- fix(langchain): set name on todoListMiddleware ToolMessages</p>
</li>
</ul>
<h2>langchain@1.4.1</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/langchain-ai/langchainjs/pull/10879">#10879</a>
<a
href="https://github.com/langchain-ai/langchainjs/commit/eb480cb6df8e0fa792826155bfa00a6db4536444"><code>eb480cb</code></a>
Thanks <a
href="https://github.com/vignesh-gep"><code>@​vignesh-gep</code></a>! -
fix(langchain/createAgent): throw on terminal
<code>providerStrategy</code> parse failure instead of silently
resolving with <code>structuredResponse: undefined</code></p>
<p>When <code>createAgent</code> was configured with
<code>responseFormat</code> resolving to a <code>providerStrategy</code>
(either passed explicitly or auto-promoted from a bare Zod / JSON schema
for models whose profile reports <code>structuredOutput: true</code>),
and the model produced a terminal response (no <code>tool_calls</code>)
whose text could not be JSON-parsed or did not satisfy the schema, the
agent silently exited with no <code>structuredResponse</code>, surfacing
later as <code>TypeError: Cannot read properties of undefined</code>.
The agent now throws a <code>StructuredOutputParsingError</code> in that
case while still allowing the agent loop to continue when tool calls are
present. Closes <a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/10878">#10878</a>.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/langchain-ai/langchainjs/pull/10872">#10872</a>
<a
href="https://github.com/langchain-ai/langchainjs/commit/a64007997a4940f51bba3c1c83dae89d1ccfb692"><code>a640079</code></a>
Thanks <a href="https://github.com/hntrl"><code>@​hntrl</code></a>! -
chore(deps): remove redundant <code>@​types/uuid</code> declarations</p>
<p>Remove <code>@types/uuid</code> from package manifests that rely on
<code>@langchain/core/utils/uuid</code> or do not require uuid type
stubs directly, and refresh the lockfile entries accordingly.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/langchain-ai/langchainjs/pull/10160">#10160</a>
<a
href="https://github.com/langchain-ai/langchainjs/commit/bba900c7c8781c7efec856d5d3e539a93f14e797"><code>bba900c</code></a>
Thanks <a
href="https://github.com/JadenKim-dev"><code>@​JadenKim-dev</code></a>!
- fix(langchain): prevent llmToolSelectorMiddleware from leaking into
message stream</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/langchain-ai/langchainjs/commits/@langchain/openai@1.4.4">compare
view</a></li>
</ul>
</details>
<br />

Updates `@langchain/openai` from 1.4.5 to 1.4.7
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/langchain-ai/langchainjs/releases">@​langchain/openai's
releases</a>.</em></p>
<blockquote>
<h2><code>@​langchain/openai</code><a
href="https://github.com/1"><code>@​1</code></a>.4.7</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/langchain-ai/langchainjs/pull/10918">#10918</a>
<a
href="https://github.com/langchain-ai/langchainjs/commit/3999fab55870c6eea22d6d90c08aa472f9b2fac3"><code>3999fab</code></a>
Thanks <a
href="https://github.com/christian-bromann"><code>@​christian-bromann</code></a>!
- fix(openai): stream custom tool calls through Responses API chunks</p>
</li>
<li>
<p><a
href="https://redirect.github.com/langchain-ai/langchainjs/pull/10791">#10791</a>
<a
href="https://github.com/langchain-ai/langchainjs/commit/fce9ab418901323618fdfaaa9fc350fa1c0d50e0"><code>fce9ab4</code></a>
Thanks <a href="https://github.com/Genmin"><code>@​Genmin</code></a>! -
fix(openai): preserve top-level Responses API ids on AI messages</p>
</li>
</ul>
<h2><code>@​langchain/openai</code><a
href="https://github.com/1"><code>@​1</code></a>.4.6</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/langchain-ai/langchainjs/pull/10902">#10902</a>
<a
href="https://github.com/langchain-ai/langchainjs/commit/229a7ad67b9a7ebd8df3ca451e0b8195bea0190e"><code>229a7ad</code></a>
Thanks <a
href="https://github.com/christian-bromann"><code>@​christian-bromann</code></a>!
- fix(openai): preserve v1 assistant tool calls</p>
</li>
<li>
<p><a
href="https://redirect.github.com/langchain-ai/langchainjs/pull/10895">#10895</a>
<a
href="https://github.com/langchain-ai/langchainjs/commit/36fb0ef1dc76c096dcfa0c777e10c9f9365a5240"><code>36fb0ef</code></a>
Thanks <a href="https://github.com/BertBR"><code>@​BertBR</code></a>! -
fix(openai): guard bare <code>JSON.parse</code> in Responses API
converter against trailing non-whitespace characters</p>
<p><code>convertResponsesDeltaToChatGenerationChunk</code> previously
called <code>JSON.parse(msg.text)</code> directly when
<code>response.text.format.type === &quot;json_schema&quot;</code>. Some
models (observed with <code>gpt-5-mini</code> on <code>service_tier:
&quot;auto&quot;</code>) intermittently emit trailing non-whitespace
characters (extra tokens, control characters) after a valid JSON object,
causing a <code>SyntaxError</code> that propagates as an unhandled
exception and kills the entire streaming response mid-flight. The parse
is now wrapped in a <code>try</code>/<code>catch</code>: on failure,
<code>additional_kwargs.parsed</code> is left undefined, the stream
completes normally, and the existing <code>withStructuredOutput</code>
pipeline handles the typed failure — <code>includeRaw: true</code>
returns <code>{ raw, parsed: null }</code> via its
<code>withFallbacks</code> wrapper, <code>includeRaw: false</code>
throws a typed <code>OutputParserException</code> that the caller can
catch and retry. Closes <a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/10894">#10894</a>.</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/langchain-ai/langchainjs/commits/@langchain/openai@1.4.7">compare
view</a></li>
</ul>
</details>
<br />

Updates `@langchain/groq` from 1.2.0 to 1.2.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/langchain-ai/langchainjs/releases">@​langchain/groq's
releases</a>.</em></p>
<blockquote>
<h2><code>@​langchain/groq</code><a
href="https://github.com/1"><code>@​1</code></a>.2.1</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/langchain-ai/langchainjs/pull/10872">#10872</a>
<a
href="https://github.com/langchain-ai/langchainjs/commit/a64007997a4940f51bba3c1c83dae89d1ccfb692"><code>a640079</code></a>
Thanks <a href="https://github.com/hntrl"><code>@​hntrl</code></a>! -
chore(deps): remove redundant <code>@​types/uuid</code> declarations</p>
<p>Remove <code>@types/uuid</code> from package manifests that rely on
<code>@langchain/core/utils/uuid</code> or do not require uuid type
stubs directly, and refresh the lockfile entries accordingly.</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/1b19e4f84d747b481879363b4884c20eb1c0f1a4"><code>1b19e4f</code></a>
chore: version packages (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/10899">#10899</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/426e3aba21016d9ee070c3d130f74ae0047c9ce5"><code>426e3ab</code></a>
chore: fix uuid changeset (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/10916">#10916</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/245c98216ce4a6c4340954711a7ad60203283424"><code>245c982</code></a>
chore(deps): bump fast-xml-builder from 1.1.5 to 1.2.0 (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/10914">#10914</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/126dac5a7a2fac5978448185893038ac8ea6d994"><code>126dac5</code></a>
chore(deps): bump brace-expansion from 5.0.5 to 5.0.6 (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/10912">#10912</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/1abe24becdddce94c5bd2acfaf920b60a683f22b"><code>1abe24b</code></a>
chore(deps): bump fast-uri from 3.1.0 to 3.1.2 (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/10913">#10913</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/229a7ad67b9a7ebd8df3ca451e0b8195bea0190e"><code>229a7ad</code></a>
fix(openai): preserve v1 assistant tool calls (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/10902">#10902</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/f26fc4a6f461d6d0f86d59bd00197ad510432c4a"><code>f26fc4a</code></a>
fix(core): share fakeModel invocation state across bindTools instances
(<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/10901">#10901</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/a0cd7477e59677c8d15e0e70b374afa0a2410582"><code>a0cd747</code></a>
chore(deps): bump fast-xml-builder from 1.1.5 to 1.1.9 (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/10910">#10910</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/b208e625865fc7487876b652f479dbf854263e68"><code>b208e62</code></a>
chore(deps): bump ip-address from 10.1.0 to 10.2.0 (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/10909">#10909</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/f7e50fb8b98bd9969c0f5cf0967a06df15453453"><code>f7e50fb</code></a>
feat(google): Service tier and custom headers (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/10704">#10704</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/langchain-ai/langchainjs/compare/@langchain/groq@1.2.0...@langchain/groq@1.2.1">compare
view</a></li>
</ul>
</details>
<br />

Updates `@langchain/mistralai` from 1.0.8 to 1.1.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/langchain-ai/langchainjs/releases">@​langchain/mistralai's
releases</a>.</em></p>
<blockquote>
<h2><code>@​langchain/mistralai</code><a
href="https://github.com/1"><code>@​1</code></a>.1.0</h2>
<h3>Minor Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/langchain-ai/langchainjs/pull/10873">#10873</a>
<a
href="https://github.com/langchain-ai/langchainjs/commit/a74d574f7f086bea2f5c7a852e869f7d24be2f55"><code>a74d574</code></a>
Thanks <a
href="https://github.com/baptistejamin"><code>@​baptistejamin</code></a>!
- chore(mistralai): upgrade to <code>@​mistralai/mistralai</code> v2</p>
<p>Also populates <code>response_metadata.model</code> on chat
completions (was missing before).</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/caad0914f068477293009dbf27a220fa96bdc4b8"><code>caad091</code></a>
chore: version packages (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/10919">#10919</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/f4a6149e3e754203f5886dd8c2bccaa7a6fd4f81"><code>f4a6149</code></a>
chore(deps): bump fast-uri from 3.1.0 to 3.1.2 (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/10926">#10926</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/7b12f6dfa537932073f96b561d7c851b30d69132"><code>7b12f6d</code></a>
chore(deps): bump protobufjs from 7.5.6 to 7.6.0 (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/10930">#10930</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/5c6c5fef0cb392e782675ca5926e291a4295a653"><code>5c6c5fe</code></a>
chore(deps): bump ws from 5.2.4 to 8.20.0 (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/10915">#10915</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/a8652ceeb5e36434565c96fc1a6bd9a4a36304cc"><code>a8652ce</code></a>
docs: fix typos, add Ollama setup, update outdated references (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/10922">#10922</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/2bb55b053f49f89e81e3252a7af08e86d71ddd95"><code>2bb55b0</code></a>
feat(openrouter): surface reasoning as v1 standard content blocks (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/10666">#10666</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/4ecb6606feae3156a07de67e39e2027f857c476e"><code>4ecb660</code></a>
fix(langchain): set name on todoListMiddleware ToolMessages (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/10706">#10706</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/20f27dff08a4bd5a1a16c1c71a88405c9df82914"><code>20f27df</code></a>
fix(ibm): handle API errors in streaming responses (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/10721">#10721</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/45668734c3205e631cdd33ac071bbf733f4558c7"><code>4566873</code></a>
feat(ibm): add integration test to IBM implementation (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/10732">#10732</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/6e4337fec1a7707c1a1c709a7b6aa0c5efb7b11d"><code>6e4337f</code></a>
fix(aws): add claude-haiku-4 to supportedToolChoiceValuesForModel (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/10743">#10743</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/langchain-ai/langchainjs/compare/@langchain/classic@1.0.8...@langchain/mistralai@1.1.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `@langchain/classic` from 1.0.32 to 1.0.34
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/langchain-ai/langchainjs/releases">@​langchain/classic's
releases</a>.</em></p>
<blockquote>
<h2><code>@​langchain/classic</code><a
href="https://github.com/1"><code>@​1</code></a>.0.34</h2>
<h3>Patch Changes</h3>
<ul>
<li>Updated dependencies [<a
href="https://github.com/langchain-ai/langchainjs/commit/3999fab55870c6eea22d6d90c08aa472f9b2fac3"><code>3999fab</code></a>,
<a
href="https://github.com/langchain-ai/langchainjs/commit/fce9ab418901323618fdfaaa9fc350fa1c0d50e0"><code>fce9ab4</code></a>]:
<ul>
<li><code>@​langchain/openai</code><a
href="https://github.com/1"><code>@​1</code></a>.4.7</li>
</ul>
</li>
</ul>
<h2><code>@​langchain/classic</code><a
href="https://github.com/1"><code>@​1</code></a>.0.33</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/langchain-ai/langchainjs/pull/10872">#10872</a>
<a
href="https://github.com/langchain-ai/langchainjs/commit/a64007997a4940f51bba3c1c83dae89d1ccfb692"><code>a640079</code></a>
Thanks <a href="https://github.com/hntrl"><code>@​hntrl</code></a>! -
chore(deps): remove redundant <code>@​types/uuid</code> declarations</p>
<p>Remove <code>@types/uuid</code> from package manifests that rely on
<code>@langchain/core/utils/uuid</code> or do not require uuid type
stubs directly, and refresh the lockfile entries accordingly.</p>
</li>
<li>
<p>Updated dependencies [<a
href="https://github.com/langchain-ai/langchainjs/commit/229a7ad67b9a7ebd8df3ca451e0b8195bea0190e"><code>229a7ad</code></a>,
<a
href="https://github.com/langchain-ai/langchainjs/commit/36fb0ef1dc76c096dcfa0c777e10c9f9365a5240"><code>36fb0ef</code></a>]:</p>
<ul>
<li><code>@​langchain/openai</code><a
href="https://github.com/1"><code>@​1</code></a>.4.6</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/langchain-ai/langchainjs/commits/@langchain/classic@1.0.34">compare
view</a></li>
</ul>
</details>
<br />

Updates `langsmith` from 0.6.0 to 0.7.4
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/langchain-ai/langsmith-sdk/releases">langsmith's
releases</a>.</em></p>
<blockquote>
<h2>v0.7.4</h2>
<h2>What's Changed</h2>
<ul>
<li>fix(google-adk): add wrapt dependency by <a
href="https://github.com/QuentinBrosse"><code>@​QuentinBrosse</code></a>
in <a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2436">langchain-ai/langsmith-sdk#2436</a></li>
<li>chore: lock dependencies by <a
href="https://github.com/QuentinBrosse"><code>@​QuentinBrosse</code></a>
in <a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2439">langchain-ai/langsmith-sdk#2439</a></li>
<li>release(py): 0.7.4 by <a
href="https://github.com/QuentinBrosse"><code>@​QuentinBrosse</code></a>
in <a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2441">langchain-ai/langsmith-sdk#2441</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.3...v0.7.4">https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.3...v0.7.4</a></p>
<h2>v0.7.3</h2>
<h2>What's Changed</h2>
<ul>
<li>fix: propagate tracingEnabled to nested traceables by <a
href="https://github.com/hntrl"><code>@​hntrl</code></a> in <a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2427">langchain-ai/langsmith-sdk#2427</a></li>
<li>chore(python): openai agents: delay span start for spans without
inputs on start event by <a
href="https://github.com/angus-langchain"><code>@​angus-langchain</code></a>
in <a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2424">langchain-ai/langsmith-sdk#2424</a></li>
<li>release(py): 0.7.3 by <a
href="https://github.com/angus-langchain"><code>@​angus-langchain</code></a>
in <a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2428">langchain-ai/langsmith-sdk#2428</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.2...v0.7.3">https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.2...v0.7.3</a></p>
<h2>v0.7.2</h2>
<h2>What's Changed</h2>
<ul>
<li>release(js): 0.5.1 by <a
href="https://github.com/jacoblee93"><code>@​jacoblee93</code></a> in <a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2389">langchain-ai/langsmith-sdk#2389</a></li>
<li>fix(js): Remove <a
href="https://github.com/internal"><code>@​internal</code></a> by <a
href="https://github.com/jacoblee93"><code>@​jacoblee93</code></a> in <a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2391">langchain-ai/langsmith-sdk#2391</a></li>
<li>release(js): 0.5.2 by <a
href="https://github.com/jacoblee93"><code>@​jacoblee93</code></a> in <a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2392">langchain-ai/langsmith-sdk#2392</a></li>
<li>chore(deps-dev): bump openai from 5.8.2 to 6.18.0 in /js by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2378">langchain-ai/langsmith-sdk#2378</a></li>
<li>chore(deps-dev): bump cross-env from 7.0.3 to 10.1.0 in /js by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2379">langchain-ai/langsmith-sdk#2379</a></li>
<li>chore(deps-dev): bump the js-minor-and-patch group in /js with 4
updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2376">langchain-ai/langsmith-sdk#2376</a></li>
<li>chore(deps-dev): bump node-fetch from 2.7.0 to 3.3.2 in /js by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2380">langchain-ai/langsmith-sdk#2380</a></li>
<li>Google ADK LangSmith tracing enhancements by <a
href="https://github.com/j-broekhuizen"><code>@​j-broekhuizen</code></a>
in <a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2394">langchain-ai/langsmith-sdk#2394</a></li>
<li>chore: update dependabot.yml to comply with posture checks by <a
href="https://github.com/jkennedyvz"><code>@​jkennedyvz</code></a> in <a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2393">langchain-ai/langsmith-sdk#2393</a></li>
<li>chore(deps): bump cryptography from 46.0.3 to 46.0.5 in /python in
the uv group across 1 directory by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2397">langchain-ai/langsmith-sdk#2397</a></li>
<li>chore(deps-dev): bump the js-minor-and-patch group in /js with 6
updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2398">langchain-ai/langsmith-sdk#2398</a></li>
<li>chore(deps-dev): bump eslint-config-prettier from 8.10.0 to 10.1.8
in /js by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2399">langchain-ai/langsmith-sdk#2399</a></li>
<li>chore(deps): bump packaging from 25.0 to 26.0 in /python by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2403">langchain-ai/langsmith-sdk#2403</a></li>
<li>chore(deps-dev): bump pytest from 8.4.2 to 9.0.2 in /python by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2405">langchain-ai/langsmith-sdk#2405</a></li>
<li>chore(deps): bump the py-minor-and-patch group across 1 directory
with 20 updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2406">langchain-ai/langsmith-sdk#2406</a></li>
<li>fix(js): Log Vitest/Jest outputs even if test throws an error by <a
href="https://github.com/jacoblee93"><code>@​jacoblee93</code></a> in <a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2408">langchain-ai/langsmith-sdk#2408</a></li>
<li>fix(js): Remove async by <a
href="https://github.com/jacoblee93"><code>@​jacoblee93</code></a> in <a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2409">langchain-ai/langsmith-sdk#2409</a></li>
<li>release(js): 0.5.3 by <a
href="https://github.com/jacoblee93"><code>@​jacoblee93</code></a> in <a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2410">langchain-ai/langsmith-sdk#2410</a></li>
<li>fix: ignoring p-queue dep by <a
href="https://github.com/jkennedyvz"><code>@​jkennedyvz</code></a> in <a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2414">langchain-ai/langsmith-sdk#2414</a></li>
<li>feat(js): add feedback config CRUD and annotation queue rubric items
(closes LSPE-67) by <a
href="https://github.com/bentanny"><code>@​bentanny</code></a> in <a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2420">langchain-ai/langsmith-sdk#2420</a></li>
<li>fix(js): Add on_start handler for traceable, use in evaluate by <a
href="https://github.com/jacoblee93"><code>@​jacoblee93</code></a> in <a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2421">langchain-ai/langsmith-sdk#2421</a></li>
<li>release(js): 0.5.4 by <a
href="https://github.com/jacoblee93"><code>@​jacoblee93</code></a> in <a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2422">langchain-ai/langsmith-sdk#2422</a></li>
<li>feat(python): add feedback config CRUD and annotation queue rubric
items (closes LSPE-67) by <a
href="https://github.com/bentanny"><code>@​bentanny</code></a> in <a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2419">langchain-ai/langsmith-sdk#2419</a></li>
<li>feat(python): add exceptions_to_handle to <a
href="https://github.com/traceable"><code>@​traceable</code></a> by <a
href="https://github.com/QuentinBrosse"><code>@​QuentinBrosse</code></a>
in <a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2423">langchain-ai/langsmith-sdk#2423</a></li>
<li>release(py): 0.7.2 by <a
href="https://github.com/jacoblee93"><code>@​jacoblee93</code></a> in <a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2426">langchain-ai/langsmith-sdk#2426</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/j-broekhuizen"><code>@​j-broekhuizen</code></a>
made their first contribution in <a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2394">langchain-ai/langsmith-sdk#2394</a></li>
<li><a href="https://github.com/bentanny"><code>@​bentanny</code></a>
made their first contribution in <a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2420">langchain-ai/langsmith-sdk#2420</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/langchain-ai/langsmith-sdk/commit/1132e6ce6391d08158a93acb5c96b90521ac3230"><code>1132e6c</code></a>
release(py): 0.7.4 (<a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2441">#2441</a>)</li>
<li><a
href="https://github.com/langchain-ai/langsmith-sdk/commit/8c7cc783806e4a6d71300982d58ecb3c9bc658cd"><code>8c7cc78</code></a>
chore: lock dependencies (<a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2439">#2439</a>)</li>
<li><a
href="https://github.com/langchain-ai/langsmith-sdk/commit/62c256ea56fdee0bc539275c749a427e510ded8f"><code>62c256e</code></a>
fix(google-adk): add wrapt dependency (<a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2436">#2436</a>)</li>
<li><a
href="https://github.com/langchain-ai/langsmith-sdk/commit/e32d4c18a681553f47c93350f03dc0a0f0cc4890"><code>e32d4c1</code></a>
release(py): 0.7.3 (<a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2428">#2428</a>)</li>
<li><a
href="https://github.com/langchain-ai/langsmith-sdk/commit/1c51bf881dafaeb01432db629de7cafaabca79dc"><code>1c51bf8</code></a>
chore(python): openai agents: delay span start for spans without inputs
on st...</li>
<li><a
href="https://github.com/langchain-ai/langsmith-sdk/commit/a41bf22dadaea489a156dc06a9d0fbf1a977ff6d"><code>a41bf22</code></a>
fix: propagate tracingEnabled to nested traceables (<a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2427">#2427</a>)</li>
<li><a
href="https://github.com/langchain-ai/langsmith-sdk/commit/3a6e9dac4bf3a940f7ee47e420cc1422f9f4a4b4"><code>3a6e9da</code></a>
release(py): 0.7.2 (<a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2426">#2426</a>)</li>
<li><a
href="https://github.com/langchain-ai/langsmith-sdk/commit/f665e865e7ab7a0ba1de447f2a1cf14c719af00a"><code>f665e86</code></a>
feat(python): add exceptions_to_handle to <a
href="https://github.com/traceable"><code>@​traceable</code></a> (<a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2423">#2423</a>)</li>
<li><a
href="https://github.com/langchain-ai/langsmith-sdk/commit/565c4a2c5769e698ecffbf7f43131ff9cc467f8d"><code>565c4a2</code></a>
feat(python): add feedback config CRUD and annotation queue rubric items
(clo...</li>
<li><a
href="https://github.com/langchain-ai/langsmith-sdk/commit/e1b1fe13c382371ebe4cffa1b95eba3bf74e2f37"><code>e1b1fe1</code></a>
release(js): 0.5.4 (<a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2422">#2422</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.6.0...v0.7.4">compare
view</a></li>
</ul>
</details>
<br />

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: John Kennedy <jkennedyvz@users.noreply.github.com>
2026-06-03 19:51:50 -07:00
github-actions[bot] 34b7f6cfc5 chore: version packages (#2485)
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


# Releases
## @langchain/langgraph-sdk@1.9.15

### Patch Changes

- [#2484](https://github.com/langchain-ai/langgraphjs/pull/2484)
[`9861f42`](https://github.com/langchain-ai/langgraphjs/commit/9861f42cc4fa23d9e80ae45a76d511d7618cda07)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): claim in-flight slot before root pump wait for enqueue

Move `#runAbort` and `isLoading` setup ahead of `waitForRootPumpReady()`
so
`multitaskStrategy: "enqueue"` submits in the same tick land in
`queueStore`
    instead of bypassing the client queue.

## @langchain/angular@1.0.15

### Patch Changes

- Updated dependencies
\[[`9861f42`](https://github.com/langchain-ai/langgraphjs/commit/9861f42cc4fa23d9e80ae45a76d511d7618cda07)]:
    -   @langchain/langgraph-sdk@1.9.15

## @langchain/react@1.0.15

### Patch Changes

- Updated dependencies
\[[`9861f42`](https://github.com/langchain-ai/langgraphjs/commit/9861f42cc4fa23d9e80ae45a76d511d7618cda07)]:
    -   @langchain/langgraph-sdk@1.9.15

## @langchain/svelte@1.0.15

### Patch Changes

- Updated dependencies
\[[`9861f42`](https://github.com/langchain-ai/langgraphjs/commit/9861f42cc4fa23d9e80ae45a76d511d7618cda07)]:
    -   @langchain/langgraph-sdk@1.9.15

## @langchain/vue@1.0.15

### Patch Changes

- Updated dependencies
\[[`9861f42`](https://github.com/langchain-ai/langgraphjs/commit/9861f42cc4fa23d9e80ae45a76d511d7618cda07)]:
    -   @langchain/langgraph-sdk@1.9.15

## @example/ai-elements@0.1.30

### Patch Changes

-   Updated dependencies \[]:
    -   @langchain/react@1.0.15

## @examples/assistant-ui-claude@0.1.30

### Patch Changes

-   Updated dependencies \[]:
    -   @langchain/react@1.0.15

## @examples/ui-angular@0.0.40

### Patch Changes

- Updated dependencies
\[[`9861f42`](https://github.com/langchain-ai/langgraphjs/commit/9861f42cc4fa23d9e80ae45a76d511d7618cda07)]:
    -   @langchain/langgraph-sdk@1.9.15
    -   @langchain/angular@1.0.15

## @examples/ui-multimodal@0.0.16

### Patch Changes

-   Updated dependencies \[]:
    -   @langchain/react@1.0.15

## @examples/ui-react@0.0.16

### Patch Changes

- Updated dependencies
\[[`9861f42`](https://github.com/langchain-ai/langgraphjs/commit/9861f42cc4fa23d9e80ae45a76d511d7618cda07)]:
    -   @langchain/langgraph-sdk@1.9.15
    -   @langchain/react@1.0.15

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@langchain/angular@1.0.15 @langchain/langgraph-sdk@1.9.15 @langchain/react@1.0.15 @langchain/svelte@1.0.15 @langchain/vue@1.0.15
2026-06-03 15:49:38 -07:00
Christian Bromann 9861f42cc4 fix(sdk): claim in-flight slot before root pump wait for enqueue (#2484)
## Summary
- Fix a race in `SubmitCoordinator.submit()` where `multitaskStrategy:
"enqueue"` follow-ups fired in the same tick as the first dispatch could
miss `hasActiveRun` and skip the client `queueStore`.
- Claim the in-flight slot (`#runAbort`, `isLoading`) before
`waitForRootPumpReady()` so concurrent enqueues are recorded client-side
and drain sequentially as intended.
- Add a regression test for same-tick enqueue behavior.
2026-06-03 15:46:34 -07:00
J3tCh3n 8e2b8584c5 docs: Update customer_support_small_model example to use non-deprecated methods and add type annotations (#1718)
## Description

Updated the `customer_support_small_model.ipynb` example to use
non-deprecated API methods and improve TypeScript type safety.

## Changes

### 1. Replace deprecated `_getType()` method
- **Before**: `if (trimmedHistory.at(-1)._getType() === "ai")`
- **After**: `if (trimmedHistory[trimmedHistory.length - 1].getType()
=== "ai")`
- The `_getType()` method signature is deprecated and should be replaced
with `getType()`
- Also replaced `.at(-1)` with `[trimmedHistory.length - 1]` to fix
TypeScript "possibly undefined" error (ts(2532))

### 2. Add missing type annotation
- **Location**: `addConditionalEdges` callback in `billing_support` node
- **Added**: `async (state: typeof StateAnnotation.State) =>` type
annotation
- Ensures consistency with other conditional edge definitions in the
example

## Type of Change
- [x] Documentation update
- [x] Bug fix (non-breaking change which fixes TypeScript errors)

## Testing
- Verified code changes compile without TypeScript errors
- Confirmed deprecated method warnings are resolved

## Motivation

This PR addresses two issues in the example notebook:

1. **API Deprecation**: The `_getType()` method is deprecated and should
be replaced with the public `getType()` API
2. **TypeScript Safety**: Adding explicit type annotations and using
safer array access patterns improves type safety and prevents potential
runtime errors
2026-06-03 15:44:24 -07:00
github-actions[bot] 540656afd0 chore: version packages (#2483)
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


# Releases
## @langchain/langgraph-sdk@1.9.14

### Patch Changes

- [#2482](https://github.com/langchain-ai/langgraphjs/pull/2482)
[`ba583b6`](https://github.com/langchain-ai/langgraphjs/commit/ba583b601d284c689bbfc15397686f1aa7481fba)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): keep subgraph status complete when values arrives late

    `SubgraphDiscovery` no longer downgrades a terminal subgraph back to
`running` when a host-namespace `values` snapshot is observed after its
`completed` or `failed` lifecycle event. The content pump and lifecycle
watcher are independent streams, so this reordering could strand nodes
as
    perpetually running in `useStream` subgraph UIs.

## @langchain/angular@1.0.14

### Patch Changes

- Updated dependencies
\[[`ba583b6`](https://github.com/langchain-ai/langgraphjs/commit/ba583b601d284c689bbfc15397686f1aa7481fba)]:
    -   @langchain/langgraph-sdk@1.9.14

## @langchain/react@1.0.14

### Patch Changes

- Updated dependencies
\[[`ba583b6`](https://github.com/langchain-ai/langgraphjs/commit/ba583b601d284c689bbfc15397686f1aa7481fba)]:
    -   @langchain/langgraph-sdk@1.9.14

## @langchain/svelte@1.0.14

### Patch Changes

- Updated dependencies
\[[`ba583b6`](https://github.com/langchain-ai/langgraphjs/commit/ba583b601d284c689bbfc15397686f1aa7481fba)]:
    -   @langchain/langgraph-sdk@1.9.14

## @langchain/vue@1.0.14

### Patch Changes

- Updated dependencies
\[[`ba583b6`](https://github.com/langchain-ai/langgraphjs/commit/ba583b601d284c689bbfc15397686f1aa7481fba)]:
    -   @langchain/langgraph-sdk@1.9.14

## @example/ai-elements@0.1.29

### Patch Changes

-   Updated dependencies \[]:
    -   @langchain/react@1.0.14

## @examples/assistant-ui-claude@0.1.29

### Patch Changes

-   Updated dependencies \[]:
    -   @langchain/react@1.0.14

## @examples/ui-angular@0.0.39

### Patch Changes

- Updated dependencies
\[[`ba583b6`](https://github.com/langchain-ai/langgraphjs/commit/ba583b601d284c689bbfc15397686f1aa7481fba)]:
    -   @langchain/langgraph-sdk@1.9.14
    -   @langchain/angular@1.0.14

## @examples/ui-multimodal@0.0.15

### Patch Changes

-   Updated dependencies \[]:
    -   @langchain/react@1.0.14

## @examples/ui-react@0.0.15

### Patch Changes

- Updated dependencies
\[[`ba583b6`](https://github.com/langchain-ai/langgraphjs/commit/ba583b601d284c689bbfc15397686f1aa7481fba)]:
    -   @langchain/langgraph-sdk@1.9.14
    -   @langchain/react@1.0.14

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@langchain/angular@1.0.14 @langchain/langgraph-sdk@1.9.14 @langchain/react@1.0.14 @langchain/svelte@1.0.14 @langchain/vue@1.0.14
2026-06-03 15:19:03 -07:00
Christian Bromann ba583b601d fix(sdk): keep subgraph status complete when values arrives late (#2482)
## Summary
- Fix `SubgraphDiscovery` so late host-namespace `values` snapshots do
not reset subgraph status from `complete`/`error` back to `running`.
- Root cause: the SDK’s content pump (`values`) and lifecycle watcher
(`lifecycle`) are separate streams; `onEvent` can deliver a final
`values` event after terminal `lifecycle`, which left some nodes stuck
as “running” in `useStream` subgraph UIs (e.g. graph-execution-cards).
- Add regression tests for completed and failed subgraphs receiving a
late `values` event.
2026-06-03 15:15:27 -07:00
dependabot[bot] 2a346a9d12 chore(deps): bump the angular group across 1 directory with 12 updates (#2477)
Bumps the angular group with 12 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
|
[@angular/common](https://github.com/angular/angular/tree/HEAD/packages/common)
| `21.2.11` | `22.0.0` |
|
[@angular/compiler](https://github.com/angular/angular/tree/HEAD/packages/compiler)
| `21.2.11` | `22.0.0` |
|
[@angular/core](https://github.com/angular/angular/tree/HEAD/packages/core)
| `21.2.11` | `22.0.0` |
|
[@angular/forms](https://github.com/angular/angular/tree/HEAD/packages/forms)
| `21.2.11` | `22.0.0` |
|
[@angular/platform-browser](https://github.com/angular/angular/tree/HEAD/packages/platform-browser)
| `21.2.11` | `22.0.0` |
|
[@angular/router](https://github.com/angular/angular/tree/HEAD/packages/router)
| `21.2.11` | `22.0.0` |
| [@angular/build](https://github.com/angular/angular-cli) | `21.2.9` |
`22.0.0` |
| [@angular/cli](https://github.com/angular/angular-cli) | `21.2.9` |
`22.0.0` |
|
[@angular/compiler-cli](https://github.com/angular/angular/tree/HEAD/packages/compiler-cli)
| `21.2.11` | `22.0.0` |
| [@analogjs/vite-plugin-angular](https://github.com/analogjs/analog) |
`2.5.0` | `2.6.0` |
| [@analogjs/vitest-angular](https://github.com/analogjs/analog) |
`2.5.0` | `2.6.0` |
|
[@angular/platform-browser-dynamic](https://github.com/angular/angular/tree/HEAD/packages/platform-browser-dynamic)
| `21.2.11` | `22.0.0` |


Updates `@angular/common` from 21.2.11 to 22.0.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/angular/angular/releases">@​angular/common's
releases</a>.</em></p>
<blockquote>
<h2>VSCode Extension: 22.0.0</h2>
<h3>Breaking Changes</h3>
<p>The extension now bundles TypeScript version 6.0, which itself
includes breaking
changes, including <a
href="https://www.typescriptlang.org/docs/handbook/release-notes/typescript-6-0.html#simple-default-changes">new
defaults</a> such as <code>strict</code> being <code>true</code>. You
will need to explicitly set
<code>&quot;strict&quot;: false</code> in your
<code>tsconfig.json</code>. Alternatively, the extension supports
configuring the <code>tsdk</code> in the <a
href="https://code.visualstudio.com/docs/typescript/typescript-transpiling#_using-the-workspace-version-of-typescript">same
way</a> as the built in TS/JS extension.</p>
<h3>Fixes and features</h3>
<ul>
<li>fix(language-service): Add support for <code>@Input</code> with
transforms (<a
href="https://github.com/angular/angular/commit/dc9c72da9b4ca499eebf6e78d7ccc31ea6f63580">dc9c72da9b</a>)</li>
<li>feat(language-service): add Document Symbols support for Angular
templates (<a
href="https://github.com/angular/angular/commit/cfd0f9950c08324e1c56f16d98a2e3081feeda58">cfd0f9950c</a>)</li>
<li>feat(language-service): add angular template inlay hints support (<a
href="https://github.com/angular/angular/commit/5a6d88626b604db937287a501cb723c088412a7e">5a6d88626b</a>)</li>
<li>feat(language-service): Add support for idle timeout in defer blocks
(<a
href="https://github.com/angular/angular/commit/c6f98c723cdd2c209092927855f8cbaf63ecce30">c6f98c723c</a>)</li>
</ul>
<h2>22.0.0</h2>
<h3>compiler</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/47fcbc470462192c4f9e273d8dce8b353d5baaa2"><img
src="https://img.shields.io/badge/47fcbc4704-feat-blue" alt="feat -
47fcbc4704" /></a></td>
<td>allow safe navigation to correctly narrow down nullables</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/2896c93cc1077e1306acd91f4ed62fed4204a26b"><img
src="https://img.shields.io/badge/2896c93cc1-feat-blue" alt="feat -
2896c93cc1" /></a></td>
<td>Angular expressions with optional chaining returns
<code>undefined</code></td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/e850643b1b8dca8cfdc12705be51441197cd987a"><img
src="https://img.shields.io/badge/e850643b1b-feat-blue" alt="feat -
e850643b1b" /></a></td>
<td>Support comments in html element.</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/96be4f429ba316c75d2d4a39ececcc529ec10943"><img
src="https://img.shields.io/badge/96be4f429b-fix-green" alt="fix -
96be4f429b" /></a></td>
<td>abstract emitter producing incorrect code for dynamic imports</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/488d962bc700fb7189749c63ba63eac50a54e363"><img
src="https://img.shields.io/badge/488d962bc7-fix-green" alt="fix -
488d962bc7" /></a></td>
<td>Don't bind inputs/outputs for <code>data-</code> attributes</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/2c5aabb9daf5da3ad539381ef1e430c77583e3bf"><img
src="https://img.shields.io/badge/2c5aabb9da-fix-green" alt="fix -
2c5aabb9da" /></a></td>
<td>don't escape dollar sign in literal expression</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/c7aef8ec5dd12b5b1d4c703a61bd1dd43f998e18"><img
src="https://img.shields.io/badge/c7aef8ec5d-fix-green" alt="fix -
c7aef8ec5d" /></a></td>
<td>enforce parentheses containing arguments for :host-context</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/b225a5d902f0ee1f6f68cde42266748cb1f2b1f8"><img
src="https://img.shields.io/badge/b225a5d902-fix-green" alt="fix -
b225a5d902" /></a></td>
<td>invalid type checking code if field name needs to be quoted</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/ab9154ab75bdd36759c77917216b57285b243ea4"><img
src="https://img.shields.io/badge/ab9154ab75-fix-green" alt="fix -
ab9154ab75" /></a></td>
<td>normalize tag names with custom namespaces in
DomElementSchemaRegistry (<a
href="https://github.com/angular/angular/tree/HEAD/packages/common/issues/68868">#68868</a>)</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/8a1533c9ad7c306e03d7c50676f87b56bade5bf6"><img
src="https://img.shields.io/badge/8a1533c9ad-fix-green" alt="fix -
8a1533c9ad" /></a></td>
<td>preserve leading commas in animation definitions</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/194f723f6620ea3cdf490b762ecbef8df6bb2c8a"><img
src="https://img.shields.io/badge/194f723f66-fix-green" alt="fix -
194f723f66" /></a></td>
<td>remove dedicated support for legacy shadow DOM selectors</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/4c25a42e988e7a59d4d4dc3121cd77f7b344c048"><img
src="https://img.shields.io/badge/4c25a42e98-fix-green" alt="fix -
4c25a42e98" /></a></td>
<td>remove deprecated shadow CSS encapsulation polyfills</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/6ff620a03364d6ab60cea47de942a04ec5a26c50"><img
src="https://img.shields.io/badge/6ff620a033-fix-green" alt="fix -
6ff620a033" /></a></td>
<td>sanitize dynamic href and xlink:href bindings on SVG a elements (<a
href="https://github.com/angular/angular/tree/HEAD/packages/common/issues/68868">#68868</a>)</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/7dc1017e517c077a6aa8fd749392a2af1277e1b7"><img
src="https://img.shields.io/badge/7dc1017e51-fix-green" alt="fix -
7dc1017e51" /></a></td>
<td>simplify handling of colon host with a selector list</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/d99ab0e0400d256021d6cc601e2a6e16f784a406"><img
src="https://img.shields.io/badge/d99ab0e040-fix-green" alt="fix -
d99ab0e040" /></a></td>
<td>stop generating unused field</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/03db2aefaa88bc73b6af6ed1c9c722b65079ab3b"><img
src="https://img.shields.io/badge/03db2aefaa-fix-green" alt="fix -
03db2aefaa" /></a></td>
<td>throw on duplicate input/outputs</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/786ef8261f4faca0693ef73938d3a6275b5baf7f"><img
src="https://img.shields.io/badge/786ef8261f-fix-green" alt="fix -
786ef8261f" /></a></td>
<td>throw on invalid in expressions</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/ccb7d427e4f07506c14c50ce0cbe87c57930ebb5"><img
src="https://img.shields.io/badge/ccb7d427e4-fix-green" alt="fix -
ccb7d427e4" /></a></td>
<td>type check invalid for loops</td>
</tr>
</tbody>
</table>
<h3>compiler-cli</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/b8d3f36ed962bd4f5abd6bf6e55078b56ce9fffa"><img
src="https://img.shields.io/badge/b8d3f36ed9-feat-blue" alt="feat -
b8d3f36ed9" /></a></td>
<td>add support for Node.js 26.0.0</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/7f9450219f5c30d1ce0a90061864e8c844c8807c"><img
src="https://img.shields.io/badge/7f9450219f-feat-blue" alt="feat -
7f9450219f" /></a></td>
<td>Adds warning for prefetch without main defer trigger</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/2eae497a04a6a9b34397181dcd64dbd103f76c47"><img
src="https://img.shields.io/badge/2eae497a04-feat-blue" alt="feat -
2eae497a04" /></a></td>
<td>support external TCBs with copied content in specific mode</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/e5f96c2d8813f95c91761ae3080065575ca3b536"><img
src="https://img.shields.io/badge/e5f96c2d88-fix-green" alt="fix -
e5f96c2d88" /></a></td>
<td>animation events not type checked properly when bound through
HostListener decorator</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/9218140348cb2e3ad301c1e7f37db4b0cdad4f9d"><img
src="https://img.shields.io/badge/9218140348-fix-green" alt="fix -
9218140348" /></a></td>
<td>resolve TCB mapping failure for safe property reads with as any</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/7a0d6b8df21ca6a407e5c63dc0af753bc39c90c5"><img
src="https://img.shields.io/badge/7a0d6b8df2-fix-green" alt="fix -
7a0d6b8df2" /></a></td>
<td>transform dropping exclamationToken from properties</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/ca67828ee247bdff46736661e51f43f2ca736a24"><img
src="https://img.shields.io/badge/ca67828ee2-refactor-yellow"
alt="refactor - ca67828ee2" /></a></td>
<td>introduce NG8023 compile-time diagnostic for duplicate
selectors</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/17d3ea44e25e077b18178aa8108828f36eb821f4"><img
src="https://img.shields.io/badge/17d3ea44e2-feat-blue" alt="feat -
17d3ea44e2" /></a></td>
<td>add <code>IdleRequestOptions</code> support to
<code>IdleService</code></td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/3b0ae5fef0328477ee0f5d51980217e7c583a606"><img
src="https://img.shields.io/badge/3b0ae5fef0-feat-blue" alt="feat -
3b0ae5fef0" /></a></td>
<td>add <code>provideWebMcpTools</code></td>
</tr>
</tbody>
</table>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/angular/angular/blob/main/CHANGELOG.md">@​angular/common's
changelog</a>.</em></p>
<blockquote>
<h1>22.0.0 (2026-06-03)</h1>
<p><a href="https://goo.gle/angular-v22-blog">Blog post &quot;Announcing
Angular v22&quot;</a>.</p>
<h2>Breaking Changes</h2>
<h3>compiler</h3>
<ul>
<li>This change will trigger the
<code>nullishCoalescingNotNullable</code> and
<code>optionalChainNotNullable</code> diagnostics on exisiting projects.
You might want to disable those 2 diagnotiscs in your
<code>tsconfig</code> temporarily.</li>
<li>data prefixed attribute no-longer bind inputs nor outputs.</li>
<li>The compiler will throw when there a when inputs, outputs or model
are binding to the same input/outputs.</li>
<li><code>in</code> variables will throw in template expressions.</li>
</ul>
<h3>compiler-cli</h3>
<ul>
<li>Elements with multiple matching selectors will now throw at compile
time.</li>
</ul>
<h3>core</h3>
<ul>
<li>The second arguement of appRef.bootstrap does not accept
<code>any</code> anymore. Make sure the element you pass is not
nullable.</li>
<li>
<ul>
<li>TypeScript versions older than 6.0 are no longer supported.</li>
</ul>
</li>
<li>Leave animations are no longer limited to the element being
removed.</li>
<li>Component with undefined <code>changeDetection</code> property are
now <code>OnPush</code> by default. Specify <code>changeDetection:
ChangeDetectionStrategy.Eager</code> to keep the previous behavior.</li>
<li>change AnimationCallbackEvent.animationComplete signature</li>
<li><code>ChangeDetectorRef.checkNoChanges</code> was removed. In tests
use <code>fixture.detectChanges()</code> instead.</li>
<li><code>createNgModuleRef</code> was removed, use
<code>createNgModule</code> instead</li>
<li><code>ComponentFactoryResolver</code> and
<code>ComponentFactory</code> are no longer available. Pass the
component class directly to APIs that previously required a factory,
such as <code>ViewContainerRef.createComponent</code> or use the
standalone <code>createComponentFunction</code>.</li>
<li><code>ComponentFactoryResolver</code> and
<code>ComponentFactory</code> are no longer available. Pass the
component class directly to APIs that previously required a factory,
such as <code>ViewContainerRef.createComponent</code> or use the
standalone <code>createComponent</code> function.</li>
</ul>
<h3>forms</h3>
<ul>
<li><code>min</code> and <code>max</code> validation rules no longer
support
string values. Bound values must be numbers or null.</li>
</ul>
<h3>http</h3>
<ul>
<li>Use the <code>HttpXhrBackend</code> with
<code>provideHttpClient(withXhr)</code> if you want to keep supporting
upload progress reports.</li>
</ul>
<h3>platform-browser</h3>
<ul>
<li>This removes styles when they appear to no longer be used by an
associated <code>host</code>. However other DOM on the page may still be
affected by those styles if not leveraging
<code>ViewEncapsulation.Emulated</code> or if those styles are used by
elements outside of Angular, potentially causing other DOM to appear
unstyled.</li>
<li>Hammer.js integration has been removed. Use your own
implementation.</li>
</ul>
<h3>router</h3>
<ul>
<li>
<p>The return type for
<code>TitleStrategy.getResolvedTitleForRoute</code>
was previously 'any' while the actual return type could only be either
<code>string</code>
or <code>undefined</code>. The return type now reflects the possible
values correctly.
Code that reads the value may need to be adjusted.</p>
<p>(cherry picked from commit
ad37f52c1212164c51ffcc533067af05c2c33c89)</p>
</li>
<li>
<p>The <code>currentSnapshot</code> parameter in <code>CanMatchFn</code>
and the <code>canMatch</code> method of the <code>CanMatch</code>
interface is now required. While this was already the behavior of the
Router at runtime, existing class implementations of
<code>CanMatch</code> must now include the third argument to satisfy the
interface.</p>
</li>
<li>
<p>paramsInheritanceStrategy now defaults to 'always'</p>
<p>The default value of paramsInheritanceStrategy has been changed from
'emptyOnly' to 'always'. This means that route parameters are inherited
from all parent routes by default. To restore the previous behavior, set
paramsInheritanceStrategy to 'emptyOnly' in your router
configuration.</p>
</li>
<li>
<p><code>provideRoutes()</code> has been removed. Use
<code>provideRouter()</code> or <code>ROUTES</code> as multi token if
necessary.</p>
</li>
</ul>
<h3>upgrade</h3>
<ul>
<li>Deprecated <code>getAngularLib</code>/<code>setAngularLib</code>
have been removed use
<code>getAngularJSGlobal</code>/<code>setAngularJSGlobal</code>
instead.</li>
</ul>
<h2>Deprecations</h2>
<h3>http</h3>
<ul>
<li><code>withFetch</code> is now deprecated, it can be safely
removed.</li>
<li>The <code>reportProgress</code> option is deprecated please use
<code>reportUploadProgress</code> &amp;
<code>reportDownloadProgress</code> instead.</li>
</ul>
<h3>compiler</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/angular/angular/commit/4795b35d5be5a7217f648a349c281e674294ef97"><code>4795b35</code></a>
fix(common): only strip a literal /index.html suffix from URLs</li>
<li><a
href="https://github.com/angular/angular/commit/f7b3ed8db28c69ee0de9144465da351bda7e85e4"><code>f7b3ed8</code></a>
fix(http): Introduce a max buffer size for fetch requests on SSR</li>
<li><a
href="https://github.com/angular/angular/commit/618c8502829a1f2ca8ce048fdf4d8085b956734c"><code>618c850</code></a>
fix(http): exclude withCredentials requests from transfer cache</li>
<li><a
href="https://github.com/angular/angular/commit/86390f2be41b2aae352b0c1ce4a5285fd065ef17"><code>86390f2</code></a>
fix(http): skip TransferCache for cookie-bearing requests by
default</li>
<li><a
href="https://github.com/angular/angular/commit/e6cfaf567256f5e89903f6b5625540e5a4a3bde3"><code>e6cfaf5</code></a>
fix(http): prevent <code>httpResource</code> from leaking a
subscription</li>
<li><a
href="https://github.com/angular/angular/commit/a97d5ec22d8997665dc2de3d5a78f6e2bac67afd"><code>a97d5ec</code></a>
build: update minimum supported Node.js versions</li>
<li><a
href="https://github.com/angular/angular/commit/7d1fbc170a90ca12a3c1b805645bc37d12ed744d"><code>7d1fbc1</code></a>
fix(common): sanitize placeholder</li>
<li><a
href="https://github.com/angular/angular/commit/ae2cb00398954d9332e9f1f5abecce902cfc7658"><code>ae2cb00</code></a>
fix(common): add upper bounds for digitsInfo</li>
<li><a
href="https://github.com/angular/angular/commit/cc0fa6e3ded6dd3faa58800a140e49302adc38c8"><code>cc0fa6e</code></a>
refactor(http): update HTTP resource options APIs to stable</li>
<li><a
href="https://github.com/angular/angular/commit/ad717dff1d1aa3d18461b68b5048324001ac4417"><code>ad717df</code></a>
refactor(core): use the <code>@Service</code> decorator where
possible.</li>
<li>Additional commits viewable in <a
href="https://github.com/angular/angular/commits/v22.0.0/packages/common">compare
view</a></li>
</ul>
</details>
<br />

Updates `@angular/compiler` from 21.2.11 to 22.0.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/angular/angular/releases">@​angular/compiler's
releases</a>.</em></p>
<blockquote>
<h2>VSCode Extension: 22.0.0</h2>
<h3>Breaking Changes</h3>
<p>The extension now bundles TypeScript version 6.0, which itself
includes breaking
changes, including <a
href="https://www.typescriptlang.org/docs/handbook/release-notes/typescript-6-0.html#simple-default-changes">new
defaults</a> such as <code>strict</code> being <code>true</code>. You
will need to explicitly set
<code>&quot;strict&quot;: false</code> in your
<code>tsconfig.json</code>. Alternatively, the extension supports
configuring the <code>tsdk</code> in the <a
href="https://code.visualstudio.com/docs/typescript/typescript-transpiling#_using-the-workspace-version-of-typescript">same
way</a> as the built in TS/JS extension.</p>
<h3>Fixes and features</h3>
<ul>
<li>fix(language-service): Add support for <code>@Input</code> with
transforms (<a
href="https://github.com/angular/angular/commit/dc9c72da9b4ca499eebf6e78d7ccc31ea6f63580">dc9c72da9b</a>)</li>
<li>feat(language-service): add Document Symbols support for Angular
templates (<a
href="https://github.com/angular/angular/commit/cfd0f9950c08324e1c56f16d98a2e3081feeda58">cfd0f9950c</a>)</li>
<li>feat(language-service): add angular template inlay hints support (<a
href="https://github.com/angular/angular/commit/5a6d88626b604db937287a501cb723c088412a7e">5a6d88626b</a>)</li>
<li>feat(language-service): Add support for idle timeout in defer blocks
(<a
href="https://github.com/angular/angular/commit/c6f98c723cdd2c209092927855f8cbaf63ecce30">c6f98c723c</a>)</li>
</ul>
<h2>22.0.0</h2>
<h3>compiler</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/47fcbc470462192c4f9e273d8dce8b353d5baaa2"><img
src="https://img.shields.io/badge/47fcbc4704-feat-blue" alt="feat -
47fcbc4704" /></a></td>
<td>allow safe navigation to correctly narrow down nullables</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/2896c93cc1077e1306acd91f4ed62fed4204a26b"><img
src="https://img.shields.io/badge/2896c93cc1-feat-blue" alt="feat -
2896c93cc1" /></a></td>
<td>Angular expressions with optional chaining returns
<code>undefined</code></td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/e850643b1b8dca8cfdc12705be51441197cd987a"><img
src="https://img.shields.io/badge/e850643b1b-feat-blue" alt="feat -
e850643b1b" /></a></td>
<td>Support comments in html element.</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/96be4f429ba316c75d2d4a39ececcc529ec10943"><img
src="https://img.shields.io/badge/96be4f429b-fix-green" alt="fix -
96be4f429b" /></a></td>
<td>abstract emitter producing incorrect code for dynamic imports</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/488d962bc700fb7189749c63ba63eac50a54e363"><img
src="https://img.shields.io/badge/488d962bc7-fix-green" alt="fix -
488d962bc7" /></a></td>
<td>Don't bind inputs/outputs for <code>data-</code> attributes</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/2c5aabb9daf5da3ad539381ef1e430c77583e3bf"><img
src="https://img.shields.io/badge/2c5aabb9da-fix-green" alt="fix -
2c5aabb9da" /></a></td>
<td>don't escape dollar sign in literal expression</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/c7aef8ec5dd12b5b1d4c703a61bd1dd43f998e18"><img
src="https://img.shields.io/badge/c7aef8ec5d-fix-green" alt="fix -
c7aef8ec5d" /></a></td>
<td>enforce parentheses containing arguments for :host-context</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/b225a5d902f0ee1f6f68cde42266748cb1f2b1f8"><img
src="https://img.shields.io/badge/b225a5d902-fix-green" alt="fix -
b225a5d902" /></a></td>
<td>invalid type checking code if field name needs to be quoted</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/ab9154ab75bdd36759c77917216b57285b243ea4"><img
src="https://img.shields.io/badge/ab9154ab75-fix-green" alt="fix -
ab9154ab75" /></a></td>
<td>normalize tag names with custom namespaces in
DomElementSchemaRegistry (<a
href="https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/68868">#68868</a>)</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/8a1533c9ad7c306e03d7c50676f87b56bade5bf6"><img
src="https://img.shields.io/badge/8a1533c9ad-fix-green" alt="fix -
8a1533c9ad" /></a></td>
<td>preserve leading commas in animation definitions</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/194f723f6620ea3cdf490b762ecbef8df6bb2c8a"><img
src="https://img.shields.io/badge/194f723f66-fix-green" alt="fix -
194f723f66" /></a></td>
<td>remove dedicated support for legacy shadow DOM selectors</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/4c25a42e988e7a59d4d4dc3121cd77f7b344c048"><img
src="https://img.shields.io/badge/4c25a42e98-fix-green" alt="fix -
4c25a42e98" /></a></td>
<td>remove deprecated shadow CSS encapsulation polyfills</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/6ff620a03364d6ab60cea47de942a04ec5a26c50"><img
src="https://img.shields.io/badge/6ff620a033-fix-green" alt="fix -
6ff620a033" /></a></td>
<td>sanitize dynamic href and xlink:href bindings on SVG a elements (<a
href="https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/68868">#68868</a>)</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/7dc1017e517c077a6aa8fd749392a2af1277e1b7"><img
src="https://img.shields.io/badge/7dc1017e51-fix-green" alt="fix -
7dc1017e51" /></a></td>
<td>simplify handling of colon host with a selector list</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/d99ab0e0400d256021d6cc601e2a6e16f784a406"><img
src="https://img.shields.io/badge/d99ab0e040-fix-green" alt="fix -
d99ab0e040" /></a></td>
<td>stop generating unused field</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/03db2aefaa88bc73b6af6ed1c9c722b65079ab3b"><img
src="https://img.shields.io/badge/03db2aefaa-fix-green" alt="fix -
03db2aefaa" /></a></td>
<td>throw on duplicate input/outputs</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/786ef8261f4faca0693ef73938d3a6275b5baf7f"><img
src="https://img.shields.io/badge/786ef8261f-fix-green" alt="fix -
786ef8261f" /></a></td>
<td>throw on invalid in expressions</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/ccb7d427e4f07506c14c50ce0cbe87c57930ebb5"><img
src="https://img.shields.io/badge/ccb7d427e4-fix-green" alt="fix -
ccb7d427e4" /></a></td>
<td>type check invalid for loops</td>
</tr>
</tbody>
</table>
<h3>compiler-cli</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/b8d3f36ed962bd4f5abd6bf6e55078b56ce9fffa"><img
src="https://img.shields.io/badge/b8d3f36ed9-feat-blue" alt="feat -
b8d3f36ed9" /></a></td>
<td>add support for Node.js 26.0.0</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/7f9450219f5c30d1ce0a90061864e8c844c8807c"><img
src="https://img.shields.io/badge/7f9450219f-feat-blue" alt="feat -
7f9450219f" /></a></td>
<td>Adds warning for prefetch without main defer trigger</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/2eae497a04a6a9b34397181dcd64dbd103f76c47"><img
src="https://img.shields.io/badge/2eae497a04-feat-blue" alt="feat -
2eae497a04" /></a></td>
<td>support external TCBs with copied content in specific mode</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/e5f96c2d8813f95c91761ae3080065575ca3b536"><img
src="https://img.shields.io/badge/e5f96c2d88-fix-green" alt="fix -
e5f96c2d88" /></a></td>
<td>animation events not type checked properly when bound through
HostListener decorator</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/9218140348cb2e3ad301c1e7f37db4b0cdad4f9d"><img
src="https://img.shields.io/badge/9218140348-fix-green" alt="fix -
9218140348" /></a></td>
<td>resolve TCB mapping failure for safe property reads with as any</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/7a0d6b8df21ca6a407e5c63dc0af753bc39c90c5"><img
src="https://img.shields.io/badge/7a0d6b8df2-fix-green" alt="fix -
7a0d6b8df2" /></a></td>
<td>transform dropping exclamationToken from properties</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/ca67828ee247bdff46736661e51f43f2ca736a24"><img
src="https://img.shields.io/badge/ca67828ee2-refactor-yellow"
alt="refactor - ca67828ee2" /></a></td>
<td>introduce NG8023 compile-time diagnostic for duplicate
selectors</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/17d3ea44e25e077b18178aa8108828f36eb821f4"><img
src="https://img.shields.io/badge/17d3ea44e2-feat-blue" alt="feat -
17d3ea44e2" /></a></td>
<td>add <code>IdleRequestOptions</code> support to
<code>IdleService</code></td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/3b0ae5fef0328477ee0f5d51980217e7c583a606"><img
src="https://img.shields.io/badge/3b0ae5fef0-feat-blue" alt="feat -
3b0ae5fef0" /></a></td>
<td>add <code>provideWebMcpTools</code></td>
</tr>
</tbody>
</table>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/angular/angular/blob/main/CHANGELOG.md">@​angular/compiler's
changelog</a>.</em></p>
<blockquote>
<h1>22.0.0 (2026-06-03)</h1>
<p><a href="https://goo.gle/angular-v22-blog">Blog post &quot;Announcing
Angular v22&quot;</a>.</p>
<h2>Breaking Changes</h2>
<h3>compiler</h3>
<ul>
<li>This change will trigger the
<code>nullishCoalescingNotNullable</code> and
<code>optionalChainNotNullable</code> diagnostics on exisiting projects.
You might want to disable those 2 diagnotiscs in your
<code>tsconfig</code> temporarily.</li>
<li>data prefixed attribute no-longer bind inputs nor outputs.</li>
<li>The compiler will throw when there a when inputs, outputs or model
are binding to the same input/outputs.</li>
<li><code>in</code> variables will throw in template expressions.</li>
</ul>
<h3>compiler-cli</h3>
<ul>
<li>Elements with multiple matching selectors will now throw at compile
time.</li>
</ul>
<h3>core</h3>
<ul>
<li>The second arguement of appRef.bootstrap does not accept
<code>any</code> anymore. Make sure the element you pass is not
nullable.</li>
<li>
<ul>
<li>TypeScript versions older than 6.0 are no longer supported.</li>
</ul>
</li>
<li>Leave animations are no longer limited to the element being
removed.</li>
<li>Component with undefined <code>changeDetection</code> property are
now <code>OnPush</code> by default. Specify <code>changeDetection:
ChangeDetectionStrategy.Eager</code> to keep the previous behavior.</li>
<li>change AnimationCallbackEvent.animationComplete signature</li>
<li><code>ChangeDetectorRef.checkNoChanges</code> was removed. In tests
use <code>fixture.detectChanges()</code> instead.</li>
<li><code>createNgModuleRef</code> was removed, use
<code>createNgModule</code> instead</li>
<li><code>ComponentFactoryResolver</code> and
<code>ComponentFactory</code> are no longer available. Pass the
component class directly to APIs that previously required a factory,
such as <code>ViewContainerRef.createComponent</code> or use the
standalone <code>createComponentFunction</code>.</li>
<li><code>ComponentFactoryResolver</code> and
<code>ComponentFactory</code> are no longer available. Pass the
component class directly to APIs that previously required a factory,
such as <code>ViewContainerRef.createComponent</code> or use the
standalone <code>createComponent</code> function.</li>
</ul>
<h3>forms</h3>
<ul>
<li><code>min</code> and <code>max</code> validation rules no longer
support
string values. Bound values must be numbers or null.</li>
</ul>
<h3>http</h3>
<ul>
<li>Use the <code>HttpXhrBackend</code> with
<code>provideHttpClient(withXhr)</code> if you want to keep supporting
upload progress reports.</li>
</ul>
<h3>platform-browser</h3>
<ul>
<li>This removes styles when they appear to no longer be used by an
associated <code>host</code>. However other DOM on the page may still be
affected by those styles if not leveraging
<code>ViewEncapsulation.Emulated</code> or if those styles are used by
elements outside of Angular, potentially causing other DOM to appear
unstyled.</li>
<li>Hammer.js integration has been removed. Use your own
implementation.</li>
</ul>
<h3>router</h3>
<ul>
<li>
<p>The return type for
<code>TitleStrategy.getResolvedTitleForRoute</code>
was previously 'any' while the actual return type could only be either
<code>string</code>
or <code>undefined</code>. The return type now reflects the possible
values correctly.
Code that reads the value may need to be adjusted.</p>
<p>(cherry picked from commit
ad37f52c1212164c51ffcc533067af05c2c33c89)</p>
</li>
<li>
<p>The <code>currentSnapshot</code> parameter in <code>CanMatchFn</code>
and the <code>canMatch</code> method of the <code>CanMatch</code>
interface is now required. While this was already the behavior of the
Router at runtime, existing class implementations of
<code>CanMatch</code> must now include the third argument to satisfy the
interface.</p>
</li>
<li>
<p>paramsInheritanceStrategy now defaults to 'always'</p>
<p>The default value of paramsInheritanceStrategy has been changed from
'emptyOnly' to 'always'. This means that route parameters are inherited
from all parent routes by default. To restore the previous behavior, set
paramsInheritanceStrategy to 'emptyOnly' in your router
configuration.</p>
</li>
<li>
<p><code>provideRoutes()</code> has been removed. Use
<code>provideRouter()</code> or <code>ROUTES</code> as multi token if
necessary.</p>
</li>
</ul>
<h3>upgrade</h3>
<ul>
<li>Deprecated <code>getAngularLib</code>/<code>setAngularLib</code>
have been removed use
<code>getAngularJSGlobal</code>/<code>setAngularJSGlobal</code>
instead.</li>
</ul>
<h2>Deprecations</h2>
<h3>http</h3>
<ul>
<li><code>withFetch</code> is now deprecated, it can be safely
removed.</li>
<li>The <code>reportProgress</code> option is deprecated please use
<code>reportUploadProgress</code> &amp;
<code>reportDownloadProgress</code> instead.</li>
</ul>
<h3>compiler</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/angular/angular/commit/2891f7e7879238d941a7c40ebd51896fcd2fe6bb"><code>2891f7e</code></a>
fix(compiler): move projection attributes into constants</li>
<li><a
href="https://github.com/angular/angular/commit/94d520fb671fc7774341947b872ed0e387689db9"><code>94d520f</code></a>
fix(compiler): prevent namespaced SVG &lt;style&gt; elements from being
stripped</li>
<li><a
href="https://github.com/angular/angular/commit/d9c38e552db7efd868c4de815d6cde4ab0b14bc0"><code>d9c38e5</code></a>
docs: fix typos in source code comments</li>
<li><a
href="https://github.com/angular/angular/commit/a08e4fb93c371252da16b3b22cbf78f4ac180fa2"><code>a08e4fb</code></a>
fix(core): normalize tag names in runtime i18n attribute security
context loo...</li>
<li><a
href="https://github.com/angular/angular/commit/ab9154ab75bdd36759c77917216b57285b243ea4"><code>ab9154a</code></a>
fix(compiler): normalize tag names with custom namespaces in
DomElementSchema...</li>
<li><a
href="https://github.com/angular/angular/commit/6ff620a03364d6ab60cea47de942a04ec5a26c50"><code>6ff620a</code></a>
fix(compiler): sanitize dynamic href and xlink:href bindings on SVG a
element...</li>
<li><a
href="https://github.com/angular/angular/commit/a97d5ec22d8997665dc2de3d5a78f6e2bac67afd"><code>a97d5ec</code></a>
build: update minimum supported Node.js versions</li>
<li><a
href="https://github.com/angular/angular/commit/2200b4a85481abde02e40eb8f6d67227f6ac21e9"><code>2200b4a</code></a>
refactor(compiler): add support for compiling NgModules under
isolatedDeclara...</li>
<li><a
href="https://github.com/angular/angular/commit/b2b8dea7325c8d0d6788bbee6100d406f6ebe355"><code>b2b8dea</code></a>
fix(compiler): strip namespaced SVG script elements during template
compilation</li>
<li><a
href="https://github.com/angular/angular/commit/88d138ccc84b839784f59575fddcda3fcaf18d35"><code>88d138c</code></a>
fix(core): support prefix-insensitive DOM schema lookups and
compile-time i18...</li>
<li>Additional commits viewable in <a
href="https://github.com/angular/angular/commits/v22.0.0/packages/compiler">compare
view</a></li>
</ul>
</details>
<br />

Updates `@angular/core` from 21.2.11 to 22.0.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/angular/angular/releases">@​angular/core's
releases</a>.</em></p>
<blockquote>
<h2>VSCode Extension: 22.0.0</h2>
<h3>Breaking Changes</h3>
<p>The extension now bundles TypeScript version 6.0, which itself
includes breaking
changes, including <a
href="https://www.typescriptlang.org/docs/handbook/release-notes/typescript-6-0.html#simple-default-changes">new
defaults</a> such as <code>strict</code> being <code>true</code>. You
will need to explicitly set
<code>&quot;strict&quot;: false</code> in your
<code>tsconfig.json</code>. Alternatively, the extension supports
configuring the <code>tsdk</code> in the <a
href="https://code.visualstudio.com/docs/typescript/typescript-transpiling#_using-the-workspace-version-of-typescript">same
way</a> as the built in TS/JS extension.</p>
<h3>Fixes and features</h3>
<ul>
<li>fix(language-service): Add support for <code>@Input</code> with
transforms (<a
href="https://github.com/angular/angular/commit/dc9c72da9b4ca499eebf6e78d7ccc31ea6f63580">dc9c72da9b</a>)</li>
<li>feat(language-service): add Document Symbols support for Angular
templates (<a
href="https://github.com/angular/angular/commit/cfd0f9950c08324e1c56f16d98a2e3081feeda58">cfd0f9950c</a>)</li>
<li>feat(language-service): add angular template inlay hints support (<a
href="https://github.com/angular/angular/commit/5a6d88626b604db937287a501cb723c088412a7e">5a6d88626b</a>)</li>
<li>feat(language-service): Add support for idle timeout in defer blocks
(<a
href="https://github.com/angular/angular/commit/c6f98c723cdd2c209092927855f8cbaf63ecce30">c6f98c723c</a>)</li>
</ul>
<h2>22.0.0</h2>
<h3>compiler</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/47fcbc470462192c4f9e273d8dce8b353d5baaa2"><img
src="https://img.shields.io/badge/47fcbc4704-feat-blue" alt="feat -
47fcbc4704" /></a></td>
<td>allow safe navigation to correctly narrow down nullables</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/2896c93cc1077e1306acd91f4ed62fed4204a26b"><img
src="https://img.shields.io/badge/2896c93cc1-feat-blue" alt="feat -
2896c93cc1" /></a></td>
<td>Angular expressions with optional chaining returns
<code>undefined</code></td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/e850643b1b8dca8cfdc12705be51441197cd987a"><img
src="https://img.shields.io/badge/e850643b1b-feat-blue" alt="feat -
e850643b1b" /></a></td>
<td>Support comments in html element.</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/96be4f429ba316c75d2d4a39ececcc529ec10943"><img
src="https://img.shields.io/badge/96be4f429b-fix-green" alt="fix -
96be4f429b" /></a></td>
<td>abstract emitter producing incorrect code for dynamic imports</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/488d962bc700fb7189749c63ba63eac50a54e363"><img
src="https://img.shields.io/badge/488d962bc7-fix-green" alt="fix -
488d962bc7" /></a></td>
<td>Don't bind inputs/outputs for <code>data-</code> attributes</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/2c5aabb9daf5da3ad539381ef1e430c77583e3bf"><img
src="https://img.shields.io/badge/2c5aabb9da-fix-green" alt="fix -
2c5aabb9da" /></a></td>
<td>don't escape dollar sign in literal expression</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/c7aef8ec5dd12b5b1d4c703a61bd1dd43f998e18"><img
src="https://img.shields.io/badge/c7aef8ec5d-fix-green" alt="fix -
c7aef8ec5d" /></a></td>
<td>enforce parentheses containing arguments for :host-context</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/b225a5d902f0ee1f6f68cde42266748cb1f2b1f8"><img
src="https://img.shields.io/badge/b225a5d902-fix-green" alt="fix -
b225a5d902" /></a></td>
<td>invalid type checking code if field name needs to be quoted</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/ab9154ab75bdd36759c77917216b57285b243ea4"><img
src="https://img.shields.io/badge/ab9154ab75-fix-green" alt="fix -
ab9154ab75" /></a></td>
<td>normalize tag names with custom namespaces in
DomElementSchemaRegistry (<a
href="https://github.com/angular/angular/tree/HEAD/packages/core/issues/68868">#68868</a>)</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/8a1533c9ad7c306e03d7c50676f87b56bade5bf6"><img
src="https://img.shields.io/badge/8a1533c9ad-fix-green" alt="fix -
8a1533c9ad" /></a></td>
<td>preserve leading commas in animation definitions</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/194f723f6620ea3cdf490b762ecbef8df6bb2c8a"><img
src="https://img.shields.io/badge/194f723f66-fix-green" alt="fix -
194f723f66" /></a></td>
<td>remove dedicated support for legacy shadow DOM selectors</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/4c25a42e988e7a59d4d4dc3121cd77f7b344c048"><img
src="https://img.shields.io/badge/4c25a42e98-fix-green" alt="fix -
4c25a42e98" /></a></td>
<td>remove deprecated shadow CSS encapsulation polyfills</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/6ff620a03364d6ab60cea47de942a04ec5a26c50"><img
src="https://img.shields.io/badge/6ff620a033-fix-green" alt="fix -
6ff620a033" /></a></td>
<td>sanitize dynamic href and xlink:href bindings on SVG a elements (<a
href="https://github.com/angular/angular/tree/HEAD/packages/core/issues/68868">#68868</a>)</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/7dc1017e517c077a6aa8fd749392a2af1277e1b7"><img
src="https://img.shields.io/badge/7dc1017e51-fix-green" alt="fix -
7dc1017e51" /></a></td>
<td>simplify handling of colon host with a selector list</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/d99ab0e0400d256021d6cc601e2a6e16f784a406"><img
src="https://img.shields.io/badge/d99ab0e040-fix-green" alt="fix -
d99ab0e040" /></a></td>
<td>stop generating unused field</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/03db2aefaa88bc73b6af6ed1c9c722b65079ab3b"><img
src="https://img.shields.io/badge/03db2aefaa-fix-green" alt="fix -
03db2aefaa" /></a></td>
<td>throw on duplicate input/outputs</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/786ef8261f4faca0693ef73938d3a6275b5baf7f"><img
src="https://img.shields.io/badge/786ef8261f-fix-green" alt="fix -
786ef8261f" /></a></td>
<td>throw on invalid in expressions</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/ccb7d427e4f07506c14c50ce0cbe87c57930ebb5"><img
src="https://img.shields.io/badge/ccb7d427e4-fix-green" alt="fix -
ccb7d427e4" /></a></td>
<td>type check invalid for loops</td>
</tr>
</tbody>
</table>
<h3>compiler-cli</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/b8d3f36ed962bd4f5abd6bf6e55078b56ce9fffa"><img
src="https://img.shields.io/badge/b8d3f36ed9-feat-blue" alt="feat -
b8d3f36ed9" /></a></td>
<td>add support for Node.js 26.0.0</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/7f9450219f5c30d1ce0a90061864e8c844c8807c"><img
src="https://img.shields.io/badge/7f9450219f-feat-blue" alt="feat -
7f9450219f" /></a></td>
<td>Adds warning for prefetch without main defer trigger</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/2eae497a04a6a9b34397181dcd64dbd103f76c47"><img
src="https://img.shields.io/badge/2eae497a04-feat-blue" alt="feat -
2eae497a04" /></a></td>
<td>support external TCBs with copied content in specific mode</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/e5f96c2d8813f95c91761ae3080065575ca3b536"><img
src="https://img.shields.io/badge/e5f96c2d88-fix-green" alt="fix -
e5f96c2d88" /></a></td>
<td>animation events not type checked properly when bound through
HostListener decorator</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/9218140348cb2e3ad301c1e7f37db4b0cdad4f9d"><img
src="https://img.shields.io/badge/9218140348-fix-green" alt="fix -
9218140348" /></a></td>
<td>resolve TCB mapping failure for safe property reads with as any</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/7a0d6b8df21ca6a407e5c63dc0af753bc39c90c5"><img
src="https://img.shields.io/badge/7a0d6b8df2-fix-green" alt="fix -
7a0d6b8df2" /></a></td>
<td>transform dropping exclamationToken from properties</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/ca67828ee247bdff46736661e51f43f2ca736a24"><img
src="https://img.shields.io/badge/ca67828ee2-refactor-yellow"
alt="refactor - ca67828ee2" /></a></td>
<td>introduce NG8023 compile-time diagnostic for duplicate
selectors</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/17d3ea44e25e077b18178aa8108828f36eb821f4"><img
src="https://img.shields.io/badge/17d3ea44e2-feat-blue" alt="feat -
17d3ea44e2" /></a></td>
<td>add <code>IdleRequestOptions</code> support to
<code>IdleService</code></td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/3b0ae5fef0328477ee0f5d51980217e7c583a606"><img
src="https://img.shields.io/badge/3b0ae5fef0-feat-blue" alt="feat -
3b0ae5fef0" /></a></td>
<td>add <code>provideWebMcpTools</code></td>
</tr>
</tbody>
</table>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/angular/angular/blob/main/CHANGELOG.md">@​angular/core's
changelog</a>.</em></p>
<blockquote>
<h1>22.0.0 (2026-06-03)</h1>
<p><a href="https://goo.gle/angular-v22-blog">Blog post &quot;Announcing
Angular v22&quot;</a>.</p>
<h2>Breaking Changes</h2>
<h3>compiler</h3>
<ul>
<li>This change will trigger the
<code>nullishCoalescingNotNullable</code> and
<code>optionalChainNotNullable</code> diagnostics on exisiting projects.
You might want to disable those 2 diagnotiscs in your
<code>tsconfig</code> temporarily.</li>
<li>data prefixed attribute no-longer bind inputs nor outputs.</li>
<li>The compiler will throw when there a when inputs, outputs or model
are binding to the same input/outputs.</li>
<li><code>in</code> variables will throw in template expressions.</li>
</ul>
<h3>compiler-cli</h3>
<ul>
<li>Elements with multiple matching selectors will now throw at compile
time.</li>
</ul>
<h3>core</h3>
<ul>
<li>The second arguement of appRef.bootstrap does not accept
<code>any</code> anymore. Make sure the element you pass is not
nullable.</li>
<li>
<ul>
<li>TypeScript versions older than 6.0 are no longer supported.</li>
</ul>
</li>
<li>Leave animations are no longer limited to the element being
removed.</li>
<li>Component with undefined <code>changeDetection</code> property are
now <code>OnPush</code> by default. Specify <code>changeDetection:
ChangeDetectionStrategy.Eager</code> to keep the previous behavior.</li>
<li>change AnimationCallbackEvent.animationComplete signature</li>
<li><code>ChangeDetectorRef.checkNoChanges</code> was removed. In tests
use <code>fixture.detectChanges()</code> instead.</li>
<li><code>createNgModuleRef</code> was removed, use
<code>createNgModule</code> instead</li>
<li><code>ComponentFactoryResolver</code> and
<code>ComponentFactory</code> are no longer available. Pass the
component class directly to APIs that previously required a factory,
such as <code>ViewContainerRef.createComponent</code> or use the
standalone <code>createComponentFunction</code>.</li>
<li><code>ComponentFactoryResolver</code> and
<code>ComponentFactory</code> are no longer available. Pass the
component class directly to APIs that previously required a factory,
such as <code>ViewContainerRef.createComponent</code> or use the
standalone <code>createComponent</code> function.</li>
</ul>
<h3>forms</h3>
<ul>
<li><code>min</code> and <code>max</code> validation rules no longer
support
string values. Bound values must be numbers or null.</li>
</ul>
<h3>http</h3>
<ul>
<li>Use the <code>HttpXhrBackend</code> with
<code>provideHttpClient(withXhr)</code> if you want to keep supporting
upload progress reports.</li>
</ul>
<h3>platform-browser</h3>
<ul>
<li>This removes styles when they appear to no longer be used by an
associated <code>host</code>. However other DOM on the page may still be
affected by those styles if not leveraging
<code>ViewEncapsulation.Emulated</code> or if those styles are used by
elements outside of Angular, potentially causing other DOM to appear
unstyled.</li>
<li>Hammer.js integration has been removed. Use your own
implementation.</li>
</ul>
<h3>router</h3>
<ul>
<li>
<p>The return type for
<code>TitleStrategy.getResolvedTitleForRoute</code>
was previously 'any' while the actual return type could only be either
<code>string</code>
or <code>undefined</code>. The return type now reflects the possible
values correctly.
Code that reads the value may need to be adjusted.</p>
<p>(cherry picked from commit
ad37f52c1212164c51ffcc533067af05c2c33c89)</p>
</li>
<li>
<p>The <code>currentSnapshot</code> parameter in <code>CanMatchFn</code>
and the <code>canMatch</code> method of the <code>CanMatch</code>
interface is now required. While this was already the behavior of the
Router at runtime, existing class implementations of
<code>CanMatch</code> must now include the third argument to satisfy the
interface.</p>
</li>
<li>
<p>paramsInheritanceStrategy now defaults to 'always'</p>
<p>The default value of paramsInheritanceStrategy has been changed from
'emptyOnly' to 'always'. This means that route parameters are inherited
from all parent routes by default. To restore the previous behavior, set
paramsInheritanceStrategy to 'emptyOnly' in your router
configuration.</p>
</li>
<li>
<p><code>provideRoutes()</code> has been removed. Use
<code>provideRouter()</code> or <code>ROUTES</code> as multi token if
necessary.</p>
</li>
</ul>
<h3>upgrade</h3>
<ul>
<li>Deprecated <code>getAngularLib</code>/<code>setAngularLib</code>
have been removed use
<code>getAngularJSGlobal</code>/<code>setAngularJSGlobal</code>
instead.</li>
</ul>
<h2>Deprecations</h2>
<h3>http</h3>
<ul>
<li><code>withFetch</code> is now deprecated, it can be safely
removed.</li>
<li>The <code>reportProgress</code> option is deprecated please use
<code>reportUploadProgress</code> &amp;
<code>reportDownloadProgress</code> instead.</li>
</ul>
<h3>compiler</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/angular/angular/commit/3ad9eb0217b519d756392bf8d0a471cb7a6b80d3"><code>3ad9eb0</code></a>
Revert &quot;fix(core): harden inherit definition feature against
polluted prototy...</li>
<li><a
href="https://github.com/angular/angular/commit/f3c924926fa2da7ab144fd4b3439b6b834005dee"><code>f3c9249</code></a>
fix(core): harden inherit definition feature against polluted
prototypes</li>
<li><a
href="https://github.com/angular/angular/commit/9d9855a41597c116ca102e672867047ddf7b4545"><code>9d9855a</code></a>
fix(migrations): Make the safe optional chaining idempotent</li>
<li><a
href="https://github.com/angular/angular/commit/5f14b82af8047f1f77c6bea839b2347cdaaa0df5"><code>5f14b82</code></a>
refactor(core): Update webmcp support to use
<code>document.modelContext</code></li>
<li><a
href="https://github.com/angular/angular/commit/6fee7aaf89be8d67dd7612af410d39cde0c00020"><code>6fee7aa</code></a>
build: update cross-repo angular dependencies</li>
<li><a
href="https://github.com/angular/angular/commit/e3e25b5a535c3e9cc08fcd2f9f85b78b8456a9f8"><code>e3e25b5</code></a>
fix(core): use Object.create(null) for LOCALE_DATA as a hardening
measure</li>
<li><a
href="https://github.com/angular/angular/commit/d88b79651824453ca97489082fe5f7e9d073cacc"><code>d88b796</code></a>
build: update cross-repo angular dependencies</li>
<li><a
href="https://github.com/angular/angular/commit/394c9983455368511b1d3822ed010f6f3eee9e8a"><code>394c998</code></a>
refactor(core): replace the type of the getDirectiveMetadata property of
Exte...</li>
<li><a
href="https://github.com/angular/angular/commit/76a8c877251443bfd77ca1265034a6da0509b2e1"><code>76a8c87</code></a>
refactor(core): Split the ng global into internal and external
objects</li>
<li><a
href="https://github.com/angular/angular/commit/f7b3ed8db28c69ee0de9144465da351bda7e85e4"><code>f7b3ed8</code></a>
fix(http): Introduce a max buffer size for fetch requests on SSR</li>
<li>Additional commits viewable in <a
href="https://github.com/angular/angular/commits/v22.0.0/packages/core">compare
view</a></li>
</ul>
</details>
<br />

Updates `@angular/forms` from 21.2.11 to 22.0.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/angular/angular/releases">@​angular/forms's
releases</a>.</em></p>
<blockquote>
<h2>VSCode Extension: 22.0.0</h2>
<h3>Breaking Changes</h3>
<p>The extension now bundles TypeScript version 6.0, which itself
includes breaking
changes, including <a
href="https://www.typescriptlang.org/docs/handbook/release-notes/typescript-6-0.html#simple-default-changes">new
defaults</a> such as <code>strict</code> being <code>true</code>. You
will need to explicitly set
<code>&quot;strict&quot;: false</code> in your
<code>tsconfig.json</code>. Alternatively, the extension supports
configuring the <code>tsdk</code> in the <a
href="https://code.visualstudio.com/docs/typescript/typescript-transpiling#_using-the-workspace-version-of-typescript">same
way</a> as the built in TS/JS extension.</p>
<h3>Fixes and features</h3>
<ul>
<li>fix(language-service): Add support for <code>@Input</code> with
transforms (<a
href="https://github.com/angular/angular/commit/dc9c72da9b4ca499eebf6e78d7ccc31ea6f63580">dc9c72da9b</a>)</li>
<li>feat(language-service): add Document Symbols support for Angular
templates (<a
href="https://github.com/angular/angular/commit/cfd0f9950c08324e1c56f16d98a2e3081feeda58">cfd0f9950c</a>)</li>
<li>feat(language-service): add angular template inlay hints support (<a
href="https://github.com/angular/angular/commit/5a6d88626b604db937287a501cb723c088412a7e">5a6d88626b</a>)</li>
<li>feat(language-service): Add support for idle timeout in defer blocks
(<a
href="https://github.com/angular/angular/commit/c6f98c723cdd2c209092927855f8cbaf63ecce30">c6f98c723c</a>)</li>
</ul>
<h2>22.0.0</h2>
<h3>compiler</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/47fcbc470462192c4f9e273d8dce8b353d5baaa2"><img
src="https://img.shields.io/badge/47fcbc4704-feat-blue" alt="feat -
47fcbc4704" /></a></td>
<td>allow safe navigation to correctly narrow down nullables</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/2896c93cc1077e1306acd91f4ed62fed4204a26b"><img
src="https://img.shields.io/badge/2896c93cc1-feat-blue" alt="feat -
2896c93cc1" /></a></td>
<td>Angular expressions with optional chaining returns
<code>undefined</code></td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/e850643b1b8dca8cfdc12705be51441197cd987a"><img
src="https://img.shields.io/badge/e850643b1b-feat-blue" alt="feat -
e850643b1b" /></a></td>
<td>Support comments in html element.</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/96be4f429ba316c75d2d4a39ececcc529ec10943"><img
src="https://img.shields.io/badge/96be4f429b-fix-green" alt="fix -
96be4f429b" /></a></td>
<td>abstract emitter producing incorrect code for dynamic imports</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/488d962bc700fb7189749c63ba63eac50a54e363"><img
src="https://img.shields.io/badge/488d962bc7-fix-green" alt="fix -
488d962bc7" /></a></td>
<td>Don't bind inputs/outputs for <code>data-</code> attributes</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/2c5aabb9daf5da3ad539381ef1e430c77583e3bf"><img
src="https://img.shields.io/badge/2c5aabb9da-fix-green" alt="fix -
2c5aabb9da" /></a></td>
<td>don't escape dollar sign in literal expression</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/c7aef8ec5dd12b5b1d4c703a61bd1dd43f998e18"><img
src="https://img.shields.io/badge/c7aef8ec5d-fix-green" alt="fix -
c7aef8ec5d" /></a></td>
<td>enforce parentheses containing arguments for :host-context</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/b225a5d902f0ee1f6f68cde42266748cb1f2b1f8"><img
src="https://img.shields.io/badge/b225a5d902-fix-green" alt="fix -
b225a5d902" /></a></td>
<td>invalid type checking code if field name needs to be quoted</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/ab9154ab75bdd36759c77917216b57285b243ea4"><img
src="https://img.shields.io/badge/ab9154ab75-fix-green" alt="fix -
ab9154ab75" /></a></td>
<td>normalize tag names with custom namespaces in
DomElementSchemaRegistry (<a
href="https://github.com/angular/angular/tree/HEAD/packages/forms/issues/68868">#68868</a>)</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/8a1533c9ad7c306e03d7c50676f87b56bade5bf6"><img
src="https://img.shields.io/badge/8a1533c9ad-fix-green" alt="fix -
8a1533c9ad" /></a></td>
<td>preserve leading commas in animation definitions</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/194f723f6620ea3cdf490b762ecbef8df6bb2c8a"><img
src="https://img.shields.io/badge/194f723f66-fix-green" alt="fix -
194f723f66" /></a></td>
<td>remove dedicated support for legacy shadow DOM selectors</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/4c25a42e988e7a59d4d4dc3121cd77f7b344c048"><img
src="https://img.shields.io/badge/4c25a42e98-fix-green" alt="fix -
4c25a42e98" /></a></td>
<td>remove deprecated shadow CSS encapsulation polyfills</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/6ff620a03364d6ab60cea47de942a04ec5a26c50"><img
src="https://img.shields.io/badge/6ff620a033-fix-green" alt="fix -
6ff620a033" /></a></td>
<td>sanitize dynamic href and xlink:href bindings on SVG a elements (<a
href="https://github.com/angular/angular/tree/HEAD/packages/forms/issues/68868">#68868</a>)</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/7dc1017e517c077a6aa8fd749392a2af1277e1b7"><img
src="https://img.shields.io/badge/7dc1017e51-fix-green" alt="fix -
7dc1017e51" /></a></td>
<td>simplify handling of colon host with a selector list</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/d99ab0e0400d256021d6cc601e2a6e16f784a406"><img
src="https://img.shields.io/badge/d99ab0e040-fix-green" alt="fix -
d99ab0e040" /></a></td>
<td>stop generating unused field</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/03db2aefaa88bc73b6af6ed1c9c722b65079ab3b"><img
src="https://img.shields.io/badge/03db2aefaa-fix-green" alt="fix -
03db2aefaa" /></a></td>
<td>throw on duplicate input/outputs</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/786ef8261f4faca0693ef73938d3a6275b5baf7f"><img
src="https://img.shields.io/badge/786ef8261f-fix-green" alt="fix -
786ef8261f" /></a></td>
<td>throw on invalid in expressions</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/ccb7d427e4f07506c14c50ce0cbe87c57930ebb5"><img
src="https://img.shields.io/badge/ccb7d427e4-fix-green" alt="fix -
ccb7d427e4" /></a></td>
<td>type check invalid for loops</td>
</tr>
</tbody>
</table>
<h3>compiler-cli</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/b8d3f36ed962bd4f5abd6bf6e55078b56ce9fffa"><img
src="https://img.shields.io/badge/b8d3f36ed9-feat-blue" alt="feat -
b8d3f36ed9" /></a></td>
<td>add support for Node.js 26.0.0</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/7f9450219f5c30d1ce0a90061864e8c844c8807c"><img
src="https://img.shields.io/badge/7f9450219f-feat-blue" alt="feat -
7f9450219f" /></a></td>
<td>Adds warning for prefetch without main defer trigger</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/2eae497a04a6a9b34397181dcd64dbd103f76c47"><img
src="https://img.shields.io/badge/2eae497a04-feat-blue" alt="feat -
2eae497a04" /></a></td>
<td>support external TCBs with copied content in specific mode</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/e5f96c2d8813f95c91761ae3080065575ca3b536"><img
src="https://img.shields.io/badge/e5f96c2d88-fix-green" alt="fix -
e5f96c2d88" /></a></td>
<td>animation events not type checked properly when bound through
HostListener decorator</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/9218140348cb2e3ad301c1e7f37db4b0cdad4f9d"><img
src="https://img.shields.io/badge/9218140348-fix-green" alt="fix -
9218140348" /></a></td>
<td>resolve TCB mapping failure for safe property reads with as any</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/7a0d6b8df21ca6a407e5c63dc0af753bc39c90c5"><img
src="https://img.shields.io/badge/7a0d6b8df2-fix-green" alt="fix -
7a0d6b8df2" /></a></td>
<td>transform dropping exclamationToken from properties</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/ca67828ee247bdff46736661e51f43f2ca736a24"><img
src="https://img.shields.io/badge/ca67828ee2-refactor-yellow"
alt="refactor - ca67828ee2" /></a></td>
<td>introduce NG8023 compile-time diagnostic for duplicate
selectors</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/17d3ea44e25e077b18178aa8108828f36eb821f4"><img
src="https://img.shields.io/badge/17d3ea44e2-feat-blue" alt="feat -
17d3ea44e2" /></a></td>
<td>add <code>IdleRequestOptions</code> support to
<code>IdleService</code></td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/3b0ae5fef0328477ee0f5d51980217e7c583a606"><img
src="https://img.shields.io/badge/3b0ae5fef0-feat-blue" alt="feat -
3b0ae5fef0" /></a></td>
<td>add <code>provideWebMcpTools</code></td>
</tr>
</tbody>
</table>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/angular/angular/blob/main/CHANGELOG.md">@​angular/forms's
changelog</a>.</em></p>
<blockquote>
<h1>22.0.0 (2026-06-03)</h1>
<p><a href="https://goo.gle/angular-v22-blog">Blog post &quot;Announcing
Angular v22&quot;</a>.</p>
<h2>Breaking Changes</h2>
<h3>compiler</h3>
<ul>
<li>This change will trigger the
<code>nullishCoalescingNotNullable</code> and
<code>optionalChainNotNullable</code> diagnostics on exisiting projects.
You might want to disable those 2 diagnotiscs in your
<code>tsconfig</code> temporarily.</li>
<li>data prefixed attribute no-longer bind inputs nor outputs.</li>
<li>The compiler will throw when there a when inputs, outputs or model
are binding to the same input/outputs.</li>
<li><code>in</code> variables will throw in template expressions.</li>
</ul>
<h3>compiler-cli</h3>
<ul>
<li>Elements with multiple matching selectors will now throw at compile
time.</li>
</ul>
<h3>core</h3>
<ul>
<li>The second arguement of appRef.bootstrap does not accept
<code>any</code> anymore. Make sure the element you pass is not
nullable.</li>
<li>
<ul>
<li>TypeScript versions older than 6.0 are no longer supported.</li>
</ul>
</li>
<li>Leave animations are no longer limited to the element being
removed.</li>
<li>Component with undefined <code>changeDetection</code> property are
now <code>OnPush</code> by default. Specify <code>changeDetection:
ChangeDetectionStrategy.Eager</code> to keep the previous behavior.</li>
<li>change AnimationCallbackEvent.animationComplete signature</li>
<li><code>ChangeDetectorRef.checkNoChanges</code> was removed. In tests
use <code>fixture.detectChanges()</code> instead.</li>
<li><code>createNgModuleRef</code> was removed, use
<code>createNgModule</code> instead</li>
<li><code>ComponentFactoryResolver</code> and
<code>ComponentFactory</code> are no longer available. Pass the
component class directly to APIs that previously required a factory,
such as <code>ViewContainerRef.createComponent</code> or use the
standalone <code>createComponentFunction</code>.</li>
<li><code>ComponentFactoryResolver</code> and
<code>ComponentFactory</code> are no longer available. Pass the
component class directly to APIs that previously required a factory,
such as <code>ViewContainerRef.createComponent</code> or use the
standalone <code>createComponent</code> function.</li>
</ul>
<h3>forms</h3>
<ul>
<li><code>min</code> and <code>max</code> validation rules no longer
support
string values. Bound values must be numbers or null.</li>
</ul>
<h3>http</h3>
<ul>
<li>Use the <code>HttpXhrBackend</code> with
<code>provideHttpClient(withXhr)</code> if you want to keep supporting
upload progress reports.</li>
</ul>
<h3>platform-browser</h3>
<ul>
<li>This removes styles when they appear to no longer be used by an
associated <code>host</code>. However other DOM on the page may still be
affected by those styles if not leveraging
<code>ViewEncapsulation.Emulated</code> or if those styles are used by
elements outside of Angular, potentially causing other DOM to appear
unstyled.</li>
<li>Hammer.js integration has been removed. Use your own
implementation.</li>
</ul>
<h3>router</h3>
<ul>
<li>
<p>The return type for
<code>TitleStrategy.getResolvedTitleForRoute</code>
was previously 'any' while the actual return type could only be either
<code>string</code>
or <code>undefined</code>. The return type now reflects the possible
values correctly.
Code that reads the value may need to be adjusted.</p>
<p>(cherry picked from commit
ad37f52c1212164c51ffcc533067af05c2c33c89)</p>
</li>
<li>
<p>The <code>currentSnapshot</code> parameter in <code>CanMatchFn</code>
and the <code>canMatch</code> method of the <code>CanMatch</code>
interface is now required. While this was already the behavior of the
Router at runtime, existing class implementations of
<code>CanMatch</code> must now include the third argument to satisfy the
interface.</p>
</li>
<li>
<p>paramsInheritanceStrategy now defaults to 'always'</p>
<p>The default value of paramsInheritanceStrategy has been changed from
'emptyOnly' to 'always'. This means that route parameters are inherited
from all parent routes by default. To restore the previous behavior, set
paramsInheri...

_Description has been truncated_

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-03 12:47:40 -07:00
dependabot[bot] ce7dd7e82f chore(deps): bump the react group across 1 directory with 5 updates (#2480)
Bumps the react group with 5 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [react](https://github.com/facebook/react/tree/HEAD/packages/react) |
`19.2.4` | `19.2.7` |
|
[@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react)
| `19.2.14` | `19.2.16` |
|
[react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom)
| `19.2.4` | `19.2.7` |
|
[@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react)
| `5.1.4` | `6.0.2` |
|
[vitest-browser-react](https://github.com/vitest-community/vitest-browser-react)
| `2.0.5` | `2.2.0` |


Updates `react` from 19.2.4 to 19.2.7
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/facebook/react/releases">react's
releases</a>.</em></p>
<blockquote>
<h2>19.2.7 (June 1st, 2026)</h2>
<h2>React Server Components</h2>
<ul>
<li>Fixed missing <code>FormData</code> entries in Server Actions which
regressed in 19.2.6
(<a
href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>
by <a
href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li>
</ul>
<h2>19.2.6 (May 6th, 2026)</h2>
<h2>React Server Components</h2>
<ul>
<li>Type hardening and performance improvements
(<a
href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>
by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and
<a
href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li>
</ul>
<h2>19.2.5 (April 8th, 2026)</h2>
<h2>React Server Components</h2>
<ul>
<li>Add more cycle protections (<a
href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>
by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and
<a
href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/facebook/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a>
Version 19.2.7 (<a
href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/36591">#36591</a>)</li>
<li><a
href="https://github.com/facebook/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a>
Version 19.2.6</li>
<li><a
href="https://github.com/facebook/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a>
19.2.5</li>
<li>See full diff in <a
href="https://github.com/facebook/react/commits/v19.2.7/packages/react">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a
href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new
releaser for react since your current version.</p>
</details>
<br />

Updates `@types/react` from 19.2.14 to 19.2.16
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare
view</a></li>
</ul>
</details>
<br />

Updates `react-dom` from 19.2.4 to 19.2.7
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/facebook/react/releases">react-dom's
releases</a>.</em></p>
<blockquote>
<h2>19.2.7 (June 1st, 2026)</h2>
<h2>React Server Components</h2>
<ul>
<li>Fixed missing <code>FormData</code> entries in Server Actions which
regressed in 19.2.6
(<a
href="https://redirect.github.com/facebook/react/pull/36566">#36566</a>
by <a
href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li>
</ul>
<h2>19.2.6 (May 6th, 2026)</h2>
<h2>React Server Components</h2>
<ul>
<li>Type hardening and performance improvements
(<a
href="https://redirect.github.com/facebook/react/pull/36425">#36425</a>
by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and
<a
href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li>
</ul>
<h2>19.2.5 (April 8th, 2026)</h2>
<h2>React Server Components</h2>
<ul>
<li>Add more cycle protections (<a
href="https://redirect.github.com/facebook/react/pull/36236">#36236</a>
by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and
<a
href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/facebook/react/commit/6117d7cca4906492c51fe6a03381e35adfd86e7d"><code>6117d7c</code></a>
Version 19.2.7 (<a
href="https://github.com/facebook/react/tree/HEAD/packages/react-dom/issues/36591">#36591</a>)</li>
<li><a
href="https://github.com/facebook/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a>
Version 19.2.6</li>
<li><a
href="https://github.com/facebook/react/commit/23f4f9f30da9e9af2108c18bb197bae75ab584ea"><code>23f4f9f</code></a>
19.2.5</li>
<li>See full diff in <a
href="https://github.com/facebook/react/commits/v19.2.7/packages/react-dom">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a
href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new
releaser for react-dom since your current version.</p>
</details>
<br />

Updates `@types/react` from 19.2.14 to 19.2.16
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare
view</a></li>
</ul>
</details>
<br />

Updates `@vitejs/plugin-react` from 5.1.4 to 6.0.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vitejs/vite-plugin-react/releases">@​vitejs/plugin-react's
releases</a>.</em></p>
<blockquote>
<h2>plugin-react@6.0.2</h2>
<h3>Allow all options in reactCompilerPreset (<a
href="https://redirect.github.com/vitejs/vite-plugin-react/pull/1189">#1189</a>)</h3>
<p>This is a type only change. Only <code>compilationMode</code> and
<code>target</code> options were available for
<code>reactCompilerPreset</code>.</p>
<h2>plugin-react@6.0.1</h2>
<h3>Expand <code>@rolldown/plugin-babel</code> peer dep range (<a
href="https://redirect.github.com/vitejs/vite-plugin-react/pull/1146">#1146</a>)</h3>
<p>Expanded <code>@rolldown/plugin-babel</code> peer dep range to
include <code>^0.2.0</code>.</p>
<h2>plugin-react@6.0.0</h2>
<h3>Remove Babel Related Features (<a
href="https://redirect.github.com/vitejs/vite-plugin-react/pull/1123">#1123</a>)</h3>
<p>Vite 8+ can handle React Refresh Transform by Oxc and doesn't need
Babel for it. With that, there are no transform applied that requires
Babel. To reduce the installation size of this plugin, babel is no
longer a dependency of this plugin and the related features are
removed.</p>
<p>If you are using Babel, you can use
<code>@rolldown/plugin-babel</code> together with this plugin:</p>
<pre lang="diff"><code> import { defineConfig } from 'vite'
 import react from '@vitejs/plugin-react'
+import babel from '@rolldown/plugin-babel'
<p>export default defineConfig({
plugins: [</p>
<ul>
<li>
<pre><code>react({
</code></pre>
</li>
<li>
<pre><code>  babel: {
</code></pre>
</li>
<li>
<pre><code>    plugins: ['@babel/plugin-proposal-throw-expressions'],
</code></pre>
</li>
<li>
<pre><code>  },
</code></pre>
</li>
<li>
<pre><code>}),
</code></pre>
</li>
</ul>
<ul>
<li>
<pre><code>react(),
</code></pre>
</li>
<li>
<pre><code>babel({
</code></pre>
</li>
<li>
<pre><code>  plugins: ['@babel/plugin-proposal-throw-expressions'],
</code></pre>
</li>
<li>
<pre><code>}),
</code></pre>
]
})
</code></pre></li>
</ul>
<p>For React compiler users, you can use
<code>reactCompilerPreset</code> for easier setup with preconfigured
filter to improve build performance:</p>
<pre lang="diff"><code> import { defineConfig } from 'vite'
-import react from '@vitejs/plugin-react'
+import react, { reactCompilerPreset } from '@vitejs/plugin-react'
+import babel from '@rolldown/plugin-babel'
<p>export default defineConfig({
plugins: [</p>
<ul>
<li>react({</li>
<li>
<pre><code> babel: {
</code></pre>
</li>
<li>
<pre><code>   plugins: ['babel-plugin-react-compiler'],
</code></pre>
</li>
</ul>
<p>&lt;/tr&gt;&lt;/table&gt;
</code></pre></p>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.md">@​vitejs/plugin-react's
changelog</a>.</em></p>
<blockquote>
<h2>6.0.2 (2026-05-14)</h2>
<h3>Allow all options in reactCompilerPreset (<a
href="https://redirect.github.com/vitejs/vite-plugin-react/pull/1189">#1189</a>)</h3>
<p>This is a type only change. Only <code>compilationMode</code> and
<code>target</code> options were available for
<code>reactCompilerPreset</code>.</p>
<h2>6.0.1 (2026-03-13)</h2>
<h3>Expand <code>@rolldown/plugin-babel</code> peer dep range (<a
href="https://redirect.github.com/vitejs/vite-plugin-react/pull/1146">#1146</a>)</h3>
<p>Expanded <code>@rolldown/plugin-babel</code> peer dep range to
include <code>^0.2.0</code>.</p>
<h2>6.0.0 (2026-03-12)</h2>
<h2>6.0.0-beta.0 (2026-03-03)</h2>
<h3>Remove Babel Related Features (<a
href="https://redirect.github.com/vitejs/vite-plugin-react/pull/1123">#1123</a>)</h3>
<p>Vite 8+ can handle React Refresh Transform by Oxc and doesn't need
Babel for it. With that, there are no transform applied that requires
Babel. To reduce the installation size of this plugin, babel is no
longer a dependency of this plugin and the related features are
removed.</p>
<p>If you are using Babel, you can use
<code>@rolldown/plugin-babel</code> together with this plugin:</p>
<pre lang="diff"><code> import { defineConfig } from 'vite'
 import react from '@vitejs/plugin-react'
+import babel from '@rolldown/plugin-babel'
<p>export default defineConfig({
plugins: [</p>
<ul>
<li>
<pre><code>react({
</code></pre>
</li>
<li>
<pre><code>  babel: {
</code></pre>
</li>
<li>
<pre><code>    plugins: ['@babel/plugin-proposal-throw-expressions'],
</code></pre>
</li>
<li>
<pre><code>  },
</code></pre>
</li>
<li>
<pre><code>}),
</code></pre>
</li>
</ul>
<ul>
<li>
<pre><code>react(),
</code></pre>
</li>
<li>
<pre><code>babel({
</code></pre>
</li>
<li>
<pre><code>  plugins: ['@babel/plugin-proposal-throw-expressions'],
</code></pre>
</li>
<li>
<pre><code>}),
</code></pre>
]
})
</code></pre></li>
</ul>
<p>For React compiler users, you can use
<code>reactCompilerPreset</code> for easier setup with preconfigured
filter to improve build performance:</p>
<pre lang="diff"><code> import { defineConfig } from 'vite'
-import react from '@vitejs/plugin-react'
+import react, { reactCompilerPreset } from '@vitejs/plugin-react'
+import babel from '@rolldown/plugin-babel'
<p>&lt;/tr&gt;&lt;/table&gt;
</code></pre></p>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/vitejs/vite-plugin-react/commit/6535b55e956b425e6650ffc2cc98fd23cca1d231"><code>6535b55</code></a>
release: plugin-react@6.0.2</li>
<li><a
href="https://github.com/vitejs/vite-plugin-react/commit/bf0e43b756e3be81f8572d59727c218311f431ef"><code>bf0e43b</code></a>
feat(react): whitelist debugging-options (<a
href="https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react/issues/1189">#1189</a>)</li>
<li><a
href="https://github.com/vitejs/vite-plugin-react/commit/3bd1f08ae0b82ee0e96feb2ff265e61c6fe74b54"><code>3bd1f08</code></a>
feat: use carets for rolldown versions (<a
href="https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react/issues/1216">#1216</a>)</li>
<li><a
href="https://github.com/vitejs/vite-plugin-react/commit/2b8df67323265d1ff5ddf47b2db9ab0b9de5c688"><code>2b8df67</code></a>
fix(deps): update all non-major dependencies (<a
href="https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react/issues/1218">#1218</a>)</li>
<li><a
href="https://github.com/vitejs/vite-plugin-react/commit/8fa9619e1b1f51b079f4c1df6bcf076dcafc5aed"><code>8fa9619</code></a>
fix(deps): update react 19.2.6 (<a
href="https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react/issues/1211">#1211</a>)</li>
<li><a
href="https://github.com/vitejs/vite-plugin-react/commit/a4296ad2995a8d493528b8d5450a1209de2943cb"><code>a4296ad</code></a>
fix(deps): update all non-major dependencies (<a
href="https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react/issues/1209">#1209</a>)</li>
<li><a
href="https://github.com/vitejs/vite-plugin-react/commit/323ccd72576be636b50baa7d9ce816cc94d5991e"><code>323ccd7</code></a>
fix(deps): update all non-major dependencies (<a
href="https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react/issues/1196">#1196</a>)</li>
<li><a
href="https://github.com/vitejs/vite-plugin-react/commit/a7506e105df00cdadc58c0aecc4512d8cfdd9765"><code>a7506e1</code></a>
chore(deps): update vite 8.0.10 (<a
href="https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react/issues/1198">#1198</a>)</li>
<li><a
href="https://github.com/vitejs/vite-plugin-react/commit/02cff2a0cf5c7e9792b1612baa380228f5e4d3c1"><code>02cff2a</code></a>
fix(deps): update all non-major dependencies (<a
href="https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react/issues/1184">#1184</a>)</li>
<li><a
href="https://github.com/vitejs/vite-plugin-react/commit/4b9c890cdb21078ac45a86873b24f7e8613b8526"><code>4b9c890</code></a>
fix(deps): update react 19.2.5 (<a
href="https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react/issues/1181">#1181</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/vitejs/vite-plugin-react/commits/plugin-react@6.0.2/packages/plugin-react">compare
view</a></li>
</ul>
</details>
<br />

Updates `vitest-browser-react` from 2.0.5 to 2.2.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vitest-community/vitest-browser-react/releases">vitest-browser-react's
releases</a>.</em></p>
<blockquote>
<h2>v2.2.0</h2>
<h3>   🚀 Features</h3>
<ul>
<li>Add <code>createRootOptions</code> to
<code>ComponentRenderOptions</code>  -  by <a
href="https://github.com/nstepien"><code>@​nstepien</code></a> in <a
href="https://redirect.github.com/vitest-community/vitest-browser-react/issues/53">vitest-community/vitest-browser-react#53</a>
<a
href="https://github.com/vitest-community/vitest-browser-react/commit/8803d53"><!--
raw HTML omitted -->(8803d)<!-- raw HTML omitted --></a></li>
<li>Expose <code>page.renderHook</code>  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-community/vitest-browser-react/issues/54">vitest-community/vitest-browser-react#54</a>
<a
href="https://github.com/vitest-community/vitest-browser-react/commit/3838945"><!--
raw HTML omitted -->(38389)<!-- raw HTML omitted --></a></li>
</ul>
<h5>    <a
href="https://github.com/vitest-community/vitest-browser-react/compare/v2.1.0...v2.2.0">View
changes on GitHub</a></h5>
<h2>v2.1.0</h2>
<h3>   🚀 Features</h3>
<ul>
<li>Integrate trace mark with render  -  by <a
href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a> and
<strong>Claude Opus 4.6</strong> in <a
href="https://redirect.github.com/vitest-community/vitest-browser-react/issues/47">vitest-community/vitest-browser-react#47</a>
<a
href="https://github.com/vitest-community/vitest-browser-react/commit/2b9835d"><!--
raw HTML omitted -->(2b983)<!-- raw HTML omitted --></a></li>
</ul>
<h3>   🐞 Bug Fixes</h3>
<ul>
<li>Update links to api documentation  -  by <a
href="https://github.com/nilshartmann"><code>@​nilshartmann</code></a>
in <a
href="https://redirect.github.com/vitest-community/vitest-browser-react/issues/48">vitest-community/vitest-browser-react#48</a>
<a
href="https://github.com/vitest-community/vitest-browser-react/commit/91885dd"><!--
raw HTML omitted -->(91885)<!-- raw HTML omitted --></a></li>
</ul>
<h5>    <a
href="https://github.com/vitest-community/vitest-browser-react/compare/v2.0.5...v2.1.0">View
changes on GitHub</a></h5>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/vitest-community/vitest-browser-react/commit/8de0ed7fb3a9a90df86e69489b722bb24ffeadbb"><code>8de0ed7</code></a>
chore: release v2.2.0</li>
<li><a
href="https://github.com/vitest-community/vitest-browser-react/commit/383894510b9fc5f8ce06678c473a546839b55084"><code>3838945</code></a>
feat: expose <code>page.renderHook</code> (<a
href="https://redirect.github.com/vitest-community/vitest-browser-react/issues/54">#54</a>)</li>
<li><a
href="https://github.com/vitest-community/vitest-browser-react/commit/8803d53b6b7a7dc2f55c6363188653efece4be5b"><code>8803d53</code></a>
feat: add <code>createRootOptions</code> to
<code>ComponentRenderOptions</code> (<a
href="https://redirect.github.com/vitest-community/vitest-browser-react/issues/53">#53</a>)</li>
<li><a
href="https://github.com/vitest-community/vitest-browser-react/commit/fa58d74d265ef4ed56d61df5f1c9907e7d9dcebe"><code>fa58d74</code></a>
chore: release v2.1.0</li>
<li><a
href="https://github.com/vitest-community/vitest-browser-react/commit/2b9835db315aa01afcde460d7c41d08634f31585"><code>2b9835d</code></a>
feat: integrate trace mark with render (<a
href="https://redirect.github.com/vitest-community/vitest-browser-react/issues/47">#47</a>)</li>
<li><a
href="https://github.com/vitest-community/vitest-browser-react/commit/91885dda84a285e96de5aeb7b172118515ca3e65"><code>91885dd</code></a>
fix: update links to api documentation (<a
href="https://redirect.github.com/vitest-community/vitest-browser-react/issues/48">#48</a>)</li>
<li>See full diff in <a
href="https://github.com/vitest-community/vitest-browser-react/compare/v2.0.5...v2.2.0">compare
view</a></li>
</ul>
</details>
<br />

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-03 11:54:56 -07:00
dependabot[bot] 12e157254b chore(deps): bump the vue group across 1 directory with 2 updates (#2479)
Bumps the vue group with 2 updates in the / directory:
[vue](https://github.com/vuejs/core) and
[@vitejs/plugin-vue](https://github.com/vitejs/vite-plugin-vue/tree/HEAD/packages/plugin-vue).

Updates `vue` from 3.5.33 to 3.5.35
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vuejs/core/releases">vue's
releases</a>.</em></p>
<blockquote>
<h2>v3.5.35</h2>
<p>For stable releases, please refer to <a
href="https://github.com/vuejs/core/blob/main/CHANGELOG.md">CHANGELOG.md</a>
for details.
For pre-releases, please refer to <a
href="https://github.com/vuejs/core/blob/minor/CHANGELOG.md">CHANGELOG.md</a>
of the <code>minor</code> branch.</p>
<h2>v3.5.34</h2>
<p>For stable releases, please refer to <a
href="https://github.com/vuejs/core/blob/main/CHANGELOG.md">CHANGELOG.md</a>
for details.
For pre-releases, please refer to <a
href="https://github.com/vuejs/core/blob/minor/CHANGELOG.md">CHANGELOG.md</a>
of the <code>minor</code> branch.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/vuejs/core/blob/main/CHANGELOG.md">vue's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/vuejs/core/compare/v3.5.34...v3.5.35">3.5.35</a>
(2026-05-27)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>compiler-core:</strong> avoid double processing v-for keys
with v-memo (<a
href="https://redirect.github.com/vuejs/core/issues/14861">#14861</a>)
(<a
href="https://github.com/vuejs/core/commit/34a0ded4d27289a8f227462bd35b6341a4b51831">34a0ded</a>),
closes <a
href="https://redirect.github.com/vuejs/core/issues/14859">#14859</a></li>
<li><strong>compiler-sfc:</strong> resolve top-level exports from files
registered as global types (<a
href="https://redirect.github.com/vuejs/core/issues/14805">#14805</a>)
(<a
href="https://github.com/vuejs/core/commit/3d077f26e33510f2ba001d14142ba76a1414dfff">3d077f2</a>),
closes <a
href="https://redirect.github.com/nuxt/nuxt/issues/33694">nuxt/nuxt#33694</a></li>
<li><strong>runtime-core:</strong> avoid repeated hydration mismatch
checks (<a
href="https://redirect.github.com/vuejs/core/issues/14857">#14857</a>)
(<a
href="https://github.com/vuejs/core/commit/170fc95eb64b97024dcb3df770557065e2919aa8">170fc95</a>),
closes <a
href="https://redirect.github.com/vuejs/core/issues/14855">#14855</a></li>
<li><strong>runtime-core:</strong> skip idle persisted transition hooks
in keep-alive moves (<a
href="https://redirect.github.com/vuejs/core/issues/14865">#14865</a>)
(<a
href="https://github.com/vuejs/core/commit/80fc139f90513943f1d0da20d353feec8a9ec894">80fc139</a>),
closes <a
href="https://redirect.github.com/vuejs/core/issues/14031">#14031</a></li>
<li><strong>server-renderer:</strong> propagate sync errors from
<code>ssrRenderSuspense</code> (<a
href="https://redirect.github.com/vuejs/core/issues/14804">#14804</a>)
(<a
href="https://github.com/vuejs/core/commit/47609975e294fbcc8017b6d68c9be38fa5508f36">4760997</a>),
closes <a
href="https://redirect.github.com/nuxt/nuxt/issues/28162">nuxt/nuxt#28162</a></li>
<li><strong>teleport:</strong> skip child unmount when pending mount
discarded (<a
href="https://redirect.github.com/vuejs/core/issues/14876">#14876</a>)
(<a
href="https://redirect.github.com/vuejs/core/issues/14877">#14877</a>)
(<a
href="https://github.com/vuejs/core/commit/584beb1262d1247d41ed3b463c485c57022fa922">584beb1</a>)</li>
</ul>
<h3>Performance Improvements</h3>
<ul>
<li><strong>reactivity:</strong> skip type checks for cached proxies (<a
href="https://redirect.github.com/vuejs/core/issues/14860">#14860</a>)
(<a
href="https://github.com/vuejs/core/commit/5734fe97f6e42d7abb1893c8bc38a17f7deb00b1">5734fe9</a>)</li>
<li><strong>runtime-dom:</strong> optimize array event handler dispatch
(<a
href="https://redirect.github.com/vuejs/core/issues/14828">#14828</a>)
(<a
href="https://github.com/vuejs/core/commit/bb18dc8e567ce22f1e5dfbc6b16c1003b48c2785">bb18dc8</a>)</li>
<li><strong>server-renderer:</strong> avoid materializing iterables in
ssrRenderList (<a
href="https://redirect.github.com/vuejs/core/issues/14821">#14821</a>)
(<a
href="https://github.com/vuejs/core/commit/1b7a2cc15c501a4b1e4be61874879381af59b74f">1b7a2cc</a>)</li>
</ul>
<h2><a
href="https://github.com/vuejs/core/compare/v3.5.33...v3.5.34">3.5.34</a>
(2026-05-06)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>compiler-sfc:</strong> infer Vue ref wrapper types when
source is unresolvable (<a
href="https://redirect.github.com/vuejs/core/issues/14758">#14758</a>)
(<a
href="https://github.com/vuejs/core/commit/7f46fd411b4e3f75ca755ee1318ea8e9aff43f56">7f46fd4</a>),
closes <a
href="https://redirect.github.com/vuejs/core/issues/14729">#14729</a></li>
<li><strong>compiler-sfc:</strong> preserve hash hrefs on
<code>&lt;image&gt;</code> elements (<a
href="https://redirect.github.com/vuejs/core/issues/14756">#14756</a>)
(<a
href="https://github.com/vuejs/core/commit/090b2e3a5149ec951c5313b270e5400a1fc870ce">090b2e3</a>)</li>
<li><strong>compiler-sfc:</strong> resolve type re-exports inside
declare global (<a
href="https://redirect.github.com/vuejs/core/issues/14766">#14766</a>)
(<a
href="https://github.com/vuejs/core/commit/acfffe34e7724a84c21bb8e51e8a5bc0da35f350">acfffe3</a>)</li>
<li><strong>reactivity:</strong> prevent orphan effect when created in a
stopped scope (<a
href="https://redirect.github.com/vuejs/core/issues/14778">#14778</a>)
(<a
href="https://github.com/vuejs/core/commit/c8e2d4adc9112d2529de0434acc1188dfc399bf4">c8e2d4a</a>),
closes <a
href="https://redirect.github.com/vuejs/core/issues/14777">#14777</a></li>
<li><strong>runtime-core:</strong> avoid symbol coercion during props
validation (<a
href="https://redirect.github.com/vuejs/core/issues/8539">#8539</a>) (<a
href="https://github.com/vuejs/core/commit/23d4fb5a6a070df3d2d4a043f0f62c141e376095">23d4fb5</a>),
closes <a
href="https://redirect.github.com/vuejs/core/issues/8487">#8487</a></li>
<li><strong>suspense:</strong> avoid DOM leak with out-in transition in
v-if fragment (<a
href="https://redirect.github.com/vuejs/core/issues/14762">#14762</a>)
(<a
href="https://github.com/vuejs/core/commit/9667e0d498ab39273614682986a666c3e73024d9">9667e0d</a>),
closes <a
href="https://redirect.github.com/vuejs/core/issues/14761">#14761</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/vuejs/core/commit/8be32d654f5c99de2801d6815e0dc798fb1f7d00"><code>8be32d6</code></a>
release: v3.5.35</li>
<li><a
href="https://github.com/vuejs/core/commit/80fc139f90513943f1d0da20d353feec8a9ec894"><code>80fc139</code></a>
fix(runtime-core): skip idle persisted transition hooks in keep-alive
moves (...</li>
<li><a
href="https://github.com/vuejs/core/commit/d6c73713fe20c325e805583d9b2e595b8cd8a111"><code>d6c7371</code></a>
ci: use backup action for size report comments</li>
<li><a
href="https://github.com/vuejs/core/commit/bb18dc8e567ce22f1e5dfbc6b16c1003b48c2785"><code>bb18dc8</code></a>
perf(runtime-dom): optimize array event handler dispatch (<a
href="https://redirect.github.com/vuejs/core/issues/14828">#14828</a>)</li>
<li><a
href="https://github.com/vuejs/core/commit/5734fe97f6e42d7abb1893c8bc38a17f7deb00b1"><code>5734fe9</code></a>
perf(reactivity): skip type checks for cached proxies (<a
href="https://redirect.github.com/vuejs/core/issues/14860">#14860</a>)</li>
<li><a
href="https://github.com/vuejs/core/commit/584beb1262d1247d41ed3b463c485c57022fa922"><code>584beb1</code></a>
fix(teleport): skip child unmount when pending mount discarded (<a
href="https://redirect.github.com/vuejs/core/issues/14876">#14876</a>)
(<a
href="https://redirect.github.com/vuejs/core/issues/14877">#14877</a>)</li>
<li><a
href="https://github.com/vuejs/core/commit/34a0ded4d27289a8f227462bd35b6341a4b51831"><code>34a0ded</code></a>
fix(compiler-core): avoid double processing v-for keys with v-memo (<a
href="https://redirect.github.com/vuejs/core/issues/14861">#14861</a>)</li>
<li><a
href="https://github.com/vuejs/core/commit/170fc95eb64b97024dcb3df770557065e2919aa8"><code>170fc95</code></a>
fix(runtime-core): avoid repeated hydration mismatch checks (<a
href="https://redirect.github.com/vuejs/core/issues/14857">#14857</a>)</li>
<li><a
href="https://github.com/vuejs/core/commit/1b7a2cc15c501a4b1e4be61874879381af59b74f"><code>1b7a2cc</code></a>
perf(server-renderer): avoid materializing iterables in ssrRenderList
(<a
href="https://redirect.github.com/vuejs/core/issues/14821">#14821</a>)</li>
<li><a
href="https://github.com/vuejs/core/commit/3d077f26e33510f2ba001d14142ba76a1414dfff"><code>3d077f2</code></a>
fix(compiler-sfc): resolve top-level exports from files registered as
global ...</li>
<li>Additional commits viewable in <a
href="https://github.com/vuejs/core/compare/v3.5.33...v3.5.35">compare
view</a></li>
</ul>
</details>
<br />

Updates `@vitejs/plugin-vue` from 6.0.6 to 6.0.7
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vitejs/vite-plugin-vue/releases">@​vitejs/plugin-vue's
releases</a>.</em></p>
<blockquote>
<h2>plugin-vue@6.0.7</h2>
<p>Please refer to <a
href="https://github.com/vitejs/vite-plugin-vue/blob/plugin-vue@6.0.7/packages/plugin-vue/CHANGELOG.md">CHANGELOG.md</a>
for details.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/vitejs/vite-plugin-vue/blob/main/packages/plugin-vue/CHANGELOG.md">@​vitejs/plugin-vue's
changelog</a>.</em></p>
<blockquote>
<h2><!-- raw HTML omitted --><a
href="https://github.com/vitejs/vite-plugin-vue/compare/plugin-vue@6.0.6...plugin-vue@6.0.7">6.0.7</a>
(2026-05-15)<!-- raw HTML omitted --></h2>
<h3>Features</h3>
<ul>
<li>use carets for <code>@rolldown/pluginutils</code> version (<a
href="https://redirect.github.com/vitejs/vite-plugin-vue/issues/776">#776</a>)
(<a
href="https://github.com/vitejs/vite-plugin-vue/commit/941b651d8329559fce9231aad4e178f54cccb013">941b651</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>deps:</strong> update all non-major dependencies (<a
href="https://redirect.github.com/vitejs/vite-plugin-vue/issues/762">#762</a>)
(<a
href="https://github.com/vitejs/vite-plugin-vue/commit/9e825b85ebe9b6006dc5927aaa8aabc0bcc7eceb">9e825b8</a>)</li>
<li><strong>deps:</strong> update all non-major dependencies (<a
href="https://redirect.github.com/vitejs/vite-plugin-vue/issues/774">#774</a>)
(<a
href="https://github.com/vitejs/vite-plugin-vue/commit/77dc8bc935216bb7ed13f1c2653a80ffdc99fd45">77dc8bc</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/vitejs/vite-plugin-vue/commit/f93acebe8f0c73a9558bd52baf6fd4cabe986213"><code>f93aceb</code></a>
release: plugin-vue@6.0.7</li>
<li><a
href="https://github.com/vitejs/vite-plugin-vue/commit/941b651d8329559fce9231aad4e178f54cccb013"><code>941b651</code></a>
feat: use carets for <code>@rolldown/pluginutils</code> version (<a
href="https://github.com/vitejs/vite-plugin-vue/tree/HEAD/packages/plugin-vue/issues/776">#776</a>)</li>
<li><a
href="https://github.com/vitejs/vite-plugin-vue/commit/77dc8bc935216bb7ed13f1c2653a80ffdc99fd45"><code>77dc8bc</code></a>
fix(deps): update all non-major dependencies (<a
href="https://github.com/vitejs/vite-plugin-vue/tree/HEAD/packages/plugin-vue/issues/774">#774</a>)</li>
<li><a
href="https://github.com/vitejs/vite-plugin-vue/commit/9e825b85ebe9b6006dc5927aaa8aabc0bcc7eceb"><code>9e825b8</code></a>
fix(deps): update all non-major dependencies (<a
href="https://github.com/vitejs/vite-plugin-vue/tree/HEAD/packages/plugin-vue/issues/762">#762</a>)</li>
<li>See full diff in <a
href="https://github.com/vitejs/vite-plugin-vue/commits/plugin-vue@6.0.7/packages/plugin-vue">compare
view</a></li>
</ul>
</details>
<br />

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-03 11:54:47 -07:00
dependabot[bot] 5d3bc4ffaa chore(deps): bump dorny/paths-filter from 3.0.2 to 4.0.1 in the major group across 1 directory (#2475)
Bumps the major group with 1 update in the / directory:
[dorny/paths-filter](https://github.com/dorny/paths-filter).

Updates `dorny/paths-filter` from 3.0.2 to 4.0.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/dorny/paths-filter/releases">dorny/paths-filter's
releases</a>.</em></p>
<blockquote>
<h2>v4.0.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Support merge queue by <a
href="https://github.com/masaru-iritani"><code>@​masaru-iritani</code></a>
in <a
href="https://redirect.github.com/dorny/paths-filter/pull/255">dorny/paths-filter#255</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/masaru-iritani"><code>@​masaru-iritani</code></a>
made their first contribution in <a
href="https://redirect.github.com/dorny/paths-filter/pull/255">dorny/paths-filter#255</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/dorny/paths-filter/compare/v4.0.0...v4.0.1">https://github.com/dorny/paths-filter/compare/v4.0.0...v4.0.1</a></p>
<h2>v4.0.0</h2>
<h2>What's Changed</h2>
<ul>
<li>feat: update action runtime to node24 by <a
href="https://github.com/saschabratton"><code>@​saschabratton</code></a>
in <a
href="https://redirect.github.com/dorny/paths-filter/pull/294">dorny/paths-filter#294</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/saschabratton"><code>@​saschabratton</code></a>
made their first contribution in <a
href="https://redirect.github.com/dorny/paths-filter/pull/294">dorny/paths-filter#294</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/dorny/paths-filter/compare/v3.0.3...v4.0.0">https://github.com/dorny/paths-filter/compare/v3.0.3...v4.0.0</a></p>
<h2>v3.0.3</h2>
<h2>What's Changed</h2>
<ul>
<li>Add missing predicate-quantifier by <a
href="https://github.com/wardpeet"><code>@​wardpeet</code></a> in <a
href="https://redirect.github.com/dorny/paths-filter/pull/279">dorny/paths-filter#279</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/wardpeet"><code>@​wardpeet</code></a>
made their first contribution in <a
href="https://redirect.github.com/dorny/paths-filter/pull/279">dorny/paths-filter#279</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/dorny/paths-filter/compare/v3...v3.0.3">https://github.com/dorny/paths-filter/compare/v3...v3.0.3</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/dorny/paths-filter/blob/master/CHANGELOG.md">dorny/paths-filter's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<h2>v4.0.0</h2>
<ul>
<li><a
href="https://redirect.github.com/dorny/paths-filter/pull/294">Update
action runtime to node24</a></li>
</ul>
<h2>v3.0.3</h2>
<ul>
<li><a
href="https://redirect.github.com/dorny/paths-filter/pull/279">Add
missing predicate-quantifier</a></li>
</ul>
<h2>v3.0.2</h2>
<ul>
<li><a
href="https://redirect.github.com/dorny/paths-filter/pull/224">Add
config parameter for predicate quantifier</a></li>
</ul>
<h2>v3.0.1</h2>
<ul>
<li><a
href="https://redirect.github.com/dorny/paths-filter/pull/133">Compare
base and ref when token is empty</a></li>
</ul>
<h2>v3.0.0</h2>
<ul>
<li><a
href="https://redirect.github.com/dorny/paths-filter/pull/210">Update to
Node.js 20</a></li>
<li><a
href="https://redirect.github.com/dorny/paths-filter/pull/215">Update
all dependencies</a></li>
</ul>
<h2>v2.11.1</h2>
<ul>
<li><a
href="https://redirect.github.com/dorny/paths-filter/pull/167">Update
@​actions/core to v1.10.0 - Fixes warning about deprecated
set-output</a></li>
<li><a
href="https://redirect.github.com/dorny/paths-filter/pull/168">Document
need for pull-requests: read permission</a></li>
<li><a
href="https://redirect.github.com/dorny/paths-filter/pull/164">Updating
to actions/checkout@v3</a></li>
</ul>
<h2>v2.11.0</h2>
<ul>
<li><a
href="https://redirect.github.com/dorny/paths-filter/pull/157">Set
list-files input parameter as not required</a></li>
<li><a
href="https://redirect.github.com/dorny/paths-filter/pull/161">Update
Node.js</a></li>
<li><a
href="https://redirect.github.com/dorny/paths-filter/pull/162">Fix
incorrect handling of Unicode characters in exec()</a></li>
<li><a
href="https://redirect.github.com/dorny/paths-filter/pull/163">Use
Octokit pagination</a></li>
<li><a
href="https://redirect.github.com/dorny/paths-filter/pull/160">Updates
real world links</a></li>
</ul>
<h2>v2.10.2</h2>
<ul>
<li><a href="https://redirect.github.com/dorny/paths-filter/pull/91">Fix
getLocalRef() returns wrong ref</a></li>
</ul>
<h2>v2.10.1</h2>
<ul>
<li><a
href="https://redirect.github.com/dorny/paths-filter/pull/85">Improve
robustness of change detection</a></li>
</ul>
<h2>v2.10.0</h2>
<ul>
<li><a href="https://redirect.github.com/dorny/paths-filter/pull/82">Add
ref input parameter</a></li>
<li><a href="https://redirect.github.com/dorny/paths-filter/pull/83">Fix
change detection in PR when pullRequest.changed_files is
incorrect</a></li>
</ul>
<h2>v2.9.3</h2>
<ul>
<li><a href="https://redirect.github.com/dorny/paths-filter/pull/78">Fix
change detection when base is a tag</a></li>
</ul>
<h2>v2.9.2</h2>
<ul>
<li><a href="https://redirect.github.com/dorny/paths-filter/pull/75">Fix
fetching git history</a></li>
</ul>
<h2>v2.9.1</h2>
<ul>
<li><a href="https://redirect.github.com/dorny/paths-filter/pull/74">Fix
fetching git history + fallback to unshallow repo</a></li>
</ul>
<h2>v2.9.0</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/dorny/paths-filter/commit/fbd0ab8f3e69293af611ebaee6363fc25e6d187d"><code>fbd0ab8</code></a>
feat: add merge_group event support</li>
<li><a
href="https://github.com/dorny/paths-filter/commit/efb1da7ce8d89bbc261191e5a2dc1453c3837339"><code>efb1da7</code></a>
feat: add dist/ freshness check to PR workflow</li>
<li><a
href="https://github.com/dorny/paths-filter/commit/d8f7b061b24c30a325ff314b76c37adb05b041ce"><code>d8f7b06</code></a>
Merge pull request <a
href="https://redirect.github.com/dorny/paths-filter/issues/302">#302</a>
from dorny/issue-299</li>
<li><a
href="https://github.com/dorny/paths-filter/commit/addbc147a95845176e1bc013a012fbf1d366389a"><code>addbc14</code></a>
Update README for v4</li>
<li><a
href="https://github.com/dorny/paths-filter/commit/9d7afb8d214ad99e78fbd4247752c4caed2b6e4c"><code>9d7afb8</code></a>
Update CHANGELOG for v4.0.0</li>
<li><a
href="https://github.com/dorny/paths-filter/commit/782470c5d953cae2693d643172b14e01bacb71f3"><code>782470c</code></a>
Merge branch 'releases/v3'</li>
<li><a
href="https://github.com/dorny/paths-filter/commit/d1c1ffe0248fe513906c8e24db8ea791d46f8590"><code>d1c1ffe</code></a>
Update CHANGELOG for v3.0.3</li>
<li><a
href="https://github.com/dorny/paths-filter/commit/ce10459c8b92cd8901166c0a222fbb033ef39365"><code>ce10459</code></a>
Merge pull request <a
href="https://redirect.github.com/dorny/paths-filter/issues/294">#294</a>
from saschabratton/master</li>
<li><a
href="https://github.com/dorny/paths-filter/commit/5f40380c5482e806c81cec080f5192e7234d8fe9"><code>5f40380</code></a>
feat: update action runtime to node24</li>
<li><a
href="https://github.com/dorny/paths-filter/commit/668c092af3649c4b664c54e4b704aa46782f6f7c"><code>668c092</code></a>
Merge pull request <a
href="https://redirect.github.com/dorny/paths-filter/issues/279">#279</a>
from wardpeet/patch-1</li>
<li>Additional commits viewable in <a
href="https://github.com/dorny/paths-filter/compare/de90cc6fb38fc0963ad72b210f1f284cd68cea36...fbd0ab8f3e69293af611ebaee6363fc25e6d187d">compare
view</a></li>
</ul>
</details>
<br />

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-03 11:38:35 -07:00
dependabot[bot] cc570de814 chore(deps-dev): bump the svelte group with 2 updates (#2478)
Bumps the svelte group with 2 updates:
[@sveltejs/vite-plugin-svelte](https://github.com/sveltejs/vite-plugin-svelte/tree/HEAD/packages/vite-plugin-svelte)
and
[svelte](https://github.com/sveltejs/svelte/tree/HEAD/packages/svelte).

Updates `@sveltejs/vite-plugin-svelte` from 7.1.1 to 7.1.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/sveltejs/vite-plugin-svelte/releases">@​sveltejs/vite-plugin-svelte's
releases</a>.</em></p>
<blockquote>
<h2><code>@​sveltejs/vite-plugin-svelte</code><a
href="https://github.com/7"><code>@​7</code></a>.1.2</h2>
<h3>Patch Changes</h3>
<ul>
<li>fix: correctly resolve compiled CSS on the server for dependencies
with Svelte files (<a
href="https://redirect.github.com/sveltejs/vite-plugin-svelte/pull/1342">#1342</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/sveltejs/vite-plugin-svelte/blob/main/packages/vite-plugin-svelte/CHANGELOG.md">@​sveltejs/vite-plugin-svelte's
changelog</a>.</em></p>
<blockquote>
<h2>7.1.2</h2>
<h3>Patch Changes</h3>
<ul>
<li>fix: correctly resolve compiled CSS on the server for dependencies
with Svelte files (<a
href="https://redirect.github.com/sveltejs/vite-plugin-svelte/pull/1342">#1342</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/sveltejs/vite-plugin-svelte/commit/471f82216d4459a90d20f21c76b84aaf20c27e6e"><code>471f822</code></a>
Version Packages (<a
href="https://github.com/sveltejs/vite-plugin-svelte/tree/HEAD/packages/vite-plugin-svelte/issues/1344">#1344</a>)</li>
<li><a
href="https://github.com/sveltejs/vite-plugin-svelte/commit/1a9bc0858dd2448092661774b94a23719e236cd0"><code>1a9bc08</code></a>
fix: always retrieve CSS using component filename first (<a
href="https://github.com/sveltejs/vite-plugin-svelte/tree/HEAD/packages/vite-plugin-svelte/issues/1342">#1342</a>)</li>
<li>See full diff in <a
href="https://github.com/sveltejs/vite-plugin-svelte/commits/@sveltejs/vite-plugin-svelte@7.1.2/packages/vite-plugin-svelte">compare
view</a></li>
</ul>
</details>
<br />

Updates `svelte` from 5.55.7 to 5.56.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/sveltejs/svelte/releases">svelte's
releases</a>.</em></p>
<blockquote>
<h2>svelte@5.56.1</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p>fix: error at compile time on duplicate snippet/declaration tag
definitions (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18351">#18351</a>)</p>
</li>
<li>
<p>fix: parse declaration tag contents more robustly (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18353">#18353</a>)</p>
</li>
<li>
<p>fix: correctly transform references to earlier declarators in a
declaration tag (e.g. <code>{let a = $state(0), b = $derived(a *
2)}</code>) (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18348">#18348</a>)</p>
</li>
<li>
<p>fix: avoid spurious <code>state_referenced_locally</code> warnings
for <code>$derived</code> declarations in declaration tags (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18348">#18348</a>)</p>
</li>
<li>
<p>fix: tolerate whitespace before <code>let</code>/<code>const</code>
in declaration tags (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18348">#18348</a>)</p>
</li>
<li>
<p>fix: prevent infinite loop when a tag's expression ends with a
trailing <code>/</code> at the end of the input (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18350">#18350</a>)</p>
</li>
<li>
<p>fix: more robust parsing of declaration tags with regards to
<code>type</code> (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18330">#18330</a>)</p>
</li>
<li>
<p>fix: preserve newlines in spread input values when the
<code>type</code> attribute is applied after <code>value</code> (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18345">#18345</a>)</p>
</li>
<li>
<p>fix: update <code>SvelteURLSearchParams</code> when setting duplicate
keys to the same joined value (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18336">#18336</a>)</p>
</li>
<li>
<p>fix: check references for blockers on server, too (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18352">#18352</a>)</p>
</li>
</ul>
<h2>svelte@5.56.0</h2>
<h3>Minor Changes</h3>
<ul>
<li>feat: allow declarations in the template (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18282">#18282</a>)</li>
</ul>
<h3>Patch Changes</h3>
<ul>
<li>
<p>perf: use <code>createElement</code> instead of
<code>createElementNS</code> for HTML elements (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18262">#18262</a>)</p>
</li>
<li>
<p>perf: store <code>current_sources</code> as a <code>Set</code> for
O(1) membership checks (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18278">#18278</a>)</p>
</li>
<li>
<p>perf: deduplicate identical hoisted templates within a component (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18320">#18320</a>)</p>
</li>
<li>
<p>perf: hoist <code>rest_props</code> exclude list as a module-scope
<code>Set</code> (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18252">#18252</a>)</p>
</li>
</ul>
<h2>svelte@5.55.10</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p>fix: unlink errored and otherwise finished batch (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18264">#18264</a>)</p>
</li>
<li>
<p>perf: walk composedPath() directly in delegated event propagation (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18268">#18268</a>)</p>
</li>
<li>
<p>fix: transfer effects when merging batches (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18254">#18254</a>)</p>
</li>
<li>
<p>fix: allow <code>$derived(await ...)</code> in disconnected effect
roots (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18273">#18273</a>)</p>
</li>
<li>
<p>fix: remove temporary raw-text hydration markers (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18269">#18269</a>)</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/sveltejs/svelte/blob/main/packages/svelte/CHANGELOG.md">svelte's
changelog</a>.</em></p>
<blockquote>
<h2>5.56.1</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p>fix: error at compile time on duplicate snippet/declaration tag
definitions (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18351">#18351</a>)</p>
</li>
<li>
<p>fix: parse declaration tag contents more robustly (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18353">#18353</a>)</p>
</li>
<li>
<p>fix: correctly transform references to earlier declarators in a
declaration tag (e.g. <code>{let a = $state(0), b = $derived(a *
2)}</code>) (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18348">#18348</a>)</p>
</li>
<li>
<p>fix: avoid spurious <code>state_referenced_locally</code> warnings
for <code>$derived</code> declarations in declaration tags (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18348">#18348</a>)</p>
</li>
<li>
<p>fix: tolerate whitespace before <code>let</code>/<code>const</code>
in declaration tags (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18348">#18348</a>)</p>
</li>
<li>
<p>fix: prevent infinite loop when a tag's expression ends with a
trailing <code>/</code> at the end of the input (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18350">#18350</a>)</p>
</li>
<li>
<p>fix: more robust parsing of declaration tags with regards to
<code>type</code> (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18330">#18330</a>)</p>
</li>
<li>
<p>fix: preserve newlines in spread input values when the
<code>type</code> attribute is applied after <code>value</code> (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18345">#18345</a>)</p>
</li>
<li>
<p>fix: update <code>SvelteURLSearchParams</code> when setting duplicate
keys to the same joined value (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18336">#18336</a>)</p>
</li>
<li>
<p>fix: check references for blockers on server, too (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18352">#18352</a>)</p>
</li>
</ul>
<h2>5.56.0</h2>
<h3>Minor Changes</h3>
<ul>
<li>feat: allow declarations in the template (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18282">#18282</a>)</li>
</ul>
<h3>Patch Changes</h3>
<ul>
<li>
<p>perf: use <code>createElement</code> instead of
<code>createElementNS</code> for HTML elements (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18262">#18262</a>)</p>
</li>
<li>
<p>perf: store <code>current_sources</code> as a <code>Set</code> for
O(1) membership checks (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18278">#18278</a>)</p>
</li>
<li>
<p>perf: deduplicate identical hoisted templates within a component (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18320">#18320</a>)</p>
</li>
<li>
<p>perf: hoist <code>rest_props</code> exclude list as a module-scope
<code>Set</code> (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18252">#18252</a>)</p>
</li>
</ul>
<h2>5.55.10</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p>fix: unlink errored and otherwise finished batch (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18264">#18264</a>)</p>
</li>
<li>
<p>perf: walk composedPath() directly in delegated event propagation (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18268">#18268</a>)</p>
</li>
<li>
<p>fix: transfer effects when merging batches (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18254">#18254</a>)</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/sveltejs/svelte/commit/3ef761b87b84a7aecd0e11aa4c21a41bb1c180e1"><code>3ef761b</code></a>
Version Packages (<a
href="https://github.com/sveltejs/svelte/tree/HEAD/packages/svelte/issues/18346">#18346</a>)</li>
<li><a
href="https://github.com/sveltejs/svelte/commit/5b8db1be35555fee3b938f9d7eab93f2aee48b7e"><code>5b8db1b</code></a>
fix: error at compile time on duplicate snippet/declaration tag
definitions (...</li>
<li><a
href="https://github.com/sveltejs/svelte/commit/56013a2c01454388ea5f58642377038f29cdec4a"><code>56013a2</code></a>
fix: check references for blockers on server, too (<a
href="https://github.com/sveltejs/svelte/tree/HEAD/packages/svelte/issues/18352">#18352</a>)</li>
<li><a
href="https://github.com/sveltejs/svelte/commit/2afb895ffabe918d69f8463e06637b060b7a4dce"><code>2afb895</code></a>
fix: parse declaration tags with a division operator in the initializer
(<a
href="https://github.com/sveltejs/svelte/tree/HEAD/packages/svelte/issues/18353">#18353</a>)</li>
<li><a
href="https://github.com/sveltejs/svelte/commit/b471c15e61c90f820f0e059cfe90d56c135a8e3f"><code>b471c15</code></a>
fix: don't hang on a tag whose expression ends with a trailing slash (<a
href="https://github.com/sveltejs/svelte/tree/HEAD/packages/svelte/issues/18350">#18350</a>)</li>
<li><a
href="https://github.com/sveltejs/svelte/commit/c74f44fff99de06270c26098600f891835a15288"><code>c74f44f</code></a>
fix: don't mistake <code>type</code> identifier expressions for TS
<code>type</code> declarations i...</li>
<li><a
href="https://github.com/sveltejs/svelte/commit/b76b937e0053b7368b9a94bf2b351b181bd2eda6"><code>b76b937</code></a>
fix: various declaration tag bugs (<a
href="https://github.com/sveltejs/svelte/tree/HEAD/packages/svelte/issues/18348">#18348</a>)</li>
<li><a
href="https://github.com/sveltejs/svelte/commit/378bb25097088c2277aa063408c62818cc1f6c4e"><code>378bb25</code></a>
fix: set input type before spread value (<a
href="https://github.com/sveltejs/svelte/tree/HEAD/packages/svelte/issues/18345">#18345</a>)</li>
<li><a
href="https://github.com/sveltejs/svelte/commit/2f6307af65fdecce9e7f37ce78464d9431b266ce"><code>2f6307a</code></a>
Fix searchParams.set duplicate updates (<a
href="https://github.com/sveltejs/svelte/tree/HEAD/packages/svelte/issues/18336">#18336</a>)</li>
<li><a
href="https://github.com/sveltejs/svelte/commit/11985c020fe1f7f7755494929c5d59f44a45e990"><code>11985c0</code></a>
docs: desloppify browser support page (<a
href="https://github.com/sveltejs/svelte/tree/HEAD/packages/svelte/issues/18333">#18333</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/sveltejs/svelte/commits/svelte@5.56.1/packages/svelte">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-03 11:35:02 -07:00
dependabot[bot] 8ee8d4c82d chore(deps): bump the minor-and-patch group with 3 updates (#2474)
Bumps the minor-and-patch group with 3 updates:
[actions/checkout](https://github.com/actions/checkout),
[pnpm/action-setup](https://github.com/pnpm/action-setup) and
[changesets/action](https://github.com/changesets/action).

Updates `actions/checkout` from 6.0.2 to 6.0.3
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/checkout/releases">actions/checkout's
releases</a>.</em></p>
<blockquote>
<h2>v6.0.3</h2>
<h2>What's Changed</h2>
<ul>
<li>Update changelog by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2357">actions/checkout#2357</a></li>
<li>fix: expand merge commit SHA regex and add SHA-256 test cases by <a
href="https://github.com/yaananth"><code>@​yaananth</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2414">actions/checkout#2414</a></li>
<li>Fix checkout init for SHA-256 repositories by <a
href="https://github.com/yaananth"><code>@​yaananth</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2439">actions/checkout#2439</a></li>
<li>Update changelog for v6.0.3 by <a
href="https://github.com/yaananth"><code>@​yaananth</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2446">actions/checkout#2446</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/yaananth"><code>@​yaananth</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/checkout/pull/2414">actions/checkout#2414</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/checkout/compare/v6...v6.0.3">https://github.com/actions/checkout/compare/v6...v6.0.3</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/actions/checkout/blob/main/CHANGELOG.md">actions/checkout's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<h2>v6.0.3</h2>
<ul>
<li>Fix checkout init for SHA-256 repositories by <a
href="https://github.com/yaananth"><code>@​yaananth</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2439">actions/checkout#2439</a></li>
<li>fix: expand merge commit SHA regex and add SHA-256 test cases by <a
href="https://github.com/yaananth"><code>@​yaananth</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2414">actions/checkout#2414</a></li>
</ul>
<h2>v6.0.2</h2>
<ul>
<li>Fix tag handling: preserve annotations and explicit fetch-tags by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2356">actions/checkout#2356</a></li>
</ul>
<h2>v6.0.1</h2>
<ul>
<li>Add worktree support for persist-credentials includeIf by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2327">actions/checkout#2327</a></li>
</ul>
<h2>v6.0.0</h2>
<ul>
<li>Persist creds to a separate file by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2286">actions/checkout#2286</a></li>
<li>Update README to include Node.js 24 support details and requirements
by <a href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/2248">actions/checkout#2248</a></li>
</ul>
<h2>v5.0.1</h2>
<ul>
<li>Port v6 cleanup to v5 by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2301">actions/checkout#2301</a></li>
</ul>
<h2>v5.0.0</h2>
<ul>
<li>Update actions checkout to use node 24 by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2226">actions/checkout#2226</a></li>
</ul>
<h2>v4.3.1</h2>
<ul>
<li>Port v6 cleanup to v4 by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2305">actions/checkout#2305</a></li>
</ul>
<h2>v4.3.0</h2>
<ul>
<li>docs: update README.md by <a
href="https://github.com/motss"><code>@​motss</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1971">actions/checkout#1971</a></li>
<li>Add internal repos for checking out multiple repositories by <a
href="https://github.com/mouismail"><code>@​mouismail</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1977">actions/checkout#1977</a></li>
<li>Documentation update - add recommended permissions to Readme by <a
href="https://github.com/benwells"><code>@​benwells</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2043">actions/checkout#2043</a></li>
<li>Adjust positioning of user email note and permissions heading by <a
href="https://github.com/joshmgross"><code>@​joshmgross</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2044">actions/checkout#2044</a></li>
<li>Update README.md by <a
href="https://github.com/nebuk89"><code>@​nebuk89</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2194">actions/checkout#2194</a></li>
<li>Update CODEOWNERS for actions by <a
href="https://github.com/TingluoHuang"><code>@​TingluoHuang</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/2224">actions/checkout#2224</a></li>
<li>Update package dependencies by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2236">actions/checkout#2236</a></li>
</ul>
<h2>v4.2.2</h2>
<ul>
<li><code>url-helper.ts</code> now leverages well-known environment
variables by <a href="https://github.com/jww3"><code>@​jww3</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/1941">actions/checkout#1941</a></li>
<li>Expand unit test coverage for <code>isGhes</code> by <a
href="https://github.com/jww3"><code>@​jww3</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1946">actions/checkout#1946</a></li>
</ul>
<h2>v4.2.1</h2>
<ul>
<li>Check out other refs/* by commit if provided, fall back to ref by <a
href="https://github.com/orhantoy"><code>@​orhantoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1924">actions/checkout#1924</a></li>
</ul>
<h2>v4.2.0</h2>
<ul>
<li>Add Ref and Commit outputs by <a
href="https://github.com/lucacome"><code>@​lucacome</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1180">actions/checkout#1180</a></li>
<li>Dependency updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>- <a
href="https://redirect.github.com/actions/checkout/pull/1777">actions/checkout#1777</a>,
<a
href="https://redirect.github.com/actions/checkout/pull/1872">actions/checkout#1872</a></li>
</ul>
<h2>v4.1.7</h2>
<ul>
<li>Bump the minor-npm-dependencies group across 1 directory with 4
updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1739">actions/checkout#1739</a></li>
<li>Bump actions/checkout from 3 to 4 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1697">actions/checkout#1697</a></li>
<li>Check out other refs/* by commit by <a
href="https://github.com/orhantoy"><code>@​orhantoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1774">actions/checkout#1774</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/checkout/commit/df4cb1c069e1874edd31b4311f1884172cec0e10"><code>df4cb1c</code></a>
Update changelog for v6.0.3 (<a
href="https://redirect.github.com/actions/checkout/issues/2446">#2446</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/1cce3390c2bfda521930d01229c073c7ff920824"><code>1cce339</code></a>
Fix checkout init for SHA-256 repositories (<a
href="https://redirect.github.com/actions/checkout/issues/2439">#2439</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/900f2210b1d28bbbd0bd22d17926b9e224e8f231"><code>900f221</code></a>
fix: expand merge commit SHA regex and add SHA-256 test cases (<a
href="https://redirect.github.com/actions/checkout/issues/2414">#2414</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/0c366fd6a839edf440554fa01a7085ccba70ac98"><code>0c366fd</code></a>
Update changelog (<a
href="https://redirect.github.com/actions/checkout/issues/2357">#2357</a>)</li>
<li>See full diff in <a
href="https://github.com/actions/checkout/compare/de0fac2e4500dabe0009e67214ff5f5447ce83dd...df4cb1c069e1874edd31b4311f1884172cec0e10">compare
view</a></li>
</ul>
</details>
<br />

Updates `pnpm/action-setup` from 6.0.4 to 6.0.8
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/pnpm/action-setup/releases">pnpm/action-setup's
releases</a>.</em></p>
<blockquote>
<h2>v6.0.8</h2>
<h2>What's Changed</h2>
<ul>
<li>docs(README): fix <code>cache_dependency_path</code> type by <a
href="https://github.com/haines"><code>@​haines</code></a> in <a
href="https://redirect.github.com/pnpm/action-setup/pull/257">pnpm/action-setup#257</a></li>
<li>fix: drop patchPnpmEnv so standalone+self-update works on Windows by
<a href="https://github.com/zkochan"><code>@​zkochan</code></a> in <a
href="https://redirect.github.com/pnpm/action-setup/pull/258">pnpm/action-setup#258</a></li>
<li>fix: update pnpm to 11.1.1 by <a
href="https://github.com/mungodewar"><code>@​mungodewar</code></a> in <a
href="https://redirect.github.com/pnpm/action-setup/pull/248">pnpm/action-setup#248</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/mungodewar"><code>@​mungodewar</code></a> made
their first contribution in <a
href="https://redirect.github.com/pnpm/action-setup/pull/248">pnpm/action-setup#248</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/pnpm/action-setup/compare/v6.0.7...v6.0.8">https://github.com/pnpm/action-setup/compare/v6.0.7...v6.0.8</a></p>
<h2>v6.0.7</h2>
<h2>What's Changed</h2>
<ul>
<li>fix: honor devEngines.packageManager.onFail=error (<a
href="https://redirect.github.com/pnpm/action-setup/issues/252">#252</a>)
by <a href="https://github.com/zkochan"><code>@​zkochan</code></a> in <a
href="https://redirect.github.com/pnpm/action-setup/pull/254">pnpm/action-setup#254</a></li>
<li>fix: restore inputs from state in post by <a
href="https://github.com/haines"><code>@​haines</code></a> in <a
href="https://redirect.github.com/pnpm/action-setup/pull/255">pnpm/action-setup#255</a></li>
<li>fix: self-update bootstrap to packageManager-pinned version (<a
href="https://redirect.github.com/pnpm/action-setup/issues/233">#233</a>)
by <a href="https://github.com/zkochan"><code>@​zkochan</code></a> in <a
href="https://redirect.github.com/pnpm/action-setup/pull/256">pnpm/action-setup#256</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/haines"><code>@​haines</code></a> made
their first contribution in <a
href="https://redirect.github.com/pnpm/action-setup/pull/255">pnpm/action-setup#255</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/pnpm/action-setup/compare/v6.0.6...v6.0.7">https://github.com/pnpm/action-setup/compare/v6.0.6...v6.0.7</a></p>
<h2>v6.0.6</h2>
<h2>What's Changed</h2>
<ul>
<li>fix: bin_dest output points to self-updated pnpm, not bootstrap by
<a href="https://github.com/zkochan"><code>@​zkochan</code></a> in <a
href="https://redirect.github.com/pnpm/action-setup/pull/249">pnpm/action-setup#249</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/pnpm/action-setup/compare/v6.0.5...v6.0.6">https://github.com/pnpm/action-setup/compare/v6.0.5...v6.0.6</a></p>
<h2>v6.0.5</h2>
<h2>What's Changed</h2>
<ul>
<li>fix: append (not prepend) action node dir to PATH for npm bootstrap
by <a href="https://github.com/zkochan"><code>@​zkochan</code></a> in <a
href="https://redirect.github.com/pnpm/action-setup/pull/241">pnpm/action-setup#241</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/pnpm/action-setup/compare/v6.0.4...v6.0.5">https://github.com/pnpm/action-setup/compare/v6.0.4...v6.0.5</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pnpm/action-setup/commit/0e279bb959325dab635dd2c09392533439d90093"><code>0e279bb</code></a>
fix: update pnpm to 11.1.1 (<a
href="https://redirect.github.com/pnpm/action-setup/issues/248">#248</a>)</li>
<li><a
href="https://github.com/pnpm/action-setup/commit/3e835812ef01165f4f8ae08ade56da44427ed4e0"><code>3e83581</code></a>
fix: drop patchPnpmEnv so standalone+self-update works on Windows (<a
href="https://redirect.github.com/pnpm/action-setup/issues/258">#258</a>)</li>
<li><a
href="https://github.com/pnpm/action-setup/commit/551b42e879e37e74d986effdd2a1647d2b02d464"><code>551b42e</code></a>
docs(README): fix <code>cache_dependency_path</code> type (<a
href="https://redirect.github.com/pnpm/action-setup/issues/257">#257</a>)</li>
<li><a
href="https://github.com/pnpm/action-setup/commit/739bfe42ca9233c5e6aca07c1a25a9d34aca49b0"><code>739bfe4</code></a>
fix: self-update bootstrap to packageManager-pinned version (<a
href="https://redirect.github.com/pnpm/action-setup/issues/233">#233</a>)
(<a
href="https://redirect.github.com/pnpm/action-setup/issues/256">#256</a>)</li>
<li><a
href="https://github.com/pnpm/action-setup/commit/f61705d907761b3b5209e83910fafd1fea50c5a1"><code>f61705d</code></a>
chore: add CODEOWNERS</li>
<li><a
href="https://github.com/pnpm/action-setup/commit/7a5507b117647ab83e96e9db317ba2234056ebf3"><code>7a5507b</code></a>
fix: restore inputs from state in post (<a
href="https://redirect.github.com/pnpm/action-setup/issues/255">#255</a>)</li>
<li><a
href="https://github.com/pnpm/action-setup/commit/1155470f3e5fb872accd4d104b8dfcda41f676ce"><code>1155470</code></a>
fix: honor devEngines.packageManager.onFail=error (<a
href="https://redirect.github.com/pnpm/action-setup/issues/252">#252</a>)
(<a
href="https://redirect.github.com/pnpm/action-setup/issues/254">#254</a>)</li>
<li><a
href="https://github.com/pnpm/action-setup/commit/91ab88e2619ed1f46221f0ba42d1492c02baf788"><code>91ab88e</code></a>
fix: bin_dest output points to self-updated pnpm, not bootstrap (<a
href="https://redirect.github.com/pnpm/action-setup/issues/249">#249</a>)</li>
<li><a
href="https://github.com/pnpm/action-setup/commit/e578e19d19d31b011b841ba2aca34731a5f706a5"><code>e578e19</code></a>
fix: update pnpm to 11.0.4</li>
<li><a
href="https://github.com/pnpm/action-setup/commit/8912a9102ac27614460f54aedde9e1e7f9aec20d"><code>8912a91</code></a>
fix: append (not prepend) action node dir to PATH for npm bootstrap (<a
href="https://redirect.github.com/pnpm/action-setup/issues/241">#241</a>)</li>
<li>See full diff in <a
href="https://github.com/pnpm/action-setup/compare/26f6d4f2c533a43e6b5da0b4a5dd983f98f7b49a...0e279bb959325dab635dd2c09392533439d90093">compare
view</a></li>
</ul>
</details>
<br />

Updates `changesets/action` from 1.7.0 to 1.8.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/changesets/action/releases">changesets/action's
releases</a>.</em></p>
<blockquote>
<h2>v1.8.0</h2>
<h3>Minor Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/changesets/action/pull/258">#258</a>
<a
href="https://github.com/changesets/action/commit/f5dbf72f96949cb0daf45152f0f63062df70e97d"><code>f5dbf72</code></a>
Thanks <a
href="https://github.com/tom-sherman"><code>@​tom-sherman</code></a>! -
Support draft version PR modes with a new <code>prDraft</code> input.
Use <code>create</code> to create new version PRs as drafts, or
<code>always</code> to also convert existing version PRs back to draft
when updating them.</li>
</ul>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/changesets/action/pull/502">#502</a>
<a
href="https://github.com/changesets/action/commit/6002dbd987f49a3c0a134910d9c7bca975b79977"><code>6002dbd</code></a>
Thanks <a
href="https://github.com/oshytiko"><code>@​oshytiko</code></a>! - Fixed
initial <code>.changeset</code> state being picked up, when
<code>cwd</code> parameter is provided</p>
</li>
<li>
<p><a
href="https://redirect.github.com/changesets/action/pull/536">#536</a>
<a
href="https://github.com/changesets/action/commit/81b3f61ebffcb868f73e4c0b2682517149c834a2"><code>81b3f61</code></a>
Thanks <a href="https://github.com/radnan"><code>@​radnan</code></a>! -
Fixed <code>.changeset</code> state being picked for the version command
when <code>cwd</code> parameter is provided</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/changesets/action/blob/main/CHANGELOG.md">changesets/action's
changelog</a>.</em></p>
<blockquote>
<h1><code>@​changesets/action</code></h1>
<h2>1.8.0</h2>
<h3>Minor Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/changesets/action/pull/258">#258</a>
<a
href="https://github.com/changesets/action/commit/f5dbf72f96949cb0daf45152f0f63062df70e97d"><code>f5dbf72</code></a>
Thanks <a
href="https://github.com/tom-sherman"><code>@​tom-sherman</code></a>! -
Support draft version PR modes with a new <code>prDraft</code> input.
Use <code>create</code> to create new version PRs as drafts, or
<code>always</code> to also convert existing version PRs back to draft
when updating them.</li>
</ul>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/changesets/action/pull/502">#502</a>
<a
href="https://github.com/changesets/action/commit/6002dbd987f49a3c0a134910d9c7bca975b79977"><code>6002dbd</code></a>
Thanks <a
href="https://github.com/oshytiko"><code>@​oshytiko</code></a>! - Fixed
initial <code>.changeset</code> state being picked up, when
<code>cwd</code> parameter is provided</p>
</li>
<li>
<p><a
href="https://redirect.github.com/changesets/action/pull/536">#536</a>
<a
href="https://github.com/changesets/action/commit/81b3f61ebffcb868f73e4c0b2682517149c834a2"><code>81b3f61</code></a>
Thanks <a href="https://github.com/radnan"><code>@​radnan</code></a>! -
Fixed <code>.changeset</code> state being picked for the version command
when <code>cwd</code> parameter is provided</p>
</li>
</ul>
<h2>1.7.0</h2>
<h3>Minor Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/changesets/action/pull/564">#564</a>
<a
href="https://github.com/changesets/action/commit/935fe876b0054dfc962ac86bcddf028460040d46"><code>935fe87</code></a>
Thanks <a
href="https://github.com/Andarist"><code>@​Andarist</code></a>! -
Automatically use the GitHub-provided token to allow most users to avoid
explicit <code>GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}</code>
configuration.</li>
</ul>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/changesets/action/pull/545">#545</a>
<a
href="https://github.com/changesets/action/commit/54220dd92c06e7da112b139f95d8beb933e4cdde"><code>54220dd</code></a>
Thanks <a
href="https://github.com/ryanbas21"><code>@​ryanbas21</code></a>! - The
<code>.npmrc</code> generation now intelligently handles both
traditional NPM token authentication and trusted publishing scenarios by
only appending the auth token when <code>NPM_TOKEN</code> is defined.
This prevents 'undefined' from being written to the registry
configuration when using OIDC tokens from GitHub Actions trusted
publishing.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/changesets/action/pull/563">#563</a>
<a
href="https://github.com/changesets/action/commit/6af4a7ec080d23ac6b304f69b67fd0aa92e089e7"><code>6af4a7e</code></a>
Thanks <a
href="https://github.com/Andarist"><code>@​Andarist</code></a>! - Don't
error on already committed symlinks and executables that stay
untouched</p>
</li>
</ul>
<h2>1.6.0</h2>
<h3>Minor Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/changesets/action/pull/558">#558</a>
<a
href="https://github.com/changesets/action/commit/342005d41242bccd9dd9ae8d3679efce96af48ae"><code>342005d</code></a>
Thanks <a
href="https://github.com/harsha-venugopal-ledn"><code>@​harsha-venugopal-ledn</code></a>!
- Upgrade from Node.js 20 to Node.js 24 LTS</li>
</ul>
<h2>1.5.3</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/changesets/action/pull/477">#477</a>
<a
href="https://github.com/changesets/action/commit/9d933dcd11c284ac49a835db884c3c1008b2b96f"><code>9d933dc</code></a>
Thanks <a
href="https://github.com/Andarist"><code>@​Andarist</code></a>! -
Updated <code>@actions/*</code> and <code>@octokit/*</code>
dependencies.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/changesets/action/pull/479">#479</a>
<a
href="https://github.com/changesets/action/commit/cf373e45c90a0cc564cd2770de3e9a3a4cdd4603"><code>cf373e4</code></a>
Thanks <a
href="https://github.com/Andarist"><code>@​Andarist</code></a>! -
Switched to <code>esbuild</code> for bundling the dist file. This led to
45% file size reduction.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/changesets/action/pull/488">#488</a>
<a
href="https://github.com/changesets/action/commit/022692ba027b33bf46d4d41907a317fbf04461a7"><code>022692b</code></a>
Thanks <a href="https://github.com/s0"><code>@​s0</code></a>! - Fix PRs
sometimes not getting reopened with <code>commitMode:
github-api</code></p>
<p>There was a race-condition that means sometimes existing PRs would
not be found,
and new PRs would be opened. This has now been fixed by fetching
existing PRs
before making any changes.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/changesets/action/pull/486">#486</a>
<a
href="https://github.com/changesets/action/commit/7ed195554624ebd75c08aa477b53110f61cc78f7"><code>7ed1955</code></a>
Thanks <a href="https://github.com/s0"><code>@​s0</code></a>! - Fixed
situations in which <code>cwd</code> was specified as a relative path
and used with (default) <code>commitMode: git-cli</code></p>
</li>
<li>
<p><a
href="https://redirect.github.com/changesets/action/pull/461">#461</a>
<a
href="https://github.com/changesets/action/commit/e9c36b696406360bf04204ad32e3dcf3ad752b77"><code>e9c36b6</code></a>
Thanks <a
href="https://github.com/nayounsang"><code>@​nayounsang</code></a>! -
Avoid hitting a deprecation warning when encountering errors from
<code>@octokit/request-error</code></p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/changesets/action/commit/63a615b9cd06ba9a3e6d13796c7fbcb080a60a0b"><code>63a615b</code></a>
v1.8.0</li>
<li><a
href="https://github.com/changesets/action/commit/84c24326acc93f51d3f24f30a546316c82e2115c"><code>84c2432</code></a>
Version Packages (<a
href="https://redirect.github.com/changesets/action/issues/598">#598</a>)</li>
<li><a
href="https://github.com/changesets/action/commit/f5dbf72f96949cb0daf45152f0f63062df70e97d"><code>f5dbf72</code></a>
Add draft mode support (<a
href="https://redirect.github.com/changesets/action/issues/258">#258</a>)</li>
<li><a
href="https://github.com/changesets/action/commit/91b911142e975cceaa134eecb302493230d68c05"><code>91b9111</code></a>
Protect publishes with env gate (<a
href="https://redirect.github.com/changesets/action/issues/610">#610</a>)</li>
<li><a
href="https://github.com/changesets/action/commit/d4c53c294341eec8a419ec2d1927138bfdeec234"><code>d4c53c2</code></a>
Fix <code>CODEOWNERS</code> pattern</li>
<li><a
href="https://github.com/changesets/action/commit/2ae596f3dd74aaee4f346b31fda33a58528d3d40"><code>2ae596f</code></a>
Tweak CI setup (<a
href="https://redirect.github.com/changesets/action/issues/599">#599</a>)</li>
<li><a
href="https://github.com/changesets/action/commit/0784b0ec8fcaa273fc06742c926ee7cfc946a8e7"><code>0784b0e</code></a>
Add <code>CODEOWNERS</code></li>
<li><a
href="https://github.com/changesets/action/commit/81b3f61ebffcb868f73e4c0b2682517149c834a2"><code>81b3f61</code></a>
Fixed <code>.changeset</code> state being picked for the version command
when <code>cwd</code> para...</li>
<li><a
href="https://github.com/changesets/action/commit/6002dbd987f49a3c0a134910d9c7bca975b79977"><code>6002dbd</code></a>
Fix reading <code>.changeset</code> directory from path provided in
<code>cwd</code> parameter (<a
href="https://redirect.github.com/changesets/action/issues/502">#502</a>)</li>
<li>See full diff in <a
href="https://github.com/changesets/action/compare/6a0a831ff30acef54f2c6aa1cbbc1096b066edaf...63a615b9cd06ba9a3e6d13796c7fbcb080a60a0b">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-02 23:25:27 -07:00
github-actions[bot] e5bd490c52 chore: version packages (#2470)
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


# Releases
## @langchain/langgraph-sdk@1.9.13

### Patch Changes

- [#2469](https://github.com/langchain-ai/langgraphjs/pull/2469)
[`0bbe66e`](https://github.com/langchain-ai/langgraphjs/commit/0bbe66e31de3abe7526c7810755a40c31bc60e0d)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): normalize HITL edit decisions for Python servers

`StreamController.respond()` now mirrors camelCase and snake_case on
edit
decisions (`editedAction` / `edited_action`) so JS clients can resume
    human-in-the-loop interrupts against Python LangGraph servers.

## @langchain/angular@1.0.13

### Patch Changes

- Updated dependencies
\[[`0bbe66e`](https://github.com/langchain-ai/langgraphjs/commit/0bbe66e31de3abe7526c7810755a40c31bc60e0d)]:
    -   @langchain/langgraph-sdk@1.9.13

## @langchain/react@1.0.13

### Patch Changes

- Updated dependencies
\[[`0bbe66e`](https://github.com/langchain-ai/langgraphjs/commit/0bbe66e31de3abe7526c7810755a40c31bc60e0d)]:
    -   @langchain/langgraph-sdk@1.9.13

## @langchain/svelte@1.0.13

### Patch Changes

- Updated dependencies
\[[`0bbe66e`](https://github.com/langchain-ai/langgraphjs/commit/0bbe66e31de3abe7526c7810755a40c31bc60e0d)]:
    -   @langchain/langgraph-sdk@1.9.13

## @langchain/vue@1.0.13

### Patch Changes

- Updated dependencies
\[[`0bbe66e`](https://github.com/langchain-ai/langgraphjs/commit/0bbe66e31de3abe7526c7810755a40c31bc60e0d)]:
    -   @langchain/langgraph-sdk@1.9.13

## @example/ai-elements@0.1.28

### Patch Changes

-   Updated dependencies \[]:
    -   @langchain/react@1.0.13

## @examples/assistant-ui-claude@0.1.28

### Patch Changes

-   Updated dependencies \[]:
    -   @langchain/react@1.0.13

## @examples/ui-angular@0.0.38

### Patch Changes

- Updated dependencies
\[[`0bbe66e`](https://github.com/langchain-ai/langgraphjs/commit/0bbe66e31de3abe7526c7810755a40c31bc60e0d)]:
    -   @langchain/langgraph-sdk@1.9.13
    -   @langchain/angular@1.0.13

## @examples/ui-multimodal@0.0.14

### Patch Changes

-   Updated dependencies \[]:
    -   @langchain/react@1.0.13

## @examples/ui-react@0.0.14

### Patch Changes

- Updated dependencies
\[[`0bbe66e`](https://github.com/langchain-ai/langgraphjs/commit/0bbe66e31de3abe7526c7810755a40c31bc60e0d)]:
    -   @langchain/langgraph-sdk@1.9.13
    -   @langchain/react@1.0.13

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@langchain/angular@1.0.13 @langchain/langgraph-sdk@1.9.13 @langchain/react@1.0.13 @langchain/svelte@1.0.13 @langchain/vue@1.0.13
2026-06-02 11:34:58 -07:00
Christian Bromann 0bbe66e31d fix(sdk): normalize HITL edit decisions for Python servers (#2469)
## Summary
- Normalize HITL resume payloads in `StreamController.respond()` and
`respondAll()` so edit decisions include both `editedAction` and
`edited_action`.
- Add `normalizeHitlResponseForServer` in the SDK UI layer and export it
for direct use.
- Cover normalization with unit tests on the payload helper and on
`respond()` wiring.
2026-06-02 11:30:15 -07:00
github-actions[bot] c6b29fb040 chore: version packages (#2465)
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


# Releases
## @langchain/langgraph-checkpoint-mongodb@1.3.3

### Patch Changes

- [#2260](https://github.com/langchain-ai/langgraphjs/pull/2260)
[`4d03dcb`](https://github.com/langchain-ai/langgraphjs/commit/4d03dcbc28bbfdf4c0f0ac065b9853652836d2f9)
Thanks [@venkat22022202](https://github.com/venkat22022202)! -
fix(mongodb): include pendingWrites in list() results

## @langchain/langgraph@1.3.4

### Patch Changes

- [#2035](https://github.com/langchain-ai/langgraphjs/pull/2035)
[`7c3a98b`](https://github.com/langchain-ai/langgraphjs/commit/7c3a98b23af29fee0d9f064942abb71044ed0e51)
Thanks [@JadenKim-dev](https://github.com/JadenKim-dev)! - fix(core):
prevent Zod schema defaults from overwriting checkpoint state in
Command.update

- Updated dependencies
\[[`0491534`](https://github.com/langchain-ai/langgraphjs/commit/04915347128e40fc9617647cadba6b472a357d36)]:
    -   @langchain/langgraph-sdk@1.9.12

## @langchain/langgraph-sdk@1.9.12

### Patch Changes

- [#2467](https://github.com/langchain-ai/langgraphjs/pull/2467)
[`0491534`](https://github.com/langchain-ai/langgraphjs/commit/04915347128e40fc9617647cadba6b472a357d36)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): route headless tool resumes through respond on v1 stream

`useStream` was calling `submit(null, { command })` for headless-tool
resumes,
    which dispatches `run.start` without delivering the tool result. Add
`applyHeadlessToolResumeCommand` to route payloads through `respond` /
`respondAll`, and tighten headless-tool browser tests to assert
end-to-end
    resume and graph completion.

## @langchain/angular@1.0.12

### Patch Changes

- [#2467](https://github.com/langchain-ai/langgraphjs/pull/2467)
[`0491534`](https://github.com/langchain-ai/langgraphjs/commit/04915347128e40fc9617647cadba6b472a357d36)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): route headless tool resumes through respond on v1 stream

`useStream` was calling `submit(null, { command })` for headless-tool
resumes,
    which dispatches `run.start` without delivering the tool result. Add
`applyHeadlessToolResumeCommand` to route payloads through `respond` /
`respondAll`, and tighten headless-tool browser tests to assert
end-to-end
    resume and graph completion.

- Updated dependencies
\[[`0491534`](https://github.com/langchain-ai/langgraphjs/commit/04915347128e40fc9617647cadba6b472a357d36)]:
    -   @langchain/langgraph-sdk@1.9.12

## @langchain/react@1.0.12

### Patch Changes

- [#2467](https://github.com/langchain-ai/langgraphjs/pull/2467)
[`0491534`](https://github.com/langchain-ai/langgraphjs/commit/04915347128e40fc9617647cadba6b472a357d36)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): route headless tool resumes through respond on v1 stream

`useStream` was calling `submit(null, { command })` for headless-tool
resumes,
    which dispatches `run.start` without delivering the tool result. Add
`applyHeadlessToolResumeCommand` to route payloads through `respond` /
`respondAll`, and tighten headless-tool browser tests to assert
end-to-end
    resume and graph completion.

- Updated dependencies
\[[`0491534`](https://github.com/langchain-ai/langgraphjs/commit/04915347128e40fc9617647cadba6b472a357d36)]:
    -   @langchain/langgraph-sdk@1.9.12

## @langchain/svelte@1.0.12

### Patch Changes

- [#2467](https://github.com/langchain-ai/langgraphjs/pull/2467)
[`0491534`](https://github.com/langchain-ai/langgraphjs/commit/04915347128e40fc9617647cadba6b472a357d36)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): route headless tool resumes through respond on v1 stream

`useStream` was calling `submit(null, { command })` for headless-tool
resumes,
    which dispatches `run.start` without delivering the tool result. Add
`applyHeadlessToolResumeCommand` to route payloads through `respond` /
`respondAll`, and tighten headless-tool browser tests to assert
end-to-end
    resume and graph completion.

- Updated dependencies
\[[`0491534`](https://github.com/langchain-ai/langgraphjs/commit/04915347128e40fc9617647cadba6b472a357d36)]:
    -   @langchain/langgraph-sdk@1.9.12

## @langchain/vue@1.0.12

### Patch Changes

- [#2467](https://github.com/langchain-ai/langgraphjs/pull/2467)
[`0491534`](https://github.com/langchain-ai/langgraphjs/commit/04915347128e40fc9617647cadba6b472a357d36)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): route headless tool resumes through respond on v1 stream

`useStream` was calling `submit(null, { command })` for headless-tool
resumes,
    which dispatches `run.start` without delivering the tool result. Add
`applyHeadlessToolResumeCommand` to route payloads through `respond` /
`respondAll`, and tighten headless-tool browser tests to assert
end-to-end
    resume and graph completion.

- Updated dependencies
\[[`0491534`](https://github.com/langchain-ai/langgraphjs/commit/04915347128e40fc9617647cadba6b472a357d36)]:
    -   @langchain/langgraph-sdk@1.9.12

## @example/ai-elements@0.1.27

### Patch Changes

- Updated dependencies
\[[`7c3a98b`](https://github.com/langchain-ai/langgraphjs/commit/7c3a98b23af29fee0d9f064942abb71044ed0e51),
[`0491534`](https://github.com/langchain-ai/langgraphjs/commit/04915347128e40fc9617647cadba6b472a357d36)]:
    -   @langchain/langgraph@1.3.4
    -   @langchain/react@1.0.12

## @examples/assistant-ui-claude@0.1.27

### Patch Changes

- Updated dependencies
\[[`7c3a98b`](https://github.com/langchain-ai/langgraphjs/commit/7c3a98b23af29fee0d9f064942abb71044ed0e51),
[`0491534`](https://github.com/langchain-ai/langgraphjs/commit/04915347128e40fc9617647cadba6b472a357d36)]:
    -   @langchain/langgraph@1.3.4
    -   @langchain/react@1.0.12

## @examples/ui-angular@0.0.37

### Patch Changes

- Updated dependencies
\[[`7c3a98b`](https://github.com/langchain-ai/langgraphjs/commit/7c3a98b23af29fee0d9f064942abb71044ed0e51),
[`0491534`](https://github.com/langchain-ai/langgraphjs/commit/04915347128e40fc9617647cadba6b472a357d36)]:
    -   @langchain/langgraph@1.3.4
    -   @langchain/langgraph-sdk@1.9.12
    -   @langchain/angular@1.0.12

## @examples/ui-multimodal@0.0.13

### Patch Changes

- Updated dependencies
\[[`7c3a98b`](https://github.com/langchain-ai/langgraphjs/commit/7c3a98b23af29fee0d9f064942abb71044ed0e51),
[`0491534`](https://github.com/langchain-ai/langgraphjs/commit/04915347128e40fc9617647cadba6b472a357d36)]:
    -   @langchain/langgraph@1.3.4
    -   @langchain/react@1.0.12

## @examples/ui-react@0.0.13

### Patch Changes

- Updated dependencies
\[[`7c3a98b`](https://github.com/langchain-ai/langgraphjs/commit/7c3a98b23af29fee0d9f064942abb71044ed0e51),
[`0491534`](https://github.com/langchain-ai/langgraphjs/commit/04915347128e40fc9617647cadba6b472a357d36)]:
    -   @langchain/langgraph@1.3.4
    -   @langchain/langgraph-sdk@1.9.12
    -   @langchain/react@1.0.12

## langgraph@1.0.36

### Patch Changes

- Updated dependencies
\[[`7c3a98b`](https://github.com/langchain-ai/langgraphjs/commit/7c3a98b23af29fee0d9f064942abb71044ed0e51)]:
    -   @langchain/langgraph@1.3.4

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@langchain/angular@1.0.12 @langchain/langgraph-checkpoint-mongodb@1.3.3 @langchain/langgraph-sdk@1.9.12 @langchain/langgraph@1.3.4 @langchain/react@1.0.12 @langchain/svelte@1.0.12 @langchain/vue@1.0.12
2026-06-02 10:57:53 -07:00
Christian Bromann 0491534712 fix(sdk): route headless tool resumes through respond on v1 stream (#2467)
## Summary

- Fix headless-tool resume on the v1 stream protocol by routing resume
payloads through `applyHeadlessToolResumeCommand` (`respond` /
`respondAll`) instead of `submit(null, { command })`.
- Export `applyHeadlessToolResumeCommand` and
`HeadlessToolResumeController` from `@langchain/langgraph-sdk` and
re-export from `@langchain/react`.
- Strengthen headless-tool browser tests across React, Vue, Angular, and
Svelte to assert tool result values, final agent message, idle loading
state, and no lingering interrupts.
2026-06-02 10:53:27 -07:00
Venkata Krishnan S 4d03dcbc28 fix(langgraph-checkpoint-mongodb): include pendingWrites in list() results (#2260)
## Summary

Fixes #2205
Fixes #589

`MongoDBSaver.list()` does not query or return `pendingWrites` in the
yielded `CheckpointTuple` objects. This is inconsistent with
`getTuple()` (which correctly queries the writes collection) and with
other checkpointer implementations like Postgres.

## Fix

Added the same `pendingWrites` query from `getTuple()` into `list()`,
ensuring each yielded checkpoint tuple includes its pending writes.

## Test Plan

- Store checkpoints with pending writes via MongoDBSaver
- Call `list()` and verify `pendingWrites` are populated
- Compare with `getTuple()` output to confirm consistency

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Christian Bromann <git@bromann.dev>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-01 22:17:40 -07:00
Youngho Kim 7c3a98b23a fix(core): prevent Zod schema defaults from overwriting checkpoint state in Command.update (#2035)
Fixes #2031

When using `Command({ update })` with a Zod schema that has `.default()`
on fields, Zod's `parse()` injects default values for missing fields
into the update object. These injected keys then overwrite values
restored from the checkpoint.

**Root cause:** `_validateInput` passes `Command.update` through
`interopParse(schema, input.update)`, which triggers Zod defaults for
any field not present in the update.

**Fix:** After parsing, filter the result to only include keys that were
present in the original update input — matching the behavior of
`StateSchema.validateInput` which already iterates only over
`Object.entries(data)`.

Added regression tests for both Zod v3 and v4.

---------

Co-authored-by: Christian Bromann <git@bromann.dev>
2026-06-01 22:14:09 -07:00
Kimaswa Emmanuel Yusufu bc3b98e1bd docs: import messagesStateReducer in low_level.md example (#2464)
The `messagesStateReducer` example on the Low Level concepts page uses
`messagesStateReducer` as its reducer, but the import only brings in
`Annotation` and the `Messages` type. Copy-pasting it as-is fails to
compile with `Cannot find name 'messagesStateReducer'`. This adds it to
the import. The equivalent example just below already imports it the
same way.
2026-06-01 21:46:23 -07:00
github-actions[bot] d2ca90f8e2 chore: version packages (#2453)
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


# Releases
## @langchain/langgraph-checkpoint@1.0.4

### Patch Changes

- [#2344](https://github.com/langchain-ai/langgraphjs/pull/2344)
[`0125920`](https://github.com/langchain-ai/langgraphjs/commit/0125920a2c4a87dc1d66aaf541ea16146f8cf842)
Thanks [@dependabot](https://github.com/apps/dependabot)! - chore(deps):
bump uuid to 14.0.0 and keep checkpoint ID ordering stable

Bump `uuid` from 10.x/13.x to 14.0.0 across packages. Starting with uuid
11, `v6({ clockseq })` no longer advances the sub-millisecond time
counter when an explicit `clockseq` is passed, so checkpoint IDs created
within the same millisecond were ordered only by `clockseq`. Since
checkpoint IDs are sorted lexicographically, this broke ordering — most
visibly for the negative `clockseq` used by the first ("input")
checkpoint, which sorted as the newest.

`uuid6()` now maintains its own monotonic `(msecs, nsecs)` clock
(mirroring uuid 10's internal v1 behavior) so the time component is
always strictly increasing and checkpoint ordering no longer depends on
the `clockseq` value. `emptyCheckpoint()` also uses a non-negative
`clockseq`.

## @langchain/langgraph-checkpoint-mongodb@1.3.2

### Patch Changes

- [#2186](https://github.com/langchain-ai/langgraphjs/pull/2186)
[`26c2e32`](https://github.com/langchain-ai/langgraphjs/commit/26c2e325f435a2c061d6b78a7bd6af089cb1e0e6)
Thanks [@jackjin1997](https://github.com/jackjin1997)! - fix: metadata
filter in list() now works by querying a plain JSON shadow copy instead
of the serialized binary blob

## @langchain/langgraph-checkpoint-postgres@1.0.2

### Patch Changes

- [#2255](https://github.com/langchain-ai/langgraphjs/pull/2255)
[`e82a50b`](https://github.com/langchain-ai/langgraphjs/commit/e82a50b961a9413dab1ad2248747d5c73a6a1e58)
Thanks [@leesta24](https://github.com/leesta24)! -
fix(checkpoint-postgres): move serialization outside transaction in
put()

## @langchain/langgraph-checkpoint-redis@1.0.7

### Patch Changes

- [#2344](https://github.com/langchain-ai/langgraphjs/pull/2344)
[`0125920`](https://github.com/langchain-ai/langgraphjs/commit/0125920a2c4a87dc1d66aaf541ea16146f8cf842)
Thanks [@dependabot](https://github.com/apps/dependabot)! - chore(deps):
bump uuid to 14.0.0 and keep checkpoint ID ordering stable

Bump `uuid` from 10.x/13.x to 14.0.0 across packages. Starting with uuid
11, `v6({ clockseq })` no longer advances the sub-millisecond time
counter when an explicit `clockseq` is passed, so checkpoint IDs created
within the same millisecond were ordered only by `clockseq`. Since
checkpoint IDs are sorted lexicographically, this broke ordering — most
visibly for the negative `clockseq` used by the first ("input")
checkpoint, which sorted as the newest.

`uuid6()` now maintains its own monotonic `(msecs, nsecs)` clock
(mirroring uuid 10's internal v1 behavior) so the time component is
always strictly increasing and checkpoint ordering no longer depends on
the `clockseq` value. `emptyCheckpoint()` also uses a non-negative
`clockseq`.

## @langchain/langgraph-api@1.2.4

### Patch Changes

- [#2344](https://github.com/langchain-ai/langgraphjs/pull/2344)
[`0125920`](https://github.com/langchain-ai/langgraphjs/commit/0125920a2c4a87dc1d66aaf541ea16146f8cf842)
Thanks [@dependabot](https://github.com/apps/dependabot)! - chore(deps):
bump uuid to 14.0.0 and keep checkpoint ID ordering stable

Bump `uuid` from 10.x/13.x to 14.0.0 across packages. Starting with uuid
11, `v6({ clockseq })` no longer advances the sub-millisecond time
counter when an explicit `clockseq` is passed, so checkpoint IDs created
within the same millisecond were ordered only by `clockseq`. Since
checkpoint IDs are sorted lexicographically, this broke ordering — most
visibly for the negative `clockseq` used by the first ("input")
checkpoint, which sorted as the newest.

`uuid6()` now maintains its own monotonic `(msecs, nsecs)` clock
(mirroring uuid 10's internal v1 behavior) so the time component is
always strictly increasing and checkpoint ordering no longer depends on
the `clockseq` value. `emptyCheckpoint()` also uses a non-negative
`clockseq`.

-   Updated dependencies \[]:
    -   @langchain/langgraph-ui@1.2.4

## @langchain/langgraph-cli@1.2.4

### Patch Changes

- [#1925](https://github.com/langchain-ai/langgraphjs/pull/1925)
[`6503319`](https://github.com/langchain-ai/langgraphjs/commit/65033191cc3dd671d64dfac78ccdad453fdfbda2)
Thanks [@jbrody-nexxa](https://github.com/jbrody-nexxa)! - fix(cli): add
--no-reload flag to dev command

- Updated dependencies
\[[`0125920`](https://github.com/langchain-ai/langgraphjs/commit/0125920a2c4a87dc1d66aaf541ea16146f8cf842)]:
    -   @langchain/langgraph-api@1.2.4

## @langchain/langgraph@1.3.3

### Patch Changes

- [#2037](https://github.com/langchain-ai/langgraphjs/pull/2037)
[`9eb478f`](https://github.com/langchain-ai/langgraphjs/commit/9eb478ffeeda2ad9c3bff2cd0f0ac602b0a79f4f)
Thanks [@pawel-twardziak](https://github.com/pawel-twardziak)! -
Decouple `ContextType` generic from `configurable` in `PregelOptions` so
that providing a custom context type no longer incorrectly narrows the
configurable parameter.

- [#2457](https://github.com/langchain-ai/langgraphjs/pull/2457)
[`91a5494`](https://github.com/langchain-ai/langgraphjs/commit/91a54947155b3fad3234001e63e20099a63ed999)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(langgraph): pass context with stateful RemoteGraph runs

Pop `thread_id` from run `config.configurable` and forward `context` to
the SDK so checkpointed remote runs accept user context without a 400
from ambiguous parameters. Closes
[#1922](https://github.com/langchain-ai/langgraphjs/issues/1922).

- [#1988](https://github.com/langchain-ai/langgraphjs/pull/1988)
[`6d4bf92`](https://github.com/langchain-ai/langgraphjs/commit/6d4bf927e5cf3744034205528bcd09964949d6d7)
Thanks [@Axadali](https://github.com/Axadali)! - Fix race condition in
IterableReadableWritableStream.push() that caused ERR_INVALID_STATE
errors when streaming with multiple parallel nodes and aborting the
stream.

- [#2409](https://github.com/langchain-ai/langgraphjs/pull/2409)
[`101b70a`](https://github.com/langchain-ai/langgraphjs/commit/101b70aa8d7ec26ec1654ef814689b832f1e17f3)
Thanks [@pragnyanramtha](https://github.com/pragnyanramtha)! - Preserve
non-plain objects passed through `Send` and `Command` argument
deserialization.

- [#2344](https://github.com/langchain-ai/langgraphjs/pull/2344)
[`0125920`](https://github.com/langchain-ai/langgraphjs/commit/0125920a2c4a87dc1d66aaf541ea16146f8cf842)
Thanks [@dependabot](https://github.com/apps/dependabot)! - chore(deps):
bump uuid to 14.0.0 and keep checkpoint ID ordering stable

Bump `uuid` from 10.x/13.x to 14.0.0 across packages. Starting with uuid
11, `v6({ clockseq })` no longer advances the sub-millisecond time
counter when an explicit `clockseq` is passed, so checkpoint IDs created
within the same millisecond were ordered only by `clockseq`. Since
checkpoint IDs are sorted lexicographically, this broke ordering — most
visibly for the negative `clockseq` used by the first ("input")
checkpoint, which sorted as the newest.

`uuid6()` now maintains its own monotonic `(msecs, nsecs)` clock
(mirroring uuid 10's internal v1 behavior) so the time component is
always strictly increasing and checkpoint ordering no longer depends on
the `clockseq` value. `emptyCheckpoint()` also uses a non-negative
`clockseq`.

- Updated dependencies
\[[`863b555`](https://github.com/langchain-ai/langgraphjs/commit/863b555346de02c2c0be290e877b7d260a3f8856),
[`0125920`](https://github.com/langchain-ai/langgraphjs/commit/0125920a2c4a87dc1d66aaf541ea16146f8cf842)]:
    -   @langchain/langgraph-sdk@1.9.11
    -   @langchain/langgraph-checkpoint@1.0.4

## @langchain/langgraph-supervisor@1.0.4

### Patch Changes

- [#2344](https://github.com/langchain-ai/langgraphjs/pull/2344)
[`0125920`](https://github.com/langchain-ai/langgraphjs/commit/0125920a2c4a87dc1d66aaf541ea16146f8cf842)
Thanks [@dependabot](https://github.com/apps/dependabot)! - chore(deps):
bump uuid to 14.0.0 and keep checkpoint ID ordering stable

Bump `uuid` from 10.x/13.x to 14.0.0 across packages. Starting with uuid
11, `v6({ clockseq })` no longer advances the sub-millisecond time
counter when an explicit `clockseq` is passed, so checkpoint IDs created
within the same millisecond were ordered only by `clockseq`. Since
checkpoint IDs are sorted lexicographically, this broke ordering — most
visibly for the negative `clockseq` used by the first ("input")
checkpoint, which sorted as the newest.

`uuid6()` now maintains its own monotonic `(msecs, nsecs)` clock
(mirroring uuid 10's internal v1 behavior) so the time component is
always strictly increasing and checkpoint ordering no longer depends on
the `clockseq` value. `emptyCheckpoint()` also uses a non-negative
`clockseq`.

## @langchain/langgraph-sdk@1.9.11

### Patch Changes

- [#2455](https://github.com/langchain-ai/langgraphjs/pull/2455)
[`863b555`](https://github.com/langchain-ai/langgraphjs/commit/863b555346de02c2c0be290e877b7d260a3f8856)
Thanks [@JHSeo-git](https://github.com/JHSeo-git)! - fix(sdk): prefer
completed task's direct mapping over pending checkpoint's positional
guess in fetchSubagentHistory

- [#2344](https://github.com/langchain-ai/langgraphjs/pull/2344)
[`0125920`](https://github.com/langchain-ai/langgraphjs/commit/0125920a2c4a87dc1d66aaf541ea16146f8cf842)
Thanks [@dependabot](https://github.com/apps/dependabot)! - chore(deps):
bump uuid to 14.0.0 and keep checkpoint ID ordering stable

Bump `uuid` from 10.x/13.x to 14.0.0 across packages. Starting with uuid
11, `v6({ clockseq })` no longer advances the sub-millisecond time
counter when an explicit `clockseq` is passed, so checkpoint IDs created
within the same millisecond were ordered only by `clockseq`. Since
checkpoint IDs are sorted lexicographically, this broke ordering — most
visibly for the negative `clockseq` used by the first ("input")
checkpoint, which sorted as the newest.

`uuid6()` now maintains its own monotonic `(msecs, nsecs)` clock
(mirroring uuid 10's internal v1 behavior) so the time component is
always strictly increasing and checkpoint ordering no longer depends on
the `clockseq` value. `emptyCheckpoint()` also uses a non-negative
`clockseq`.

## @langchain/angular@1.0.11

### Patch Changes

- Updated dependencies
\[[`863b555`](https://github.com/langchain-ai/langgraphjs/commit/863b555346de02c2c0be290e877b7d260a3f8856),
[`0125920`](https://github.com/langchain-ai/langgraphjs/commit/0125920a2c4a87dc1d66aaf541ea16146f8cf842)]:
    -   @langchain/langgraph-sdk@1.9.11

## @langchain/react@1.0.11

### Patch Changes

- Updated dependencies
\[[`863b555`](https://github.com/langchain-ai/langgraphjs/commit/863b555346de02c2c0be290e877b7d260a3f8856),
[`0125920`](https://github.com/langchain-ai/langgraphjs/commit/0125920a2c4a87dc1d66aaf541ea16146f8cf842)]:
    -   @langchain/langgraph-sdk@1.9.11

## @langchain/svelte@1.0.11

### Patch Changes

- Updated dependencies
\[[`863b555`](https://github.com/langchain-ai/langgraphjs/commit/863b555346de02c2c0be290e877b7d260a3f8856),
[`0125920`](https://github.com/langchain-ai/langgraphjs/commit/0125920a2c4a87dc1d66aaf541ea16146f8cf842)]:
    -   @langchain/langgraph-sdk@1.9.11

## @langchain/vue@1.0.11

### Patch Changes

- Updated dependencies
\[[`863b555`](https://github.com/langchain-ai/langgraphjs/commit/863b555346de02c2c0be290e877b7d260a3f8856),
[`0125920`](https://github.com/langchain-ai/langgraphjs/commit/0125920a2c4a87dc1d66aaf541ea16146f8cf842)]:
    -   @langchain/langgraph-sdk@1.9.11

## @langchain/langgraph-ui@1.2.4



## @example/ai-elements@0.1.26

### Patch Changes

- Updated dependencies
\[[`9eb478f`](https://github.com/langchain-ai/langgraphjs/commit/9eb478ffeeda2ad9c3bff2cd0f0ac602b0a79f4f),
[`91a5494`](https://github.com/langchain-ai/langgraphjs/commit/91a54947155b3fad3234001e63e20099a63ed999),
[`6d4bf92`](https://github.com/langchain-ai/langgraphjs/commit/6d4bf927e5cf3744034205528bcd09964949d6d7),
[`101b70a`](https://github.com/langchain-ai/langgraphjs/commit/101b70aa8d7ec26ec1654ef814689b832f1e17f3),
[`0125920`](https://github.com/langchain-ai/langgraphjs/commit/0125920a2c4a87dc1d66aaf541ea16146f8cf842)]:
    -   @langchain/langgraph@1.3.3
    -   @langchain/react@1.0.11

## @examples/assistant-ui-claude@0.1.26

### Patch Changes

- Updated dependencies
\[[`9eb478f`](https://github.com/langchain-ai/langgraphjs/commit/9eb478ffeeda2ad9c3bff2cd0f0ac602b0a79f4f),
[`91a5494`](https://github.com/langchain-ai/langgraphjs/commit/91a54947155b3fad3234001e63e20099a63ed999),
[`6d4bf92`](https://github.com/langchain-ai/langgraphjs/commit/6d4bf927e5cf3744034205528bcd09964949d6d7),
[`101b70a`](https://github.com/langchain-ai/langgraphjs/commit/101b70aa8d7ec26ec1654ef814689b832f1e17f3),
[`0125920`](https://github.com/langchain-ai/langgraphjs/commit/0125920a2c4a87dc1d66aaf541ea16146f8cf842)]:
    -   @langchain/langgraph@1.3.3
    -   @langchain/react@1.0.11

## @examples/ui-angular@0.0.36

### Patch Changes

- Updated dependencies
\[[`863b555`](https://github.com/langchain-ai/langgraphjs/commit/863b555346de02c2c0be290e877b7d260a3f8856),
[`9eb478f`](https://github.com/langchain-ai/langgraphjs/commit/9eb478ffeeda2ad9c3bff2cd0f0ac602b0a79f4f),
[`91a5494`](https://github.com/langchain-ai/langgraphjs/commit/91a54947155b3fad3234001e63e20099a63ed999),
[`6d4bf92`](https://github.com/langchain-ai/langgraphjs/commit/6d4bf927e5cf3744034205528bcd09964949d6d7),
[`101b70a`](https://github.com/langchain-ai/langgraphjs/commit/101b70aa8d7ec26ec1654ef814689b832f1e17f3),
[`0125920`](https://github.com/langchain-ai/langgraphjs/commit/0125920a2c4a87dc1d66aaf541ea16146f8cf842)]:
    -   @langchain/langgraph-sdk@1.9.11
    -   @langchain/langgraph@1.3.3
    -   @langchain/angular@1.0.11

## @examples/ui-multimodal@0.0.12

### Patch Changes

- Updated dependencies
\[[`9eb478f`](https://github.com/langchain-ai/langgraphjs/commit/9eb478ffeeda2ad9c3bff2cd0f0ac602b0a79f4f),
[`91a5494`](https://github.com/langchain-ai/langgraphjs/commit/91a54947155b3fad3234001e63e20099a63ed999),
[`6d4bf92`](https://github.com/langchain-ai/langgraphjs/commit/6d4bf927e5cf3744034205528bcd09964949d6d7),
[`101b70a`](https://github.com/langchain-ai/langgraphjs/commit/101b70aa8d7ec26ec1654ef814689b832f1e17f3),
[`0125920`](https://github.com/langchain-ai/langgraphjs/commit/0125920a2c4a87dc1d66aaf541ea16146f8cf842)]:
    -   @langchain/langgraph@1.3.3
    -   @langchain/react@1.0.11

## @examples/ui-react@0.0.12

### Patch Changes

- Updated dependencies
\[[`863b555`](https://github.com/langchain-ai/langgraphjs/commit/863b555346de02c2c0be290e877b7d260a3f8856),
[`9eb478f`](https://github.com/langchain-ai/langgraphjs/commit/9eb478ffeeda2ad9c3bff2cd0f0ac602b0a79f4f),
[`91a5494`](https://github.com/langchain-ai/langgraphjs/commit/91a54947155b3fad3234001e63e20099a63ed999),
[`6d4bf92`](https://github.com/langchain-ai/langgraphjs/commit/6d4bf927e5cf3744034205528bcd09964949d6d7),
[`101b70a`](https://github.com/langchain-ai/langgraphjs/commit/101b70aa8d7ec26ec1654ef814689b832f1e17f3),
[`0125920`](https://github.com/langchain-ai/langgraphjs/commit/0125920a2c4a87dc1d66aaf541ea16146f8cf842)]:
    -   @langchain/langgraph-sdk@1.9.11
    -   @langchain/langgraph@1.3.3
    -   @langchain/react@1.0.11

## langgraph@1.0.35

### Patch Changes

- Updated dependencies
\[[`9eb478f`](https://github.com/langchain-ai/langgraphjs/commit/9eb478ffeeda2ad9c3bff2cd0f0ac602b0a79f4f),
[`91a5494`](https://github.com/langchain-ai/langgraphjs/commit/91a54947155b3fad3234001e63e20099a63ed999),
[`6d4bf92`](https://github.com/langchain-ai/langgraphjs/commit/6d4bf927e5cf3744034205528bcd09964949d6d7),
[`101b70a`](https://github.com/langchain-ai/langgraphjs/commit/101b70aa8d7ec26ec1654ef814689b832f1e17f3),
[`0125920`](https://github.com/langchain-ai/langgraphjs/commit/0125920a2c4a87dc1d66aaf541ea16146f8cf842)]:
    -   @langchain/langgraph@1.3.3

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@langchain/angular@1.0.11 @langchain/langgraph-api@1.2.4 @langchain/langgraph-checkpoint-mongodb@1.3.2 @langchain/langgraph-checkpoint-postgres@1.0.2 @langchain/langgraph-checkpoint-redis@1.0.7 @langchain/langgraph-checkpoint@1.0.4 @langchain/langgraph-cli@1.2.4 @langchain/langgraph-sdk@1.9.11 @langchain/langgraph-supervisor@1.0.4 @langchain/langgraph-ui@1.2.4 @langchain/langgraph@1.3.3 @langchain/react@1.0.11 @langchain/svelte@1.0.11 @langchain/vue@1.0.11
2026-06-01 09:20:26 -07:00
Jackjin 26c2e325f4 fix(langgraph-checkpoint-mongodb): MongoDB checkpointer metadata filter (#2186)
## Summary
- The `list()` method's metadata filter queried `metadata.${key}`
against a serialized binary blob, making it silently nonfunctional (dead
code)
- Added a plain JSON `metadata_search` field alongside the serialized
`metadata` in `put()`, and updated `list()` to query against it
- This is consistent with how Postgres (native JSONB `@>`) and SQLite
(`jsonb(CAST(...))`) handle metadata filtering

## Test plan
- [x] Existing unit tests pass (6/6)
- [ ] Integration test with real MongoDB to verify filter works against
`metadata_search`

Fixes #1591

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Christian Bromann <git@bromann.dev>
2026-05-31 23:59:11 -07:00
Pragnyan Ramtha 101b70aa8d fix: preserve non-plain Send args (#2409)
## Summary
- preserve non-plain object instances while deserializing
`Send`/`Command` argument trees
- keep recursive reconstruction for arrays, plain object records,
serialized `Command`, and serialized `Send` payloads
- add a regression test covering `Set`, `Map`, `Date`, and a custom
class instance passed through `Send`

Fixes part of #1142.

## Test plan
- `pnpm install --frozen-lockfile`
- `pnpm --filter @langchain/langgraph exec vitest run
src/tests/constants.test.ts --testNamePattern "preserves non-plain
objects"`
- `pnpm --filter @langchain/langgraph exec vitest run
src/tests/constants.test.ts`
- `pnpm exec oxfmt --check libs/langgraph-core/src/constants.ts
libs/langgraph-core/src/tests/constants.test.ts`
- `pnpm exec oxlint libs/langgraph-core/src/constants.ts
libs/langgraph-core/src/tests/constants.test.ts`
- `git diff --check`
- `pnpm --filter @langchain/langgraph build`

---------

Co-authored-by: Christian Bromann <git@bromann.dev>
2026-05-31 23:51:59 -07:00
dependabot[bot] 0125920a2c chore(deps): bump uuid from 10.0.0 to 14.0.0 (#2344)
Bumps [uuid](https://github.com/uuidjs/uuid) from 10.0.0 to 14.0.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/uuidjs/uuid/releases">uuid's
releases</a>.</em></p>
<blockquote>
<h2>v14.0.0</h2>
<h2><a
href="https://github.com/uuidjs/uuid/compare/v13.0.0...v14.0.0">14.0.0</a>
(2026-04-19)</h2>
<h3>⚠ BREAKING CHANGES</h3>
<ul>
<li>expect <code>crypto</code> to be global everywhere (requires
node@20+) (<a
href="https://redirect.github.com/uuidjs/uuid/issues/935">#935</a>)</li>
<li>drop node@18 support (<a
href="https://redirect.github.com/uuidjs/uuid/issues/934">#934</a>)</li>
</ul>
<h3>Features</h3>
<ul>
<li>drop node@18 support (<a
href="https://redirect.github.com/uuidjs/uuid/issues/934">#934</a>) (<a
href="https://github.com/uuidjs/uuid/commit/dc4ddb87272ed2843faccd130bcc41d492688bd3">dc4ddb8</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>expect <code>crypto</code> to be global everywhere (requires
node@20+) (<a
href="https://redirect.github.com/uuidjs/uuid/issues/935">#935</a>) (<a
href="https://github.com/uuidjs/uuid/commit/f2c235f93059325fa43e1106e624b5291bb523c4">f2c235f</a>)</li>
<li>Use GITHUB_TOKEN for release-please and enable npm provenance (<a
href="https://redirect.github.com/uuidjs/uuid/issues/925">#925</a>) (<a
href="https://github.com/uuidjs/uuid/commit/ffa31383e8e4e1f0b4e22e504561272041b8738c">ffa3138</a>)</li>
</ul>
<h2>v13.0.2</h2>
<h2><a
href="https://github.com/uuidjs/uuid/compare/v13.0.1...v13.0.2">13.0.2</a>
(2026-05-04)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>rerelease to fix provenance. (<a
href="https://github.com/uuidjs/uuid/commit/49ccb35f78c0c4ce1409dd2f1d89f83caadba10b">49ccb35</a>)</li>
</ul>
<h2>v13.0.1</h2>
<h2><a
href="https://github.com/uuidjs/uuid/compare/v13.0.0...v13.0.1">13.0.1</a>
(2026-04-27)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>backport fix for GHSA-w5hq-g745-h8pq (<a
href="https://github.com/uuidjs/uuid/commit/9d27ddf7046ce496ef39569ff84d948eeff9cb2a">9d27ddf</a>)</li>
</ul>
<h2>v13.0.0</h2>
<h2><a
href="https://github.com/uuidjs/uuid/compare/v12.0.0...v13.0.0">13.0.0</a>
(2025-09-08)</h2>
<h3>⚠ BREAKING CHANGES</h3>
<ul>
<li>make browser exports the default (<a
href="https://redirect.github.com/uuidjs/uuid/issues/901">#901</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>make browser exports the default (<a
href="https://redirect.github.com/uuidjs/uuid/issues/901">#901</a>) (<a
href="https://github.com/uuidjs/uuid/commit/bce9d72a3ae5b9a3dcd8eb21ef6d1820288a427a">bce9d72</a>)</li>
</ul>
<h2>v12.0.1</h2>
<h2><a
href="https://github.com/uuidjs/uuid/compare/v12.0.0...v12.0.1">12.0.1</a>
(2026-04-29)</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/uuidjs/uuid/blob/main/CHANGELOG.md">uuid's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/uuidjs/uuid/compare/v13.0.0...v14.0.0">14.0.0</a>
(2026-04-19)</h2>
<h3>Security</h3>
<ul>
<li>Fixes <a
href="https://github.com/uuidjs/uuid/security/advisories/GHSA-w5hq-g745-h8pq">GHSA-w5hq-g745-h8pq</a>:
<code>v3()</code>, <code>v5()</code>, and <code>v6()</code> did not
validate that writes would remain within the bounds of a caller-supplied
buffer, allowing out-of-bounds writes when an invalid
<code>offset</code> was provided. A <code>RangeError</code> is now
thrown if <code>offset &lt; 0</code> or <code>offset + 16 &gt;
buf.length</code>.</li>
</ul>
<h3>⚠ BREAKING CHANGES</h3>
<ul>
<li><code>crypto</code> is now expected to be globally defined (requires
node@20+) (<a
href="https://redirect.github.com/uuidjs/uuid/issues/935">#935</a>)</li>
<li>drop node@18 support (<a
href="https://redirect.github.com/uuidjs/uuid/issues/934">#934</a>)</li>
<li>upgrade minimum supported TypeScript version to 5.4.3, in keeping
with the project's policy of supporting TypeScript versions released
within the last two years</li>
</ul>
<h2><a
href="https://github.com/uuidjs/uuid/compare/v12.0.0...v13.0.0">13.0.0</a>
(2025-09-08)</h2>
<h3>⚠ BREAKING CHANGES</h3>
<ul>
<li>make browser exports the default (<a
href="https://redirect.github.com/uuidjs/uuid/issues/901">#901</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>make browser exports the default (<a
href="https://redirect.github.com/uuidjs/uuid/issues/901">#901</a>) (<a
href="https://github.com/uuidjs/uuid/commit/bce9d72a3ae5b9a3dcd8eb21ef6d1820288a427a">bce9d72</a>)</li>
</ul>
<h2><a
href="https://github.com/uuidjs/uuid/compare/v11.1.0...v12.0.0">12.0.0</a>
(2025-09-05)</h2>
<h3>⚠ BREAKING CHANGES</h3>
<ul>
<li>update to typescript@5.2 (<a
href="https://redirect.github.com/uuidjs/uuid/issues/887">#887</a>)</li>
<li>remove CommonJS support (<a
href="https://redirect.github.com/uuidjs/uuid/issues/886">#886</a>)</li>
<li>drop node@16 support (<a
href="https://redirect.github.com/uuidjs/uuid/issues/883">#883</a>)</li>
</ul>
<h3>Features</h3>
<ul>
<li>add node@24 to ci matrix (<a
href="https://redirect.github.com/uuidjs/uuid/issues/879">#879</a>) (<a
href="https://github.com/uuidjs/uuid/commit/42b6178aa21a593257f0a72abacd220f0b7b8a92">42b6178</a>)</li>
<li>drop node@16 support (<a
href="https://redirect.github.com/uuidjs/uuid/issues/883">#883</a>) (<a
href="https://github.com/uuidjs/uuid/commit/0f38cf10366ab074f9328ae2021eea04d5f2e530">0f38cf1</a>)</li>
<li>remove CommonJS support (<a
href="https://redirect.github.com/uuidjs/uuid/issues/886">#886</a>) (<a
href="https://github.com/uuidjs/uuid/commit/ae786e27265f50bcf7cead196c29f1869297c42f">ae786e2</a>)</li>
<li>update to typescript@5.2 (<a
href="https://redirect.github.com/uuidjs/uuid/issues/887">#887</a>) (<a
href="https://github.com/uuidjs/uuid/commit/c7ee40598ed78584d81ab78dffded9fe5ff20b01">c7ee405</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>improve v4() performance (<a
href="https://redirect.github.com/uuidjs/uuid/issues/894">#894</a>) (<a
href="https://github.com/uuidjs/uuid/commit/5fd974c12718c8848035650b69b8948f12ace197">5fd974c</a>)</li>
<li>restore node: prefix (<a
href="https://redirect.github.com/uuidjs/uuid/issues/889">#889</a>) (<a
href="https://github.com/uuidjs/uuid/commit/e1f42a354593093ba0479f0b4047dae82d28c507">e1f42a3</a>)</li>
</ul>
<h2><a
href="https://github.com/uuidjs/uuid/compare/v11.0.5...v11.1.0">11.1.0</a>
(2025-02-19)</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/uuidjs/uuid/commit/7c1ea087a8149b57380fc8bb7f68c3a215cb6e4b"><code>7c1ea08</code></a>
chore(main): release 14.0.0 (<a
href="https://redirect.github.com/uuidjs/uuid/issues/926">#926</a>)</li>
<li><a
href="https://github.com/uuidjs/uuid/commit/3d2c5b0342f0fcb52a5ac681c3d47c13e7444b34"><code>3d2c5b0</code></a>
Merge commit from fork</li>
<li><a
href="https://github.com/uuidjs/uuid/commit/f2c235f93059325fa43e1106e624b5291bb523c4"><code>f2c235f</code></a>
fix!: expect <code>crypto</code> to be global everywhere (requires
node@20+) (<a
href="https://redirect.github.com/uuidjs/uuid/issues/935">#935</a>)</li>
<li><a
href="https://github.com/uuidjs/uuid/commit/529ef0899f5dd503d2ee90d690585d63d78bc212"><code>529ef08</code></a>
chore: upgrade TypeScript and fixup types (<a
href="https://redirect.github.com/uuidjs/uuid/issues/927">#927</a>)</li>
<li><a
href="https://github.com/uuidjs/uuid/commit/086fd7976f11433edf9ac80be876b3ad243fe087"><code>086fd79</code></a>
chore: update dependencies (<a
href="https://redirect.github.com/uuidjs/uuid/issues/933">#933</a>)</li>
<li><a
href="https://github.com/uuidjs/uuid/commit/dc4ddb87272ed2843faccd130bcc41d492688bd3"><code>dc4ddb8</code></a>
feat!: drop node@18 support (<a
href="https://redirect.github.com/uuidjs/uuid/issues/934">#934</a>)</li>
<li><a
href="https://github.com/uuidjs/uuid/commit/0f1f9c9c9cedbae5a1d363d5406c5dfbabe81404"><code>0f1f9c9</code></a>
chore: switch to Biome for parsing and linting (<a
href="https://redirect.github.com/uuidjs/uuid/issues/932">#932</a>)</li>
<li><a
href="https://github.com/uuidjs/uuid/commit/e2879e64bf125add903c1eff6e0860542c605013"><code>e2879e6</code></a>
chore: use maintained version of npm-run-all (<a
href="https://redirect.github.com/uuidjs/uuid/issues/930">#930</a>)</li>
<li><a
href="https://github.com/uuidjs/uuid/commit/ffa31383e8e4e1f0b4e22e504561272041b8738c"><code>ffa3138</code></a>
fix: Use GITHUB_TOKEN for release-please and enable npm provenance (<a
href="https://redirect.github.com/uuidjs/uuid/issues/925">#925</a>)</li>
<li><a
href="https://github.com/uuidjs/uuid/commit/0423d49df2dc8efc300c804731d25f4d7e0fccc4"><code>0423d49</code></a>
docs: remove obsolete v1 option notes (<a
href="https://redirect.github.com/uuidjs/uuid/issues/915">#915</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/uuidjs/uuid/compare/v10.0.0...v14.0.0">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a
href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new
releaser for uuid since your current version.</p>
</details>
<details>
<summary>Install script changes</summary>
<p>This version adds <code>prepare</code> script that runs during
installation. Review the package contents before updating.</p>
</details>
<br />


> **Note**
> Automatic rebases have been disabled on this pull request as it has
been open for over 30 days.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Christian Bromann <git@bromann.dev>
2026-05-31 23:19:01 -07:00
jbrody-nexxa 65033191cc fix(langgraph-api): port --no-reload option to js CLI to match python implementation (#1925)
Implement a CLI option --no-reload that bypasses the watcher from
restarting the server when changes to file contents are detected. This
implementation matches the python CLI option implemented here:
https://github.com/langchain-ai/langgraph/blob/main/libs/cli/langgraph_cli/cli.py#L620

fixes https://github.com/langchain-ai/langgraphjs/issues/1942

---------

Co-authored-by: Christian Bromann <git@bromann.dev>
2026-05-31 22:45:35 -07:00
Christian Bromann 91a5494715 fix(langgraph): pass context with stateful RemoteGraph runs (#2457)
## Summary
- Fix [#1922](https://github.com/langchain-ai/langgraphjs/issues/1922)
by porting the Python
[langgraph#6497](https://github.com/langchain-ai/langgraph/pull/6497)
behavior: `RemoteGraph` pops `thread_id` from `config.configurable` (it
stays in the URL path) and passes `context` as a top-level field to
`client.runs.stream()`.
- Stateful remote runs can now combine checkpointing (`thread_id`) with
`context` for middleware / `contextSchema` without the server rejecting
ambiguous parameters.

fixes #1922
2026-05-31 22:28:35 -07:00
Asad Ali 6d4bf927e5 fix(langgraph): StreamMessagesHandler throws "Controller is already closed" errors during parallel streaming with abort #1908 (#1988)
<h2>Fix Race Condition in
<code>IterableReadableWritableStream.push()</code></h2>

Fixes #1908

<h3>Summary</h3>
<p>This PR addresses a critical race condition in
<code>IterableReadableWritableStream.push()</code> that was causing
<code>TypeError [ERR_INVALID_STATE]: Invalid state: Controller is
already closed</code> errors when streaming a graph with multiple
parallel LLM nodes and aborting the stream (or when it completes
naturally).</p>

<h3>Problem</h3>
<p>Users were experiencing numerous <code>ERR_INVALID_STATE</code>
errors in production when:</p>
<ul>
  <li>Streaming graphs with multiple parallel LLM nodes</li>
  <li>Aborting the stream or when it completes naturally</li>
<li>In-flight token callbacks from LLMs are asynchronous and may still
execute after stream closure</li>
<li>Calling <code>enqueue()</code> on a closed controller throws the
error</li>
<li>This race condition causes console flooding in production
environments</li>
</ul>

<h3>Solution</h3>
<p>The fix implements a robust two-layer approach to handle the race
condition:</p>
<ol>
<li><strong>Pre-checking State:</strong> Checking
<code>this._closed</code> and <code>this.controller</code> existence
before attempting <code>enqueue</code></li>
<li><strong>Try-Catch Protection:</strong> Wrapping the
<code>enqueue</code> operation to catch any remaining race
conditions</li>
<li><strong>Specific Error Handling:</strong> Only suppressing the
"Controller is already closed" error while allowing other errors to
propagate</li>
<li><strong>Maintaining Semantics:</strong> Preserving all existing
functionality while preventing the problematic errors</li>
</ol>

<h3>Code Changes</h3>
<p>Modified <code>push()</code> method in
<code>libs/langgraph-core/src/pregel/stream.ts</code>:</p>

<pre><code>push(chunk: StreamChunk) {
  // Prevent pushing to a closed stream to avoid race condition errors
  if (this._closed || !this.controller) {
// Silently drop chunks when stream is closed - this is expected
behavior
    // when async operations try to push after stream termination
    return;
  }

  try {
    // Forward chunk to passthrough function if provided
    this.passthroughFn?.(chunk);

    // Attempt to enqueue the chunk to the underlying stream
    this.controller.enqueue(chunk);
  } catch (error) {
// Handle the specific case where controller was closed between check
and enqueue
    // This race condition can occur with parallel async operations
    if (error instanceof TypeError && 
        error.message.includes('Controller is already closed')) {
// Silently ignore - this is expected during stream closure with
concurrent pushes
      return;
    }
// Re-throw any other unexpected errors to maintain proper error
reporting
    throw error;
  }
}
</code></pre>

<h3>Enhanced Test Coverage</h3>
<p>Added comprehensive test scenarios covering:</p>
<ul>
  <li>Basic race condition handling</li>
  <li>Concurrent pushes during closure</li>
  <li>Rapid successive operations</li>
  <li>Passthrough function integration during race conditions</li>
  <li>Multiple close calls</li>
  <li>Parallel node simulation mimicking the original issue</li>
</ul>

<h3>Backwards Compatibility</h3>
<ul>
  <li> No changes to public API</li>
  <li> No changes to stream behavior during normal operation</li>
  <li> Maintains all existing functionality</li>
  <li> Only affects the error case (pushes after stream closure)</li>
</ul>

<h3>Testing</h3>
<p>The fix has been validated across multiple scenarios:</p>
<ul>
  <li>Basic race condition scenarios</li>
  <li>Concurrent operations during stream closure</li>
  <li>Multiple parallel nodes simulating the original issue</li>
  <li>Edge cases with multiple close calls</li>
  <li>Passthrough function integration</li>
</ul>

<h3>Impact</h3>
<ul>
<li> Eliminates console flooding with <code>ERR_INVALID_STATE</code>
errors</li>
<li> Improves stability in production environments with parallel
streaming</li>
<li> Maintains performance and functionality of normal stream
operations</li>
  <li> Safe for use with multiple parallel LLM nodes</li>
</ul>

<p>This fix resolves the race condition issue while maintaining full
backward compatibility and following best practices for error handling
in async environments.</p>

---------

Co-authored-by: Christian Bromann <git@bromann.dev>
2026-05-31 21:55:55 -07:00
Ibrahim Arshad c5dcbd176d fix(langgraph): handle null thread checkpoint in RemoteGraph.getState (#2331)
Fixes #2328

## Summary
This PR fixes a crash in `RemoteGraph.getState()` when the backend
returns thread state with `checkpoint: null` (for example, an existing
thread before any checkpoint-producing run).

Previously, `_createStateSnapshot` assumed `state.checkpoint` was always
present and dereferenced `state.checkpoint.thread_id`, causing:

`TypeError: Cannot read properties of null (reading 'thread_id')`

## What changed
- Added null-safe checkpoint handling in `RemoteGraph`:
- Introduced checkpoint-to-config conversion with fallback behavior when
checkpoint is null/missing.
- Falls back to the caller-provided config (e.g. `thread_id`) when
server checkpoint is absent.
- Updated state snapshot creation paths (`getState`, `getStateHistory`,
and nested task state snapshots) to use the null-safe conversion.
- Added a regression test:
- `getState handles null checkpoint` in
`libs/langgraph-core/src/tests/remote.test.ts`

## Result
`RemoteGraph.getState()` no longer throws for valid thread states where
`checkpoint` is null, and returns a usable `StateSnapshot` with fallback
config instead.

## Validation
- Added and passed targeted regression test in `remote.test.ts`.
- Ran local preflight checks:
  - formatting, lint, build passed.
- broad unit sweep passed except container-runtime-dependent suites in
`checkpoint-validation` (environment/Testcontainers limitation).

---------

Co-authored-by: Christian Bromann <git@bromann.dev>
2026-05-31 21:22:38 -07:00
JHSeo 863b555346 fix(sdk): prefer completed task's direct mapping over pending checkpoint's positional guess in fetchSubagentHistory (#2455)
Fixes #2454

## Problem

`StreamManager.fetchSubagentHistory` (`libs/sdk/src/ui/manager.ts`)
restores each subagent's conversation from its subgraph checkpoint by
first resolving every subagent `tool_call_id` to its subgraph
`checkpoint_ns`. It scans the parent thread's history **newest-first**
and, per checkpoint, tries two strategies:

1. **Direct mapping** — read the `tool_call_id` straight off a completed
PUSH task's result `ToolMessage` (`task.name + ":" + task.id`). The code
comments correctly call this *"more robust than positional alignment ...
preferred"*.
2. **Positional fallback** — when task results aren't populated yet,
align push tasks to the AI message's subagent tool calls by Send index
(`task.path[1]`).

The loop **breaks on the first checkpoint that yields any mapping**
(direct *or* positional). That break is the bug.

When the most recent checkpoint is a still-pending PUSH task — e.g. a
run stopped at an interrupt — its task has no result, so the direct map
is empty and the **positional fallback runs against the head checkpoint
instead**. The fallback's backward scan of `values.messages` then
latches onto a *stale* AI message whose subagent actually **completed in
an older checkpoint**, positionally aligns it to the head's unrelated
pending task, and breaks — before the loop ever reaches the older
checkpoint whose task result holds the **correct** direct mapping.

Net effect: the subagent's history is reconstructed from the **wrong
subgraph namespace** (or not at all). A newer, lower-confidence
positional guess silently shadows an older, authoritative direct mapping
— the opposite of the code's stated intent.

## Fix

Split namespace resolution into two phases:

1. **Phase 1 — direct mapping across the _entire_ history first.**
Collect all `tool_call_id → namespace` mappings from completed task
results before attempting any fallback. These are unambiguous, so no
pending head checkpoint can pre-empt them.
2. **Phase 2 — positional fallback only for tool calls still unmapped**
after phase 1 (the genuinely live/pending case). This preserves the
existing behavior for in-flight runs while guaranteeing a correct direct
mapping is never overwritten by a positional guess.

No backend/protocol change is required — the server already serializes
the correct material (the completed task result with the matching
`tool_call_id`); only the client-side resolution order was wrong.

## Testing

- Added a regression test (`fetchSubagentHistory namespace resolution`):
a pending head checkpoint sitting in front of an older checkpoint that
holds the correct completed mapping. Verified it **fails on the pre-fix
code** (`expected [ 'Stale pending result' ] to include 'Correct
research result'`) and **passes with this change**.
- `vitest run` (SDK): **595 passed**, no type errors.
- `oxlint`: 0 warnings / 0 errors · `oxfmt --check`: clean · `tsc -p
libs/sdk/tsconfig.json --noEmit`: clean.

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: Christian Bromann <git@bromann.dev>
2026-05-31 20:54:44 -07:00
Juyi Wu e82a50b961 fix(langgraph-checkpoint-postgres): move serialization outside transaction in put() (#2255) 2026-05-29 17:47:22 -07:00
pawel-twardziak 9eb478ffee fix(langgraph): decouple ContextType from configurable in PregelOptions (#2037)
## Summary

When a `StateGraph` is created with a `contextSchema` (Zod), two
TypeScript errors occur:

1. **TS2589** ("excessively deep type instantiation") on the
`StateGraph` constructor
2. **TS2322** on `invoke()`/`stream()` - context schema fields (e.g.
`userName`, `userId`) are incorrectly required inside `configurable`
instead of top-level `context`

**Root cause:** `PregelOptions` extends `RunnableConfig<ContextType>`,
which maps the context type onto `configurable?` at the invoke/stream
level. The deep generic chain `StateGraph → Pregel → PregelOptions →
RunnableConfig<ContextType>` causes TS2589 with complex context schemas.
And TS2322 forces users to put context fields in `configurable` instead
of top-level `context`.

**Fix:** Remove the `<ContextType>` generic parameter from
`RunnableConfig` in `PregelOptions` only. This breaks the deep generic
chain at the invoke/stream boundary while preserving typed
`configurable` and `context` inside node callbacks (via
`LangGraphRunnableConfig<T>` / `Runtime<T>`).

## Changes

- **`libs/langgraph-core/src/pregel/types.ts`** - `PregelOptions` now
extends `RunnableConfig` (default) instead of
`RunnableConfig<ContextType>`. This is the only production code change.
- **`libs/langgraph-core/src/pregel/runnable_types.ts`** - Restored
`Runtime.configurable` to `ContextType` and `LangGraphRunnableConfig` to
extend `RunnableConfig<ContextType>` (reverting a previous attempt that
broke backward compat).
- **`libs/langgraph-core/src/tests/pregel.test-d.ts`** - Removed two
`@ts-expect-error` directives for invoke-level configurable (now
`Record<string, any>`, validated at runtime by Zod).
- **`libs/langgraph-core/src/tests/issue_10270_repro.test-d.ts`** -
Regression test reproducing both bugs from the issue.

## Trade-off

| Aspect | Before | After |
|--------|--------|-------|
| `graph.invoke({}, { configurable: { bad: 123 } })` | Compile error |
Compiles, validated at runtime |
| `graph.invoke({}, { context: { ... } })` | Compile error (TS2322) |
Compiles correctly ✓ |
| Node callback `config.configurable` / `config.context` | Typed as `T`
| Typed as `T` (unchanged) ✓ |
| `new StateGraph({ state, context: zodSchema })` | TS2589 | Compiles ✓
|

The only loss is compile-time validation of `configurable` content at
invoke level - mitigated by runtime Zod schema validation which the
codebase already performs.

Fixes [#10270](https://github.com/langchain-ai/langchainjs/issues/10270)

---------

Co-authored-by: Christian Bromann <git@bromann.dev>
2026-05-29 17:31:28 -07:00
dependabot[bot] 0fc86c27c5 chore(deps): bump protobufjs from 6.11.6 to 7.6.0 (#2429)
Bumps [protobufjs](https://github.com/protobufjs/protobuf.js) from
6.11.6 to 7.6.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/protobufjs/protobuf.js/releases">protobufjs's
releases</a>.</em></p>
<blockquote>
<h2>protobufjs: v7.6.0</h2>
<h2><a
href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.9...protobufjs-v7.6.0">7.6.0</a>
(2026-05-18)</h2>
<h3>Features</h3>
<ul>
<li>Support BigInt conversions (7.x) (<a
href="https://redirect.github.com/protobufjs/protobuf.js/issues/2258">#2258</a>)
(<a
href="https://github.com/protobufjs/protobuf.js/commit/f76924244504b159efe1bb13b154fd17be3c13e7">f769242</a>)</li>
</ul>
<h2>protobufjs: v7.5.9</h2>
<h2><a
href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.8...protobufjs-v7.5.9">7.5.9</a>
(2026-05-17)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>Backport bundler-safe optional module lookups (<a
href="https://redirect.github.com/protobufjs/protobuf.js/issues/2254">#2254</a>)
(<a
href="https://github.com/protobufjs/protobuf.js/commit/0853a625680f9247596b84ef48082b8f4e554797">0853a62</a>)</li>
</ul>
<h2>protobufjs: v7.5.8</h2>
<h2><a
href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.7...protobufjs-v7.5.8">7.5.8</a>
(2026-05-12)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>Backport parser hardening to 7.x (<a
href="https://redirect.github.com/protobufjs/protobuf.js/issues/2245">#2245</a>)
(<a
href="https://github.com/protobufjs/protobuf.js/commit/54b593ffd960f7fe4b0c448a12542c3de0a0cf26">54b593f</a>)</li>
</ul>
<h2>protobufjs: v7.5.7</h2>
<h2><a
href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.6...protobufjs-v7.5.7">7.5.7</a>
(2026-05-09)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>Restore first-match namespace lookup (<a
href="https://redirect.github.com/protobufjs/protobuf.js/issues/2236">#2236</a>)
(<a
href="https://github.com/protobufjs/protobuf.js/commit/cc7d59559d4e8c533a35218310c67f4a5dda54f5">cc7d595</a>)</li>
</ul>
<h2>protobufjs: v7.5.6</h2>
<h2><a
href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.5...protobufjs-v7.5.6">7.5.6</a>
(2026-04-27)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>Backport input hardening and CLI fixes to 7.x (<a
href="https://redirect.github.com/protobufjs/protobuf.js/issues/2173">#2173</a>)
(<a
href="https://github.com/protobufjs/protobuf.js/commit/75392ea1b78bdc4faba027b5db44ad7c50e9c454">75392ea</a>)</li>
</ul>
<h2>v7.5.5</h2>
<p>This release backports two reported security issues to 7.x
branch.</p>
<ul>
<li>fix: do not allow setting <code>__proto__</code> in Message
constructor (<a
href="https://redirect.github.com/protobufjs/protobuf.js/issues/2126">#2126</a>)</li>
<li>fix: filter invalid characters from the type name (<a
href="https://redirect.github.com/protobufjs/protobuf.js/issues/2127">#2127</a>)</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.4...protobufjs-v7.5.5">https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.4...protobufjs-v7.5.5</a></p>
<h2>protobufjs: v7.5.4</h2>
<h2><a
href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.3...protobufjs-v7.5.4">7.5.4</a>
(2025-08-15)</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/protobufjs/protobuf.js/blob/protobufjs-v7.6.0/CHANGELOG.md">protobufjs's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.9...protobufjs-v7.6.0">7.6.0</a>
(2026-05-18)</h2>
<h3>Features</h3>
<ul>
<li>Support BigInt conversions (7.x) (<a
href="https://redirect.github.com/protobufjs/protobuf.js/issues/2258">#2258</a>)
(<a
href="https://github.com/protobufjs/protobuf.js/commit/f76924244504b159efe1bb13b154fd17be3c13e7">f769242</a>)</li>
</ul>
<h2><a
href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.8...protobufjs-v7.5.9">7.5.9</a>
(2026-05-17)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>Backport bundler-safe optional module lookups (<a
href="https://redirect.github.com/protobufjs/protobuf.js/issues/2254">#2254</a>)
(<a
href="https://github.com/protobufjs/protobuf.js/commit/0853a625680f9247596b84ef48082b8f4e554797">0853a62</a>)</li>
</ul>
<h2><a
href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.7...protobufjs-v7.5.8">7.5.8</a>
(2026-05-12)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>Backport parser hardening to 7.x (<a
href="https://redirect.github.com/protobufjs/protobuf.js/issues/2245">#2245</a>)
(<a
href="https://github.com/protobufjs/protobuf.js/commit/54b593ffd960f7fe4b0c448a12542c3de0a0cf26">54b593f</a>)</li>
</ul>
<h2><a
href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.6...protobufjs-v7.5.7">7.5.7</a>
(2026-05-09)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>Restore first-match namespace lookup (<a
href="https://redirect.github.com/protobufjs/protobuf.js/issues/2236">#2236</a>)
(<a
href="https://github.com/protobufjs/protobuf.js/commit/cc7d59559d4e8c533a35218310c67f4a5dda54f5">cc7d595</a>)</li>
</ul>
<h2><a
href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.5...protobufjs-v7.5.6">7.5.6</a>
(2026-04-27)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>Backport input hardening and CLI fixes to 7.x (<a
href="https://redirect.github.com/protobufjs/protobuf.js/issues/2173">#2173</a>)
(<a
href="https://github.com/protobufjs/protobuf.js/commit/75392ea1b78bdc4faba027b5db44ad7c50e9c454">75392ea</a>)</li>
</ul>
<h2><a
href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.3...protobufjs-v7.5.4">7.5.4</a>
(2025-08-15)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>invalid syntax in descriptor.proto (<a
href="https://redirect.github.com/protobufjs/protobuf.js/issues/2092">#2092</a>)
(<a
href="https://github.com/protobufjs/protobuf.js/commit/5a3769a465fead089a533ad55c21d069299df760">5a3769a</a>)</li>
</ul>
<h2><a
href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.2...protobufjs-v7.5.3">7.5.3</a>
(2025-05-28)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>descriptor extensions handling post-editions (<a
href="https://redirect.github.com/protobufjs/protobuf.js/issues/2075">#2075</a>)
(<a
href="https://github.com/protobufjs/protobuf.js/commit/6e255d4ad6982cc857f26e1731c2cedcf5796f68">6e255d4</a>)</li>
</ul>
<h2><a
href="https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.1...protobufjs-v7.5.2">7.5.2</a>
(2025-05-14)</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/protobufjs/protobuf.js/commit/e30c3341382b504a975d0d83f19170218cb461c3"><code>e30c334</code></a>
chore: release protobufjs-v7.x (<a
href="https://redirect.github.com/protobufjs/protobuf.js/issues/2260">#2260</a>)</li>
<li><a
href="https://github.com/protobufjs/protobuf.js/commit/f76924244504b159efe1bb13b154fd17be3c13e7"><code>f769242</code></a>
feat: Support BigInt conversions (7.x) (<a
href="https://redirect.github.com/protobufjs/protobuf.js/issues/2258">#2258</a>)</li>
<li><a
href="https://github.com/protobufjs/protobuf.js/commit/ab3862d133ab9b824f12eab5f993784333543dbf"><code>ab3862d</code></a>
chore: release protobufjs-v7.x (<a
href="https://redirect.github.com/protobufjs/protobuf.js/issues/2255">#2255</a>)</li>
<li><a
href="https://github.com/protobufjs/protobuf.js/commit/0853a625680f9247596b84ef48082b8f4e554797"><code>0853a62</code></a>
fix: Backport bundler-safe optional module lookups (<a
href="https://redirect.github.com/protobufjs/protobuf.js/issues/2254">#2254</a>)</li>
<li><a
href="https://github.com/protobufjs/protobuf.js/commit/d7035f9b7f06210ea343cab1f2f1cc18ee5cc1d6"><code>d7035f9</code></a>
chore: release protobufjs-v7.x (<a
href="https://redirect.github.com/protobufjs/protobuf.js/issues/2248">#2248</a>)</li>
<li><a
href="https://github.com/protobufjs/protobuf.js/commit/54b593ffd960f7fe4b0c448a12542c3de0a0cf26"><code>54b593f</code></a>
fix: Backport parser hardening to 7.x (<a
href="https://redirect.github.com/protobufjs/protobuf.js/issues/2245">#2245</a>)</li>
<li><a
href="https://github.com/protobufjs/protobuf.js/commit/e88fcea1635f79c414e8a070e164d38ea99e104a"><code>e88fcea</code></a>
chore: release protobufjs-v7.x (<a
href="https://redirect.github.com/protobufjs/protobuf.js/issues/2239">#2239</a>)</li>
<li><a
href="https://github.com/protobufjs/protobuf.js/commit/cc7d59559d4e8c533a35218310c67f4a5dda54f5"><code>cc7d595</code></a>
fix: Restore first-match namespace lookup (<a
href="https://redirect.github.com/protobufjs/protobuf.js/issues/2236">#2236</a>)</li>
<li><a
href="https://github.com/protobufjs/protobuf.js/commit/3abc9b54d67a7102785c6dfd8bf6610f545d445b"><code>3abc9b5</code></a>
chore: release protobufjs-v7.x (<a
href="https://redirect.github.com/protobufjs/protobuf.js/issues/2190">#2190</a>)</li>
<li><a
href="https://github.com/protobufjs/protobuf.js/commit/a0bf2dfdd8a75aa62ce5a1ff47a52b9b8f1ea793"><code>a0bf2df</code></a>
fix: Update CLI peer dependency (7.x) (<a
href="https://redirect.github.com/protobufjs/protobuf.js/issues/2189">#2189</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/protobufjs/protobuf.js/compare/v6.11.6...protobufjs-v7.6.0">compare
view</a></li>
</ul>
</details>
<details>
<summary>Install script changes</summary>
<p>This version modifies <code>prepublish</code> script that runs during
installation. Review the package contents before updating.</p>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=protobufjs&package-manager=npm_and_yarn&previous-version=6.11.6&new-version=7.6.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/langchain-ai/langgraphjs/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-29 17:31:00 -07:00