Commit Graph

285 Commits

Author SHA1 Message Date
github-actions[bot] 86389fa3a6 chore: version packages (#2567)
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.1.3

### Patch Changes

- [#2566](https://github.com/langchain-ai/langgraphjs/pull/2566)
[`091a46f`](https://github.com/langchain-ai/langgraphjs/commit/091a46f32ddd3a85ee89e35fb9ea953dfc4cf8b4)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(langgraph-checkpoint-postgres): prevent createAgent failures with
PostgresSaver

Add BaseCheckpointSaver.toJSON() so ConfigurableModel can stringify
runnable config without traversing pg Pool timers, and default missing
checkpoint maps on load/copy so resume no longer crashes on undefined
versions_seen. Closes
[#1808](https://github.com/langchain-ai/langgraphjs/issues/1808).

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

### Patch Changes

- [#2566](https://github.com/langchain-ai/langgraphjs/pull/2566)
[`091a46f`](https://github.com/langchain-ai/langgraphjs/commit/091a46f32ddd3a85ee89e35fb9ea953dfc4cf8b4)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(langgraph-checkpoint-postgres): prevent createAgent failures with
PostgresSaver

Add BaseCheckpointSaver.toJSON() so ConfigurableModel can stringify
runnable config without traversing pg Pool timers, and default missing
checkpoint maps on load/copy so resume no longer crashes on undefined
versions_seen. Closes
[#1808](https://github.com/langchain-ai/langgraphjs/issues/1808).

## @langchain/langgraph-api@1.4.1

### Patch Changes

- [#2568](https://github.com/langchain-ai/langgraphjs/pull/2568)
[`38d15e2`](https://github.com/langchain-ai/langgraphjs/commit/38d15e2f1f9dded34665a602cd9311cbcf5fbefc)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(langgraph-api): support configurable TypeScript loaders in dev
server

Add `node_loader` to `langgraph.json` (and `LANGGRAPH_NODE_LOADER` env
override) so projects using reflect-metadata can use `ts-node`
(`--loader ts-node/esm`) instead of the default tsx CLI. Other loaders
default to `--import`; only registered shorthands like `ts-node` use
`--loader`. `--no-reload` now also disables tsx's internal watch mode.
Closes [#1834](https://github.com/langchain-ai/langgraphjs/issues/1834).

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

## @langchain/langgraph-cli@1.4.1

### Patch Changes

- [#2568](https://github.com/langchain-ai/langgraphjs/pull/2568)
[`38d15e2`](https://github.com/langchain-ai/langgraphjs/commit/38d15e2f1f9dded34665a602cd9311cbcf5fbefc)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(langgraph-api): support configurable TypeScript loaders in dev
server

Add `node_loader` to `langgraph.json` (and `LANGGRAPH_NODE_LOADER` env
override) so projects using reflect-metadata can use `ts-node`
(`--loader ts-node/esm`) instead of the default tsx CLI. Other loaders
default to `--import`; only registered shorthands like `ts-node` use
`--loader`. `--no-reload` now also disables tsx's internal watch mode.
Closes [#1834](https://github.com/langchain-ai/langgraphjs/issues/1834).

- Updated dependencies
\[[`38d15e2`](https://github.com/langchain-ai/langgraphjs/commit/38d15e2f1f9dded34665a602cd9311cbcf5fbefc)]:
    -   @langchain/langgraph-api@1.4.1

## @langchain/langgraph@1.4.6

### Patch Changes

-
[`03a0d8b`](https://github.com/langchain-ai/langgraphjs/commit/03a0d8b8632082e6dbf4a96fcf37f8f67151b74f)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(langgraph): emit valid UUIDs for exit-mode delta task_ids

Exit-mode DeltaChannel writes used a step-prefixed synthetic task id
that produced a 6-segment string Postgres rejects for
`checkpoint_writes.task_id uuid` in LangGraph API. Embed the superstep
in the first UUID group instead, matching langchain-ai/langgraph#8165.

- Updated dependencies
\[[`0558e47`](https://github.com/langchain-ai/langgraphjs/commit/0558e472b7697304c62cb6fe69cc3005e8e1a457),
[`091a46f`](https://github.com/langchain-ai/langgraphjs/commit/091a46f32ddd3a85ee89e35fb9ea953dfc4cf8b4)]:
    -   @langchain/langgraph-sdk@1.9.25
    -   @langchain/langgraph-checkpoint@1.1.3

## @langchain/langgraph-sdk@1.9.25

### Patch Changes

- [#2565](https://github.com/langchain-ai/langgraphjs/pull/2565)
[`0558e47`](https://github.com/langchain-ai/langgraphjs/commit/0558e472b7697304c62cb6fe69cc3005e8e1a457)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): bundle pure-ESM deps into CJS build to fix ERR_REQUIRE_ESM

Bundle the pure-ESM dependencies `p-retry` and `p-queue` (and their
transitive ESM-only deps) into the build output so the CJS artifact no
longer does a top-level `require()` of an ESM module. This fixes
`ERR_REQUIRE_ESM` for CommonJS consumers on Node versions where
`require(ESM)` is not enabled by default (< 20.19 / < 22.12).
Closes [#2562](https://github.com/langchain-ai/langgraphjs/issues/2562).

## @langchain/angular@1.0.26

### Patch Changes

- Updated dependencies
\[[`0558e47`](https://github.com/langchain-ai/langgraphjs/commit/0558e472b7697304c62cb6fe69cc3005e8e1a457)]:
    -   @langchain/langgraph-sdk@1.9.25

## @langchain/react@1.0.26

### Patch Changes

- Updated dependencies
\[[`0558e47`](https://github.com/langchain-ai/langgraphjs/commit/0558e472b7697304c62cb6fe69cc3005e8e1a457)]:
    -   @langchain/langgraph-sdk@1.9.25

## @langchain/svelte@1.0.26

### Patch Changes

- Updated dependencies
\[[`0558e47`](https://github.com/langchain-ai/langgraphjs/commit/0558e472b7697304c62cb6fe69cc3005e8e1a457)]:
    -   @langchain/langgraph-sdk@1.9.25

## @langchain/vue@1.0.26

### Patch Changes

- Updated dependencies
\[[`0558e47`](https://github.com/langchain-ai/langgraphjs/commit/0558e472b7697304c62cb6fe69cc3005e8e1a457)]:
    -   @langchain/langgraph-sdk@1.9.25

## @langchain/langgraph-ui@1.4.1



## @example/ai-elements@0.1.42

### Patch Changes

- Updated dependencies
\[[`03a0d8b`](https://github.com/langchain-ai/langgraphjs/commit/03a0d8b8632082e6dbf4a96fcf37f8f67151b74f)]:
    -   @langchain/langgraph@1.4.6
    -   @langchain/react@1.0.26

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

### Patch Changes

- Updated dependencies
\[[`03a0d8b`](https://github.com/langchain-ai/langgraphjs/commit/03a0d8b8632082e6dbf4a96fcf37f8f67151b74f)]:
    -   @langchain/langgraph@1.4.6
    -   @langchain/react@1.0.26

## @examples/ui-angular@0.0.52

### Patch Changes

- Updated dependencies
\[[`0558e47`](https://github.com/langchain-ai/langgraphjs/commit/0558e472b7697304c62cb6fe69cc3005e8e1a457),
[`03a0d8b`](https://github.com/langchain-ai/langgraphjs/commit/03a0d8b8632082e6dbf4a96fcf37f8f67151b74f)]:
    -   @langchain/langgraph-sdk@1.9.25
    -   @langchain/langgraph@1.4.6
    -   @langchain/angular@1.0.26

## @examples/ui-multimodal@0.0.28

### Patch Changes

- Updated dependencies
\[[`03a0d8b`](https://github.com/langchain-ai/langgraphjs/commit/03a0d8b8632082e6dbf4a96fcf37f8f67151b74f)]:
    -   @langchain/langgraph@1.4.6
    -   @langchain/react@1.0.26

## @examples/ui-react@0.0.28

### Patch Changes

- Updated dependencies
\[[`0558e47`](https://github.com/langchain-ai/langgraphjs/commit/0558e472b7697304c62cb6fe69cc3005e8e1a457),
[`03a0d8b`](https://github.com/langchain-ai/langgraphjs/commit/03a0d8b8632082e6dbf4a96fcf37f8f67151b74f)]:
    -   @langchain/langgraph-sdk@1.9.25
    -   @langchain/langgraph@1.4.6
    -   @langchain/react@1.0.26

## langgraph@1.0.46

### Patch Changes

- Updated dependencies
\[[`03a0d8b`](https://github.com/langchain-ai/langgraphjs/commit/03a0d8b8632082e6dbf4a96fcf37f8f67151b74f)]:
    -   @langchain/langgraph@1.4.6

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-06-24 17:51:02 -07:00
Christian Bromann 0558e472b7 fix(sdk): bundle pure-ESM deps into CJS build to fix ERR_REQUIRE_ESM (#2565)
## Summary
- Fix `ERR_REQUIRE_ESM` in `@langchain/langgraph-sdk` for CommonJS
consumers on Node < 20.19 / < 22.12: the CJS build no longer does a
top-level `require()` of the pure-ESM `p-retry`/`p-queue`. They (and
their transitive ESM-only deps) are now bundled and transpiled into
relative CJS chunks.
- Add per-package build overrides via an optional `tsdown.config.ts`,
mirroring the langchainjs convention. `internal/build` discovers and
merges it (`config: false` disables tsdown's own discovery so the
config's imports resolve from the package dir), and re-exports
`defineConfig` from `@langchain/build` so packages get type-safe configs
without depending on `tsdown` directly.
- Remove the leftover `libs/checkpoint-redis/langchain.config.js` (from
the old `@langchain/scripts` build) — it was the only package still
carrying one and the current tsdown build ignores it.

Fixes #2562
2026-06-22 14:56:09 -07:00
github-actions[bot] 31261c3be5 chore: version packages (#2558)
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.4.0

### Minor Changes

- [#1928](https://github.com/langchain-ai/langgraphjs/pull/1928)
[`3d7fcea`](https://github.com/langchain-ai/langgraphjs/commit/3d7fcea7d7ea7f1203d24be9df607d5a8e8717bc)
Thanks [@Mihailoff](https://github.com/Mihailoff)! - Add TTL support for
automatic checkpoint expiration

    -   Add optional `ttl` parameter to MongoDBSaver (value in seconds)
    -   Add `setup()` method to create TTL indexes on collections
    -   Add `upserted_at` timestamp to documents when TTL is enabled
- Each write refreshes TTL (expires after inactivity, not creation)

### Patch Changes

- [#2556](https://github.com/langchain-ai/langgraphjs/pull/2556)
[`bee3c91`](https://github.com/langchain-ai/langgraphjs/commit/bee3c91d0adc315ebde0622d8c4b1fff041c1bfd)
Thanks [@mohamedkhaled4053](https://github.com/mohamedkhaled4053)! - Fix
`MongoDBSaver.putWrites` throwing `MongoServerError: Invalid
BulkOperation, Batch cannot be empty` when called with an empty `writes`
array. This is reached by human-in-the-loop / `interrupt()` flows, where
a task can complete producing zero channel writes and LangGraph calls
`putWrites(config, [], taskId)`. `putWrites` now no-ops on empty writes,
matching the behavior of the postgres and sqlite savers (which iterate
and naturally skip empty batches).

- [#2550](https://github.com/langchain-ai/langgraphjs/pull/2550)
[`2b8cc2f`](https://github.com/langchain-ai/langgraphjs/commit/2b8cc2f3fd5c9d3c33b56e013292daf5d936428e)
Thanks [@lazydiv](https://github.com/lazydiv)! -
feat(checkpoint-mongodb): add setup() to create required indexes

## @langchain/langgraph-api@1.4.0

### Minor Changes

- [#2559](https://github.com/langchain-ai/langgraphjs/pull/2559)
[`48cbdd2`](https://github.com/langchain-ai/langgraphjs/commit/48cbdd23fdf29277530f6aa05c397c9902e81206)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
feat(langgraph-cli): add `deploy` command for LangSmith Deployment

Port the Python CLI's `langgraph deploy` workflow to
`@langchain/langgraph-cli`, including local and remote build paths,
deployment lifecycle subcommands (`list`, `revisions list`, `delete`,
`logs`), and host-backend client utilities with tests.

### Patch Changes

- [#2557](https://github.com/langchain-ai/langgraphjs/pull/2557)
[`b1e856d`](https://github.com/langchain-ai/langgraphjs/commit/b1e856d987ac16148dc0872d1fecf70e659ef28e)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(langgraph-api): preserve non-empty response_metadata on protocol-v2
state messages

The protocol-v2 state normalizer stripped `response_metadata` from
messages,
dropping data that HITL flows rely on — an interrupt's card is carried
on
    `AIMessage.response_metadata` (e.g. `{ cards: ... }`). Non-empty
    `response_metadata` is now retained so the card reaches the client.

- [#2557](https://github.com/langchain-ai/langgraphjs/pull/2557)
[`b1e856d`](https://github.com/langchain-ai/langgraphjs/commit/b1e856d987ac16148dc0872d1fecf70e659ef28e)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): apply state update and goto alongside interrupt resume

    `respond(decision, { update, goto })` now maps to LangGraph's
`Command(resume, update, goto)`, so a human-in-the-loop UI can commit a
state
update (e.g. push the interrupt card into state) in the **same
superstep** as
the resume — one checkpoint, no separate `updateState` write, no
flicker.
`@langchain/langgraph-api` forwards `update`/`goto` through
`input.respond`,
and `@langchain/core` message instances in `update` are serialized to
dicts
before transport, exactly like `submit()`. Bumps `@langchain/protocol`
to
    `^0.0.18` for the `Goto` type.

`respond`/`respondAll` also apply `update` **optimistically** (mirroring
`submit()`): the pushed messages paint immediately, with stable ids
minted so
the resumed run's echo reconciles them in place. Without this the
interrupt is
cleared the instant `respond()` dispatches while the pushed card only
reappears
a server round-trip later — so the card would flicker in that gap. The
optimistic state settles on the resumed run's terminal (pending → sent,
or
    rolled back on a failure before any echo).

User-initiated optimistic writes (`submit()` / `respond()` /
`respondAll()`) now
commit to the store **synchronously**, in the same tick as the
triggering event,
instead of being coalesced onto the next macrotask. This lets a
framework render
the pushed message in the **same commit** as any local UI state the
caller flips
alongside it (e.g. a HITL form swapping its inputs for the resolved
card), so the
card no longer blinks out for the one-macrotask window before the flush
lands.
    High-frequency streaming writes keep their macrotask coalescing.

- Updated dependencies
\[[`48cbdd2`](https://github.com/langchain-ai/langgraphjs/commit/48cbdd23fdf29277530f6aa05c397c9902e81206)]:
    -   @langchain/langgraph-ui@1.4.0

## @langchain/langgraph-cli@1.4.0

### Minor Changes

- [#2559](https://github.com/langchain-ai/langgraphjs/pull/2559)
[`48cbdd2`](https://github.com/langchain-ai/langgraphjs/commit/48cbdd23fdf29277530f6aa05c397c9902e81206)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
feat(langgraph-cli): add `deploy` command for LangSmith Deployment

Port the Python CLI's `langgraph deploy` workflow to
`@langchain/langgraph-cli`, including local and remote build paths,
deployment lifecycle subcommands (`list`, `revisions list`, `delete`,
`logs`), and host-backend client utilities with tests.

### Patch Changes

- Updated dependencies
\[[`48cbdd2`](https://github.com/langchain-ai/langgraphjs/commit/48cbdd23fdf29277530f6aa05c397c9902e81206),
[`b1e856d`](https://github.com/langchain-ai/langgraphjs/commit/b1e856d987ac16148dc0872d1fecf70e659ef28e),
[`b1e856d`](https://github.com/langchain-ai/langgraphjs/commit/b1e856d987ac16148dc0872d1fecf70e659ef28e)]:
    -   @langchain/langgraph-api@1.4.0

## @langchain/langgraph-ui@1.4.0

### Minor Changes

- [#2559](https://github.com/langchain-ai/langgraphjs/pull/2559)
[`48cbdd2`](https://github.com/langchain-ai/langgraphjs/commit/48cbdd23fdf29277530f6aa05c397c9902e81206)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
feat(langgraph-cli): add `deploy` command for LangSmith Deployment

Port the Python CLI's `langgraph deploy` workflow to
`@langchain/langgraph-cli`, including local and remote build paths,
deployment lifecycle subcommands (`list`, `revisions list`, `delete`,
`logs`), and host-backend client utilities with tests.

## @langchain/langgraph@1.4.5

### Patch Changes

- [#2557](https://github.com/langchain-ai/langgraphjs/pull/2557)
[`b1e856d`](https://github.com/langchain-ai/langgraphjs/commit/b1e856d987ac16148dc0872d1fecf70e659ef28e)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): apply state update and goto alongside interrupt resume

    `respond(decision, { update, goto })` now maps to LangGraph's
`Command(resume, update, goto)`, so a human-in-the-loop UI can commit a
state
update (e.g. push the interrupt card into state) in the **same
superstep** as
the resume — one checkpoint, no separate `updateState` write, no
flicker.
`@langchain/langgraph-api` forwards `update`/`goto` through
`input.respond`,
and `@langchain/core` message instances in `update` are serialized to
dicts
before transport, exactly like `submit()`. Bumps `@langchain/protocol`
to
    `^0.0.18` for the `Goto` type.

`respond`/`respondAll` also apply `update` **optimistically** (mirroring
`submit()`): the pushed messages paint immediately, with stable ids
minted so
the resumed run's echo reconciles them in place. Without this the
interrupt is
cleared the instant `respond()` dispatches while the pushed card only
reappears
a server round-trip later — so the card would flicker in that gap. The
optimistic state settles on the resumed run's terminal (pending → sent,
or
    rolled back on a failure before any echo).

User-initiated optimistic writes (`submit()` / `respond()` /
`respondAll()`) now
commit to the store **synchronously**, in the same tick as the
triggering event,
instead of being coalesced onto the next macrotask. This lets a
framework render
the pushed message in the **same commit** as any local UI state the
caller flips
alongside it (e.g. a HITL form swapping its inputs for the resolved
card), so the
card no longer blinks out for the one-macrotask window before the flush
lands.
    High-frequency streaming writes keep their macrotask coalescing.

- Updated dependencies
\[[`b1e856d`](https://github.com/langchain-ai/langgraphjs/commit/b1e856d987ac16148dc0872d1fecf70e659ef28e)]:
    -   @langchain/langgraph-sdk@1.9.24

## @langchain/langgraph-sdk@1.9.24

### Patch Changes

- [#2557](https://github.com/langchain-ai/langgraphjs/pull/2557)
[`b1e856d`](https://github.com/langchain-ai/langgraphjs/commit/b1e856d987ac16148dc0872d1fecf70e659ef28e)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): apply state update and goto alongside interrupt resume

    `respond(decision, { update, goto })` now maps to LangGraph's
`Command(resume, update, goto)`, so a human-in-the-loop UI can commit a
state
update (e.g. push the interrupt card into state) in the **same
superstep** as
the resume — one checkpoint, no separate `updateState` write, no
flicker.
`@langchain/langgraph-api` forwards `update`/`goto` through
`input.respond`,
and `@langchain/core` message instances in `update` are serialized to
dicts
before transport, exactly like `submit()`. Bumps `@langchain/protocol`
to
    `^0.0.18` for the `Goto` type.

`respond`/`respondAll` also apply `update` **optimistically** (mirroring
`submit()`): the pushed messages paint immediately, with stable ids
minted so
the resumed run's echo reconciles them in place. Without this the
interrupt is
cleared the instant `respond()` dispatches while the pushed card only
reappears
a server round-trip later — so the card would flicker in that gap. The
optimistic state settles on the resumed run's terminal (pending → sent,
or
    rolled back on a failure before any echo).

User-initiated optimistic writes (`submit()` / `respond()` /
`respondAll()`) now
commit to the store **synchronously**, in the same tick as the
triggering event,
instead of being coalesced onto the next macrotask. This lets a
framework render
the pushed message in the **same commit** as any local UI state the
caller flips
alongside it (e.g. a HITL form swapping its inputs for the resolved
card), so the
card no longer blinks out for the one-macrotask window before the flush
lands.
    High-frequency streaming writes keep their macrotask coalescing.

## @langchain/angular@1.0.25

### Patch Changes

- [#2557](https://github.com/langchain-ai/langgraphjs/pull/2557)
[`b1e856d`](https://github.com/langchain-ai/langgraphjs/commit/b1e856d987ac16148dc0872d1fecf70e659ef28e)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): apply state update and goto alongside interrupt resume

    `respond(decision, { update, goto })` now maps to LangGraph's
`Command(resume, update, goto)`, so a human-in-the-loop UI can commit a
state
update (e.g. push the interrupt card into state) in the **same
superstep** as
the resume — one checkpoint, no separate `updateState` write, no
flicker.
`@langchain/langgraph-api` forwards `update`/`goto` through
`input.respond`,
and `@langchain/core` message instances in `update` are serialized to
dicts
before transport, exactly like `submit()`. Bumps `@langchain/protocol`
to
    `^0.0.18` for the `Goto` type.

`respond`/`respondAll` also apply `update` **optimistically** (mirroring
`submit()`): the pushed messages paint immediately, with stable ids
minted so
the resumed run's echo reconciles them in place. Without this the
interrupt is
cleared the instant `respond()` dispatches while the pushed card only
reappears
a server round-trip later — so the card would flicker in that gap. The
optimistic state settles on the resumed run's terminal (pending → sent,
or
    rolled back on a failure before any echo).

User-initiated optimistic writes (`submit()` / `respond()` /
`respondAll()`) now
commit to the store **synchronously**, in the same tick as the
triggering event,
instead of being coalesced onto the next macrotask. This lets a
framework render
the pushed message in the **same commit** as any local UI state the
caller flips
alongside it (e.g. a HITL form swapping its inputs for the resolved
card), so the
card no longer blinks out for the one-macrotask window before the flush
lands.
    High-frequency streaming writes keep their macrotask coalescing.

- Updated dependencies
\[[`b1e856d`](https://github.com/langchain-ai/langgraphjs/commit/b1e856d987ac16148dc0872d1fecf70e659ef28e)]:
    -   @langchain/langgraph-sdk@1.9.24

## @langchain/react@1.0.25

### Patch Changes

- [#2557](https://github.com/langchain-ai/langgraphjs/pull/2557)
[`b1e856d`](https://github.com/langchain-ai/langgraphjs/commit/b1e856d987ac16148dc0872d1fecf70e659ef28e)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): apply state update and goto alongside interrupt resume

    `respond(decision, { update, goto })` now maps to LangGraph's
`Command(resume, update, goto)`, so a human-in-the-loop UI can commit a
state
update (e.g. push the interrupt card into state) in the **same
superstep** as
the resume — one checkpoint, no separate `updateState` write, no
flicker.
`@langchain/langgraph-api` forwards `update`/`goto` through
`input.respond`,
and `@langchain/core` message instances in `update` are serialized to
dicts
before transport, exactly like `submit()`. Bumps `@langchain/protocol`
to
    `^0.0.18` for the `Goto` type.

`respond`/`respondAll` also apply `update` **optimistically** (mirroring
`submit()`): the pushed messages paint immediately, with stable ids
minted so
the resumed run's echo reconciles them in place. Without this the
interrupt is
cleared the instant `respond()` dispatches while the pushed card only
reappears
a server round-trip later — so the card would flicker in that gap. The
optimistic state settles on the resumed run's terminal (pending → sent,
or
    rolled back on a failure before any echo).

User-initiated optimistic writes (`submit()` / `respond()` /
`respondAll()`) now
commit to the store **synchronously**, in the same tick as the
triggering event,
instead of being coalesced onto the next macrotask. This lets a
framework render
the pushed message in the **same commit** as any local UI state the
caller flips
alongside it (e.g. a HITL form swapping its inputs for the resolved
card), so the
card no longer blinks out for the one-macrotask window before the flush
lands.
    High-frequency streaming writes keep their macrotask coalescing.

- Updated dependencies
\[[`b1e856d`](https://github.com/langchain-ai/langgraphjs/commit/b1e856d987ac16148dc0872d1fecf70e659ef28e)]:
    -   @langchain/langgraph-sdk@1.9.24

## @langchain/svelte@1.0.25

### Patch Changes

- [#2557](https://github.com/langchain-ai/langgraphjs/pull/2557)
[`b1e856d`](https://github.com/langchain-ai/langgraphjs/commit/b1e856d987ac16148dc0872d1fecf70e659ef28e)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): apply state update and goto alongside interrupt resume

    `respond(decision, { update, goto })` now maps to LangGraph's
`Command(resume, update, goto)`, so a human-in-the-loop UI can commit a
state
update (e.g. push the interrupt card into state) in the **same
superstep** as
the resume — one checkpoint, no separate `updateState` write, no
flicker.
`@langchain/langgraph-api` forwards `update`/`goto` through
`input.respond`,
and `@langchain/core` message instances in `update` are serialized to
dicts
before transport, exactly like `submit()`. Bumps `@langchain/protocol`
to
    `^0.0.18` for the `Goto` type.

`respond`/`respondAll` also apply `update` **optimistically** (mirroring
`submit()`): the pushed messages paint immediately, with stable ids
minted so
the resumed run's echo reconciles them in place. Without this the
interrupt is
cleared the instant `respond()` dispatches while the pushed card only
reappears
a server round-trip later — so the card would flicker in that gap. The
optimistic state settles on the resumed run's terminal (pending → sent,
or
    rolled back on a failure before any echo).

User-initiated optimistic writes (`submit()` / `respond()` /
`respondAll()`) now
commit to the store **synchronously**, in the same tick as the
triggering event,
instead of being coalesced onto the next macrotask. This lets a
framework render
the pushed message in the **same commit** as any local UI state the
caller flips
alongside it (e.g. a HITL form swapping its inputs for the resolved
card), so the
card no longer blinks out for the one-macrotask window before the flush
lands.
    High-frequency streaming writes keep their macrotask coalescing.

- Updated dependencies
\[[`b1e856d`](https://github.com/langchain-ai/langgraphjs/commit/b1e856d987ac16148dc0872d1fecf70e659ef28e)]:
    -   @langchain/langgraph-sdk@1.9.24

## @langchain/vue@1.0.25

### Patch Changes

- [#2557](https://github.com/langchain-ai/langgraphjs/pull/2557)
[`b1e856d`](https://github.com/langchain-ai/langgraphjs/commit/b1e856d987ac16148dc0872d1fecf70e659ef28e)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): apply state update and goto alongside interrupt resume

    `respond(decision, { update, goto })` now maps to LangGraph's
`Command(resume, update, goto)`, so a human-in-the-loop UI can commit a
state
update (e.g. push the interrupt card into state) in the **same
superstep** as
the resume — one checkpoint, no separate `updateState` write, no
flicker.
`@langchain/langgraph-api` forwards `update`/`goto` through
`input.respond`,
and `@langchain/core` message instances in `update` are serialized to
dicts
before transport, exactly like `submit()`. Bumps `@langchain/protocol`
to
    `^0.0.18` for the `Goto` type.

`respond`/`respondAll` also apply `update` **optimistically** (mirroring
`submit()`): the pushed messages paint immediately, with stable ids
minted so
the resumed run's echo reconciles them in place. Without this the
interrupt is
cleared the instant `respond()` dispatches while the pushed card only
reappears
a server round-trip later — so the card would flicker in that gap. The
optimistic state settles on the resumed run's terminal (pending → sent,
or
    rolled back on a failure before any echo).

User-initiated optimistic writes (`submit()` / `respond()` /
`respondAll()`) now
commit to the store **synchronously**, in the same tick as the
triggering event,
instead of being coalesced onto the next macrotask. This lets a
framework render
the pushed message in the **same commit** as any local UI state the
caller flips
alongside it (e.g. a HITL form swapping its inputs for the resolved
card), so the
card no longer blinks out for the one-macrotask window before the flush
lands.
    High-frequency streaming writes keep their macrotask coalescing.

- Updated dependencies
\[[`b1e856d`](https://github.com/langchain-ai/langgraphjs/commit/b1e856d987ac16148dc0872d1fecf70e659ef28e)]:
    -   @langchain/langgraph-sdk@1.9.24

## @example/ai-elements@0.1.41

### Patch Changes

- Updated dependencies
\[[`b1e856d`](https://github.com/langchain-ai/langgraphjs/commit/b1e856d987ac16148dc0872d1fecf70e659ef28e)]:
    -   @langchain/react@1.0.25
    -   @langchain/langgraph@1.4.5

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

### Patch Changes

- Updated dependencies
\[[`b1e856d`](https://github.com/langchain-ai/langgraphjs/commit/b1e856d987ac16148dc0872d1fecf70e659ef28e)]:
    -   @langchain/react@1.0.25
    -   @langchain/langgraph@1.4.5

## @examples/ui-angular@0.0.51

### Patch Changes

- Updated dependencies
\[[`b1e856d`](https://github.com/langchain-ai/langgraphjs/commit/b1e856d987ac16148dc0872d1fecf70e659ef28e)]:
    -   @langchain/langgraph-sdk@1.9.24
    -   @langchain/angular@1.0.25
    -   @langchain/langgraph@1.4.5

## @examples/ui-multimodal@0.0.27

### Patch Changes

- Updated dependencies
\[[`b1e856d`](https://github.com/langchain-ai/langgraphjs/commit/b1e856d987ac16148dc0872d1fecf70e659ef28e)]:
    -   @langchain/react@1.0.25
    -   @langchain/langgraph@1.4.5

## @examples/ui-react@0.0.27

### Patch Changes

- Updated dependencies
\[[`b1e856d`](https://github.com/langchain-ai/langgraphjs/commit/b1e856d987ac16148dc0872d1fecf70e659ef28e)]:
    -   @langchain/langgraph-sdk@1.9.24
    -   @langchain/react@1.0.25
    -   @langchain/langgraph@1.4.5

## langgraph@1.0.45

### Patch Changes

- Updated dependencies
\[[`b1e856d`](https://github.com/langchain-ai/langgraphjs/commit/b1e856d987ac16148dc0872d1fecf70e659ef28e)]:
    -   @langchain/langgraph@1.4.5

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-06-22 11:40:07 -07:00
Christian Bromann 5d279df5d5 chore(deps): bump langchain (#2564)
Bump langchainjs to latest release.

---------

Signed-off-by: Christian Bromann <git@bromann.dev>
Co-authored-by: open-swe[bot] <215916821+open-swe[bot]@users.noreply.github.com>
2026-06-22 11:38:06 -07:00
Christian Bromann b1e856d987 feat(sdk): apply state update and goto alongside interrupt resume (#2557)
## Summary
- Add `update` and `goto` options to `respond()` across the SDK so
resolving an interrupt can apply a state update and/or directed jump in
the **same superstep** — mapped to LangGraph's `Command(resume, update,
goto)`. The canonical use case is a HITL flow that pushes the interrupt
card into state at the moment it answers, committed in one checkpoint
with no flicker.
- `@langchain/langgraph-sdk`: new `update`/`goto` fields on
`StreamRespondAllOptions`, forwarded by
`StreamController.respond`/`respondAll`; `@langchain/core` `BaseMessage`
instances under the `messagesKey` are serialized to dicts before
transport, exactly like `submit()`.
- `@langchain/langgraph-api`: forward `update`/`goto` from
`input.respond` into the run `Command` in both the protocol service and
the embedded server.
- `@langchain/react`, `@langchain/vue`, `@langchain/svelte`,
`@langchain/angular`: document the new `respond({ update, goto })`
capability (incl. `BaseMessage` examples).
- Fix: the protocol-v2 state normalizer stripped `response_metadata`,
which HITL cards ride on (`AIMessage.response_metadata`); non-empty
`response_metadata` is now preserved.
- Add React browser tests (`interrupt_card_graph` fixture via
`createAgent`) covering the approve and reject paths: the FE-pushed card
lands in committed state exactly once and persists through a slow tool
execution.
2026-06-22 08:20:15 -07:00
github-actions[bot] 73ecaa0fb5 chore: version packages (#2536)
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.1.2

### Patch Changes

- [#2544](https://github.com/langchain-ai/langgraphjs/pull/2544)
[`4487214`](https://github.com/langchain-ai/langgraphjs/commit/448721449f0801009ba76b03dd2e9c16f900bbba)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(langgraph): make concurrent DeltaChannel writes deterministic on
replay

Concurrent same-superstep writes to a `DeltaChannel` could reconstruct
from a
checkpoint differently than they were applied live, because live
execution
ordered them by task path while savers replayed them by task id. This
fixes that
    divergence in two complementary ways:

- Plain concurrent writes are now applied in the canonical `(task_id,
idx)`
order on both paths: `_applyWrites` orders them that way live, and the
`getDeltaChannelHistory` walk enforces the same order so reconstruction
matches live for every saver (Postgres, SQLite, MongoDB, Redis, and
custom).
- An `Overwrite` now wins its entire super-step: every sibling write in
the same
        step — before AND after the `Overwrite` — is discarded, matching
`BinaryOperatorAggregate`. This makes the result independent of the
(unstable)
ordering of concurrent fan-in writes; previously a plain write that
landed
        after an `Overwrite` in the same step was still folded in.

To keep reconstruction in sync with this `Overwrite` rule, any
`DeltaChannel`
that sees an `Overwrite` in a super-step is now force-snapshotted at the
next
checkpoint (and, under `"exit"` durability, in the final checkpoint).
The
post-overwrite value is materialized into `channel_values`, so a cold
read seeds
from that snapshot and never has to replay across the reset — making
live and
reconstructed state identical without changing the sparse-replay history
shape.
    These delta-channel APIs remain Beta.

- [#2531](https://github.com/langchain-ai/langgraphjs/pull/2531)
[`38cfe01`](https://github.com/langchain-ai/langgraphjs/commit/38cfe01ff02490ff6bcc86c66708ef671f2e0d4b)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(langgraph): forward task metadata and name subagents via
lc_agent_name

`mapDebugTasks` now forwards filtered user-meaningful task config
metadata
(including `lc_agent_name`) onto `tasks` stream payloads. The lifecycle
    transformer uses that metadata to set subagent `graph_name` from
`lc_agent_name` and recover `cause: { type: "toolCall", tool_call_id }`
from parent tool-dispatch tasks. Adds the shared
`EXCLUDED_METADATA_KEYS`
    constant to `@langchain/langgraph-checkpoint`. Ports langgraph#7928.

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

### Patch Changes

- [#2336](https://github.com/langchain-ai/langgraphjs/pull/2336)
[`25907eb`](https://github.com/langchain-ai/langgraphjs/commit/25907eb0be25258c26327c6c68c72bc828ee1cff)
Thanks [@MohMaherId](https://github.com/MohMaherId)! -
fix(langgraph-checkpoint-redis): persist and reconstruct full
`channel_values` across multi-node graphs.

`RedisSaver.put()` delta-filters `channel_values` to only the channels
written by the current node, but `getTuple()` had no reconstruction
logic — unlike `PostgresSaver` — so any multi-node graph whose last node
wrote a subset of channels silently lost the others. Each changed
channel is now persisted as a version-keyed `checkpoint_blob:*` entry in
`put()` and missing channels are reconstructed from those blobs on read.

`deleteThread()` now also deletes the `checkpoint_blob:*` keys. Without
this the blobs introduced above would orphan forever (memory growth) and
thread deletion would be incomplete, matching
`PostgresSaver.deleteThread()` parity.

When `ttlConfig.refreshOnRead` is enabled, reads now refresh the TTL of
the reconstructed `checkpoint_blob:*` keys alongside the checkpoint key.
Otherwise a read would keep the checkpoint alive while the blobs it
depends on expired, silently dropping reconstructed channels.

On write, `put()` now refreshes the TTL of every blob the checkpoint
references (the full `channel_versions` set), not just the channels
changed by the current node, so carried-over blobs from earlier nodes
expire in lockstep with the checkpoint doc. This write-side refresh is
independent of `refreshOnRead`. The per-channel blob writes also now run
in parallel.

Known limitation: with TTL enabled, a carried-over blob can still be
lost if it expires during an idle gap longer than `defaultTTL` (no read
or write refreshed it in time). When that happens the channel is left
cleanly absent on read rather than erroring. Fully closing this gap
(re-persisting expired blobs) is tracked as a follow-up.

## @langchain/langgraph@1.4.3

### Patch Changes

- [#2544](https://github.com/langchain-ai/langgraphjs/pull/2544)
[`4487214`](https://github.com/langchain-ai/langgraphjs/commit/448721449f0801009ba76b03dd2e9c16f900bbba)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(langgraph): make concurrent DeltaChannel writes deterministic on
replay

Concurrent same-superstep writes to a `DeltaChannel` could reconstruct
from a
checkpoint differently than they were applied live, because live
execution
ordered them by task path while savers replayed them by task id. This
fixes that
    divergence in two complementary ways:

- Plain concurrent writes are now applied in the canonical `(task_id,
idx)`
order on both paths: `_applyWrites` orders them that way live, and the
`getDeltaChannelHistory` walk enforces the same order so reconstruction
matches live for every saver (Postgres, SQLite, MongoDB, Redis, and
custom).
- An `Overwrite` now wins its entire super-step: every sibling write in
the same
        step — before AND after the `Overwrite` — is discarded, matching
`BinaryOperatorAggregate`. This makes the result independent of the
(unstable)
ordering of concurrent fan-in writes; previously a plain write that
landed
        after an `Overwrite` in the same step was still folded in.

To keep reconstruction in sync with this `Overwrite` rule, any
`DeltaChannel`
that sees an `Overwrite` in a super-step is now force-snapshotted at the
next
checkpoint (and, under `"exit"` durability, in the final checkpoint).
The
post-overwrite value is materialized into `channel_values`, so a cold
read seeds
from that snapshot and never has to replay across the reset — making
live and
reconstructed state identical without changing the sparse-replay history
shape.
    These delta-channel APIs remain Beta.

- [#2531](https://github.com/langchain-ai/langgraphjs/pull/2531)
[`38cfe01`](https://github.com/langchain-ai/langgraphjs/commit/38cfe01ff02490ff6bcc86c66708ef671f2e0d4b)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(langgraph): merge instead of overwrite in `ensureLangGraphConfig`

`ensureLangGraphConfig` now per-key merges `callbacks`, `tags`,
`metadata`,
and `configurable` across configs instead of last-write-wins, so values
bound via `.withConfig({...})` survive when a later (e.g. invoke-time)
config supplies other keys. The merged dicts are fresh objects, fixing a
by-reference mutation of shared base configs. Also drops the
now-redundant
`combineCallbacks` workaround in `streamEvents`, which double-registered
and
    double-fired graph-bound callbacks.

- [#2531](https://github.com/langchain-ai/langgraphjs/pull/2531)
[`38cfe01`](https://github.com/langchain-ai/langgraphjs/commit/38cfe01ff02490ff6bcc86c66708ef671f2e0d4b)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(langgraph): preserve namespace nesting for imperative graph invokes

When a compiled graph is invoked from inside another graph's running
task
(e.g. a tool body calling `subAgent.invoke(...)`), the surrounding task
context — including the langgraph-internal nesting keys
(`__pregel_read`,
`__pregel_stream`, `checkpoint_ns`, the checkpoint map) — is propagated
    implicitly via `AsyncLocalStorage`. The base `Runnable.stream` calls
langchain-core's `ensureConfig`, which replaces the ambient
`configurable`
wholesale whenever the caller passes its own. Because `createAgent`
always
supplies a `configurable`, every tool-invoked sub-agent lost those keys,
ran
as a fresh root run, and had its streamed events flattened to the root
    namespace instead of nesting under the triggering task.

`Pregel.stream` now merges the ambient `configurable` underneath the
caller's
    (caller keys win per-key) when the ambient marks an active task
(`__pregel_read` present) but the explicit `configurable` is missing it.
Declared subgraph nodes (which already carry their own `__pregel_read`)
and
    top-level runs are unaffected.

- [#2537](https://github.com/langchain-ai/langgraphjs/pull/2537)
[`be09666`](https://github.com/langchain-ai/langgraphjs/commit/be096663f42fe7ea9355d6c0def4854e657866d8)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(langgraph): dispatch stream messages handler inline

The v3 `messages` handler (`StreamProtocolMessagesHandler`, which powers
`run.messages`) only performs a synchronous `push()` onto the run's
stream, but
its callbacks were dispatched on LangChain's background callback queue
(the
default `awaitHandlers === false`). A model or tool call inside a nested
or
parallel task could therefore flush its `messages` chunk _after_ the
Pregel
loop returned and sealed the stream, where
`IterableReadableWritableStream.push`
silently drops chunks once closed. This surfaced as empty per-message
streams
(`sub.messages`) for subagents dispatched in parallel from a single
tools step.

The handler now sets `awaitHandlers = true` so its callbacks run inline
— every
push happens during the originating model/chain call while the stream is
still
open. This avoids the global over-wait, fake-timer deadlock, and
error-path
unhandled rejections that a blanket `awaitAllCallbacks()` drain before
close
    would have introduced.

- [#2531](https://github.com/langchain-ai/langgraphjs/pull/2531)
[`38cfe01`](https://github.com/langchain-ai/langgraphjs/commit/38cfe01ff02490ff6bcc86c66708ef671f2e0d4b)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(langgraph): forward task metadata and name subagents via
lc_agent_name

`mapDebugTasks` now forwards filtered user-meaningful task config
metadata
(including `lc_agent_name`) onto `tasks` stream payloads. The lifecycle
    transformer uses that metadata to set subagent `graph_name` from
`lc_agent_name` and recover `cause: { type: "toolCall", tool_call_id }`
from parent tool-dispatch tasks. Adds the shared
`EXCLUDED_METADATA_KEYS`
    constant to `@langchain/langgraph-checkpoint`. Ports langgraph#7928.

- [#2549](https://github.com/langchain-ai/langgraphjs/pull/2549)
[`bc667a9`](https://github.com/langchain-ai/langgraphjs/commit/bc667a998ae9909d15795387dad45048e8947219)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(langgraph): support DeltaChannel fields in StateSchema

Add a `DeltaValue` state field (and a `MessagesDeltaValue` prebuilt) so
a
`DeltaChannel` can be declared via `StateSchema`, not just
`Annotation.Root` or
a raw channel map. `StateSchema` now maps `DeltaValue` to a
`DeltaChannel`
(forwarding `snapshotFrequency` and the value-schema default) and
validates its
    inputs/`Overwrite` updates like `ReducedValue`.

- Updated dependencies
\[[`4487214`](https://github.com/langchain-ai/langgraphjs/commit/448721449f0801009ba76b03dd2e9c16f900bbba),
[`2134c8a`](https://github.com/langchain-ai/langgraphjs/commit/2134c8a2c0bc8dd2ebea33e1191c8dd0c4b83236),
[`38cfe01`](https://github.com/langchain-ai/langgraphjs/commit/38cfe01ff02490ff6bcc86c66708ef671f2e0d4b)]:
    -   @langchain/langgraph-checkpoint@1.1.2
    -   @langchain/langgraph-sdk@1.9.23

## @langchain/langgraph-sdk@1.9.23

### Patch Changes

- [#2545](https://github.com/langchain-ai/langgraphjs/pull/2545)
[`2134c8a`](https://github.com/langchain-ai/langgraphjs/commit/2134c8a2c0bc8dd2ebea33e1191c8dd0c4b83236)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): avoid scoped stream resubscribe churn

Defer final projection disposal by one microtask so framework bindings
that release and immediately reacquire the same scoped projection during
reactive updates keep the existing stream subscription instead of
rotating through root-only and scoped SSE filters.

## @langchain/angular@1.0.24

### Patch Changes

- Updated dependencies
\[[`2134c8a`](https://github.com/langchain-ai/langgraphjs/commit/2134c8a2c0bc8dd2ebea33e1191c8dd0c4b83236)]:
    -   @langchain/langgraph-sdk@1.9.23

## @langchain/react@1.0.24

### Patch Changes

- Updated dependencies
\[[`2134c8a`](https://github.com/langchain-ai/langgraphjs/commit/2134c8a2c0bc8dd2ebea33e1191c8dd0c4b83236)]:
    -   @langchain/langgraph-sdk@1.9.23

## @langchain/svelte@1.0.24

### Patch Changes

- Updated dependencies
\[[`2134c8a`](https://github.com/langchain-ai/langgraphjs/commit/2134c8a2c0bc8dd2ebea33e1191c8dd0c4b83236)]:
    -   @langchain/langgraph-sdk@1.9.23

## @langchain/vue@1.0.24

### Patch Changes

- Updated dependencies
\[[`2134c8a`](https://github.com/langchain-ai/langgraphjs/commit/2134c8a2c0bc8dd2ebea33e1191c8dd0c4b83236)]:
    -   @langchain/langgraph-sdk@1.9.23

## @example/ai-elements@0.1.39

### Patch Changes

- Updated dependencies
\[[`4487214`](https://github.com/langchain-ai/langgraphjs/commit/448721449f0801009ba76b03dd2e9c16f900bbba),
[`38cfe01`](https://github.com/langchain-ai/langgraphjs/commit/38cfe01ff02490ff6bcc86c66708ef671f2e0d4b),
[`38cfe01`](https://github.com/langchain-ai/langgraphjs/commit/38cfe01ff02490ff6bcc86c66708ef671f2e0d4b),
[`be09666`](https://github.com/langchain-ai/langgraphjs/commit/be096663f42fe7ea9355d6c0def4854e657866d8),
[`38cfe01`](https://github.com/langchain-ai/langgraphjs/commit/38cfe01ff02490ff6bcc86c66708ef671f2e0d4b),
[`bc667a9`](https://github.com/langchain-ai/langgraphjs/commit/bc667a998ae9909d15795387dad45048e8947219)]:
    -   @langchain/langgraph@1.4.3
    -   @langchain/react@1.0.24

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

### Patch Changes

- Updated dependencies
\[[`4487214`](https://github.com/langchain-ai/langgraphjs/commit/448721449f0801009ba76b03dd2e9c16f900bbba),
[`38cfe01`](https://github.com/langchain-ai/langgraphjs/commit/38cfe01ff02490ff6bcc86c66708ef671f2e0d4b),
[`38cfe01`](https://github.com/langchain-ai/langgraphjs/commit/38cfe01ff02490ff6bcc86c66708ef671f2e0d4b),
[`be09666`](https://github.com/langchain-ai/langgraphjs/commit/be096663f42fe7ea9355d6c0def4854e657866d8),
[`38cfe01`](https://github.com/langchain-ai/langgraphjs/commit/38cfe01ff02490ff6bcc86c66708ef671f2e0d4b),
[`bc667a9`](https://github.com/langchain-ai/langgraphjs/commit/bc667a998ae9909d15795387dad45048e8947219)]:
    -   @langchain/langgraph@1.4.3
    -   @langchain/react@1.0.24

## @examples/ui-angular@0.0.49

### Patch Changes

- Updated dependencies
\[[`4487214`](https://github.com/langchain-ai/langgraphjs/commit/448721449f0801009ba76b03dd2e9c16f900bbba),
[`38cfe01`](https://github.com/langchain-ai/langgraphjs/commit/38cfe01ff02490ff6bcc86c66708ef671f2e0d4b),
[`38cfe01`](https://github.com/langchain-ai/langgraphjs/commit/38cfe01ff02490ff6bcc86c66708ef671f2e0d4b),
[`2134c8a`](https://github.com/langchain-ai/langgraphjs/commit/2134c8a2c0bc8dd2ebea33e1191c8dd0c4b83236),
[`be09666`](https://github.com/langchain-ai/langgraphjs/commit/be096663f42fe7ea9355d6c0def4854e657866d8),
[`38cfe01`](https://github.com/langchain-ai/langgraphjs/commit/38cfe01ff02490ff6bcc86c66708ef671f2e0d4b),
[`bc667a9`](https://github.com/langchain-ai/langgraphjs/commit/bc667a998ae9909d15795387dad45048e8947219)]:
    -   @langchain/langgraph@1.4.3
    -   @langchain/langgraph-sdk@1.9.23
    -   @langchain/angular@1.0.24

## @examples/ui-multimodal@0.0.25

### Patch Changes

- Updated dependencies
\[[`4487214`](https://github.com/langchain-ai/langgraphjs/commit/448721449f0801009ba76b03dd2e9c16f900bbba),
[`38cfe01`](https://github.com/langchain-ai/langgraphjs/commit/38cfe01ff02490ff6bcc86c66708ef671f2e0d4b),
[`38cfe01`](https://github.com/langchain-ai/langgraphjs/commit/38cfe01ff02490ff6bcc86c66708ef671f2e0d4b),
[`be09666`](https://github.com/langchain-ai/langgraphjs/commit/be096663f42fe7ea9355d6c0def4854e657866d8),
[`38cfe01`](https://github.com/langchain-ai/langgraphjs/commit/38cfe01ff02490ff6bcc86c66708ef671f2e0d4b),
[`bc667a9`](https://github.com/langchain-ai/langgraphjs/commit/bc667a998ae9909d15795387dad45048e8947219)]:
    -   @langchain/langgraph@1.4.3
    -   @langchain/react@1.0.24

## @examples/ui-react@0.0.25

### Patch Changes

- Updated dependencies
\[[`4487214`](https://github.com/langchain-ai/langgraphjs/commit/448721449f0801009ba76b03dd2e9c16f900bbba),
[`38cfe01`](https://github.com/langchain-ai/langgraphjs/commit/38cfe01ff02490ff6bcc86c66708ef671f2e0d4b),
[`38cfe01`](https://github.com/langchain-ai/langgraphjs/commit/38cfe01ff02490ff6bcc86c66708ef671f2e0d4b),
[`2134c8a`](https://github.com/langchain-ai/langgraphjs/commit/2134c8a2c0bc8dd2ebea33e1191c8dd0c4b83236),
[`be09666`](https://github.com/langchain-ai/langgraphjs/commit/be096663f42fe7ea9355d6c0def4854e657866d8),
[`38cfe01`](https://github.com/langchain-ai/langgraphjs/commit/38cfe01ff02490ff6bcc86c66708ef671f2e0d4b),
[`bc667a9`](https://github.com/langchain-ai/langgraphjs/commit/bc667a998ae9909d15795387dad45048e8947219)]:
    -   @langchain/langgraph@1.4.3
    -   @langchain/langgraph-sdk@1.9.23
    -   @langchain/react@1.0.24

## langgraph@1.0.43

### Patch Changes

- Updated dependencies
\[[`4487214`](https://github.com/langchain-ai/langgraphjs/commit/448721449f0801009ba76b03dd2e9c16f900bbba),
[`38cfe01`](https://github.com/langchain-ai/langgraphjs/commit/38cfe01ff02490ff6bcc86c66708ef671f2e0d4b),
[`38cfe01`](https://github.com/langchain-ai/langgraphjs/commit/38cfe01ff02490ff6bcc86c66708ef671f2e0d4b),
[`be09666`](https://github.com/langchain-ai/langgraphjs/commit/be096663f42fe7ea9355d6c0def4854e657866d8),
[`38cfe01`](https://github.com/langchain-ai/langgraphjs/commit/38cfe01ff02490ff6bcc86c66708ef671f2e0d4b),
[`bc667a9`](https://github.com/langchain-ai/langgraphjs/commit/bc667a998ae9909d15795387dad45048e8947219)]:
    -   @langchain/langgraph@1.4.3

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-06-17 15:34:21 -07:00
Christian Bromann 2134c8a2c0 fix(sdk): avoid scoped stream resubscribe churn (#2545)
## Summary
- Defer final `ChannelRegistry` projection disposal by one microtask so
same-turn reacquires keep the existing projection runtime alive.
- Preserve `registry.size` as an active-consumer diagnostic while
allowing pending disposals to be cancelled.
- Add regression coverage for release-then-reacquire behavior.
2026-06-17 12:43:03 -07:00
dependabot[bot] ada52690f6 chore(deps-dev): bump ws from 8.20.1 to 8.21.0 (#2546)
Bumps [ws](https://github.com/websockets/ws) from 8.20.1 to 8.21.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/websockets/ws/releases">ws's
releases</a>.</em></p>
<blockquote>
<h2>8.21.0</h2>
<h1>Features</h1>
<ul>
<li>Introduced the <code>maxBufferedChunks</code> and
<code>maxFragments</code> options (2b2abd45).</li>
</ul>
<h1>Bug fixes</h1>
<ul>
<li>Fixed a remote memory exhaustion DoS vulnerability (2b2abd45).</li>
</ul>
<p>A high volume of tiny fragments and data chunks could be sent by a
peer, using
modest network traffic, to crash a <code>ws</code> server or client due
to OOM.</p>
<pre lang="js"><code>import { WebSocket, WebSocketServer } from 'ws';
<p>const wss = new WebSocketServer({ port: 0 }, function () {
const data = Buffer.alloc(1);
const options = { fin: false };
const { port } = wss.address();
const ws = new WebSocket(<code>ws://localhost:${port}</code>);</p>
<p>ws.on('open', function () {
(function send() {
ws.send(data, options, function (err) {
if (err) return;
send();
});
})();
});</p>
<p>ws.on('error', console.error);
ws.on('close', function (code, reason) {
console.log(<code>client close - code: ${code} reason:
${reason.toString()}</code>);
});
});</p>
<p>wss.on('connection', function (ws) {
ws.on('error', console.error);
ws.on('close', function (code, reason) {
console.log(<code>server close - code: ${code} reason:
${reason.toString()}</code>);
});
});
</code></pre></p>
<p>The vulnerability was responsibly disclosed and fixed by <a
href="https://github.com/Nadav0077">Nadav Magier</a>.</p>
<p>In vulnerable versions, the issue can be mitigated by lowering the
value of the
<code>maxPayload</code> option if possible.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/websockets/ws/commit/bca91adf15677e47dbe4f959653452727be28b94"><code>bca91ad</code></a>
[dist] 8.21.0</li>
<li><a
href="https://github.com/websockets/ws/commit/2b2abd458a1b647d0b6033bd62a619c36189839a"><code>2b2abd4</code></a>
[security] Limit retained message parts</li>
<li><a
href="https://github.com/websockets/ws/commit/78eabe2a6677b231bf9c82601bde86ff91639490"><code>78eabe2</code></a>
[security] Add latest vulnerability to SECURITY.md</li>
<li>See full diff in <a
href="https://github.com/websockets/ws/compare/8.20.1...8.21.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ws&package-manager=npm_and_yarn&previous-version=8.20.1&new-version=8.21.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-06-16 19:32:29 -07:00
github-actions[bot] 957cac4ea4 chore: version packages (#2526)
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.1.1

### Patch Changes

- [#2527](https://github.com/langchain-ai/langgraphjs/pull/2527)
[`9e114e5`](https://github.com/langchain-ai/langgraphjs/commit/9e114e55d362a874878a817740de42fd62ae9db7)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
chore(deps): remove uuid dependency in favor of embedded uuid in core

Replace direct `uuid` package imports with `@langchain/core/utils/uuid`
across
langgraph packages to deduplicate dependencies and align with
@langchain/core's
    embedded UUID utilities.

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

### Patch Changes

- [#2525](https://github.com/langchain-ai/langgraphjs/pull/2525)
[`829a32a`](https://github.com/langchain-ai/langgraphjs/commit/829a32a30cc22103b1cb0aba6a027b7ccdb68447)
Thanks [@lhlyu](https://github.com/lhlyu)! - Fix Redis checkpoint
pending write deserialization when a write document has no `value`
field. RedisJSON omits `undefined` values, so `loadPendingWrites` now
restores a missing `value` as `undefined` instead of passing it through
JSON parsing.

- [#2527](https://github.com/langchain-ai/langgraphjs/pull/2527)
[`9e114e5`](https://github.com/langchain-ai/langgraphjs/commit/9e114e55d362a874878a817740de42fd62ae9db7)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
chore(deps): remove uuid dependency in favor of embedded uuid in core

Replace direct `uuid` package imports with `@langchain/core/utils/uuid`
across
langgraph packages to deduplicate dependencies and align with
@langchain/core's
    embedded UUID utilities.

## @langchain/langgraph-api@1.3.1

### Patch Changes

- [#2527](https://github.com/langchain-ai/langgraphjs/pull/2527)
[`9e114e5`](https://github.com/langchain-ai/langgraphjs/commit/9e114e55d362a874878a817740de42fd62ae9db7)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
chore(deps): remove uuid dependency in favor of embedded uuid in core

Replace direct `uuid` package imports with `@langchain/core/utils/uuid`
across
langgraph packages to deduplicate dependencies and align with
@langchain/core's
    embedded UUID utilities.

- Updated dependencies
\[[`9e114e5`](https://github.com/langchain-ai/langgraphjs/commit/9e114e55d362a874878a817740de42fd62ae9db7)]:
    -   @langchain/langgraph-ui@1.3.1

## @langchain/langgraph-cli@1.3.1

### Patch Changes

- [#2527](https://github.com/langchain-ai/langgraphjs/pull/2527)
[`9e114e5`](https://github.com/langchain-ai/langgraphjs/commit/9e114e55d362a874878a817740de42fd62ae9db7)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
chore(deps): remove uuid dependency in favor of embedded uuid in core

Replace direct `uuid` package imports with `@langchain/core/utils/uuid`
across
langgraph packages to deduplicate dependencies and align with
@langchain/core's
    embedded UUID utilities.

- Updated dependencies
\[[`9e114e5`](https://github.com/langchain-ai/langgraphjs/commit/9e114e55d362a874878a817740de42fd62ae9db7)]:
    -   @langchain/langgraph-api@1.3.1

## @langchain/langgraph@1.4.2

### Patch Changes

- [#2527](https://github.com/langchain-ai/langgraphjs/pull/2527)
[`9e114e5`](https://github.com/langchain-ai/langgraphjs/commit/9e114e55d362a874878a817740de42fd62ae9db7)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
chore(deps): remove uuid dependency in favor of embedded uuid in core

Replace direct `uuid` package imports with `@langchain/core/utils/uuid`
across
langgraph packages to deduplicate dependencies and align with
@langchain/core's
    embedded UUID utilities.

- Updated dependencies
\[[`ba31f04`](https://github.com/langchain-ai/langgraphjs/commit/ba31f045d1d458a456c6f6441e8ee81d32c5c700),
[`e7e8035`](https://github.com/langchain-ai/langgraphjs/commit/e7e8035fadca5f0d4cbc55bbbb77e65878ab2952),
[`9e114e5`](https://github.com/langchain-ai/langgraphjs/commit/9e114e55d362a874878a817740de42fd62ae9db7)]:
    -   @langchain/langgraph-sdk@1.9.22
    -   @langchain/langgraph-checkpoint@1.1.1

## @langchain/langgraph-supervisor@1.1.1

### Patch Changes

- [#2527](https://github.com/langchain-ai/langgraphjs/pull/2527)
[`9e114e5`](https://github.com/langchain-ai/langgraphjs/commit/9e114e55d362a874878a817740de42fd62ae9db7)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
chore(deps): remove uuid dependency in favor of embedded uuid in core

Replace direct `uuid` package imports with `@langchain/core/utils/uuid`
across
langgraph packages to deduplicate dependencies and align with
@langchain/core's
    embedded UUID utilities.

## @langchain/langgraph-ui@1.3.1

### Patch Changes

- [#2527](https://github.com/langchain-ai/langgraphjs/pull/2527)
[`9e114e5`](https://github.com/langchain-ai/langgraphjs/commit/9e114e55d362a874878a817740de42fd62ae9db7)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
chore(deps): remove uuid dependency in favor of embedded uuid in core

Replace direct `uuid` package imports with `@langchain/core/utils/uuid`
across
langgraph packages to deduplicate dependencies and align with
@langchain/core's
    embedded UUID utilities.

## @langchain/langgraph-sdk@1.9.22

### Patch Changes

- [#2529](https://github.com/langchain-ai/langgraphjs/pull/2529)
[`ba31f04`](https://github.com/langchain-ai/langgraphjs/commit/ba31f045d1d458a456c6f6441e8ee81d32c5c700)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): reconnect SSE streams when heartbeat idle is detected

Detect half-open SSE connections by watching for server keep-alive
heartbeats (`: heartbeat`) and reconnecting with Last-Event-ID or
`since` when they stop. `"auto"` mode arms only after heartbeats are
observed, so long tool calls and HITL pauses do not false-fire on
heartbeat-emitting servers.

- [#2528](https://github.com/langchain-ai/langgraphjs/pull/2528)
[`e7e8035`](https://github.com/langchain-ai/langgraphjs/commit/e7e8035fadca5f0d4cbc55bbbb77e65878ab2952)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
Allow custom `AgentServerAdapter`s to be late-bound and re-bound to a
thread. Adapters can now implement an optional `setThreadId(threadId)`,
which `client.threads.stream(threadId, { transport })` calls when
binding the active thread — including the lazily-minted id from the
first `submit()` on a `threadId: null` controller. The built-in
`ProtocolSseTransportAdapter`, `ProtocolWebSocketTransportAdapter`, and
`HttpAgentServerAdapter` implement it: `threadId` is now optional at
construction, request URLs derive from the currently-bound thread, and
`paths` entries may be functions of the thread id (`(threadId) =>
string`). This lets a single custom transport back a lazy
thread-creation flow instead of being pinned to one thread at
construction.

- [#2527](https://github.com/langchain-ai/langgraphjs/pull/2527)
[`9e114e5`](https://github.com/langchain-ai/langgraphjs/commit/9e114e55d362a874878a817740de42fd62ae9db7)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
chore(deps): remove uuid dependency in favor of embedded uuid in core

Replace direct `uuid` package imports with `@langchain/core/utils/uuid`
across
langgraph packages to deduplicate dependencies and align with
@langchain/core's
    embedded UUID utilities.

## @langchain/angular@1.0.23

### Patch Changes

- Updated dependencies
\[[`ba31f04`](https://github.com/langchain-ai/langgraphjs/commit/ba31f045d1d458a456c6f6441e8ee81d32c5c700),
[`e7e8035`](https://github.com/langchain-ai/langgraphjs/commit/e7e8035fadca5f0d4cbc55bbbb77e65878ab2952),
[`9e114e5`](https://github.com/langchain-ai/langgraphjs/commit/9e114e55d362a874878a817740de42fd62ae9db7)]:
    -   @langchain/langgraph-sdk@1.9.22

## @langchain/react@1.0.23

### Patch Changes

- Updated dependencies
\[[`ba31f04`](https://github.com/langchain-ai/langgraphjs/commit/ba31f045d1d458a456c6f6441e8ee81d32c5c700),
[`e7e8035`](https://github.com/langchain-ai/langgraphjs/commit/e7e8035fadca5f0d4cbc55bbbb77e65878ab2952),
[`9e114e5`](https://github.com/langchain-ai/langgraphjs/commit/9e114e55d362a874878a817740de42fd62ae9db7)]:
    -   @langchain/langgraph-sdk@1.9.22

## @langchain/svelte@1.0.23

### Patch Changes

- Updated dependencies
\[[`ba31f04`](https://github.com/langchain-ai/langgraphjs/commit/ba31f045d1d458a456c6f6441e8ee81d32c5c700),
[`e7e8035`](https://github.com/langchain-ai/langgraphjs/commit/e7e8035fadca5f0d4cbc55bbbb77e65878ab2952),
[`9e114e5`](https://github.com/langchain-ai/langgraphjs/commit/9e114e55d362a874878a817740de42fd62ae9db7)]:
    -   @langchain/langgraph-sdk@1.9.22

## @langchain/vue@1.0.23

### Patch Changes

- Updated dependencies
\[[`ba31f04`](https://github.com/langchain-ai/langgraphjs/commit/ba31f045d1d458a456c6f6441e8ee81d32c5c700),
[`e7e8035`](https://github.com/langchain-ai/langgraphjs/commit/e7e8035fadca5f0d4cbc55bbbb77e65878ab2952),
[`9e114e5`](https://github.com/langchain-ai/langgraphjs/commit/9e114e55d362a874878a817740de42fd62ae9db7)]:
    -   @langchain/langgraph-sdk@1.9.22

## @example/ai-elements@0.1.38

### Patch Changes

- Updated dependencies
\[[`9e114e5`](https://github.com/langchain-ai/langgraphjs/commit/9e114e55d362a874878a817740de42fd62ae9db7)]:
    -   @langchain/langgraph@1.4.2
    -   @langchain/react@1.0.23

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

### Patch Changes

- Updated dependencies
\[[`9e114e5`](https://github.com/langchain-ai/langgraphjs/commit/9e114e55d362a874878a817740de42fd62ae9db7)]:
    -   @langchain/langgraph@1.4.2
    -   @langchain/react@1.0.23

## @examples/ui-angular@0.0.48

### Patch Changes

- Updated dependencies
\[[`ba31f04`](https://github.com/langchain-ai/langgraphjs/commit/ba31f045d1d458a456c6f6441e8ee81d32c5c700),
[`e7e8035`](https://github.com/langchain-ai/langgraphjs/commit/e7e8035fadca5f0d4cbc55bbbb77e65878ab2952),
[`9e114e5`](https://github.com/langchain-ai/langgraphjs/commit/9e114e55d362a874878a817740de42fd62ae9db7)]:
    -   @langchain/langgraph-sdk@1.9.22
    -   @langchain/langgraph@1.4.2
    -   @langchain/angular@1.0.23

## @examples/ui-multimodal@0.0.24

### Patch Changes

- Updated dependencies
\[[`9e114e5`](https://github.com/langchain-ai/langgraphjs/commit/9e114e55d362a874878a817740de42fd62ae9db7)]:
    -   @langchain/langgraph@1.4.2
    -   @langchain/react@1.0.23

## @examples/ui-react@0.0.24

### Patch Changes

- Updated dependencies
\[[`ba31f04`](https://github.com/langchain-ai/langgraphjs/commit/ba31f045d1d458a456c6f6441e8ee81d32c5c700),
[`e7e8035`](https://github.com/langchain-ai/langgraphjs/commit/e7e8035fadca5f0d4cbc55bbbb77e65878ab2952),
[`9e114e5`](https://github.com/langchain-ai/langgraphjs/commit/9e114e55d362a874878a817740de42fd62ae9db7)]:
    -   @langchain/langgraph-sdk@1.9.22
    -   @langchain/langgraph@1.4.2
    -   @langchain/react@1.0.23

## langgraph@1.0.42

### Patch Changes

- Updated dependencies
\[[`9e114e5`](https://github.com/langchain-ai/langgraphjs/commit/9e114e55d362a874878a817740de42fd62ae9db7)]:
    -   @langchain/langgraph@1.4.2

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-06-12 14:33:35 -07:00
Christian Bromann e7e8035fad fix(sdk): late-bind threadId on custom AgentServerAdapter transports (#2528)
## Summary
- Add optional `setThreadId(threadId)` to `TransportAdapter` and call it
from `client.threads.stream` when binding a custom adapter to the active
thread (including the id minted on the first `submit()` of a `threadId:
null` stream).
- Make `threadId` optional at construction on
`ProtocolSseTransportAdapter`, `ProtocolWebSocketTransportAdapter`, and
`HttpAgentServerAdapter`; derive command/stream/state URLs from the
currently-bound thread and allow `paths` entries to be `(threadId) =>
string`.
- Add unit tests for lazy binding, re-binding, function paths, and
`client.threads.stream` wiring.
- Document lazy thread binding for custom backends in core SDK and
framework docs (React, Vue, Svelte, Angular).
2026-06-12 13:24:41 -07:00
Christian Bromann ba31f045d1 fix(sdk): reconnect SSE streams when heartbeat idle is detected (#2529)
## Summary
- Add heartbeat-adaptive idle reconnect for SSE streams
(`idleReconnectStream`) so half-open connections (e.g. platform revision
rollover) are detected when `: heartbeat` comments stop arriving and the
existing reconnect path resumes with `Last-Event-ID` or `since`.
- `"auto"` mode (default on built-in SSE transports) stays dormant until
heartbeats are observed, sizes the idle window from their cadence (~15s
on the platform's 5s heartbeat), and does not false-fire during long
tool calls or HITL pauses.
- Expose `streamIdleReconnect?: IdleReconnectMode` on `runs.stream`,
`runs.joinStream`, and `threads.stream`; reuse `IdleReconnectMode`
across public option types.
2026-06-12 13:21:51 -07:00
Christian Bromann 9e114e55d3 chore(deps): remove uuid dependency in favor of embedded uuid in core (#2527)
## Summary
- Remove the direct `uuid` npm dependency from `@langchain/langgraph`,
`@langchain/langgraph-checkpoint`,
`@langchain/langgraph-checkpoint-redis`, `@langchain/langgraph-api`,
`@langchain/langgraph-supervisor`, and `@langchain/langgraph-sdk`.
- Switch all UUID generation and validation to
`@langchain/core/utils/uuid` (v4, v5, v6, v7, and `validate`).
- Drop unused `@types/uuid` devDependencies from checkpoint backend
packages that no longer reference `uuid` directly.

fixes #2481
2026-06-12 10:54:29 -07:00
github-actions[bot] 34a01255e1 chore: version packages (#2524)
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-supervisor@1.1.0

### Minor Changes

- [#2521](https://github.com/langchain-ai/langgraphjs/pull/2521)
[`56682a6`](https://github.com/langchain-ai/langgraphjs/commit/56682a69a24d0dfb210f1fb5187c51e3adc356bf)
Thanks [@open-swe](https://github.com/apps/open-swe)! -
feat(langgraph-supervisor): Add `addHandoffMessages` to
`createSupervisor` and `createHandoffTool`, allowing supervisor-to-agent
handoff bookkeeping messages to be omitted from the expert agent's
message history. When `addHandoffBackMessages` is not provided, it now
defaults to the same value as `addHandoffMessages`, matching the Python
package behavior.

`createHandoffTool` now also accepts `description` as the preferred
option name while continuing to support the existing `agentDescription`
option as deprecated for backwards compatibility.

### Patch Changes

- [#2407](https://github.com/langchain-ai/langgraphjs/pull/2407)
[`59d4765`](https://github.com/langchain-ai/langgraphjs/commit/59d4765870bc0cddf3ef594b128ab3280533cb6c)
Thanks [@pragnyanramtha](https://github.com/pragnyanramtha)! - Normalize
all whitespace in supervisor handoff tool names.

## @langchain/langgraph@1.4.1

### Patch Changes

- [#2520](https://github.com/langchain-ai/langgraphjs/pull/2520)
[`2da5c33`](https://github.com/langchain-ai/langgraphjs/commit/2da5c3374f7b91ba0afa607c507e2ff1591baca7)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(state): validate Zod state updates from nodes

Validate node return values and Command updates against Zod state schema
    constraints before applying them to graph state.

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

- [#2511](https://github.com/langchain-ai/langgraphjs/pull/2511)
[`ef04db3`](https://github.com/langchain-ai/langgraphjs/commit/ef04db316d680ab32b812c88cadda75638294dd3)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
feat(ToolNode): forward graph state to tools via `runtime.state`

`ToolNode` now forwards its input to each tool through the second
argument as `runtime.state`. When using `ToolNode` as a node in a
LangGraph graph, this gives tools access to the current graph state for
workflows that need tool-call support in LangGraph proper. Tools can
type the second parameter as `ToolRuntime<StateType>` from
`@langchain/core/tools` and read `runtime.state` directly. This works in
every runtime, including web browsers, and removes the need for
`getCurrentTaskInput()` (which relies on
`node:async_hooks`/`AsyncLocalStorage`). `getCurrentTaskInput(config)`
continues to work for backwards compatibility.

- Updated dependencies
\[[`3855985`](https://github.com/langchain-ai/langgraphjs/commit/3855985dd049739f145295d236ce6aa02ae2fb0e),
[`7c3e9e9`](https://github.com/langchain-ai/langgraphjs/commit/7c3e9e93f3c7ec1dc654dac8ee8c03562ee8337b),
[`17c44a3`](https://github.com/langchain-ai/langgraphjs/commit/17c44a38b7478e2bc4fe908a54c78ef33fb68ba3)]:
    -   @langchain/langgraph-sdk@1.9.21

## @langchain/langgraph-sdk@1.9.21

### Patch Changes

- [#2522](https://github.com/langchain-ai/langgraphjs/pull/2522)
[`3855985`](https://github.com/langchain-ai/langgraphjs/commit/3855985dd049739f145295d236ce6aa02ae2fb0e)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
feat(stream): add per-event side-effect selector

Add `useChannelEffect` (React/Svelte/Vue) / `injectChannelEffect`
(Angular), a side-effect counterpart to `useChannel` that invokes an
`onEvent` callback once per raw protocol event without re-rendering.
This is the idiomatic v1 replacement for the old `onLangChainEvent` /
`onCustomEvent` callbacks for analytics and logging. Backed by a new
framework-agnostic `acquireChannelEffect` helper in
`@langchain/langgraph-sdk/stream` that shares a ref-counted subscription
with matching `useChannel` consumers.

- [#2523](https://github.com/langchain-ai/langgraphjs/pull/2523)
[`7c3e9e9`](https://github.com/langchain-ai/langgraphjs/commit/7c3e9e93f3c7ec1dc654dac8ee8c03562ee8337b)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): stop re-streaming seeded messages on idle-thread submit

An idle (finished) thread defers its root SSE pump, so the first
`submit()` brings it up and the transport replays the finished run from
`seq=0`. The replayed `messages` channel carries no step (unlike
`values`, guarded by `maxStep`), so it rebuilt each already-complete
message from an empty `message-start` and re-streamed the whole turn
token-by-token — a visible "messages replay" of the existing
conversation. Seal the message ids seeded from the idle `getState()`
snapshot so replayed deltas can't downgrade the complete tail; the seal
lifts once a newer checkpoint advances the timeline or on thread rebind,
and ids from the next run are never sealed.

- [#2462](https://github.com/langchain-ai/langgraphjs/pull/2462)
[`17c44a3`](https://github.com/langchain-ai/langgraphjs/commit/17c44a38b7478e2bc4fe908a54c78ef33fb68ba3)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): reconnect v2 SSE and WebSocket thread streams after disconnect

Add automatic reconnect with resume (`since` for SSE) for protocol
transports,
wire `AsyncCaller` through `client.threads.stream`, and expose optional
reconnect tuning on `ThreadStreamOptions`. Includes integration tests
against
    an in-process mock langgraph-api server.

## @langchain/angular@1.0.22

### Patch Changes

- [#2522](https://github.com/langchain-ai/langgraphjs/pull/2522)
[`3855985`](https://github.com/langchain-ai/langgraphjs/commit/3855985dd049739f145295d236ce6aa02ae2fb0e)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
feat(stream): add per-event side-effect selector

Add `useChannelEffect` (React/Svelte/Vue) / `injectChannelEffect`
(Angular), a side-effect counterpart to `useChannel` that invokes an
`onEvent` callback once per raw protocol event without re-rendering.
This is the idiomatic v1 replacement for the old `onLangChainEvent` /
`onCustomEvent` callbacks for analytics and logging. Backed by a new
framework-agnostic `acquireChannelEffect` helper in
`@langchain/langgraph-sdk/stream` that shares a ref-counted subscription
with matching `useChannel` consumers.

- Updated dependencies
\[[`3855985`](https://github.com/langchain-ai/langgraphjs/commit/3855985dd049739f145295d236ce6aa02ae2fb0e),
[`7c3e9e9`](https://github.com/langchain-ai/langgraphjs/commit/7c3e9e93f3c7ec1dc654dac8ee8c03562ee8337b),
[`17c44a3`](https://github.com/langchain-ai/langgraphjs/commit/17c44a38b7478e2bc4fe908a54c78ef33fb68ba3)]:
    -   @langchain/langgraph-sdk@1.9.21

## @langchain/react@1.0.22

### Patch Changes

- [#2522](https://github.com/langchain-ai/langgraphjs/pull/2522)
[`3855985`](https://github.com/langchain-ai/langgraphjs/commit/3855985dd049739f145295d236ce6aa02ae2fb0e)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
feat(stream): add per-event side-effect selector

Add `useChannelEffect` (React/Svelte/Vue) / `injectChannelEffect`
(Angular), a side-effect counterpart to `useChannel` that invokes an
`onEvent` callback once per raw protocol event without re-rendering.
This is the idiomatic v1 replacement for the old `onLangChainEvent` /
`onCustomEvent` callbacks for analytics and logging. Backed by a new
framework-agnostic `acquireChannelEffect` helper in
`@langchain/langgraph-sdk/stream` that shares a ref-counted subscription
with matching `useChannel` consumers.

- Updated dependencies
\[[`3855985`](https://github.com/langchain-ai/langgraphjs/commit/3855985dd049739f145295d236ce6aa02ae2fb0e),
[`7c3e9e9`](https://github.com/langchain-ai/langgraphjs/commit/7c3e9e93f3c7ec1dc654dac8ee8c03562ee8337b),
[`17c44a3`](https://github.com/langchain-ai/langgraphjs/commit/17c44a38b7478e2bc4fe908a54c78ef33fb68ba3)]:
    -   @langchain/langgraph-sdk@1.9.21

## @langchain/svelte@1.0.22

### Patch Changes

- [#2522](https://github.com/langchain-ai/langgraphjs/pull/2522)
[`3855985`](https://github.com/langchain-ai/langgraphjs/commit/3855985dd049739f145295d236ce6aa02ae2fb0e)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
feat(stream): add per-event side-effect selector

Add `useChannelEffect` (React/Svelte/Vue) / `injectChannelEffect`
(Angular), a side-effect counterpart to `useChannel` that invokes an
`onEvent` callback once per raw protocol event without re-rendering.
This is the idiomatic v1 replacement for the old `onLangChainEvent` /
`onCustomEvent` callbacks for analytics and logging. Backed by a new
framework-agnostic `acquireChannelEffect` helper in
`@langchain/langgraph-sdk/stream` that shares a ref-counted subscription
with matching `useChannel` consumers.

- Updated dependencies
\[[`3855985`](https://github.com/langchain-ai/langgraphjs/commit/3855985dd049739f145295d236ce6aa02ae2fb0e),
[`7c3e9e9`](https://github.com/langchain-ai/langgraphjs/commit/7c3e9e93f3c7ec1dc654dac8ee8c03562ee8337b),
[`17c44a3`](https://github.com/langchain-ai/langgraphjs/commit/17c44a38b7478e2bc4fe908a54c78ef33fb68ba3)]:
    -   @langchain/langgraph-sdk@1.9.21

## @langchain/vue@1.0.22

### Patch Changes

- [#2522](https://github.com/langchain-ai/langgraphjs/pull/2522)
[`3855985`](https://github.com/langchain-ai/langgraphjs/commit/3855985dd049739f145295d236ce6aa02ae2fb0e)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
feat(stream): add per-event side-effect selector

Add `useChannelEffect` (React/Svelte/Vue) / `injectChannelEffect`
(Angular), a side-effect counterpart to `useChannel` that invokes an
`onEvent` callback once per raw protocol event without re-rendering.
This is the idiomatic v1 replacement for the old `onLangChainEvent` /
`onCustomEvent` callbacks for analytics and logging. Backed by a new
framework-agnostic `acquireChannelEffect` helper in
`@langchain/langgraph-sdk/stream` that shares a ref-counted subscription
with matching `useChannel` consumers.

- Updated dependencies
\[[`3855985`](https://github.com/langchain-ai/langgraphjs/commit/3855985dd049739f145295d236ce6aa02ae2fb0e),
[`7c3e9e9`](https://github.com/langchain-ai/langgraphjs/commit/7c3e9e93f3c7ec1dc654dac8ee8c03562ee8337b),
[`17c44a3`](https://github.com/langchain-ai/langgraphjs/commit/17c44a38b7478e2bc4fe908a54c78ef33fb68ba3)]:
    -   @langchain/langgraph-sdk@1.9.21

## @example/ai-elements@0.1.37

### Patch Changes

- Updated dependencies
\[[`3855985`](https://github.com/langchain-ai/langgraphjs/commit/3855985dd049739f145295d236ce6aa02ae2fb0e),
[`2da5c33`](https://github.com/langchain-ai/langgraphjs/commit/2da5c3374f7b91ba0afa607c507e2ff1591baca7),
[`ef04db3`](https://github.com/langchain-ai/langgraphjs/commit/ef04db316d680ab32b812c88cadda75638294dd3)]:
    -   @langchain/react@1.0.22
    -   @langchain/langgraph@1.4.1

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

### Patch Changes

- Updated dependencies
\[[`3855985`](https://github.com/langchain-ai/langgraphjs/commit/3855985dd049739f145295d236ce6aa02ae2fb0e),
[`2da5c33`](https://github.com/langchain-ai/langgraphjs/commit/2da5c3374f7b91ba0afa607c507e2ff1591baca7),
[`ef04db3`](https://github.com/langchain-ai/langgraphjs/commit/ef04db316d680ab32b812c88cadda75638294dd3)]:
    -   @langchain/react@1.0.22
    -   @langchain/langgraph@1.4.1

## @examples/ui-angular@0.0.47

### Patch Changes

- Updated dependencies
\[[`3855985`](https://github.com/langchain-ai/langgraphjs/commit/3855985dd049739f145295d236ce6aa02ae2fb0e),
[`7c3e9e9`](https://github.com/langchain-ai/langgraphjs/commit/7c3e9e93f3c7ec1dc654dac8ee8c03562ee8337b),
[`2da5c33`](https://github.com/langchain-ai/langgraphjs/commit/2da5c3374f7b91ba0afa607c507e2ff1591baca7),
[`ef04db3`](https://github.com/langchain-ai/langgraphjs/commit/ef04db316d680ab32b812c88cadda75638294dd3),
[`17c44a3`](https://github.com/langchain-ai/langgraphjs/commit/17c44a38b7478e2bc4fe908a54c78ef33fb68ba3)]:
    -   @langchain/langgraph-sdk@1.9.21
    -   @langchain/angular@1.0.22
    -   @langchain/langgraph@1.4.1

## @examples/ui-multimodal@0.0.23

### Patch Changes

- Updated dependencies
\[[`3855985`](https://github.com/langchain-ai/langgraphjs/commit/3855985dd049739f145295d236ce6aa02ae2fb0e),
[`2da5c33`](https://github.com/langchain-ai/langgraphjs/commit/2da5c3374f7b91ba0afa607c507e2ff1591baca7),
[`ef04db3`](https://github.com/langchain-ai/langgraphjs/commit/ef04db316d680ab32b812c88cadda75638294dd3)]:
    -   @langchain/react@1.0.22
    -   @langchain/langgraph@1.4.1

## @examples/ui-react@0.0.23

### Patch Changes

- Updated dependencies
\[[`3855985`](https://github.com/langchain-ai/langgraphjs/commit/3855985dd049739f145295d236ce6aa02ae2fb0e),
[`7c3e9e9`](https://github.com/langchain-ai/langgraphjs/commit/7c3e9e93f3c7ec1dc654dac8ee8c03562ee8337b),
[`2da5c33`](https://github.com/langchain-ai/langgraphjs/commit/2da5c3374f7b91ba0afa607c507e2ff1591baca7),
[`ef04db3`](https://github.com/langchain-ai/langgraphjs/commit/ef04db316d680ab32b812c88cadda75638294dd3),
[`17c44a3`](https://github.com/langchain-ai/langgraphjs/commit/17c44a38b7478e2bc4fe908a54c78ef33fb68ba3)]:
    -   @langchain/langgraph-sdk@1.9.21
    -   @langchain/react@1.0.22
    -   @langchain/langgraph@1.4.1

## langgraph@1.0.41

### Patch Changes

- Updated dependencies
\[[`2da5c33`](https://github.com/langchain-ai/langgraphjs/commit/2da5c3374f7b91ba0afa607c507e2ff1591baca7),
[`ef04db3`](https://github.com/langchain-ai/langgraphjs/commit/ef04db316d680ab32b812c88cadda75638294dd3)]:
    -   @langchain/langgraph@1.4.1

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-06-10 17:09:31 -07:00
Christian Bromann 17c44a38b7 fix(sdk): reconnect v2 SSE and WebSocket thread streams after disconnect (#2462)
## Summary
- Add automatic reconnect for v2 `ProtocolSseTransportAdapter` and
`ProtocolWebSocketTransportAdapter` (resume via `since` on SSE, full
buffer replay on WebSocket, with `MaxWebSocketReconnectAttemptsError`
when the budget is exceeded).
- Wire `AsyncCaller` and reconnect defaults through
`client.threads.stream`, with optional `maxReconnectAttempts`,
`reconnectDelayMs`, and `onReconnect` on `ThreadStreamOptions`.
- Disable auto-reconnect when a custom `fetch` is passed (test/mocks),
and add `pnpm test:int` integration tests using `client.threads.stream`
+ `run.start` against an in-process mock server.

---------

Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-10 17:05:35 -07:00
Christian Bromann 7c3e9e93f3 fix(sdk): stop re-streaming seeded messages on idle-thread submit (#2523)
## Summary
- Fixes a visible "messages replay" where opening a finished thread and
submitting re-streamed every existing message token-by-token.
- Root cause: an idle thread defers its root SSE pump, so the first
`submit()` replays the finished run from `seq=0`. The `messages` channel
carries no step (unlike `values`, guarded by `#maxStep`), so it rebuilt
each already-complete message from an empty `message-start`, clobbering
the tail seeded from `getState()`.
- Adds a message-id seal in `RootMessageProjection`: ids seeded from an
idle thread's `getState()` snapshot drop replayed `messages` deltas in
`handleMessage()`. The seal is cleared on thread rebind (`reset()`) and
lifts in `applyValues()` once a strictly-newer checkpoint `step`
advances the timeline past the seed. `controller.hydrate()` only seals
for idle threads (`!threadActive`) — active threads keep streaming their
live tail, and ids from the next run are never sealed.

---------

Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>
2026-06-10 15:31:26 -07:00
Christian Bromann 3855985dd0 fix(sdk): add per-event channel effect selector (#2522)
## Summary
- Add a side-effect counterpart to `useChannel`: `useChannelEffect`
(React, Svelte, Vue) and `injectChannelEffect` (Angular). It invokes an
`onEvent` callback once per raw protocol event and returns nothing, so
it never re-renders — the idiomatic v1 replacement for the removed
`onLangChainEvent` / `onCustomEvent` callbacks used for
analytics/logging.
- Back all four bindings with a new framework-agnostic
`acquireChannelEffect(registry, channels, namespace, options)` helper in
`@langchain/langgraph-sdk/stream`. It acquires the same ref-counted
`channelProjection` as `useChannel` (so an effect consumer and a
matching `useChannel` share one server subscription and survive thread
swaps), diffs the shared store by event identity, skips events buffered
before it attaches (no double-counting history on a late mount), and
resets correctly across thread rebinds.
- API matches the agreed shape with `target`, `enabled`, `replay`
(defaults to `false`/live-only — opposite of `useChannel`),
`bufferSize`, `onEvent`, and `onError`. Callbacks are read from a
ref/lazy wrapper so fresh inline closures never re-subscribe.
- Update selector docs and `v1-migration.md` in all four SDKs, noting
the callback now receives v1 protocol events (`lifecycle.*`, `tools.*`,
`messages.*`, `custom`) rather than legacy LangChain event names.

---------

Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>
2026-06-10 15:19:27 -07:00
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>
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>
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
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>
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>
2026-06-05 15:52:16 -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
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>
2026-06-04 14:25:44 -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>
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
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>
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] 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] 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
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>
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>
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
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>
2026-06-01 09:20:26 -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
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
github-actions[bot] 381a9f64d0 chore: version packages (#2445)
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.3

### Patch Changes

- [#2352](https://github.com/langchain-ai/langgraphjs/pull/2352)
[`14f2a79`](https://github.com/langchain-ai/langgraphjs/commit/14f2a796912e81d7f52f0a4f16747f6d0a269209)
Thanks [@Nagendhra-web](https://github.com/Nagendhra-web)! -
fix(langgraph-checkpoint): block prototype pollution in MemorySaver via
reserved storage keys

    `MemorySaver` previously embedded `thread_id`, `checkpoint_ns`,
`checkpoint_id`, and `task_id` directly into property accesses on the
nested plain objects `this.storage` and `this.writes`. A caller able to
shape any of those fields (every quickstart, tutorial, and test fixture
    uses `MemorySaver` by default) could pass `"__proto__"`,
    `"constructor"`, or `"prototype"` and have the subsequent assignment
    mutate `Object.prototype`. From that point every plain object in the
    process inherits the injected property, breaking `for...in` loops,
truthy short-circuits, and downstream serializers across unrelated code
    paths. CWE-1321.

Adds an `assertSafeStorageKey` chokepoint applied at every public entry
that touches `storage` or `writes` (`put`, `putWrites`, `deleteThread`,
    `getTuple`, `list`). The guard rejects non-string values, the empty
string (unless explicitly opted-in for `checkpoint_ns`), and the three
    prototype-pollution keys. Behaviour for valid string identifiers is
    unchanged.

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

### Patch Changes

- [#2350](https://github.com/langchain-ai/langgraphjs/pull/2350)
[`1e73c6b`](https://github.com/langchain-ai/langgraphjs/commit/1e73c6b4630bbc4aa976eea4bfc33c4f753b7ee9)
Thanks [@Nagendhra-web](https://github.com/Nagendhra-web)! -
fix(checkpoint-redis): block Redis KEYS / SCAN pattern injection via
top-level identifiers

`RedisSaver` and `ShallowRedisSaver` previously embedded `thread_id`,
`checkpoint_ns`, `checkpoint_id`, and `task_id` directly into Redis keys
and `client.keys(pattern)` calls with no validation. A caller able to
    shape any of those fields (multi-tenant SDK deployments where the
`RunnableConfig` originates from request input, or webhook payloads that
flow into a persisted thread) could promote a string identifier into a
    glob pattern (`*`, `?`, `[...]`) or escape character (`\`).

    The most severe sink is `deleteThread`: a `threadId` of `*` issues
`client.keys("checkpoint:*:*")` followed by `client.del(...)`, deleting
    every checkpoint in the database across every tenant. `getTuple`,
    `list`, and `loadPendingWrites` are exposed to the same pattern via
the fallback paths that bypass the existing `escapeRediSearchTagValue`
    defense.

    Adds a single `assertSafeKeyComponent` helper exported from
    `./utils.js` and applies it at every key-building site. The guard
    asserts the value is a non-empty string (the empty `checkpoint_ns`
    default is opt-in via `{ allowEmpty: true }`) and rejects the Redis
pattern meta-characters `* ? [ ] \`. The `:` delimiter is intentionally
    permitted because LangGraph emits it as a legitimate part of
    `checkpoint_ns` for subgraphs / nested graphs, where it only ever
appears as a literal in the key. Behavior for valid string identifiers
    is unchanged.

## @langchain/langgraph-api@1.2.3

### Patch Changes

- [#2447](https://github.com/langchain-ai/langgraphjs/pull/2447)
[`80c2806`](https://github.com/langchain-ai/langgraphjs/commit/80c2806cb2da93745a640664bd0cf603c2361da9)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
protocol-v2: fold forkFrom client-side and honor per-run
multitaskStrategy

    The SDK now folds the ergonomic `forkFrom` option into
`config.configurable.checkpoint_id` before sending `run.start`, so the
agent server only ever accepts the single, legacy-compliant fork field
(`forkFrom` no longer hits the wire). The protocol-v2 reference servers
    drop their top-level `forkFrom` normalization accordingly.

The protocol-v2 servers now honor the caller's `multitaskStrategy` per
run (one of `reject` \| `rollback` \| `interrupt` \| `enqueue`) instead
of
hardcoding it, falling back to `enqueue` when omitted or unrecognized.

- [#2443](https://github.com/langchain-ai/langgraphjs/pull/2443)
[`80a8c12`](https://github.com/langchain-ai/langgraphjs/commit/80a8c1200a240fd984edc4deb26a7787d08c7532)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
refactor(sdk): drop StreamSubmitOptions.command and simplify forkFrom

    Remove the misleading submit({ command }) surface from protocol-v2
StreamController; HITL resume is respond() only. Accept forkFrom as a
    plain checkpoint id string and align protocol-v2 servers and docs.

- [#2448](https://github.com/langchain-ai/langgraphjs/pull/2448)
[`2c14b12`](https://github.com/langchain-ai/langgraphjs/commit/2c14b12a80c306578563e77595943037c7c4844d)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
protocol-v2: add `respondAll()` and run config/metadata on interrupt
resume

The stream controller (and the React/Angular/Svelte/Vue wrappers) gain a
`respondAll(responsesById, options)` method to resume several interrupts
pending at the same checkpoint in a single command — required for runs
that
pause on multiple interrupts at once (e.g. parallel tool-authorization
      prompts), which sequential `respond()` calls cannot handle.

`respond()` now takes an options object (`{ interruptId?, namespace?,
config?, metadata? }`) so a resumed run can carry the same run-level
config
(model, user context, …) and metadata (trigger source, test flags, …) a
fresh `submit()` would. The protocol-v2 reference servers read the new
`responses` batch and `config` / `metadata` fields leniently and fold
them
      onto the run that services the `input.respond` command.

- Updated dependencies
\[[`80a8c12`](https://github.com/langchain-ai/langgraphjs/commit/80a8c1200a240fd984edc4deb26a7787d08c7532)]:
    -   @langchain/langgraph-ui@1.2.3

## @langchain/langgraph-cli@1.2.3

### Patch Changes

- [#2443](https://github.com/langchain-ai/langgraphjs/pull/2443)
[`80a8c12`](https://github.com/langchain-ai/langgraphjs/commit/80a8c1200a240fd984edc4deb26a7787d08c7532)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
refactor(sdk): drop StreamSubmitOptions.command and simplify forkFrom

    Remove the misleading submit({ command }) surface from protocol-v2
StreamController; HITL resume is respond() only. Accept forkFrom as a
    plain checkpoint id string and align protocol-v2 servers and docs.

- Updated dependencies
\[[`80c2806`](https://github.com/langchain-ai/langgraphjs/commit/80c2806cb2da93745a640664bd0cf603c2361da9),
[`80a8c12`](https://github.com/langchain-ai/langgraphjs/commit/80a8c1200a240fd984edc4deb26a7787d08c7532),
[`2c14b12`](https://github.com/langchain-ai/langgraphjs/commit/2c14b12a80c306578563e77595943037c7c4844d)]:
    -   @langchain/langgraph-api@1.2.3

## @langchain/langgraph-ui@1.2.3

### Patch Changes

- [#2443](https://github.com/langchain-ai/langgraphjs/pull/2443)
[`80a8c12`](https://github.com/langchain-ai/langgraphjs/commit/80a8c1200a240fd984edc4deb26a7787d08c7532)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
refactor(sdk): drop StreamSubmitOptions.command and simplify forkFrom

    Remove the misleading submit({ command }) surface from protocol-v2
StreamController; HITL resume is respond() only. Accept forkFrom as a
    plain checkpoint id string and align protocol-v2 servers and docs.

## @langchain/langgraph-sdk@1.9.10

### Patch Changes

- [#2447](https://github.com/langchain-ai/langgraphjs/pull/2447)
[`80c2806`](https://github.com/langchain-ai/langgraphjs/commit/80c2806cb2da93745a640664bd0cf603c2361da9)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
protocol-v2: fold forkFrom client-side and honor per-run
multitaskStrategy

    The SDK now folds the ergonomic `forkFrom` option into
`config.configurable.checkpoint_id` before sending `run.start`, so the
agent server only ever accepts the single, legacy-compliant fork field
(`forkFrom` no longer hits the wire). The protocol-v2 reference servers
    drop their top-level `forkFrom` normalization accordingly.

The protocol-v2 servers now honor the caller's `multitaskStrategy` per
run (one of `reject` \| `rollback` \| `interrupt` \| `enqueue`) instead
of
hardcoding it, falling back to `enqueue` when omitted or unrecognized.

- [#2443](https://github.com/langchain-ai/langgraphjs/pull/2443)
[`80a8c12`](https://github.com/langchain-ai/langgraphjs/commit/80a8c1200a240fd984edc4deb26a7787d08c7532)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
refactor(sdk): drop StreamSubmitOptions.command and simplify forkFrom

    Remove the misleading submit({ command }) surface from protocol-v2
StreamController; HITL resume is respond() only. Accept forkFrom as a
    plain checkpoint id string and align protocol-v2 servers and docs.

- [#2448](https://github.com/langchain-ai/langgraphjs/pull/2448)
[`2c14b12`](https://github.com/langchain-ai/langgraphjs/commit/2c14b12a80c306578563e77595943037c7c4844d)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
protocol-v2: add `respondAll()` and run config/metadata on interrupt
resume

The stream controller (and the React/Angular/Svelte/Vue wrappers) gain a
`respondAll(responsesById, options)` method to resume several interrupts
pending at the same checkpoint in a single command — required for runs
that
pause on multiple interrupts at once (e.g. parallel tool-authorization
      prompts), which sequential `respond()` calls cannot handle.

`respond()` now takes an options object (`{ interruptId?, namespace?,
config?, metadata? }`) so a resumed run can carry the same run-level
config
(model, user context, …) and metadata (trigger source, test flags, …) a
fresh `submit()` would. The protocol-v2 reference servers read the new
`responses` batch and `config` / `metadata` fields leniently and fold
them
      onto the run that services the `input.respond` command.

## @langchain/angular@1.0.10

### Patch Changes

- [#2443](https://github.com/langchain-ai/langgraphjs/pull/2443)
[`80a8c12`](https://github.com/langchain-ai/langgraphjs/commit/80a8c1200a240fd984edc4deb26a7787d08c7532)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
refactor(sdk): drop StreamSubmitOptions.command and simplify forkFrom

    Remove the misleading submit({ command }) surface from protocol-v2
StreamController; HITL resume is respond() only. Accept forkFrom as a
    plain checkpoint id string and align protocol-v2 servers and docs.

- [#2448](https://github.com/langchain-ai/langgraphjs/pull/2448)
[`2c14b12`](https://github.com/langchain-ai/langgraphjs/commit/2c14b12a80c306578563e77595943037c7c4844d)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
protocol-v2: add `respondAll()` and run config/metadata on interrupt
resume

The stream controller (and the React/Angular/Svelte/Vue wrappers) gain a
`respondAll(responsesById, options)` method to resume several interrupts
pending at the same checkpoint in a single command — required for runs
that
pause on multiple interrupts at once (e.g. parallel tool-authorization
      prompts), which sequential `respond()` calls cannot handle.

`respond()` now takes an options object (`{ interruptId?, namespace?,
config?, metadata? }`) so a resumed run can carry the same run-level
config
(model, user context, …) and metadata (trigger source, test flags, …) a
fresh `submit()` would. The protocol-v2 reference servers read the new
`responses` batch and `config` / `metadata` fields leniently and fold
them
      onto the run that services the `input.respond` command.

- Updated dependencies
\[[`80c2806`](https://github.com/langchain-ai/langgraphjs/commit/80c2806cb2da93745a640664bd0cf603c2361da9),
[`80a8c12`](https://github.com/langchain-ai/langgraphjs/commit/80a8c1200a240fd984edc4deb26a7787d08c7532),
[`2c14b12`](https://github.com/langchain-ai/langgraphjs/commit/2c14b12a80c306578563e77595943037c7c4844d)]:
    -   @langchain/langgraph-sdk@1.9.10

## @langchain/react@1.0.10

### Patch Changes

- [#2443](https://github.com/langchain-ai/langgraphjs/pull/2443)
[`80a8c12`](https://github.com/langchain-ai/langgraphjs/commit/80a8c1200a240fd984edc4deb26a7787d08c7532)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
refactor(sdk): drop StreamSubmitOptions.command and simplify forkFrom

    Remove the misleading submit({ command }) surface from protocol-v2
StreamController; HITL resume is respond() only. Accept forkFrom as a
    plain checkpoint id string and align protocol-v2 servers and docs.

- [#2448](https://github.com/langchain-ai/langgraphjs/pull/2448)
[`2c14b12`](https://github.com/langchain-ai/langgraphjs/commit/2c14b12a80c306578563e77595943037c7c4844d)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
protocol-v2: add `respondAll()` and run config/metadata on interrupt
resume

The stream controller (and the React/Angular/Svelte/Vue wrappers) gain a
`respondAll(responsesById, options)` method to resume several interrupts
pending at the same checkpoint in a single command — required for runs
that
pause on multiple interrupts at once (e.g. parallel tool-authorization
      prompts), which sequential `respond()` calls cannot handle.

`respond()` now takes an options object (`{ interruptId?, namespace?,
config?, metadata? }`) so a resumed run can carry the same run-level
config
(model, user context, …) and metadata (trigger source, test flags, …) a
fresh `submit()` would. The protocol-v2 reference servers read the new
`responses` batch and `config` / `metadata` fields leniently and fold
them
      onto the run that services the `input.respond` command.

- Updated dependencies
\[[`80c2806`](https://github.com/langchain-ai/langgraphjs/commit/80c2806cb2da93745a640664bd0cf603c2361da9),
[`80a8c12`](https://github.com/langchain-ai/langgraphjs/commit/80a8c1200a240fd984edc4deb26a7787d08c7532),
[`2c14b12`](https://github.com/langchain-ai/langgraphjs/commit/2c14b12a80c306578563e77595943037c7c4844d)]:
    -   @langchain/langgraph-sdk@1.9.10

## @langchain/svelte@1.0.10

### Patch Changes

- [#2443](https://github.com/langchain-ai/langgraphjs/pull/2443)
[`80a8c12`](https://github.com/langchain-ai/langgraphjs/commit/80a8c1200a240fd984edc4deb26a7787d08c7532)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
refactor(sdk): drop StreamSubmitOptions.command and simplify forkFrom

    Remove the misleading submit({ command }) surface from protocol-v2
StreamController; HITL resume is respond() only. Accept forkFrom as a
    plain checkpoint id string and align protocol-v2 servers and docs.

- [#2448](https://github.com/langchain-ai/langgraphjs/pull/2448)
[`2c14b12`](https://github.com/langchain-ai/langgraphjs/commit/2c14b12a80c306578563e77595943037c7c4844d)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
protocol-v2: add `respondAll()` and run config/metadata on interrupt
resume

The stream controller (and the React/Angular/Svelte/Vue wrappers) gain a
`respondAll(responsesById, options)` method to resume several interrupts
pending at the same checkpoint in a single command — required for runs
that
pause on multiple interrupts at once (e.g. parallel tool-authorization
      prompts), which sequential `respond()` calls cannot handle.

`respond()` now takes an options object (`{ interruptId?, namespace?,
config?, metadata? }`) so a resumed run can carry the same run-level
config
(model, user context, …) and metadata (trigger source, test flags, …) a
fresh `submit()` would. The protocol-v2 reference servers read the new
`responses` batch and `config` / `metadata` fields leniently and fold
them
      onto the run that services the `input.respond` command.

- Updated dependencies
\[[`80c2806`](https://github.com/langchain-ai/langgraphjs/commit/80c2806cb2da93745a640664bd0cf603c2361da9),
[`80a8c12`](https://github.com/langchain-ai/langgraphjs/commit/80a8c1200a240fd984edc4deb26a7787d08c7532),
[`2c14b12`](https://github.com/langchain-ai/langgraphjs/commit/2c14b12a80c306578563e77595943037c7c4844d)]:
    -   @langchain/langgraph-sdk@1.9.10

## @langchain/vue@1.0.10

### Patch Changes

- [#2443](https://github.com/langchain-ai/langgraphjs/pull/2443)
[`80a8c12`](https://github.com/langchain-ai/langgraphjs/commit/80a8c1200a240fd984edc4deb26a7787d08c7532)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
refactor(sdk): drop StreamSubmitOptions.command and simplify forkFrom

    Remove the misleading submit({ command }) surface from protocol-v2
StreamController; HITL resume is respond() only. Accept forkFrom as a
    plain checkpoint id string and align protocol-v2 servers and docs.

- [#2448](https://github.com/langchain-ai/langgraphjs/pull/2448)
[`2c14b12`](https://github.com/langchain-ai/langgraphjs/commit/2c14b12a80c306578563e77595943037c7c4844d)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
protocol-v2: add `respondAll()` and run config/metadata on interrupt
resume

The stream controller (and the React/Angular/Svelte/Vue wrappers) gain a
`respondAll(responsesById, options)` method to resume several interrupts
pending at the same checkpoint in a single command — required for runs
that
pause on multiple interrupts at once (e.g. parallel tool-authorization
      prompts), which sequential `respond()` calls cannot handle.

`respond()` now takes an options object (`{ interruptId?, namespace?,
config?, metadata? }`) so a resumed run can carry the same run-level
config
(model, user context, …) and metadata (trigger source, test flags, …) a
fresh `submit()` would. The protocol-v2 reference servers read the new
`responses` batch and `config` / `metadata` fields leniently and fold
them
      onto the run that services the `input.respond` command.

- Updated dependencies
\[[`80c2806`](https://github.com/langchain-ai/langgraphjs/commit/80c2806cb2da93745a640664bd0cf603c2361da9),
[`80a8c12`](https://github.com/langchain-ai/langgraphjs/commit/80a8c1200a240fd984edc4deb26a7787d08c7532),
[`2c14b12`](https://github.com/langchain-ai/langgraphjs/commit/2c14b12a80c306578563e77595943037c7c4844d)]:
    -   @langchain/langgraph-sdk@1.9.10

## @example/ai-elements@0.1.25

### Patch Changes

- Updated dependencies
\[[`80a8c12`](https://github.com/langchain-ai/langgraphjs/commit/80a8c1200a240fd984edc4deb26a7787d08c7532),
[`2c14b12`](https://github.com/langchain-ai/langgraphjs/commit/2c14b12a80c306578563e77595943037c7c4844d)]:
    -   @langchain/react@1.0.10

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

### Patch Changes

- Updated dependencies
\[[`80a8c12`](https://github.com/langchain-ai/langgraphjs/commit/80a8c1200a240fd984edc4deb26a7787d08c7532),
[`2c14b12`](https://github.com/langchain-ai/langgraphjs/commit/2c14b12a80c306578563e77595943037c7c4844d)]:
    -   @langchain/react@1.0.10

## @examples/ui-angular@0.0.35

### Patch Changes

- Updated dependencies
\[[`80c2806`](https://github.com/langchain-ai/langgraphjs/commit/80c2806cb2da93745a640664bd0cf603c2361da9),
[`80a8c12`](https://github.com/langchain-ai/langgraphjs/commit/80a8c1200a240fd984edc4deb26a7787d08c7532),
[`2c14b12`](https://github.com/langchain-ai/langgraphjs/commit/2c14b12a80c306578563e77595943037c7c4844d)]:
    -   @langchain/langgraph-sdk@1.9.10
    -   @langchain/angular@1.0.10

## @examples/ui-multimodal@0.0.11

### Patch Changes

- Updated dependencies
\[[`80a8c12`](https://github.com/langchain-ai/langgraphjs/commit/80a8c1200a240fd984edc4deb26a7787d08c7532),
[`2c14b12`](https://github.com/langchain-ai/langgraphjs/commit/2c14b12a80c306578563e77595943037c7c4844d)]:
    -   @langchain/react@1.0.10

## @examples/ui-react@0.0.11

### Patch Changes

- Updated dependencies
\[[`80c2806`](https://github.com/langchain-ai/langgraphjs/commit/80c2806cb2da93745a640664bd0cf603c2361da9),
[`80a8c12`](https://github.com/langchain-ai/langgraphjs/commit/80a8c1200a240fd984edc4deb26a7787d08c7532),
[`2c14b12`](https://github.com/langchain-ai/langgraphjs/commit/2c14b12a80c306578563e77595943037c7c4844d)]:
    -   @langchain/langgraph-sdk@1.9.10
    -   @langchain/react@1.0.10

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-29 00:08:20 -07:00
Christian Bromann 2c14b12a80 fix(sdk): add back respondAll and respond config/metadata (#2448)
## Summary
- Add `respondAll(responsesById, options)` to the stream controller and
the React/Angular/Svelte/Vue wrappers, resuming multiple interrupts
pending at the same checkpoint in a single `Command({ resume })`. This
is required for runs that pause on several interrupts at once (e.g.
parallel tool-authorization prompts), which sequential `respond()` calls
cannot service.
- Change `respond()` to take an options object (`{ interruptId?,
namespace?, config?, metadata? }`), folding run-level
`config`/`metadata` onto the resumed run so it applies the same
configurable values and metadata a fresh `submit()` would.
- Extend `ThreadStream.respondInput()` to accept a `responses` batch
(mutually exclusive with the single `interrupt_id`/`response`) and clear
all responded interrupts from local state.
- Update the protocol-v2 reference servers (`embed/protocol.mts`,
`protocol/service.mts`) to read the `responses` batch plus
`config`/`metadata` leniently and fold them onto the run servicing
`input.respond`.
- Update docs (interrupts/use-stream) across all framework packages and
add controller tests for batched resume.
2026-05-28 16:53:09 -07:00
Christian Bromann 80c2806cb2 fix(sdk): fold forkFrom client-side and honor multitaskStrategy (#2447)
## Summary
- Fold the SDK's top-level `forkFrom` into
`config.configurable.checkpoint_id` client-side before sending
`run.start`, so `forkFrom` never reaches the server and the fork target
travels via the single legacy-compliant field used by the existing run
endpoints.
- Drop the server-side `forkFrom` normalization/promotion in both
protocol-v2 reference servers (`ProtocolService.createOrResumeRun` and
the embed protocol routes), reading the fork target solely from
`config.configurable.checkpoint_id`.
- Honor the caller's per-run `multitaskStrategy` (`reject` | `rollback`
| `interrupt` | `enqueue`) instead of hardcoding `interrupt`, falling
back to `enqueue` (the legacy stream-endpoint default, matching the
Python protocol-v2 server) when omitted or unrecognized.
2026-05-28 12:59:49 -07:00
Christian Bromann 80a8c1200a refactor(sdk): drop StreamSubmitOptions.command and simplify forkFrom (#2443)
## Summary
- Remove `command` from `StreamSubmitOptions` and the
`submit-coordinator` resume-via-`submit` path so HITL resume goes
through `stream.respond()` only.
- Simplify `forkFrom` from `{ checkpointId: string }` to a plain
checkpoint id string across the SDK, protocol-v2 services, and docs.
- Update interrupt tests, examples (`HumanInTheLoopView`, branching
views), and React/Vue/Svelte/Angular JSDoc and migration/interrupt docs
to match.
2026-05-28 09:52:05 -07:00
github-actions[bot] 2f0010e3a5 chore: version packages (#2442)
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.9

### Patch Changes

- [#2441](https://github.com/langchain-ai/langgraphjs/pull/2441)
[`dbbcb63`](https://github.com/langchain-ai/langgraphjs/commit/dbbcb636e742c38e89854a8ae7ef4e1566d44343)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): preserve apiUrl path prefix in stream transport URLs

Use BaseClient-style URL concatenation in `toAbsoluteUrl` so SSE and
WebSocket
subscriptions work when the SDK is pointed at a proxied apiUrl with a
path
    prefix (e.g. `/api/chat-langchain`).

## @langchain/angular@1.0.9

### Patch Changes

- Updated dependencies
\[[`dbbcb63`](https://github.com/langchain-ai/langgraphjs/commit/dbbcb636e742c38e89854a8ae7ef4e1566d44343)]:
    -   @langchain/langgraph-sdk@1.9.9

## @langchain/react@1.0.9

### Patch Changes

- Updated dependencies
\[[`dbbcb63`](https://github.com/langchain-ai/langgraphjs/commit/dbbcb636e742c38e89854a8ae7ef4e1566d44343)]:
    -   @langchain/langgraph-sdk@1.9.9

## @langchain/svelte@1.0.9

### Patch Changes

- Updated dependencies
\[[`dbbcb63`](https://github.com/langchain-ai/langgraphjs/commit/dbbcb636e742c38e89854a8ae7ef4e1566d44343)]:
    -   @langchain/langgraph-sdk@1.9.9

## @langchain/vue@1.0.9

### Patch Changes

- Updated dependencies
\[[`dbbcb63`](https://github.com/langchain-ai/langgraphjs/commit/dbbcb636e742c38e89854a8ae7ef4e1566d44343)]:
    -   @langchain/langgraph-sdk@1.9.9

## @example/ai-elements@0.1.24

### Patch Changes

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

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

### Patch Changes

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

## @examples/ui-angular@0.0.34

### Patch Changes

- Updated dependencies
\[[`dbbcb63`](https://github.com/langchain-ai/langgraphjs/commit/dbbcb636e742c38e89854a8ae7ef4e1566d44343)]:
    -   @langchain/langgraph-sdk@1.9.9
    -   @langchain/angular@1.0.9

## @examples/ui-multimodal@0.0.10

### Patch Changes

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

## @examples/ui-react@0.0.10

### Patch Changes

- Updated dependencies
\[[`dbbcb63`](https://github.com/langchain-ai/langgraphjs/commit/dbbcb636e742c38e89854a8ae7ef4e1566d44343)]:
    -   @langchain/langgraph-sdk@1.9.9
    -   @langchain/react@1.0.9

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-27 12:21:25 -07:00
Christian Bromann dbbcb636e7 fix(sdk): preserve apiUrl path prefix in stream transport URLs (#2441)
## Summary
- Fix `toAbsoluteUrl` to concatenate `apiUrl` and path instead of using
`new URL(path, base)`, which dropped path prefixes on proxied
deployments.
- Route WebSocket stream URL construction through `toAbsoluteUrl` for
consistency with SSE transport.
- Add unit and integration tests for proxied apiUrl paths, plus shared
transport test helpers.
2026-05-27 12:16:42 -07:00
github-actions[bot] 4e71ace65a chore: version packages (#2439)
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.8

### Patch Changes

- [#2438](https://github.com/langchain-ai/langgraphjs/pull/2438)
[`29d2bde`](https://github.com/langchain-ai/langgraphjs/commit/29d2bde235bf85e8a5e1dd59a997266ff894484b)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): cancel runs on stop by default and add disconnect()

`stream.stop()` now calls `client.runs.cancel` for the active run before
disconnecting the client (default `{ cancel: true }`). Join/rejoin UIs
can call `stream.disconnect()` or `stop({ cancel: false })` to leave the
agent running server-side.

    This fills a missing gap we found when migrating to v1.

## @langchain/angular@1.0.8

### Patch Changes

- [#2438](https://github.com/langchain-ai/langgraphjs/pull/2438)
[`29d2bde`](https://github.com/langchain-ai/langgraphjs/commit/29d2bde235bf85e8a5e1dd59a997266ff894484b)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): cancel runs on stop by default and add disconnect()

`stream.stop()` now calls `client.runs.cancel` for the active run before
disconnecting the client (default `{ cancel: true }`). Join/rejoin UIs
can call `stream.disconnect()` or `stop({ cancel: false })` to leave the
agent running server-side.

    This fills a missing gap we found when migrating to v1.

- Updated dependencies
\[[`29d2bde`](https://github.com/langchain-ai/langgraphjs/commit/29d2bde235bf85e8a5e1dd59a997266ff894484b)]:
    -   @langchain/langgraph-sdk@1.9.8

## @langchain/react@1.0.8

### Patch Changes

- [#2438](https://github.com/langchain-ai/langgraphjs/pull/2438)
[`29d2bde`](https://github.com/langchain-ai/langgraphjs/commit/29d2bde235bf85e8a5e1dd59a997266ff894484b)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): cancel runs on stop by default and add disconnect()

`stream.stop()` now calls `client.runs.cancel` for the active run before
disconnecting the client (default `{ cancel: true }`). Join/rejoin UIs
can call `stream.disconnect()` or `stop({ cancel: false })` to leave the
agent running server-side.

    This fills a missing gap we found when migrating to v1.

- Updated dependencies
\[[`29d2bde`](https://github.com/langchain-ai/langgraphjs/commit/29d2bde235bf85e8a5e1dd59a997266ff894484b)]:
    -   @langchain/langgraph-sdk@1.9.8

## @langchain/svelte@1.0.8

### Patch Changes

- [#2438](https://github.com/langchain-ai/langgraphjs/pull/2438)
[`29d2bde`](https://github.com/langchain-ai/langgraphjs/commit/29d2bde235bf85e8a5e1dd59a997266ff894484b)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): cancel runs on stop by default and add disconnect()

`stream.stop()` now calls `client.runs.cancel` for the active run before
disconnecting the client (default `{ cancel: true }`). Join/rejoin UIs
can call `stream.disconnect()` or `stop({ cancel: false })` to leave the
agent running server-side.

    This fills a missing gap we found when migrating to v1.

- Updated dependencies
\[[`29d2bde`](https://github.com/langchain-ai/langgraphjs/commit/29d2bde235bf85e8a5e1dd59a997266ff894484b)]:
    -   @langchain/langgraph-sdk@1.9.8

## @langchain/vue@1.0.8

### Patch Changes

- [#2438](https://github.com/langchain-ai/langgraphjs/pull/2438)
[`29d2bde`](https://github.com/langchain-ai/langgraphjs/commit/29d2bde235bf85e8a5e1dd59a997266ff894484b)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): cancel runs on stop by default and add disconnect()

`stream.stop()` now calls `client.runs.cancel` for the active run before
disconnecting the client (default `{ cancel: true }`). Join/rejoin UIs
can call `stream.disconnect()` or `stop({ cancel: false })` to leave the
agent running server-side.

    This fills a missing gap we found when migrating to v1.

- Updated dependencies
\[[`29d2bde`](https://github.com/langchain-ai/langgraphjs/commit/29d2bde235bf85e8a5e1dd59a997266ff894484b)]:
    -   @langchain/langgraph-sdk@1.9.8

## @example/ai-elements@0.1.23

### Patch Changes

- Updated dependencies
\[[`29d2bde`](https://github.com/langchain-ai/langgraphjs/commit/29d2bde235bf85e8a5e1dd59a997266ff894484b)]:
    -   @langchain/react@1.0.8

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

### Patch Changes

- Updated dependencies
\[[`29d2bde`](https://github.com/langchain-ai/langgraphjs/commit/29d2bde235bf85e8a5e1dd59a997266ff894484b)]:
    -   @langchain/react@1.0.8

## @examples/ui-angular@0.0.33

### Patch Changes

- Updated dependencies
\[[`29d2bde`](https://github.com/langchain-ai/langgraphjs/commit/29d2bde235bf85e8a5e1dd59a997266ff894484b)]:
    -   @langchain/langgraph-sdk@1.9.8
    -   @langchain/angular@1.0.8

## @examples/ui-multimodal@0.0.9

### Patch Changes

- Updated dependencies
\[[`29d2bde`](https://github.com/langchain-ai/langgraphjs/commit/29d2bde235bf85e8a5e1dd59a997266ff894484b)]:
    -   @langchain/react@1.0.8

## @examples/ui-react@0.0.9

### Patch Changes

- Updated dependencies
\[[`29d2bde`](https://github.com/langchain-ai/langgraphjs/commit/29d2bde235bf85e8a5e1dd59a997266ff894484b)]:
    -   @langchain/langgraph-sdk@1.9.8
    -   @langchain/react@1.0.8

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-26 17:05:03 -07:00