Commit Graph

3037 Commits

Author SHA1 Message Date
github-actions[bot] afb42cd7fe chore: version packages (#2607)
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.27

### Patch Changes

- [#2606](https://github.com/langchain-ai/langgraphjs/pull/2606)
[`fa4658c`](https://github.com/langchain-ai/langgraphjs/commit/fa4658c79489eb5fb3e38744c34a6f5bf2373831)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): omit carried `since` on SSE reconnect

Protocol `seq` is connection-scoped: a new `POST /stream/events`
re-numbers Redis replay from 1, so advancing `since` from observed seqs
and sending it after a successful open filtered out the full history
(heartbeats only). An explicit caller `since` is still sent until the
stream connects (including pre-ready retries); post-connect reconnects
omit `since` and rely on durable `event_id` dedup.
## @langchain/angular@1.0.28

### Patch Changes

- Updated dependencies
[[`fa4658c`](https://github.com/langchain-ai/langgraphjs/commit/fa4658c79489eb5fb3e38744c34a6f5bf2373831)]:
  - @langchain/langgraph-sdk@1.9.27
## @langchain/react@1.0.28

### Patch Changes

- Updated dependencies
[[`fa4658c`](https://github.com/langchain-ai/langgraphjs/commit/fa4658c79489eb5fb3e38744c34a6f5bf2373831)]:
  - @langchain/langgraph-sdk@1.9.27
## @langchain/svelte@1.0.28

### Patch Changes

- Updated dependencies
[[`fa4658c`](https://github.com/langchain-ai/langgraphjs/commit/fa4658c79489eb5fb3e38744c34a6f5bf2373831)]:
  - @langchain/langgraph-sdk@1.9.27
## @langchain/vue@1.0.28

### Patch Changes

- Updated dependencies
[[`fa4658c`](https://github.com/langchain-ai/langgraphjs/commit/fa4658c79489eb5fb3e38744c34a6f5bf2373831)]:
  - @langchain/langgraph-sdk@1.9.27

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@langchain/angular@1.0.28 @langchain/langgraph-sdk@1.9.27 @langchain/react@1.0.28 @langchain/svelte@1.0.28 @langchain/vue@1.0.28
2026-07-15 11:21:35 -07:00
Christian Bromann fa4658c794 fix(sdk): omit since on SSE reconnect (#2606)
## Summary
- Stop sending body `since` on SSE (re)connect in
`ProtocolSseTransportAdapter`.
- Protocol `seq` is connection-scoped; a new POST re-numbers Redis
history from 1, so a prior session's `since` (e.g. `146`) dropped the
entire replay and left only heartbeats after QUIC/idle drops.
- Clients continue to deduplicate via durable `event_id`. A durable
cursor can replace this later.
2026-07-15 10:58:05 -07:00
github-actions[bot] 3dccad1391 chore: version packages (#2603)
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.4.3

### Patch Changes

- Updated dependencies []:
  - @langchain/langgraph-ui@1.4.3
## @langchain/langgraph-cli@1.4.3

### Patch Changes

- [#2595](https://github.com/langchain-ai/langgraphjs/pull/2595)
[`dac8c2f`](https://github.com/langchain-ai/langgraphjs/commit/dac8c2fa7edfd643aa393a1d6407759b6cd8acf4)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
chore: bump langsmith to ^0.8.0

- Updated dependencies []:
  - @langchain/langgraph-api@1.4.3
## @langchain/langgraph@1.4.8

### Patch Changes

- [#2604](https://github.com/langchain-ai/langgraphjs/pull/2604)
[`42ec394`](https://github.com/langchain-ai/langgraphjs/commit/42ec39460bfe0c3be017fb043c668c3204c8a175)
Thanks [@hntrl](https://github.com/hntrl)! - fix(pregel): wait for
completed-superstep persistence with sync durability

- Updated dependencies
[[`f326b89`](https://github.com/langchain-ai/langgraphjs/commit/f326b89365043bfa846e0b428564bcafafab4aaa),
[`c201256`](https://github.com/langchain-ai/langgraphjs/commit/c201256b27d55c9aa333d3d15f6ec16c2fd7de9b)]:
  - @langchain/langgraph-sdk@1.9.26
## @langchain/langgraph-sdk@1.9.26

### Patch Changes

- [#2605](https://github.com/langchain-ai/langgraphjs/pull/2605)
[`f326b89`](https://github.com/langchain-ai/langgraphjs/commit/f326b89365043bfa846e0b428564bcafafab4aaa)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): keep SSE reconnect enabled with custom fetch

Auth/proxy fetch shims previously forced `maxReconnectAttempts: 0`, so
HITL waits that lost `/stream/events` (e.g. `ERR_QUIC_PROTOCOL_ERROR`)
never recovered and left `respond()`/`submit()` spinning. Fail-fast test
mocks should pass `maxReconnectAttempts: 0` explicitly. Also plumbs
reconnect options through framework `useStream` bindings.

- [#2602](https://github.com/langchain-ai/langgraphjs/pull/2602)
[`c201256`](https://github.com/langchain-ai/langgraphjs/commit/c201256b27d55c9aa333d3d15f6ec16c2fd7de9b)
Thanks [@HugoDurand](https://github.com/HugoDurand)! - fix(sdk): support
clearing a cron's end time via `crons.update(cronId, { endTime: null })`

`CronsClient.update` now accepts `endTime: null` to clear a previously
set cron end time; omitting `endTime` still leaves it unchanged. The
field was typed `string`, so callers could not express "clear" even
though the request already forwards an explicit `null`.
## @langchain/angular@1.0.27

### Patch Changes

- [#2605](https://github.com/langchain-ai/langgraphjs/pull/2605)
[`f326b89`](https://github.com/langchain-ai/langgraphjs/commit/f326b89365043bfa846e0b428564bcafafab4aaa)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): keep SSE reconnect enabled with custom fetch

Auth/proxy fetch shims previously forced `maxReconnectAttempts: 0`, so
HITL waits that lost `/stream/events` (e.g. `ERR_QUIC_PROTOCOL_ERROR`)
never recovered and left `respond()`/`submit()` spinning. Fail-fast test
mocks should pass `maxReconnectAttempts: 0` explicitly. Also plumbs
reconnect options through framework `useStream` bindings.

- Updated dependencies
[[`f326b89`](https://github.com/langchain-ai/langgraphjs/commit/f326b89365043bfa846e0b428564bcafafab4aaa),
[`c201256`](https://github.com/langchain-ai/langgraphjs/commit/c201256b27d55c9aa333d3d15f6ec16c2fd7de9b)]:
  - @langchain/langgraph-sdk@1.9.26
## @langchain/react@1.0.27

### Patch Changes

- [#2605](https://github.com/langchain-ai/langgraphjs/pull/2605)
[`f326b89`](https://github.com/langchain-ai/langgraphjs/commit/f326b89365043bfa846e0b428564bcafafab4aaa)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): keep SSE reconnect enabled with custom fetch

Auth/proxy fetch shims previously forced `maxReconnectAttempts: 0`, so
HITL waits that lost `/stream/events` (e.g. `ERR_QUIC_PROTOCOL_ERROR`)
never recovered and left `respond()`/`submit()` spinning. Fail-fast test
mocks should pass `maxReconnectAttempts: 0` explicitly. Also plumbs
reconnect options through framework `useStream` bindings.

- Updated dependencies
[[`f326b89`](https://github.com/langchain-ai/langgraphjs/commit/f326b89365043bfa846e0b428564bcafafab4aaa),
[`c201256`](https://github.com/langchain-ai/langgraphjs/commit/c201256b27d55c9aa333d3d15f6ec16c2fd7de9b)]:
  - @langchain/langgraph-sdk@1.9.26
## @langchain/svelte@1.0.27

### Patch Changes

- [#2605](https://github.com/langchain-ai/langgraphjs/pull/2605)
[`f326b89`](https://github.com/langchain-ai/langgraphjs/commit/f326b89365043bfa846e0b428564bcafafab4aaa)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): keep SSE reconnect enabled with custom fetch

Auth/proxy fetch shims previously forced `maxReconnectAttempts: 0`, so
HITL waits that lost `/stream/events` (e.g. `ERR_QUIC_PROTOCOL_ERROR`)
never recovered and left `respond()`/`submit()` spinning. Fail-fast test
mocks should pass `maxReconnectAttempts: 0` explicitly. Also plumbs
reconnect options through framework `useStream` bindings.

- Updated dependencies
[[`f326b89`](https://github.com/langchain-ai/langgraphjs/commit/f326b89365043bfa846e0b428564bcafafab4aaa),
[`c201256`](https://github.com/langchain-ai/langgraphjs/commit/c201256b27d55c9aa333d3d15f6ec16c2fd7de9b)]:
  - @langchain/langgraph-sdk@1.9.26
## @langchain/vue@1.0.27

### Patch Changes

- [#2605](https://github.com/langchain-ai/langgraphjs/pull/2605)
[`f326b89`](https://github.com/langchain-ai/langgraphjs/commit/f326b89365043bfa846e0b428564bcafafab4aaa)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(sdk): keep SSE reconnect enabled with custom fetch

Auth/proxy fetch shims previously forced `maxReconnectAttempts: 0`, so
HITL waits that lost `/stream/events` (e.g. `ERR_QUIC_PROTOCOL_ERROR`)
never recovered and left `respond()`/`submit()` spinning. Fail-fast test
mocks should pass `maxReconnectAttempts: 0` explicitly. Also plumbs
reconnect options through framework `useStream` bindings.

- Updated dependencies
[[`f326b89`](https://github.com/langchain-ai/langgraphjs/commit/f326b89365043bfa846e0b428564bcafafab4aaa),
[`c201256`](https://github.com/langchain-ai/langgraphjs/commit/c201256b27d55c9aa333d3d15f6ec16c2fd7de9b)]:
  - @langchain/langgraph-sdk@1.9.26
## @langchain/langgraph-ui@1.4.3

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@langchain/angular@1.0.27 @langchain/langgraph-api@1.4.3 @langchain/langgraph-cli@1.4.3 @langchain/langgraph-sdk@1.9.26 @langchain/langgraph-ui@1.4.3 @langchain/langgraph@1.4.8 @langchain/react@1.0.27 @langchain/svelte@1.0.27 @langchain/vue@1.0.27
2026-07-14 21:47:29 -07:00
Christian Bromann f326b89365 fix(sdk): keep SSE reconnect enabled with custom fetch (#2605)
## Summary
- Keep SSE auto-reconnect and idle-reconnect enabled when a custom
`fetch` is supplied (auth/proxy shims), instead of silently forcing
`maxReconnectAttempts: 0`.
- Plumb `maxReconnectAttempts`, `streamIdleReconnect`,
`reconnectDelayMs`, and `onReconnect` through `StreamController` and
React/Vue/Svelte/Angular `useStream`.
- Add transport unit coverage plus browser interrupt tests that drop
`/stream/events` mid-HITL and assert `respond()` still completes.
2026-07-14 21:45:12 -07:00
Hunter Lovell 42ec39460b fix(core): enforce sync durability barriers (#2604)
## Summary

Makes `durability: "sync"` enforce its superstep boundary: persistence
produced by a completed superstep must settle before the scheduler
prepares and dispatches the next one. Previously, persistence was
tracked and awaited at final cleanup but could overlap later supersteps.

## Changes

- Snapshot and await the current run's tracked `putWrites()` and ordered
checkpoint `put()` promises after each completed superstep when
durability is `sync`.
- Preserve asynchronous and exit-only durability behavior, including the
existing final persistence settlement path.
- Add gated `StateGraph` regression coverage for `invoke`, `stream`, and
`streamEvents`, plus coverage that async mode may progress while
persistence is pending.
- Add a patch changeset for `@langchain/langgraph`.
2026-07-14 19:12:09 -07:00
Christian Bromann dac8c2fa7e chore: bump langsmith to ^0.8.0 (#2595)
## Description

The langsmith SDK published v0.8.0. This updates the `langsmith`
dependency in the workspaces that pin it via a caret range
(`langgraph-cli`) to `^0.8.0` and refreshes `pnpm-lock.yaml` so the
workspace packages resolve to `0.8.0`. The broad peer/dependency range
in `langgraph-api` (`>=0.5.19 <1.0.0`) already permits `0.8.0` and is
left unchanged, matching prior langsmith bump PRs. Transitive
`langsmith` versions pulled in by published `@langchain/*` packages are
left untouched.

## Test Plan
- [ ] `pnpm install --frozen-lockfile` resolves without changes

Made by [Open
SWE](https://openswe.vercel.app/agents/019f436f-3343-7169-a06a-5f64fe70e3af)

---------

Signed-off-by: Christian Bromann <git@bromann.dev>
Co-authored-by: Christian Bromann <731337+christian-bromann@users.noreply.github.com>
Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>
2026-07-14 14:08:13 -07:00
Hunter Lovell 644892c7db docs(langgraph): fix README logo paths (#2599)
## Summary

Fix the LangGraph README logo references so they render correctly from
both the repository root and the `libs/langgraph-core` package
directory.

## Changes

- Replace context-dependent relative logo paths with absolute raw GitHub
URLs.
- Preserve dark- and light-mode logo selection in the shared README.
2026-07-14 10:29:29 -07:00
Hugo DURAND c201256b27 fix(sdk): support clearing cron end_time via update({ endTime: null }) (#2602)
## What & why

`CronsClient.update` could not clear a cron's `end_time`. The field was
typed `endTime?: string`, so a type-checked caller had no way to express
"remove the end time" — even though, unlike the Python SDK, the JS
request builder was already correct at runtime: it uses per-field `if
(payload?.endTime !== undefined)` guards (not a `None`-strip), and `null
!== undefined`, so a `null` would already be forwarded and
`JSON.stringify` preserves it.

So the defect was purely a **type imprecision**, and the fix is at the
source — the model — rather than a workaround in the request logic:

- `CronsUpdatePayload.endTime`: `string` → `string | null`. PATCH
semantics are now the standard tri-state:
  - **omit `endTime`** → keep the existing value
  - **`endTime: null`** → clear it
  - **`endTime: "<iso>"`** → set it
- `CronsCreatePayload.endTime` is intentionally left `string` — create
never needs to clear.

This mirrors the Python SDK change in langchain-ai/langgraph#8334
(`update(end_time=None)`), and requires an Agent Server that supports
clearing `end_time` via `PATCH /runs/crons/{id}` (`end_time: null`).
Against an older server, `update(id, { endTime: null })` is a harmless
no-op for clearing (the server coalesces `null` back to the stored
value), and a clear-only patch may 400.

## Also in this PR (unify `update()`)

While here, `update()`'s payload construction is unified with the
existing `create()` / `createForThread()` style: the 16 repetitive `if
(payload?.X !== undefined) json.Y = payload.X` guards become a single
declarative object literal. `JSON.stringify` drops `undefined` keys and
keeps `null`, so the wire output is **identical** — this is a
behaviour-preserving refactor, pinned by the pre-existing "only sends
defined fields" / "sends all updatable fields" tests. Net −44 lines in
the method.

## Test plan

- [x] `vitest run` on `libs/sdk/src/client/crons/index.test.ts` — **9
passed** (8 existing + 1 new: `update(id, { endTime: null })` sends body
`{ end_time: null }`), no type errors.
- [x] `pnpm build` (tsc compile + `attw` + `publint`) — clean.
- [x] `oxlint` — 0 warnings / 0 errors; `oxfmt --check` — clean.
- [x] Changeset added (`@langchain/langgraph-sdk`: patch).
2026-07-14 13:05:05 -04:00
John Kennedy a34543a0dd build: add Socket optimized pnpm overrides (#2600)
## Summary

- Add Socket optimized registry overrides for supported transitive
dependencies.
- Regenerate the root pnpm lockfile with the Socket registry packages.
- Add Socket GitHub App configuration scoped to dependency manifest and
lockfile changes.

## Test plan

- `sfw pnpm install --lockfile-only --no-frozen-lockfile`
- `git diff --check`
- JSON/YAML parsing for `package.json` and `socket.yml`

The install reported existing workspace peer/deprecation warnings and a
missing docs patch path.

---------

Co-authored-by: John Kennedy <jkennedyvz@users.noreply.github.com>
2026-07-14 07:48:37 +00:00
langsmith-fleet[bot] ada0b67696 fix: store auth filter enforcement (#2597)
## Summary

Fixes the store API authorization filter issue flagged by Corridor by
capturing and applying `handleAuthEvent()` filters for store operations.

Changes:
- Capture auth filters for `list_namespaces`, `search`, `put`, `delete`,
and `get` store endpoints.
- Evaluate filters against store item value fields plus synthetic
`namespace` and `key` metadata.
- Use the mutable value returned by auth handlers for `store:put`,
allowing handlers to inject ownership fields before persistence.
- Filter list/search responses before returning them, applying
pagination after auth filtering when filters are present.
- Return 404 for existing items that are outside auth scope and 403 for
unauthorized new/missing write targets.
- Add auth test coverage for filter-based namespace isolation on broad
store search/list calls.

## Security

Addresses Corridor category 3: High/Medium store API authorization
filters discarded.

Primary finding cluster:
- Store search/get/put/delete/list_namespaces discarded
`handleAuthEvent()` filters, preventing item/namespace-level
authorization enforcement.

## Test plan

- `git diff --check` passed.
- Targeted test/typecheck not run locally because this sandbox did not
have dependencies installed, and Socket Firewall (`sfw`) installation
failed while downloading the required binary from GitHub with HTTP 502.
CI should run the package tests on the PR.

---------

Co-authored-by: Langster Security Agent <john@langchain.dev>
Co-authored-by: John Kennedy <65985482+jkennedyvz@users.noreply.github.com>
Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>
2026-07-09 04:04:14 +00:00
corridor-security[bot] 5b4f120fe8 fix: Unauthenticated /internal/truncate endpoint allows complete data wipe (#2596)
## Summary
This PR was generated by [Corridor](https://corridor.dev) to fix:

- Unauthenticated /internal/truncate endpoint allows complete data wipe

## Changes
The vulnerability stemmed from route registration order, which allowed
unauthenticated access to POST /internal/truncate and destructive data
loss. The fix moves the route registration to occur after the CORS,
request logger, and especially after the authentication middleware,
ensuring the truncate endpoint is protected by the centralized auth
policy; no handler logic or validation changes were made, and endpoints
remain reachable when auth is not configured to preserve existing
behavior.

---
Generated by Corridor

Co-authored-by: corridor-security[bot] <203152403+corridor-security[bot]@users.noreply.github.com>
2026-07-09 03:14:27 +00:00
langsmith-fleet[bot] c9a5b303bb chore: Add guarded Dependabot auto-merge workflow (#2594)
## Summary
- add a Dependabot-only workflow to auto-approve and enable GitHub
auto-merge for guarded low-risk dependency updates
- use pinned dependabot/fetch-metadata metadata to classify update type,
dependency type, ecosystem, group, and maintainer changes
- deny auto-merge for major updates, direct production runtime
dependencies, sensitive dependency names, large diffs, and
infra/deploy/workflow-risk file changes

## Safety notes
- uses pull_request_target but does not checkout or execute PR code
- restricts execution to Dependabot PRs whose head repo is
langchain-ai/langgraphjs
- relies on branch protection / required checks before GitHub auto-merge
can complete

## Test plan
- parsed workflow YAML with Ruby Psych
- ran git diff --check
- actionlint was unavailable in the sandbox

---------

Co-authored-by: langsmith-fleet[bot] <langsmith-fleet[bot]@users.noreply.github.com>
Co-authored-by: John Kennedy <jkennedyvz@users.noreply.github.com>
2026-07-08 17:09:38 -07:00
github-actions[bot] 96876a4bf0 chore: version packages (#2583)
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.4.2

### Patch Changes

- [#2590](https://github.com/langchain-ai/langgraphjs/pull/2590)
[`f71e00c`](https://github.com/langchain-ai/langgraphjs/commit/f71e00c52600a6dafacccdde1363e83c17c8d97b)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(api): inject langgraph_auth_user on protocol-v2 run.start

Stamp authenticated user fields onto run config in createOrResumeRun so
v2 streaming matches the REST runs API. Shared helpers also dedupe REST
  run config auth/header enrichment.

- [#2575](https://github.com/langchain-ai/langgraphjs/pull/2575)
[`e1b40c2`](https://github.com/langchain-ai/langgraphjs/commit/e1b40c29e14f8e9fb2696acc62d611e14a813f43)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(cli): support node_version 24 in langgraph.json

Allow Node 24 in the CLI config schema and Docker base image resolution.
  The langgraphjs-api:24 image is already published from langgraph-api.

- Updated dependencies
[[`f71e00c`](https://github.com/langchain-ai/langgraphjs/commit/f71e00c52600a6dafacccdde1363e83c17c8d97b),
[`e1b40c2`](https://github.com/langchain-ai/langgraphjs/commit/e1b40c29e14f8e9fb2696acc62d611e14a813f43)]:
  - @langchain/langgraph-ui@1.4.2
## @langchain/langgraph-cli@1.4.2

### Patch Changes

- [#2590](https://github.com/langchain-ai/langgraphjs/pull/2590)
[`f71e00c`](https://github.com/langchain-ai/langgraphjs/commit/f71e00c52600a6dafacccdde1363e83c17c8d97b)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(api): inject langgraph_auth_user on protocol-v2 run.start

Stamp authenticated user fields onto run config in createOrResumeRun so
v2 streaming matches the REST runs API. Shared helpers also dedupe REST
  run config auth/header enrichment.

- [#2575](https://github.com/langchain-ai/langgraphjs/pull/2575)
[`e1b40c2`](https://github.com/langchain-ai/langgraphjs/commit/e1b40c29e14f8e9fb2696acc62d611e14a813f43)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(cli): support node_version 24 in langgraph.json

Allow Node 24 in the CLI config schema and Docker base image resolution.
  The langgraphjs-api:24 image is already published from langgraph-api.

- Updated dependencies
[[`f71e00c`](https://github.com/langchain-ai/langgraphjs/commit/f71e00c52600a6dafacccdde1363e83c17c8d97b),
[`e1b40c2`](https://github.com/langchain-ai/langgraphjs/commit/e1b40c29e14f8e9fb2696acc62d611e14a813f43)]:
  - @langchain/langgraph-api@1.4.2
## @langchain/langgraph-ui@1.4.2

### Patch Changes

- [#2590](https://github.com/langchain-ai/langgraphjs/pull/2590)
[`f71e00c`](https://github.com/langchain-ai/langgraphjs/commit/f71e00c52600a6dafacccdde1363e83c17c8d97b)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(api): inject langgraph_auth_user on protocol-v2 run.start

Stamp authenticated user fields onto run config in createOrResumeRun so
v2 streaming matches the REST runs API. Shared helpers also dedupe REST
  run config auth/header enrichment.

- [#2575](https://github.com/langchain-ai/langgraphjs/pull/2575)
[`e1b40c2`](https://github.com/langchain-ai/langgraphjs/commit/e1b40c29e14f8e9fb2696acc62d611e14a813f43)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(cli): support node_version 24 in langgraph.json

Allow Node 24 in the CLI config schema and Docker base image resolution.
  The langgraphjs-api:24 image is already published from langgraph-api.

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@langchain/langgraph-api@1.4.2 @langchain/langgraph-cli@1.4.2 @langchain/langgraph-ui@1.4.2
2026-07-05 17:58:08 -07:00
Christian Bromann f71e00c526 fix(api): inject langgraph_auth_user on protocol-v2 run.start (#2590)
## Summary
- Inject `langgraph_auth_user`, `langgraph_auth_user_id`, and
`langgraph_auth_permissions` into run config in protocol v2
`createOrResumeRun`, matching the REST `createValidRun` behavior.
- Extract shared `applyAuthToRunConfig` /
`applyRequestHeadersToRunConfig` helpers and use them from both REST and
protocol paths.
- Pass `userId` into `runs.put()` from the protocol path for parity with
REST.
2026-07-05 17:55:52 -07:00
John Kennedy 041c0e81c9 chore: patch dependabot security alerts (#2588)
## Summary
- Add pnpm overrides for patched transitive dependency versions flagged
by Dependabot
- Refresh pnpm lockfile to resolve vulnerable @babel/core,
@grpc/grpc-js, form-data, protobufjs, esbuild, shell-quote, tmp, uuid,
and ws versions
- Leaves only the low-severity elliptic advisory, which currently has no
patched version

## Testing
- sfw pnpm install --offline --frozen-lockfile
- pnpm audit --json (1 remaining low elliptic advisory, no patched
version)
- pnpm lint

Co-authored-by: John Kennedy <jkennedyvz@users.noreply.github.com>
2026-07-05 17:46:07 -07:00
John Kennedy 8fb6376a75 chore: update Vitest to 4.1.9 (#2587)
## Summary
- update all workspace `vitest` declarations to `4.1.9`
- update `@vitest/browser-playwright` and `@vitest/browser-webdriverio`
declarations to `4.1.9`
- refresh `pnpm-lock.yaml` so no `vitest`/`@vitest/browser` versions
below `4.1.9` remain

## Validation
- `sfw pnpm install`
- `pnpm format:check`
- `pnpm lint`
- `pnpm build`
- targeted audit check: no `vitest` or `@vitest/browser` advisories
remain
- `pnpm --filter create-langgraph test`
- `pnpm --filter @langchain/react test`
- `pnpm --filter @langchain/svelte test`
- `pnpm --filter @langchain/vue test`
- `pnpm --filter @langchain/angular test`
- `pnpm --filter @langchain/langgraph test`

## Notes
- `pnpm --filter @langchain/langgraph test:browser` did not run locally
because Playwright Chromium for the updated provider was not installed
on this machine; Vitest exited before running tests with Playwright's
`pnpm exec playwright install` message.
- The SDK Vitest suites passed but printed Vitest's post-success
close-timeout warning.

Co-authored-by: John Kennedy <jkennedyvz@users.noreply.github.com>
2026-07-03 23:18:35 -07:00
John Kennedy bf9fc73a49 chore: raise Dependabot override floors (#2586)
## Summary
- raise root pnpm override floors for `qs`, `dompurify`, `undici`,
`fast-xml-parser`, and 7.x `protobufjs` to patched ranges from current
Dependabot alerts
- refresh `pnpm-lock.yaml` with `pnpm install --lockfile-only`

## Verification
- `sfw pnpm install --lockfile-only`
- `git diff --check`
- verified resolved versions: `undici` 6.27.0/7.28.0, `dompurify`
3.4.11, `fast-xml-parser` 5.9.3, `protobufjs` 7.6.5, `qs` 6.15.3

Note: `protobufjs@6.11.6` remains via the separate `onnx-proto` chain
and is outside the 7.x root override floor.
2026-07-04 04:36:31 +00:00
dependabot[bot] 8f3f4596f1 chore(deps): bump the vue group across 1 directory with 2 updates (#2581)
Bumps the vue group with 2 updates in the / directory:
[vue](https://github.com/vuejs/core) and
[@vitejs/plugin-vue-jsx](https://github.com/vitejs/vite-plugin-vue/tree/HEAD/packages/plugin-vue-jsx).

Updates `vue` from 3.5.35 to 3.5.39
<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.39</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.38</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.37</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.38...v3.5.39">3.5.39</a>
(2026-06-25)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>compiler-core:</strong> correct filter rewrite recursion (<a
href="https://redirect.github.com/vuejs/core/issues/14959">#14959</a>)
(<a
href="https://github.com/vuejs/core/commit/be7ce314b96256f1c56f53088d51ed6bc77fde28">be7ce31</a>)</li>
<li><strong>hydration:</strong> force patch dynamic props when hydrating
(<a href="https://redirect.github.com/vuejs/core/issues/9083">#9083</a>)
(<a
href="https://github.com/vuejs/core/commit/024cf06daa33db4660431f20aa050acb99cff07f">024cf06</a>),
closes <a
href="https://redirect.github.com/vuejs/core/issues/9033">#9033</a></li>
<li><strong>hydration:</strong> respect data-allow-mismatch on
conditional branches (<a
href="https://redirect.github.com/vuejs/core/issues/12801">#12801</a>)
(<a
href="https://github.com/vuejs/core/commit/164af639a120421194f7afe0e097bdf254c90199">164af63</a>),
closes <a
href="https://redirect.github.com/vuejs/core/issues/12782">#12782</a></li>
<li><strong>reactivity:</strong> avoid triggering effects when set fails
(<a
href="https://redirect.github.com/vuejs/core/issues/14964">#14964</a>)
(<a
href="https://github.com/vuejs/core/commit/e450973eabc0038f398344b981acd8759c246c50">e450973</a>)</li>
<li><strong>runtime-core:</strong> handle non-isomorphic block element
update (<a
href="https://redirect.github.com/vuejs/core/issues/15002">#15002</a>)
(<a
href="https://github.com/vuejs/core/commit/932ddd058d69be9bbd8cd796c89f0d1a4fc128d7">932ddd0</a>),
closes <a
href="https://redirect.github.com/vuejs/core/issues/6385">#6385</a></li>
<li><strong>runtime-core:</strong> normalize function children for
elements and Teleport (<a
href="https://redirect.github.com/vuejs/core/issues/9108">#9108</a>) (<a
href="https://github.com/vuejs/core/commit/2f374cda18cbe331ede1a49a324b423c75d0faf3">2f374cd</a>),
closes <a
href="https://redirect.github.com/vuejs/core/issues/9107">#9107</a></li>
<li><strong>runtime-core:</strong> pause tracking when invoking function
refs (<a
href="https://redirect.github.com/vuejs/core/issues/14985">#14985</a>)
(<a
href="https://github.com/vuejs/core/commit/3ac052b6b1e9d3978e98cc30a1a89a9b9b51358b">3ac052b</a>)</li>
<li><strong>runtime-core:</strong> preserve once event listener name (<a
href="https://redirect.github.com/vuejs/core/issues/8341">#8341</a>) (<a
href="https://github.com/vuejs/core/commit/87b73b64a0d9b4e2dd2dacfe98f2f1c2396d7a61">87b73b6</a>),
closes <a
href="https://redirect.github.com/vuejs/core/issues/8342">#8342</a></li>
<li><strong>runtime-dom:</strong> preserve option modifier event names
(<a href="https://redirect.github.com/vuejs/core/issues/8338">#8338</a>)
(<a
href="https://github.com/vuejs/core/commit/4b659e699925555464ea9ae8fa3e1984609f6dc2">4b659e6</a>),
closes <a
href="https://redirect.github.com/vuejs/core/issues/8334">#8334</a></li>
<li><strong>ssr:</strong> dedupe inherited scope ids during vnode
rendering (<a
href="https://redirect.github.com/vuejs/core/issues/15005">#15005</a>)
(<a
href="https://github.com/vuejs/core/commit/027da6b2810c4752131439d2645f3d931d07242f">027da6b</a>),
closes <a
href="https://redirect.github.com/vuejs/core/issues/12159">#12159</a> <a
href="https://redirect.github.com/vuejs/core/issues/12175">#12175</a></li>
<li><strong>ssr:</strong> resolve nested async teleport content (<a
href="https://redirect.github.com/vuejs/core/issues/9431">#9431</a>) (<a
href="https://github.com/vuejs/core/commit/31d0f23757afb410c638a9c29d44d76d0944e18f">31d0f23</a>),
closes <a
href="https://redirect.github.com/vuejs/core/issues/6207">#6207</a></li>
<li><strong>teleport:</strong> handle teleport unmount edge case (<a
href="https://redirect.github.com/vuejs/core/issues/12705">#12705</a>)
(<a
href="https://github.com/vuejs/core/commit/671997ade74e34880cebe3c340269b8598c3b26c">671997a</a>),
closes <a
href="https://redirect.github.com/vuejs/core/issues/12702">#12702</a></li>
<li><strong>types:</strong> support named tuple emits (<a
href="https://redirect.github.com/vuejs/core/issues/12676">#12676</a>)
(<a
href="https://github.com/vuejs/core/commit/232f4022e3160b30b11748a6d97ea2c15ed3b74f">232f402</a>),
closes <a
href="https://redirect.github.com/vuejs/core/issues/12673">#12673</a></li>
<li><strong>types:</strong> validate defineModel defaults (<a
href="https://redirect.github.com/vuejs/core/issues/14968">#14968</a>)
(<a
href="https://github.com/vuejs/core/commit/747f57e9cdb3c5f084f8da5ca7e0e0b7b326b662">747f57e</a>),
closes <a
href="https://redirect.github.com/vuejs/core/issues/14966">#14966</a></li>
</ul>
<h2><a
href="https://github.com/vuejs/core/compare/v3.5.37...v3.5.38">3.5.38</a>
(2026-06-11)</h2>
<h2><a
href="https://github.com/vuejs/core/compare/v3.5.36...v3.5.37">3.5.37</a>
(2026-06-11)</h2>
<h2><a
href="https://github.com/vuejs/core/compare/v3.5.35...v3.5.36">3.5.36</a>
(2026-06-11)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>compiler-core:</strong> avoid crash on CDATA at the document
root (<a
href="https://redirect.github.com/vuejs/core/issues/14916">#14916</a>)
(<a
href="https://github.com/vuejs/core/commit/0ea17e232f9a8f4a9acf57c6addc78cf4f279c13">0ea17e2</a>)</li>
<li><strong>compiler-core:</strong> prefix dynamic keys on v-memo
elements (<a
href="https://redirect.github.com/vuejs/core/issues/14922">#14922</a>)
(<a
href="https://github.com/vuejs/core/commit/68e978e3e71a8ae40701808e78966f2168c5907c">68e978e</a>),
closes <a
href="https://redirect.github.com/vuejs/core/issues/14920">#14920</a></li>
<li><strong>compiler-sfc:</strong> handle vue-ignore on leading
intersection/union type (<a
href="https://redirect.github.com/vuejs/core/issues/14950">#14950</a>)
(<a
href="https://github.com/vuejs/core/commit/0dcd225c01f211ebb8ce4dda8c8eac10539abf1a">0dcd225</a>),
closes <a
href="https://redirect.github.com/vuejs/core/issues/12254">#12254</a></li>
<li><strong>compiler-sfc:</strong> respect var hoisting in props
destructure (<a
href="https://github.com/vuejs/core/commit/48ad452dd61926a59e358da3c74c5ef750ae21c4">48ad452</a>)</li>
<li><strong>reactivity:</strong> preserve watch callback return value
when wrapped for <code>once: true</code> (<a
href="https://redirect.github.com/vuejs/core/issues/14902">#14902</a>)
(<a
href="https://github.com/vuejs/core/commit/450a8a8e45520f30fe8343c5016a777d888e53fc">450a8a8</a>)</li>
<li><strong>runtime-core:</strong> add dev warning for silent catch in
compat mode and fix test description typo (<a
href="https://redirect.github.com/vuejs/core/issues/14891">#14891</a>)
(<a
href="https://github.com/vuejs/core/commit/db3e117025a7193291ed6676180a5a44bbe0ae76">db3e117</a>)</li>
<li><strong>runtime-core:</strong> force model update when reverted
before sync (<a
href="https://redirect.github.com/vuejs/core/issues/14897">#14897</a>)
(<a
href="https://github.com/vuejs/core/commit/7f76378b0d178a29113ee07d67faa48b637944e8">7f76378</a>),
closes <a
href="https://redirect.github.com/vuejs/core/issues/13524">#13524</a></li>
<li><strong>runtime-core:</strong> skip async component callbacks after
unmount (<a
href="https://redirect.github.com/vuejs/core/issues/14911">#14911</a>)
(<a
href="https://github.com/vuejs/core/commit/5300ead57b3c14942d4c155ef5e485d5409e7f02">5300ead</a>)</li>
<li><strong>transition:</strong> avoid move transition for hidden v-show
group children (<a
href="https://redirect.github.com/vuejs/core/issues/14895">#14895</a>)
(<a
href="https://github.com/vuejs/core/commit/c11f6ee644412edf3eef6736991e895e4a3e1dde">c11f6ee</a>),
closes <a
href="https://redirect.github.com/vuejs/core/issues/14894">#14894</a></li>
<li><strong>watch:</strong> trigger immediate callback for empty sources
(<a
href="https://redirect.github.com/vuejs/core/issues/14914">#14914</a>)
(<a
href="https://github.com/vuejs/core/commit/1f2ca7e4837b1b0de0b91048fffdb03710c0b03e">1f2ca7e</a>),
closes <a
href="https://redirect.github.com/vuejs/core/issues/14898">#14898</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/vuejs/core/commit/c0606e91798c8dca4f33d101e1dd836d672592c1"><code>c0606e9</code></a>
release: v3.5.39</li>
<li><a
href="https://github.com/vuejs/core/commit/4b659e699925555464ea9ae8fa3e1984609f6dc2"><code>4b659e6</code></a>
fix(runtime-dom): preserve option modifier event names (<a
href="https://redirect.github.com/vuejs/core/issues/8338">#8338</a>)</li>
<li><a
href="https://github.com/vuejs/core/commit/232f4022e3160b30b11748a6d97ea2c15ed3b74f"><code>232f402</code></a>
fix(types): support named tuple emits (<a
href="https://redirect.github.com/vuejs/core/issues/12676">#12676</a>)</li>
<li><a
href="https://github.com/vuejs/core/commit/671997ade74e34880cebe3c340269b8598c3b26c"><code>671997a</code></a>
fix(teleport): handle teleport unmount edge case (<a
href="https://redirect.github.com/vuejs/core/issues/12705">#12705</a>)</li>
<li><a
href="https://github.com/vuejs/core/commit/164af639a120421194f7afe0e097bdf254c90199"><code>164af63</code></a>
fix(hydration): respect data-allow-mismatch on conditional branches (<a
href="https://redirect.github.com/vuejs/core/issues/12801">#12801</a>)</li>
<li><a
href="https://github.com/vuejs/core/commit/2f374cda18cbe331ede1a49a324b423c75d0faf3"><code>2f374cd</code></a>
fix(runtime-core): normalize function children for elements and Teleport
(<a
href="https://redirect.github.com/vuejs/core/issues/9108">#9108</a>)</li>
<li><a
href="https://github.com/vuejs/core/commit/87b73b64a0d9b4e2dd2dacfe98f2f1c2396d7a61"><code>87b73b6</code></a>
fix(runtime-core): preserve once event listener name (<a
href="https://redirect.github.com/vuejs/core/issues/8341">#8341</a>)</li>
<li><a
href="https://github.com/vuejs/core/commit/027da6b2810c4752131439d2645f3d931d07242f"><code>027da6b</code></a>
fix(ssr): dedupe inherited scope ids during vnode rendering (<a
href="https://redirect.github.com/vuejs/core/issues/15005">#15005</a>)</li>
<li><a
href="https://github.com/vuejs/core/commit/024cf06daa33db4660431f20aa050acb99cff07f"><code>024cf06</code></a>
fix(hydration): force patch dynamic props when hydrating (<a
href="https://redirect.github.com/vuejs/core/issues/9083">#9083</a>)</li>
<li><a
href="https://github.com/vuejs/core/commit/be7ce314b96256f1c56f53088d51ed6bc77fde28"><code>be7ce31</code></a>
fix(compiler-core): correct filter rewrite recursion (<a
href="https://redirect.github.com/vuejs/core/issues/14959">#14959</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/vuejs/core/compare/v3.5.35...v3.5.39">compare
view</a></li>
</ul>
</details>
<br />

Updates `@vitejs/plugin-vue-jsx` from 5.1.5 to 5.1.6
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vitejs/vite-plugin-vue/releases">@​vitejs/plugin-vue-jsx's
releases</a>.</em></p>
<blockquote>
<h2>plugin-vue-jsx@5.1.6</h2>
<p>Please refer to <a
href="https://github.com/vitejs/vite-plugin-vue/blob/plugin-vue-jsx@5.1.6/packages/plugin-vue-jsx/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-jsx/CHANGELOG.md">@​vitejs/plugin-vue-jsx's
changelog</a>.</em></p>
<blockquote>
<h2><!-- raw HTML omitted --><a
href="https://github.com/vitejs/vite-plugin-vue/compare/plugin-vue-jsx@5.1.5...plugin-vue-jsx@5.1.6">5.1.6</a>
(2026-06-23)<!-- raw HTML omitted --></h2>
<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/738">#738</a>)
(<a
href="https://github.com/vitejs/vite-plugin-vue/commit/050c9962660e7bb189fe8e03f0fa4cbd0b5ba766">050c996</a>)</li>
<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>
<li><strong>deps:</strong> update all non-major dependencies (<a
href="https://redirect.github.com/vitejs/vite-plugin-vue/issues/781">#781</a>)
(<a
href="https://github.com/vitejs/vite-plugin-vue/commit/d369e5a57592ed525c4da5ef0458cb89a6977ad2">d369e5a</a>)</li>
</ul>
<h3>Performance Improvements</h3>
<ul>
<li><strong>jsx:</strong> cache TypeScript Babel plugin config (<a
href="https://redirect.github.com/vitejs/vite-plugin-vue/issues/799">#799</a>)
(<a
href="https://github.com/vitejs/vite-plugin-vue/commit/5f3ffabacdca7049747b28f7c78f52735c6fa0e1">5f3ffab</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/vitejs/vite-plugin-vue/commit/f6a8200c1af5fe3e4fb7d585f256b33504da065f"><code>f6a8200</code></a>
release: plugin-vue-jsx@5.1.6</li>
<li><a
href="https://github.com/vitejs/vite-plugin-vue/commit/5f3ffabacdca7049747b28f7c78f52735c6fa0e1"><code>5f3ffab</code></a>
perf(jsx): cache TypeScript Babel plugin config (<a
href="https://github.com/vitejs/vite-plugin-vue/tree/HEAD/packages/plugin-vue-jsx/issues/799">#799</a>)</li>
<li><a
href="https://github.com/vitejs/vite-plugin-vue/commit/d369e5a57592ed525c4da5ef0458cb89a6977ad2"><code>d369e5a</code></a>
fix(deps): update all non-major dependencies (<a
href="https://github.com/vitejs/vite-plugin-vue/tree/HEAD/packages/plugin-vue-jsx/issues/781">#781</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-jsx/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-jsx/issues/762">#762</a>)</li>
<li><a
href="https://github.com/vitejs/vite-plugin-vue/commit/050c9962660e7bb189fe8e03f0fa4cbd0b5ba766"><code>050c996</code></a>
fix(deps): update all non-major dependencies (<a
href="https://github.com/vitejs/vite-plugin-vue/tree/HEAD/packages/plugin-vue-jsx/issues/738">#738</a>)</li>
<li><a
href="https://github.com/vitejs/vite-plugin-vue/commit/540ab15b12003946c42d03c7a47fc8d8e8932be3"><code>540ab15</code></a>
release: plugin-vue-jsx@5.1.5</li>
<li><a
href="https://github.com/vitejs/vite-plugin-vue/commit/b3f23e4d0818f11a3e2f674380da870b11d260a2"><code>b3f23e4</code></a>
chore: remove Vite 8 beta from supported range (<a
href="https://github.com/vitejs/vite-plugin-vue/tree/HEAD/packages/plugin-vue-jsx/issues/746">#746</a>)</li>
<li><a
href="https://github.com/vitejs/vite-plugin-vue/commit/2f2ff982a1ffde62bd8ac4c94bcc404d2bf17f80"><code>2f2ff98</code></a>
release: plugin-vue-jsx@5.1.4</li>
<li><a
href="https://github.com/vitejs/vite-plugin-vue/commit/e69d7519aeda6e7be10736197ceea8ad69d89905"><code>e69d751</code></a>
fix(deps): update all non-major dependencies (<a
href="https://github.com/vitejs/vite-plugin-vue/tree/HEAD/packages/plugin-vue-jsx/issues/726">#726</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/vitejs/vite-plugin-vue/commits/plugin-vue-jsx@5.1.6/packages/plugin-vue-jsx">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-07-02 23:59:37 -07:00
dependabot[bot] 3c8318dcc2 chore(deps-dev): bump the svelte group with 2 updates (#2580)
Bumps the svelte group with 2 updates:
[svelte](https://github.com/sveltejs/svelte/tree/HEAD/packages/svelte)
and
[vitest-browser-svelte](https://github.com/vitest-community/vitest-browser-svelte).

Updates `svelte` from 5.56.1 to 5.56.4
<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.4</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p>fix: include wrapping parentheses in <code>{@const}</code> declarator
<code>end</code> position (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18436">#18436</a>)</p>
</li>
<li>
<p>fix: always unset reactivity context after restoring it (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18453">#18453</a>)</p>
</li>
<li>
<p>fix: don't notify <code>searchParams</code> subscribers when the URL
changes without affecting the search string (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18425">#18425</a>)</p>
</li>
<li>
<p>fix: strip <code>?</code> from optional parameters in
<code>&lt;script lang=&quot;ts&quot;&gt;</code> so generated JavaScript
is valid (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18448">#18448</a>)</p>
</li>
</ul>
<h2>svelte@5.56.3</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p>fix: ignore errors that occur in destroyed effects (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18384">#18384</a>)</p>
</li>
<li>
<p>fix: type BigInts in <code>$state.snapshot(...)</code> return values
(<a
href="https://redirect.github.com/sveltejs/svelte/pull/18388">#18388</a>)</p>
</li>
</ul>
<h2>svelte@5.56.2</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p>fix: properly track effect end node for async sibling component (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18371">#18371</a>)</p>
</li>
<li>
<p>fix: prevent false-positive reactivity loss warning (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18373">#18373</a>)</p>
</li>
<li>
<p>chore: bump esrap dependency (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18372">#18372</a>)</p>
</li>
<li>
<p>fix: ignore declaration tags for animation directive (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18366">#18366</a>)</p>
</li>
<li>
<p>fix: reject pending async deriveds on discard (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18308">#18308</a>)</p>
</li>
</ul>
</blockquote>
</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.4</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p>fix: include wrapping parentheses in <code>{@const}</code> declarator
<code>end</code> position (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18436">#18436</a>)</p>
</li>
<li>
<p>fix: always unset reactivity context after restoring it (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18453">#18453</a>)</p>
</li>
<li>
<p>fix: don't notify <code>searchParams</code> subscribers when the URL
changes without affecting the search string (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18425">#18425</a>)</p>
</li>
<li>
<p>fix: strip <code>?</code> from optional parameters in
<code>&lt;script lang=&quot;ts&quot;&gt;</code> so generated JavaScript
is valid (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18448">#18448</a>)</p>
</li>
</ul>
<h2>5.56.3</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p>fix: ignore errors that occur in destroyed effects (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18384">#18384</a>)</p>
</li>
<li>
<p>fix: type BigInts in <code>$state.snapshot(...)</code> return values
(<a
href="https://redirect.github.com/sveltejs/svelte/pull/18388">#18388</a>)</p>
</li>
</ul>
<h2>5.56.2</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p>fix: properly track effect end node for async sibling component (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18371">#18371</a>)</p>
</li>
<li>
<p>fix: prevent false-positive reactivity loss warning (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18373">#18373</a>)</p>
</li>
<li>
<p>chore: bump esrap dependency (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18372">#18372</a>)</p>
</li>
<li>
<p>fix: ignore declaration tags for animation directive (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18366">#18366</a>)</p>
</li>
<li>
<p>fix: reject pending async deriveds on discard (<a
href="https://redirect.github.com/sveltejs/svelte/pull/18308">#18308</a>)</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/sveltejs/svelte/commit/eae50dfd1c2269e37258ef5c09527003bcf61573"><code>eae50df</code></a>
Version Packages (<a
href="https://github.com/sveltejs/svelte/tree/HEAD/packages/svelte/issues/18435">#18435</a>)</li>
<li><a
href="https://github.com/sveltejs/svelte/commit/36ae0622a8da4c6e60d32cde199af3d7c3121cd3"><code>36ae062</code></a>
fix: always unset reactivity context after restoring it (<a
href="https://github.com/sveltejs/svelte/tree/HEAD/packages/svelte/issues/18453">#18453</a>)</li>
<li><a
href="https://github.com/sveltejs/svelte/commit/a6985bcd24faa8ec4a8de671b2013d98b0bc629f"><code>a6985bc</code></a>
fix: strip <code>?</code> from optional parameters in svelte lang ts (<a
href="https://github.com/sveltejs/svelte/tree/HEAD/packages/svelte/issues/18448">#18448</a>)</li>
<li><a
href="https://github.com/sveltejs/svelte/commit/c4daa490bbbf483ebba117c1afb6f71b4b19e63c"><code>c4daa49</code></a>
fix: include wrapping parentheses in <code>{@const}</code> declarator
end (<a
href="https://github.com/sveltejs/svelte/tree/HEAD/packages/svelte/issues/18436">#18436</a>)</li>
<li><a
href="https://github.com/sveltejs/svelte/commit/0510174bc0c908c9d4980274717191fdf46a38c6"><code>0510174</code></a>
fix: make <code>SvelteURLSearchParams</code> notifications accurate (<a
href="https://github.com/sveltejs/svelte/tree/HEAD/packages/svelte/issues/18425">#18425</a>)</li>
<li><a
href="https://github.com/sveltejs/svelte/commit/8ea3ee8c62aed631d5c4bbc0870d491059ed7d03"><code>8ea3ee8</code></a>
chore(deps-dev): bump esbuild from 0.25.11 to 0.28.1 (<a
href="https://github.com/sveltejs/svelte/tree/HEAD/packages/svelte/issues/18427">#18427</a>)</li>
<li><a
href="https://github.com/sveltejs/svelte/commit/a9f48540e236d326714a1148b9d61cf785c0f98a"><code>a9f4854</code></a>
Version Packages (<a
href="https://github.com/sveltejs/svelte/tree/HEAD/packages/svelte/issues/18389">#18389</a>)</li>
<li><a
href="https://github.com/sveltejs/svelte/commit/71a6515bd648202b2795a80e68e7c9c7ac9ad4ee"><code>71a6515</code></a>
fix: check boundary exists before calling error handler in async derived
(<a
href="https://github.com/sveltejs/svelte/tree/HEAD/packages/svelte/issues/18">#18</a>...</li>
<li><a
href="https://github.com/sveltejs/svelte/commit/3d83c9abe606415c2ceee215c76582ea9bcfa7b1"><code>3d83c9a</code></a>
fix: add bigint to Primitive type for $state.snapshot (<a
href="https://github.com/sveltejs/svelte/tree/HEAD/packages/svelte/issues/18388">#18388</a>)</li>
<li><a
href="https://github.com/sveltejs/svelte/commit/51baf1c1af4f02e2a8b009a87d932437f164b612"><code>51baf1c</code></a>
Version Packages (<a
href="https://github.com/sveltejs/svelte/tree/HEAD/packages/svelte/issues/18357">#18357</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/sveltejs/svelte/commits/svelte@5.56.4/packages/svelte">compare
view</a></li>
</ul>
</details>
<br />

Updates `vitest-browser-svelte` from 2.1.1 to 2.2.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vitest-community/vitest-browser-svelte/releases">vitest-browser-svelte's
releases</a>.</em></p>
<blockquote>
<h2>v2.2.0</h2>
<h3>   🚀 Features</h3>
<ul>
<li>Add <code>wrapper</code> option  -  by <a
href="https://github.com/mcous"><code>@​mcous</code></a> in <a
href="https://redirect.github.com/vitest-community/vitest-browser-svelte/issues/31">vitest-community/vitest-browser-svelte#31</a>
<a
href="https://github.com/vitest-community/vitest-browser-svelte/commit/3715b4d"><!--
raw HTML omitted -->(3715b)<!-- raw HTML omitted --></a></li>
</ul>
<h5>    <a
href="https://github.com/vitest-community/vitest-browser-svelte/compare/v2.1.1...v2.2.0">View
changes on GitHub</a></h5>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/vitest-community/vitest-browser-svelte/commit/351c8ff649484173f7814b92c8b0f4a560de1125"><code>351c8ff</code></a>
chore: release v2.2.0 (<a
href="https://redirect.github.com/vitest-community/vitest-browser-svelte/issues/36">#36</a>)</li>
<li><a
href="https://github.com/vitest-community/vitest-browser-svelte/commit/e29e1ee6bbe0d757d50f5683744d5b7e2a15d07e"><code>e29e1ee</code></a>
ci: add zizmor (<a
href="https://redirect.github.com/vitest-community/vitest-browser-svelte/issues/37">#37</a>)</li>
<li><a
href="https://github.com/vitest-community/vitest-browser-svelte/commit/ff6a5fabcac3a3044f0a368d76bffca663b8c362"><code>ff6a5fa</code></a>
build: update the release workflow (<a
href="https://redirect.github.com/vitest-community/vitest-browser-svelte/issues/35">#35</a>)</li>
<li><a
href="https://github.com/vitest-community/vitest-browser-svelte/commit/3715b4d7ce477049305e8f5c13b18a549130d576"><code>3715b4d</code></a>
feat: add <code>wrapper</code> option (<a
href="https://redirect.github.com/vitest-community/vitest-browser-svelte/issues/31">#31</a>)</li>
<li><a
href="https://github.com/vitest-community/vitest-browser-svelte/commit/fc777f7a974161334f89b3256ac58db69dbb2e33"><code>fc777f7</code></a>
chore(deps): update Vitest and others (<a
href="https://redirect.github.com/vitest-community/vitest-browser-svelte/issues/28">#28</a>)</li>
<li><a
href="https://github.com/vitest-community/vitest-browser-svelte/commit/23f732332b51c40f200e149dc9ea5a1e51b797f6"><code>23f7323</code></a>
chore: add links to docs and package</li>
<li>See full diff in <a
href="https://github.com/vitest-community/vitest-browser-svelte/compare/v2.1.1...v2.2.0">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-07-02 05:10:21 +00:00
dependabot[bot] 1cb3985878 chore(deps-dev): bump the react group with 2 updates (#2582)
Bumps the react group with 2 updates:
[@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react)
and
[@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react).

Updates `@types/react` from 19.2.16 to 19.2.17
<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 6.0.2 to 6.0.3
<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.3 (2026-06-23)</h2>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/vitejs/vite-plugin-react/commit/640fd358a0e82393acfce4e92e19a6ac6e1641a7"><code>640fd35</code></a>
release: plugin-react@6.0.3</li>
<li><a
href="https://github.com/vitejs/vite-plugin-react/commit/889efb02cdc4ec978a5e177a37e0213cfded38a4"><code>889efb0</code></a>
fix(deps): update all non-major dependencies (<a
href="https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react/issues/1249">#1249</a>)</li>
<li><a
href="https://github.com/vitejs/vite-plugin-react/commit/6c57dd4c5d71075b48039df2532804e72880da21"><code>6c57dd4</code></a>
fix(plugin-react): use '/' base in bundledDev preamble to fix non-root
base p...</li>
<li><a
href="https://github.com/vitejs/vite-plugin-react/commit/3cc33a703636b558a1c1c99e787ddc6bd64aab2d"><code>3cc33a7</code></a>
fix(deps): update react-related dependencies (<a
href="https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react/issues/1245">#1245</a>)</li>
<li><a
href="https://github.com/vitejs/vite-plugin-react/commit/c0f7c7ff709dc9d88bc1f29f1b27c1b3e2bfcfca"><code>c0f7c7f</code></a>
docs: mention the Biome rule in the &quot;Consistent components
exports&quot; section (...</li>
<li><a
href="https://github.com/vitejs/vite-plugin-react/commit/cd80f0f7b2b750f6e8f719f9c3dbe4f22ddd94db"><code>cd80f0f</code></a>
fix(deps): update all non-major dependencies (<a
href="https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react/issues/1241">#1241</a>)</li>
<li><a
href="https://github.com/vitejs/vite-plugin-react/commit/e38accafea0c7c84f7fc72fd69d9cec731fa7600"><code>e38acca</code></a>
fix(deps): update all non-major dependencies (<a
href="https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react/issues/1227">#1227</a>)</li>
<li><a
href="https://github.com/vitejs/vite-plugin-react/commit/9a9bb26c23b966dceed47ff9ec257faeb0e777d9"><code>9a9bb26</code></a>
perf(react): improve react compiler preset so that slightly more modules
are ...</li>
<li>See full diff in <a
href="https://github.com/vitejs/vite-plugin-react/commits/plugin-react@6.0.3/packages/plugin-react">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-07-02 05:09:57 +00:00
dependabot[bot] 125901ed12 chore(deps): bump the angular group with 13 updates (#2579)
Bumps the angular group with 13 updates:

| Package | From | To |
| --- | --- | --- |
|
[@angular/common](https://github.com/angular/angular/tree/HEAD/packages/common)
| `22.0.1` | `22.0.4` |
|
[@angular/compiler](https://github.com/angular/angular/tree/HEAD/packages/compiler)
| `22.0.1` | `22.0.4` |
|
[@angular/core](https://github.com/angular/angular/tree/HEAD/packages/core)
| `22.0.1` | `22.0.4` |
|
[@angular/forms](https://github.com/angular/angular/tree/HEAD/packages/forms)
| `22.0.0` | `22.0.4` |
|
[@angular/platform-browser](https://github.com/angular/angular/tree/HEAD/packages/platform-browser)
| `22.0.0` | `22.0.4` |
|
[@angular/router](https://github.com/angular/angular/tree/HEAD/packages/router)
| `22.0.0` | `22.0.4` |
| [@angular/build](https://github.com/angular/angular-cli) | `22.0.0` |
`22.0.5` |
| [@angular/cli](https://github.com/angular/angular-cli) | `22.0.0` |
`22.0.5` |
|
[@angular/compiler-cli](https://github.com/angular/angular/tree/HEAD/packages/compiler-cli)
| `22.0.0` | `22.0.4` |
| [@analogjs/vite-plugin-angular](https://github.com/analogjs/analog) |
`2.6.0` | `2.6.2` |
| [@analogjs/vitest-angular](https://github.com/analogjs/analog) |
`2.6.0` | `2.6.2` |
|
[@angular/platform-browser-dynamic](https://github.com/angular/angular/tree/HEAD/packages/platform-browser-dynamic)
| `22.0.0` | `22.0.4` |
|
[vitest-browser-angular](https://github.com/vitest-community/vitest-browser-angular)
| `0.4.0` | `0.5.0` |

Updates `@angular/common` from 22.0.1 to 22.0.4
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/angular/angular/releases">@​angular/common's
releases</a>.</em></p>
<blockquote>
<h2>22.0.4</h2>
<h3>migrations</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/fd37f09f371184f6160ec7eb7fdf560eb9d77034"><img
src="https://img.shields.io/badge/fd37f09f37-fix-green" alt="fix -
fd37f09f37" /></a></td>
<td>resolve migration failure when tsconfig specifies rootDir</td>
</tr>
</tbody>
</table>
<h2>22.0.3</h2>
<h3>compiler</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/f90c20df4064dcdc4fe63d3148e0d696a61f562c"><img
src="https://img.shields.io/badge/f90c20df40-fix-green" alt="fix -
f90c20df40" /></a></td>
<td>account for NgModule dependencies in JIT-compiled partial
declarations</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/f4f7f3755cc74c7ee73da32a14d99cdb9265177c"><img
src="https://img.shields.io/badge/f4f7f3755c-fix-green" alt="fix -
f4f7f3755c" /></a></td>
<td>remove unused import breaking CI in 22.0.x</td>
</tr>
</tbody>
</table>
<h3>compiler-cli</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/06d854929c31213df363274f80a64b9049f0310c"><img
src="https://img.shields.io/badge/06d854929c-fix-green" alt="fix -
06d854929c" /></a></td>
<td>report diagnostic instead of crashing on malformed host binding</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/279930425910c804e369a04f8df3a259f16b8daf"><img
src="https://img.shields.io/badge/2799304259-fix-green" alt="fix -
2799304259" /></a></td>
<td>avoid uncaught promise errors in injectAsync prefetching</td>
</tr>
</tbody>
</table>
<h3>http</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/8cdc202dfcd45b95fdcabb2af3493571f57a4762"><img
src="https://img.shields.io/badge/8cdc202dfc-fix-green" alt="fix -
8cdc202dfc" /></a></td>
<td>prevent caching of responses with Set-Cookie headers</td>
</tr>
</tbody>
</table>
<h3>service-worker</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/b4a5a2fb4eb2b2ffb6e79170d453d55af2c72e73"><img
src="https://img.shields.io/badge/b4a5a2fb4e-fix-green" alt="fix -
b4a5a2fb4e" /></a></td>
<td>preserve referrer in asset requests</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/a16f9b22633ef88f64517e18b29923c74da6bff6"><img
src="https://img.shields.io/badge/a16f9b2263-fix-green" alt="fix -
a16f9b2263" /></a></td>
<td>preserve referrer policy in asset requests</td>
</tr>
</tbody>
</table>
<h3>upgrade</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/bcc648f4b6dae63d600a9f1c40854940bf8442c7"><img
src="https://img.shields.io/badge/bcc648f4b6-fix-green" alt="fix -
bcc648f4b6" /></a></td>
<td>support model() signals in downgradeComponent</td>
</tr>
</tbody>
</table>
<h2>22.0.2</h2>
<h3>common</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/94ea4035638db37e938831e3cb0e9562ca399475"><img
src="https://img.shields.io/badge/94ea403563-fix-green" alt="fix -
94ea403563" /></a></td>
<td>escape anchor fragment in shadow DOM name selector</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/6c1f3e9d49907ef643f1bc5297ff404768017acf"><img
src="https://img.shields.io/badge/6c1f3e9d49-fix-green" alt="fix -
6c1f3e9d49" /></a></td>
<td>skip transfer cache for uncacheable HTTP traffic (<a
href="https://github.com/angular/angular/tree/HEAD/packages/common/issues/69316">#69316</a>)</td>
</tr>
</tbody>
</table>
<h3>compiler</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/6f1171991a1262b5384470f34029f7312dc4fc53"><img
src="https://img.shields.io/badge/6f1171991a-fix-green" alt="fix -
6f1171991a" /></a></td>
<td>restrict possible event handler check to property names longer than
2 characters</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/528a34f766191da3fc684c6fac988b1bd2028f49"><img
src="https://img.shields.io/badge/528a34f766-fix-green" alt="fix -
528a34f766" /></a></td>
<td>avoid caching missing locale data</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/e17e8d542242333359946863d0272680c966325b"><img
src="https://img.shields.io/badge/e17e8d5422-fix-green" alt="fix -
e17e8d5422" /></a></td>
<td>escape overlapping comment delimiters in escapeCommentText</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/59dea13f802f0bf43c4ee2b65c2a1aa0e59a2a15"><img
src="https://img.shields.io/badge/59dea13f80-fix-green" alt="fix -
59dea13f80" /></a></td>
<td>guard against DOM clobbering in declareExperimentalWebMcpTool</td>
</tr>
</tbody>
</table>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/angular/angular/blob/main/CHANGELOG.md">@​angular/common's
changelog</a>.</em></p>
<blockquote>
<h1>22.0.4 (2026-06-26)</h1>
<h3>migrations</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/fd37f09f371184f6160ec7eb7fdf560eb9d77034">fd37f09f37</a></td>
<td>fix</td>
<td>resolve migration failure when tsconfig specifies rootDir</td>
</tr>
</tbody>
</table>
<!-- raw HTML omitted -->
<p><!-- raw HTML omitted --><!-- raw HTML omitted --></p>
<h1>22.1.0-next.2 (2026-06-25)</h1>
<h3>compiler</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/ecd047578e1eb3a4cdfee7bfee9b1422e5a5db2c">ecd047578e</a></td>
<td>fix</td>
<td>account for NgModule dependencies in JIT-compiled partial
declarations</td>
</tr>
</tbody>
</table>
<h3>compiler-cli</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/8b2785b597ccf11dae3cd3f2e7ee97480233e4d6">8b2785b597</a></td>
<td>fix</td>
<td>report diagnostic instead of crashing on malformed host binding</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/91d168e74b7cdcd1292772b1052888b83de5f3af">91d168e74b</a></td>
<td>fix</td>
<td>avoid uncaught promise errors in injectAsync prefetching</td>
</tr>
</tbody>
</table>
<h3>http</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/f76e8a98c1005827e562811d5d08ffd35493f9f5">f76e8a98c1</a></td>
<td>fix</td>
<td>prevent caching of responses with Set-Cookie headers</td>
</tr>
</tbody>
</table>
<h3>migrations</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/c75ff0255c3d5ee16f94a9969cd611ab2e02d4a2">c75ff0255c</a></td>
<td>feat</td>
<td>add migration from injectable to service</td>
</tr>
</tbody>
</table>
<h3>router</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/97a3fd6a55eccabf7c9adfb33f745c8d1da6d3e9">97a3fd6a55</a></td>
<td>feat</td>
<td>handle null and undefined inputs in RouterLinkActive</td>
</tr>
</tbody>
</table>
<h3>service-worker</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/716f9eb032baea351c94352f8e36dac8bc82468e">716f9eb032</a></td>
<td>fix</td>
<td>preserve referrer in asset requests</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/6f98f98f1f410e5343852e3c8f98c32267b29e01">6f98f98f1f</a></td>
<td>fix</td>
<td>preserve referrer policy in asset requests</td>
</tr>
</tbody>
</table>
<h3>upgrade</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/8d31b82116c4128a00302abd7c4dfc035c77789e">8d31b82116</a></td>
<td>fix</td>
<td>support model() signals in downgradeComponent</td>
</tr>
</tbody>
</table>
<!-- raw HTML omitted -->
<p><!-- raw HTML omitted --><!-- raw HTML omitted --></p>
<h1>22.0.3 (2026-06-25)</h1>
<h3>compiler</h3>
<p>| Commit | Type | Description |</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/angular/angular/commit/cd8f472ab4b7d0565fd9c883feaa4be4fee730ef"><code>cd8f472</code></a>
docs: add documentation for HttpClient response body size limit and
related e...</li>
<li><a
href="https://github.com/angular/angular/commit/8cdc202dfcd45b95fdcabb2af3493571f57a4762"><code>8cdc202</code></a>
fix(http): prevent caching of responses with Set-Cookie headers</li>
<li><a
href="https://github.com/angular/angular/commit/6867f77ec779a0a24f6339ad6c775f444202103c"><code>6867f77</code></a>
fix(http): distinguish repeated transfer cache params</li>
<li><a
href="https://github.com/angular/angular/commit/6c1f3e9d49907ef643f1bc5297ff404768017acf"><code>6c1f3e9</code></a>
fix(common): skip transfer cache for uncacheable HTTP traffic (<a
href="https://github.com/angular/angular/tree/HEAD/packages/common/issues/69316">#69316</a>)</li>
<li><a
href="https://github.com/angular/angular/commit/7ef139906802ddd98ce12ce99fdd8c11a684d87d"><code>7ef1399</code></a>
fix(http): skip transfer cache for fetch credentialed requests (<a
href="https://github.com/angular/angular/tree/HEAD/packages/common/issues/69316">#69316</a>)</li>
<li><a
href="https://github.com/angular/angular/commit/94ea4035638db37e938831e3cb0e9562ca399475"><code>94ea403</code></a>
fix(common): escape anchor fragment in shadow DOM name selector</li>
<li>See full diff in <a
href="https://github.com/angular/angular/commits/v22.0.4/packages/common">compare
view</a></li>
</ul>
</details>
<br />

Updates `@angular/compiler` from 22.0.1 to 22.0.4
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/angular/angular/releases">@​angular/compiler's
releases</a>.</em></p>
<blockquote>
<h2>22.0.4</h2>
<h3>migrations</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/fd37f09f371184f6160ec7eb7fdf560eb9d77034"><img
src="https://img.shields.io/badge/fd37f09f37-fix-green" alt="fix -
fd37f09f37" /></a></td>
<td>resolve migration failure when tsconfig specifies rootDir</td>
</tr>
</tbody>
</table>
<h2>22.0.3</h2>
<h3>compiler</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/f90c20df4064dcdc4fe63d3148e0d696a61f562c"><img
src="https://img.shields.io/badge/f90c20df40-fix-green" alt="fix -
f90c20df40" /></a></td>
<td>account for NgModule dependencies in JIT-compiled partial
declarations</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/f4f7f3755cc74c7ee73da32a14d99cdb9265177c"><img
src="https://img.shields.io/badge/f4f7f3755c-fix-green" alt="fix -
f4f7f3755c" /></a></td>
<td>remove unused import breaking CI in 22.0.x</td>
</tr>
</tbody>
</table>
<h3>compiler-cli</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/06d854929c31213df363274f80a64b9049f0310c"><img
src="https://img.shields.io/badge/06d854929c-fix-green" alt="fix -
06d854929c" /></a></td>
<td>report diagnostic instead of crashing on malformed host binding</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/279930425910c804e369a04f8df3a259f16b8daf"><img
src="https://img.shields.io/badge/2799304259-fix-green" alt="fix -
2799304259" /></a></td>
<td>avoid uncaught promise errors in injectAsync prefetching</td>
</tr>
</tbody>
</table>
<h3>http</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/8cdc202dfcd45b95fdcabb2af3493571f57a4762"><img
src="https://img.shields.io/badge/8cdc202dfc-fix-green" alt="fix -
8cdc202dfc" /></a></td>
<td>prevent caching of responses with Set-Cookie headers</td>
</tr>
</tbody>
</table>
<h3>service-worker</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/b4a5a2fb4eb2b2ffb6e79170d453d55af2c72e73"><img
src="https://img.shields.io/badge/b4a5a2fb4e-fix-green" alt="fix -
b4a5a2fb4e" /></a></td>
<td>preserve referrer in asset requests</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/a16f9b22633ef88f64517e18b29923c74da6bff6"><img
src="https://img.shields.io/badge/a16f9b2263-fix-green" alt="fix -
a16f9b2263" /></a></td>
<td>preserve referrer policy in asset requests</td>
</tr>
</tbody>
</table>
<h3>upgrade</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/bcc648f4b6dae63d600a9f1c40854940bf8442c7"><img
src="https://img.shields.io/badge/bcc648f4b6-fix-green" alt="fix -
bcc648f4b6" /></a></td>
<td>support model() signals in downgradeComponent</td>
</tr>
</tbody>
</table>
<h2>22.0.2</h2>
<h3>common</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/94ea4035638db37e938831e3cb0e9562ca399475"><img
src="https://img.shields.io/badge/94ea403563-fix-green" alt="fix -
94ea403563" /></a></td>
<td>escape anchor fragment in shadow DOM name selector</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/6c1f3e9d49907ef643f1bc5297ff404768017acf"><img
src="https://img.shields.io/badge/6c1f3e9d49-fix-green" alt="fix -
6c1f3e9d49" /></a></td>
<td>skip transfer cache for uncacheable HTTP traffic (<a
href="https://github.com/angular/angular/tree/HEAD/packages/compiler/issues/69316">#69316</a>)</td>
</tr>
</tbody>
</table>
<h3>compiler</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/6f1171991a1262b5384470f34029f7312dc4fc53"><img
src="https://img.shields.io/badge/6f1171991a-fix-green" alt="fix -
6f1171991a" /></a></td>
<td>restrict possible event handler check to property names longer than
2 characters</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/528a34f766191da3fc684c6fac988b1bd2028f49"><img
src="https://img.shields.io/badge/528a34f766-fix-green" alt="fix -
528a34f766" /></a></td>
<td>avoid caching missing locale data</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/e17e8d542242333359946863d0272680c966325b"><img
src="https://img.shields.io/badge/e17e8d5422-fix-green" alt="fix -
e17e8d5422" /></a></td>
<td>escape overlapping comment delimiters in escapeCommentText</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/59dea13f802f0bf43c4ee2b65c2a1aa0e59a2a15"><img
src="https://img.shields.io/badge/59dea13f80-fix-green" alt="fix -
59dea13f80" /></a></td>
<td>guard against DOM clobbering in declareExperimentalWebMcpTool</td>
</tr>
</tbody>
</table>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/angular/angular/blob/main/CHANGELOG.md">@​angular/compiler's
changelog</a>.</em></p>
<blockquote>
<h1>22.0.4 (2026-06-26)</h1>
<h3>migrations</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/fd37f09f371184f6160ec7eb7fdf560eb9d77034">fd37f09f37</a></td>
<td>fix</td>
<td>resolve migration failure when tsconfig specifies rootDir</td>
</tr>
</tbody>
</table>
<!-- raw HTML omitted -->
<p><!-- raw HTML omitted --><!-- raw HTML omitted --></p>
<h1>22.1.0-next.2 (2026-06-25)</h1>
<h3>compiler</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/ecd047578e1eb3a4cdfee7bfee9b1422e5a5db2c">ecd047578e</a></td>
<td>fix</td>
<td>account for NgModule dependencies in JIT-compiled partial
declarations</td>
</tr>
</tbody>
</table>
<h3>compiler-cli</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/8b2785b597ccf11dae3cd3f2e7ee97480233e4d6">8b2785b597</a></td>
<td>fix</td>
<td>report diagnostic instead of crashing on malformed host binding</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/91d168e74b7cdcd1292772b1052888b83de5f3af">91d168e74b</a></td>
<td>fix</td>
<td>avoid uncaught promise errors in injectAsync prefetching</td>
</tr>
</tbody>
</table>
<h3>http</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/f76e8a98c1005827e562811d5d08ffd35493f9f5">f76e8a98c1</a></td>
<td>fix</td>
<td>prevent caching of responses with Set-Cookie headers</td>
</tr>
</tbody>
</table>
<h3>migrations</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/c75ff0255c3d5ee16f94a9969cd611ab2e02d4a2">c75ff0255c</a></td>
<td>feat</td>
<td>add migration from injectable to service</td>
</tr>
</tbody>
</table>
<h3>router</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/97a3fd6a55eccabf7c9adfb33f745c8d1da6d3e9">97a3fd6a55</a></td>
<td>feat</td>
<td>handle null and undefined inputs in RouterLinkActive</td>
</tr>
</tbody>
</table>
<h3>service-worker</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/716f9eb032baea351c94352f8e36dac8bc82468e">716f9eb032</a></td>
<td>fix</td>
<td>preserve referrer in asset requests</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/6f98f98f1f410e5343852e3c8f98c32267b29e01">6f98f98f1f</a></td>
<td>fix</td>
<td>preserve referrer policy in asset requests</td>
</tr>
</tbody>
</table>
<h3>upgrade</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/8d31b82116c4128a00302abd7c4dfc035c77789e">8d31b82116</a></td>
<td>fix</td>
<td>support model() signals in downgradeComponent</td>
</tr>
</tbody>
</table>
<!-- raw HTML omitted -->
<p><!-- raw HTML omitted --><!-- raw HTML omitted --></p>
<h1>22.0.3 (2026-06-25)</h1>
<h3>compiler</h3>
<p>| Commit | Type | Description |</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/angular/angular/commit/f4f7f3755cc74c7ee73da32a14d99cdb9265177c"><code>f4f7f37</code></a>
fix(compiler): remove unused import breaking CI in 22.0.x</li>
<li><a
href="https://github.com/angular/angular/commit/f90c20df4064dcdc4fe63d3148e0d696a61f562c"><code>f90c20d</code></a>
fix(compiler): account for NgModule dependencies in JIT-compiled partial
decl...</li>
<li><a
href="https://github.com/angular/angular/commit/489d1707d79fe91f1c23d905c4ce9f21cfd1ddf2"><code>489d170</code></a>
refactor(compiler): desable the legacy template syntax</li>
<li><a
href="https://github.com/angular/angular/commit/39001be266e05d73e90a8acf01d47fcddbfab612"><code>39001be</code></a>
refactor(compiler): Move the attribute comment to the HTML AST</li>
<li><a
href="https://github.com/angular/angular/commit/74f2b91c12cef610e5e0dad2f73e036019e570f4"><code>74f2b91</code></a>
refactor(compiler): correct TcbInvalidReferenceOp initializer</li>
<li><a
href="https://github.com/angular/angular/commit/b32ee7ceb3878d25ed58b7bbad58aaf3a01d9966"><code>b32ee7c</code></a>
fix(core): treat iframe credentialless as security-sensitive</li>
<li><a
href="https://github.com/angular/angular/commit/f309727ada9e306c8001b54d4caf7fe71528a427"><code>f309727</code></a>
refactor(compiler): Collect in-element comments</li>
<li><a
href="https://github.com/angular/angular/commit/6f1171991a1262b5384470f34029f7312dc4fc53"><code>6f11719</code></a>
fix(compiler): restrict possible event handler check to property names
longer...</li>
<li><a
href="https://github.com/angular/angular/commit/8bb3947e995906cc1e48e41e7abc65de3a3cd1f4"><code>8bb3947</code></a>
refactor: optimize dom security schema lookups</li>
<li>See full diff in <a
href="https://github.com/angular/angular/commits/v22.0.4/packages/compiler">compare
view</a></li>
</ul>
</details>
<br />

Updates `@angular/core` from 22.0.1 to 22.0.4
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/angular/angular/releases">@​angular/core's
releases</a>.</em></p>
<blockquote>
<h2>22.0.4</h2>
<h3>migrations</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/fd37f09f371184f6160ec7eb7fdf560eb9d77034"><img
src="https://img.shields.io/badge/fd37f09f37-fix-green" alt="fix -
fd37f09f37" /></a></td>
<td>resolve migration failure when tsconfig specifies rootDir</td>
</tr>
</tbody>
</table>
<h2>22.0.3</h2>
<h3>compiler</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/f90c20df4064dcdc4fe63d3148e0d696a61f562c"><img
src="https://img.shields.io/badge/f90c20df40-fix-green" alt="fix -
f90c20df40" /></a></td>
<td>account for NgModule dependencies in JIT-compiled partial
declarations</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/f4f7f3755cc74c7ee73da32a14d99cdb9265177c"><img
src="https://img.shields.io/badge/f4f7f3755c-fix-green" alt="fix -
f4f7f3755c" /></a></td>
<td>remove unused import breaking CI in 22.0.x</td>
</tr>
</tbody>
</table>
<h3>compiler-cli</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/06d854929c31213df363274f80a64b9049f0310c"><img
src="https://img.shields.io/badge/06d854929c-fix-green" alt="fix -
06d854929c" /></a></td>
<td>report diagnostic instead of crashing on malformed host binding</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/279930425910c804e369a04f8df3a259f16b8daf"><img
src="https://img.shields.io/badge/2799304259-fix-green" alt="fix -
2799304259" /></a></td>
<td>avoid uncaught promise errors in injectAsync prefetching</td>
</tr>
</tbody>
</table>
<h3>http</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/8cdc202dfcd45b95fdcabb2af3493571f57a4762"><img
src="https://img.shields.io/badge/8cdc202dfc-fix-green" alt="fix -
8cdc202dfc" /></a></td>
<td>prevent caching of responses with Set-Cookie headers</td>
</tr>
</tbody>
</table>
<h3>service-worker</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/b4a5a2fb4eb2b2ffb6e79170d453d55af2c72e73"><img
src="https://img.shields.io/badge/b4a5a2fb4e-fix-green" alt="fix -
b4a5a2fb4e" /></a></td>
<td>preserve referrer in asset requests</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/a16f9b22633ef88f64517e18b29923c74da6bff6"><img
src="https://img.shields.io/badge/a16f9b2263-fix-green" alt="fix -
a16f9b2263" /></a></td>
<td>preserve referrer policy in asset requests</td>
</tr>
</tbody>
</table>
<h3>upgrade</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/bcc648f4b6dae63d600a9f1c40854940bf8442c7"><img
src="https://img.shields.io/badge/bcc648f4b6-fix-green" alt="fix -
bcc648f4b6" /></a></td>
<td>support model() signals in downgradeComponent</td>
</tr>
</tbody>
</table>
<h2>22.0.2</h2>
<h3>common</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/94ea4035638db37e938831e3cb0e9562ca399475"><img
src="https://img.shields.io/badge/94ea403563-fix-green" alt="fix -
94ea403563" /></a></td>
<td>escape anchor fragment in shadow DOM name selector</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/6c1f3e9d49907ef643f1bc5297ff404768017acf"><img
src="https://img.shields.io/badge/6c1f3e9d49-fix-green" alt="fix -
6c1f3e9d49" /></a></td>
<td>skip transfer cache for uncacheable HTTP traffic (<a
href="https://github.com/angular/angular/tree/HEAD/packages/core/issues/69316">#69316</a>)</td>
</tr>
</tbody>
</table>
<h3>compiler</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/6f1171991a1262b5384470f34029f7312dc4fc53"><img
src="https://img.shields.io/badge/6f1171991a-fix-green" alt="fix -
6f1171991a" /></a></td>
<td>restrict possible event handler check to property names longer than
2 characters</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/528a34f766191da3fc684c6fac988b1bd2028f49"><img
src="https://img.shields.io/badge/528a34f766-fix-green" alt="fix -
528a34f766" /></a></td>
<td>avoid caching missing locale data</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/e17e8d542242333359946863d0272680c966325b"><img
src="https://img.shields.io/badge/e17e8d5422-fix-green" alt="fix -
e17e8d5422" /></a></td>
<td>escape overlapping comment delimiters in escapeCommentText</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/59dea13f802f0bf43c4ee2b65c2a1aa0e59a2a15"><img
src="https://img.shields.io/badge/59dea13f80-fix-green" alt="fix -
59dea13f80" /></a></td>
<td>guard against DOM clobbering in declareExperimentalWebMcpTool</td>
</tr>
</tbody>
</table>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/angular/angular/blob/main/CHANGELOG.md">@​angular/core's
changelog</a>.</em></p>
<blockquote>
<h1>22.0.4 (2026-06-26)</h1>
<h3>migrations</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/fd37f09f371184f6160ec7eb7fdf560eb9d77034">fd37f09f37</a></td>
<td>fix</td>
<td>resolve migration failure when tsconfig specifies rootDir</td>
</tr>
</tbody>
</table>
<!-- raw HTML omitted -->
<p><!-- raw HTML omitted --><!-- raw HTML omitted --></p>
<h1>22.1.0-next.2 (2026-06-25)</h1>
<h3>compiler</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/ecd047578e1eb3a4cdfee7bfee9b1422e5a5db2c">ecd047578e</a></td>
<td>fix</td>
<td>account for NgModule dependencies in JIT-compiled partial
declarations</td>
</tr>
</tbody>
</table>
<h3>compiler-cli</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/8b2785b597ccf11dae3cd3f2e7ee97480233e4d6">8b2785b597</a></td>
<td>fix</td>
<td>report diagnostic instead of crashing on malformed host binding</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/91d168e74b7cdcd1292772b1052888b83de5f3af">91d168e74b</a></td>
<td>fix</td>
<td>avoid uncaught promise errors in injectAsync prefetching</td>
</tr>
</tbody>
</table>
<h3>http</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/f76e8a98c1005827e562811d5d08ffd35493f9f5">f76e8a98c1</a></td>
<td>fix</td>
<td>prevent caching of responses with Set-Cookie headers</td>
</tr>
</tbody>
</table>
<h3>migrations</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/c75ff0255c3d5ee16f94a9969cd611ab2e02d4a2">c75ff0255c</a></td>
<td>feat</td>
<td>add migration from injectable to service</td>
</tr>
</tbody>
</table>
<h3>router</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/97a3fd6a55eccabf7c9adfb33f745c8d1da6d3e9">97a3fd6a55</a></td>
<td>feat</td>
<td>handle null and undefined inputs in RouterLinkActive</td>
</tr>
</tbody>
</table>
<h3>service-worker</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/716f9eb032baea351c94352f8e36dac8bc82468e">716f9eb032</a></td>
<td>fix</td>
<td>preserve referrer in asset requests</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/6f98f98f1f410e5343852e3c8f98c32267b29e01">6f98f98f1f</a></td>
<td>fix</td>
<td>preserve referrer policy in asset requests</td>
</tr>
</tbody>
</table>
<h3>upgrade</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/8d31b82116c4128a00302abd7c4dfc035c77789e">8d31b82116</a></td>
<td>fix</td>
<td>support model() signals in downgradeComponent</td>
</tr>
</tbody>
</table>
<!-- raw HTML omitted -->
<p><!-- raw HTML omitted --><!-- raw HTML omitted --></p>
<h1>22.0.3 (2026-06-25)</h1>
<h3>compiler</h3>
<p>| Commit | Type | Description |</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/angular/angular/commit/fd37f09f371184f6160ec7eb7fdf560eb9d77034"><code>fd37f09</code></a>
fix(migrations): resolve migration failure when tsconfig specifies
rootDir</li>
<li><a
href="https://github.com/angular/angular/commit/f90c20df4064dcdc4fe63d3148e0d696a61f562c"><code>f90c20d</code></a>
fix(compiler): account for NgModule dependencies in JIT-compiled partial
decl...</li>
<li><a
href="https://github.com/angular/angular/commit/01d58d7ad7277ca1acc07186a7114167d65b02d6"><code>01d58d7</code></a>
refactor(core): Tree shake the <code>SimpleChanges</code> &amp; co.</li>
<li><a
href="https://github.com/angular/angular/commit/03d1a6444a57ed654929c4b36c86cf797021c3c0"><code>03d1a64</code></a>
docs(core): document resource chaining with chain() in params
context</li>
<li><a
href="https://github.com/angular/angular/commit/279930425910c804e369a04f8df3a259f16b8daf"><code>2799304</code></a>
fix(core): avoid uncaught promise errors in injectAsync prefetching</li>
<li><a
href="https://github.com/angular/angular/commit/3e7c83b0a30886ffc9ecb9f6d1f234debadce68d"><code>3e7c83b</code></a>
Revert &quot;fix(core): escape overlapping comment delimiters in
escapeCommentText&quot;</li>
<li><a
href="https://github.com/angular/angular/commit/152601ed9429d127e31a9068db92aa4406cd0ced"><code>152601e</code></a>
refactor(core): add <code>childSignalProp</code> to
<code>ReactiveNodeKind</code></li>
<li><a
href="https://github.com/angular/angular/commit/59dea13f802f0bf43c4ee2b65c2a1aa0e59a2a15"><code>59dea13</code></a>
fix(core): guard against DOM clobbering in
declareExperimentalWebMcpTool</li>
<li><a
href="https://github.com/angular/angular/commit/81cb4570b2297d8af1a7287e2275758afc5b9acb"><code>81cb457</code></a>
refactor(router): Add handling for ActivatedRoute-scoped injector</li>
<li><a
href="https://github.com/angular/angular/commit/f902d1d35e90e9220e40581fa2d7c4463b2d1190"><code>f902d1d</code></a>
perf(core): detect existing signal dependency without checking all
producer l...</li>
<li>Additional commits viewable in <a
href="https://github.com/angular/angular/commits/v22.0.4/packages/core">compare
view</a></li>
</ul>
</details>
<br />

Updates `@angular/forms` from 22.0.0 to 22.0.4
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/angular/angular/releases">@​angular/forms's
releases</a>.</em></p>
<blockquote>
<h2>22.0.4</h2>
<h3>migrations</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/fd37f09f371184f6160ec7eb7fdf560eb9d77034"><img
src="https://img.shields.io/badge/fd37f09f37-fix-green" alt="fix -
fd37f09f37" /></a></td>
<td>resolve migration failure when tsconfig specifies rootDir</td>
</tr>
</tbody>
</table>
<h2>22.0.3</h2>
<h3>compiler</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/f90c20df4064dcdc4fe63d3148e0d696a61f562c"><img
src="https://img.shields.io/badge/f90c20df40-fix-green" alt="fix -
f90c20df40" /></a></td>
<td>account for NgModule dependencies in JIT-compiled partial
declarations</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/f4f7f3755cc74c7ee73da32a14d99cdb9265177c"><img
src="https://img.shields.io/badge/f4f7f3755c-fix-green" alt="fix -
f4f7f3755c" /></a></td>
<td>remove unused import breaking CI in 22.0.x</td>
</tr>
</tbody>
</table>
<h3>compiler-cli</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/06d854929c31213df363274f80a64b9049f0310c"><img
src="https://img.shields.io/badge/06d854929c-fix-green" alt="fix -
06d854929c" /></a></td>
<td>report diagnostic instead of crashing on malformed host binding</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/279930425910c804e369a04f8df3a259f16b8daf"><img
src="https://img.shields.io/badge/2799304259-fix-green" alt="fix -
2799304259" /></a></td>
<td>avoid uncaught promise errors in injectAsync prefetching</td>
</tr>
</tbody>
</table>
<h3>http</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/8cdc202dfcd45b95fdcabb2af3493571f57a4762"><img
src="https://img.shields.io/badge/8cdc202dfc-fix-green" alt="fix -
8cdc202dfc" /></a></td>
<td>prevent caching of responses with Set-Cookie headers</td>
</tr>
</tbody>
</table>
<h3>service-worker</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/b4a5a2fb4eb2b2ffb6e79170d453d55af2c72e73"><img
src="https://img.shields.io/badge/b4a5a2fb4e-fix-green" alt="fix -
b4a5a2fb4e" /></a></td>
<td>preserve referrer in asset requests</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/a16f9b22633ef88f64517e18b29923c74da6bff6"><img
src="https://img.shields.io/badge/a16f9b2263-fix-green" alt="fix -
a16f9b2263" /></a></td>
<td>preserve referrer policy in asset requests</td>
</tr>
</tbody>
</table>
<h3>upgrade</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/bcc648f4b6dae63d600a9f1c40854940bf8442c7"><img
src="https://img.shields.io/badge/bcc648f4b6-fix-green" alt="fix -
bcc648f4b6" /></a></td>
<td>support model() signals in downgradeComponent</td>
</tr>
</tbody>
</table>
<h2>22.0.2</h2>
<h3>common</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/94ea4035638db37e938831e3cb0e9562ca399475"><img
src="https://img.shields.io/badge/94ea403563-fix-green" alt="fix -
94ea403563" /></a></td>
<td>escape anchor fragment in shadow DOM name selector</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/6c1f3e9d49907ef643f1bc5297ff404768017acf"><img
src="https://img.shields.io/badge/6c1f3e9d49-fix-green" alt="fix -
6c1f3e9d49" /></a></td>
<td>skip transfer cache for uncacheable HTTP traffic (<a
href="https://github.com/angular/angular/tree/HEAD/packages/forms/issues/69316">#69316</a>)</td>
</tr>
</tbody>
</table>
<h3>compiler</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/6f1171991a1262b5384470f34029f7312dc4fc53"><img
src="https://img.shields.io/badge/6f1171991a-fix-green" alt="fix -
6f1171991a" /></a></td>
<td>restrict possible event handler check to property names longer than
2 characters</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/528a34f766191da3fc684c6fac988b1bd2028f49"><img
src="https://img.shields.io/badge/528a34f766-fix-green" alt="fix -
528a34f766" /></a></td>
<td>avoid caching missing locale data</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/e17e8d542242333359946863d0272680c966325b"><img
src="https://img.shields.io/badge/e17e8d5422-fix-green" alt="fix -
e17e8d5422" /></a></td>
<td>escape overlapping comment delimiters in escapeCommentText</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/59dea13f802f0bf43c4ee2b65c2a1aa0e59a2a15"><img
src="https://img.shields.io/badge/59dea13f80-fix-green" alt="fix -
59dea13f80" /></a></td>
<td>guard against DOM clobbering in declareExperimentalWebMcpTool</td>
</tr>
</tbody>
</table>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/angular/angular/blob/main/CHANGELOG.md">@​angular/forms's
changelog</a>.</em></p>
<blockquote>
<h1>22.0.4 (2026-06-26)</h1>
<h3>migrations</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/fd37f09f371184f6160ec7eb7fdf560eb9d77034">fd37f09f37</a></td>
<td>fix</td>
<td>resolve migration failure when tsconfig specifies rootDir</td>
</tr>
</tbody>
</table>
<!-- raw HTML omitted -->
<p><!-- raw HTML omitted --><!-- raw HTML omitted --></p>
<h1>22.1.0-next.2 (2026-06-25)</h1>
<h3>compiler</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/ecd047578e1eb3a4cdfee7bfee9b1422e5a5db2c">ecd047578e</a></td>
<td>fix</td>
<td>account for NgModule dependencies in JIT-compiled partial
declarations</td>
</tr>
</tbody>
</table>
<h3>compiler-cli</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/8b2785b597ccf11dae3cd3f2e7ee97480233e4d6">8b2785b597</a></td>
<td>fix</td>
<td>report diagnostic instead of crashing on malformed host binding</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/91d168e74b7cdcd1292772b1052888b83de5f3af">91d168e74b</a></td>
<td>fix</td>
<td>avoid uncaught promise errors in injectAsync prefetching</td>
</tr>
</tbody>
</table>
<h3>http</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/f76e8a98c1005827e562811d5d08ffd35493f9f5">f76e8a98c1</a></td>
<td>fix</td>
<td>prevent caching of responses with Set-Cookie headers</td>
</tr>
</tbody>
</table>
<h3>migrations</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/c75ff0255c3d5ee16f94a9969cd611ab2e02d4a2">c75ff0255c</a></td>
<td>feat</td>
<td>add migration from injectable to service</td>
</tr>
</tbody>
</table>
<h3>router</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/97a3fd6a55eccabf7c9adfb33f745c8d1da6d3e9">97a3fd6a55</a></td>
<td>feat</td>
<td>handle null and undefined inputs in RouterLinkActive</td>
</tr>
</tbody>
</table>
<h3>service-worker</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/716f9eb032baea351c94352f8e36dac8bc82468e">716f9eb032</a></td>
<td>fix</td>
<td>preserve referrer in asset requests</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/6f98f98f1f410e5343852e3c8f98c32267b29e01">6f98f98f1f</a></td>
<td>fix</td>
<td>preserve referrer policy in asset requests</td>
</tr>
</tbody>
</table>
<h3>upgrade</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/8d31b82116c4128a00302abd7c4dfc035c77789e">8d31b82116</a></td>
<td>fix</td>
<td>support model() signals in downgradeComponent</td>
</tr>
</tbody>
</table>
<!-- raw HTML omitted -->
<p><!-- raw HTML omitted --><!-- raw HTML omitted --></p>
<h1>22.0.3 (2026-06-25)</h1>
<h3>compiler</h3>
<p>| Commit | Type | Description |</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/angular/angular/commit/2353bf22a52563fece26047820234ae013cdc931"><code>2353bf2</code></a>
refactor(forms): widen <code>AsyncValidatorOptions.factory</code></li>
<li><a
href="https://github.com/angular/angular/commit/d2b613900cbfeb4780d4061155e2b1b6183128be"><code>d2b6139</code></a>
docs(forms): clarify debounce('blur') usage with custom
FormValueControl</li>
<li><a
href="https://github.com/angular/angular/commit/59ee51e2d4adea02d25068b21980312164fd477d"><code>59ee51e</code></a>
docs(forms): update package docs for Signal Forms graduation</li>
<li><a
href="https://github.com/angular/angular/commit/3f055435f6e2f5f9824bc8f70d061b284bea7c80"><code>3f05543</code></a>
refactor(forms): fix initWebMcpForm description to be required</li>
<li><a
href="https://github.com/angular/angular/commit/11836a670af5c64153d57a2d47b4688605379014"><code>11836a6</code></a>
fix(forms): delay mcp reading the form model by a <code>tick</code></li>
<li><a
href="https://github.com/angular/angular/commit/e51ad374ea628de33843332f6798635dc8af02ae"><code>e51ad37</code></a>
fix(forms): remove animationstart listener on component destroy to
prevent me...</li>
<li><a
href="https://github.com/angular/angular/commit/85d2d100e38999f1342742573166c7af0f29b4bd"><code>85d2d10</code></a>
fix(forms): harden FormGroup control lookups against prototype
shadowing</li>
<li><a
href="https://github.com/angular/angular/commit/cdcea80327e8984981144d99194d7b194da4889f"><code>cdcea80</code></a>
fix(core): require WebMCP tool descriptions</li>
<li><a
href="https://github.com/angular/angular/commit/55b7b5a6b6324c1886eca8dbc492e6af5fc4cd7a"><code>55b7b5a</code></a>
fix(forms): set <code>additionalProperties: false</code> on generated
WebMCP form</li>
<li>See full diff in <a
href="https://github.com/angular/angular/commits/v22.0.4/packages/forms">compare
view</a></li>
</ul>
</details>
<br />

Updates `@angular/platform-browser` from 22.0.0 to 22.0.4
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/angular/angular/releases">@​angular/platform-browser's
releases</a>.</em></p>
<blockquote>
<h2>22.0.4</h2>
<h3>migrations</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/fd37f09f371184f6160ec7eb7fdf560eb9d77034"><img
src="https://img.shields.io/badge/fd37f09f37-fix-green" alt="fix -
fd37f09f37" /></a></td>
<td>resolve migration failure when tsconfig specifies rootDir</td>
</tr>
</tbody>
</table>
<h2>22.0.3</h2>
<h3>compiler</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/f90c20df4064dcdc4fe63d3148e0d696a61f562c"><img
src="https://img.shields.io/badge/f90c20df40-fix-green" alt="fix -
f90c20df40" /></a></td>
<td>account for NgModule dependencies in JIT-compiled partial
declarations</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/f4f7f3755cc74c7ee73da32a14d99cdb9265177c"><img
src="https://img.shields.io/badge/f4f7f3755c-fix-green" alt="fix -
f4f7f3755c" /></a></td>
<td>remove unused import breaking CI in 22.0.x</td>
</tr>
</tbody>
</table>
<h3>compiler-cli</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/06d854929c31213df363274f80a64b9049f0310c"><img
src="https://img.shields.io/badge/06d854929c-fix-green" alt="fix -
06d854929c" /></a></td>
<td>report diagnostic instead of crashing on malformed host binding</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/279930425910c804e369a04f8df3a259f16b8daf"><img
src="https://img.shields.io/badge/2799304259-fix-green" alt="fix -
2799304259" /></a></td>
<td>avoid uncaught promise errors in injectAsync prefetching</td>
</tr>
</tbody>
</table>
<h3>http</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/8cdc202dfcd45b95fdcabb2af3493571f57a4762"><img
src="https://img.shields.io/badge/8cdc202dfc-fix-green" alt="fix -
8cdc202dfc" /></a></td>
<td>prevent caching of responses with Set-Cookie headers</td>
</tr>
</tbody>
</table>
<h3>service-worker</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/b4a5a2fb4eb2b2ffb6e79170d453d55af2c72e73"><img
src="https://img.shields.io/badge/b4a5a2fb4e-fix-green" alt="fix -
b4a5a2fb4e" /></a></td>
<td>preserve referrer in asset requests</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/a16f9b22633ef88f64517e18b29923c74da6bff6"><img
src="https://img.shields.io/badge/a16f9b2263-fix-green" alt="fix -
a16f9b2263" /></a></td>
<td>preserve referrer policy in asset requests</td>
</tr>
</tbody>
</table>
<h3>upgrade</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/bcc648f4b6dae63d600a9f1c40854940bf8442c7"><img
src="https://img.shields.io/badge/bcc648f4b6-fix-green" alt="fix -
bcc648f4b6" /></a></td>
<td>support model() signals in downgradeComponent</td>
</tr>
</tbody>
</table>
<h2>22.0.2</h2>
<h3>common</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/94ea4035638db37e938831e3cb0e9562ca399475"><img
src="https://img.shields.io/badge/94ea403563-fix-green" alt="fix -
94ea403563" /></a></td>
<td>escape anchor fragment in shadow DOM name selector</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/6c1f3e9d49907ef643f1bc5297ff404768017acf"><img
src="https://img.shields.io/badge/6c1f3e9d49-fix-green" alt="fix -
6c1f3e9d49" /></a></td>
<td>skip transfer cache for uncacheable HTTP traffic (<a
href="https://github.com/angular/angular/tree/HEAD/packages/platform-browser/issues/69316">#69316</a>)</td>
</tr>
</tbody>
</table>
<h3>compiler</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/6f1171991a1262b5384470f34029f7312dc4fc53"><img
src="https://img.shields.io/badge/6f1171991a-fix-green" alt="fix -
6f1171991a" /></a></td>
<td>restrict possible event handler check to property names longer than
2 characters</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/528a34f766191da3fc684c6fac988b1bd2028f49"><img
src="https://img.shields.io/badge/528a34f766-fix-green" alt="fix -
528a34f766" /></a></td>
<td>avoid caching missing locale data</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/e17e8d542242333359946863d0272680c966325b"><img
src="https://img.shields.io/badge/e17e8d5422-fix-green" alt="fix -
e17e8d5422" /></a></td>
<td>escape overlapping comment delimiters in escapeCommentText</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/59dea13f802f0bf43c4ee2b65c2a1aa0e59a2a15"><img
src="https://img.shields.io/badge/59dea13f80-fix-green" alt="fix -
59dea13f80" /></a></td>
<td>guard against DOM clobbering in declareExperimentalWebMcpTool</td>
</tr>
</tbody>
</table>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/angular/angular/blob/main/CHANGELOG.md">@​angular/platform-browser's
changelog</a>.</em></p>
<blockquote>
<h1>22.0.4 (2026-06-26)</h1>
<h3>migrations</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/fd37f09f371184f6160ec7eb7fdf560eb9d77034">fd37f09f37</a></td>
<td>fix</td>
<td>resolve migration failure when tsconfig specifies rootDir</td>
</tr>
</tbody>
</table>
<!-- raw HTML omitted -->
<p><!-- raw HTML omitted --><!-- raw HTML omitted --></p>
<h1>22.1.0-next.2 (2026-06-25)</h1>
<h3>compiler</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/ecd047578e1eb3a4cdfee7bfee9b1422e5a5db2c">ecd047578e</a></td>
<td>fix</td>
<td>account for NgModule dependencies in JIT-compiled partial
declarations</td>
</tr>
</tbody>
</table>
<h3>compiler-cli</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/8b2785b597ccf11dae3cd3f2e7ee97480233e4d6">8b2785b597</a></td>
<td>fix</td>
<td>report diagnostic instead of crashing on malformed host binding</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/91d168e74b7cdcd1292772b1052888b83de5f3af">91d168e74b</a></td>
<td>fix</td>
<td>avoid uncaught promise errors in injectAsync prefetching</td>
</tr>
</tbody>
</table>
<h3>http</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/f76e8a98c1005827e562811d5d08ffd35493f9f5">f76e8a98c1</a></td>
<td>fix</td>
<td>prevent caching of responses with Set-Cookie headers</td>
</tr>
</tbody>
</table>
<h3>migrations</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/c75ff0255c3d5ee16f94a9969cd611ab2e02d4a2">c75ff0255c</a></td>
<td>feat</td>
<td>add migration from injectable to service</td>
</tr>
</tbody>
</table>
<h3>router</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/97a3fd6a55eccabf7c9adfb33f745c8d1da6d3e9">97a3fd6a55</a></td>
<td>feat</td>
<td>handle null and undefined inputs in RouterLinkActive</td>
</tr>
</tbody>
</table>
<h3>service-worker</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/716f9eb032baea351c94352f8e36dac8bc82468e">716f9eb032</a></td>
<td>fix</td>
<td>preserve referrer in asset requests</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/6f98f98f1f410e5343852e3c8f98c32267b29e01">6f98f98f1f</a></td>
<td>fix</td>
<td>preserve referrer policy in asset requests</td>
</tr>
</tbody>
</table>
<h3>upgrade</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/8d31b82116c4128a00302abd7c4dfc035c77789e">8d31b82116</a></td>
<td>fix</td>
<td>support model() signals in downgradeComponent</td>
</tr>
</tbody>
</table>
<!-- raw HTML omitted -->
<p><!-- raw HTML omitted --><!-- raw HTML omitted --></p>
<h1>22.0.3 (2026-06-25)</h1>
<h3>compiler</h3>
<p>| Commit | Type | Description |</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/angular/angular/commit/3d536d7a8479f7360de822e8ec905a8d3a26efdd"><code>3d536d7</code></a>
docs: add error guide for NG05102</li>
<li><a
href="https://github.com/angular/angular/commit/f598dcfda0d2c13eca237b6a2ed7006361b0506a"><code>f598dcf</code></a>
docs: add error guide for NG05101</li>
<li>See full diff in <a
href="https://github.com/angular/angular/commits/v22.0.4/packages/platform-browser">compare
view</a></li>
</ul>
</details>
<br />

Updates `@angular/router` from 22.0.0 to 22.0.4
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/angular/angular/releases">@​angular/router's
releases</a>.</em></p>
<blockquote>
<h2>22.0.4</h2>
<h3>migrations</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/fd37f09f371184f6160ec7eb7fdf560eb9d77034"><img
src="https://img.shields.io/badge/fd37f09f37-fix-green" alt="fix -
fd37f09f37" /></a></td>
<td>resolve migration failure when tsconfig specifies rootDir</td>
</tr>
</tbody>
</table>
<h2>22.0.3</h2>
<h3>compiler</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/f90c20df4064dcdc4fe63d3148e0d696a61f562c"><img
src="https://img.shields.io/badge/f90c20df40-fix-green" alt="fix -
f90c20df40" /></a></td>
<td>account for NgModule dependencies in JIT-compiled partial
declarations</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/f4f7f3755cc74c7ee73da32a14d99cdb9265177c"><img
src="https://img.shields.io/badge/f4f7f3755c-fix-green" alt="fix -
f4f7f3755c" /></a></td>
<td>remove unused import breaking CI in 22.0.x</td>
</tr>
</tbody>
</table>
<h3>compiler-cli</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/06d854929c31213df363274f80a64b9049f0310c"><img
src="https://img.shields.io/badge/06d854929c-fix-green" alt="fix -
06d854929c" /></a></td>
<td>report diagnostic instead of crashing on malformed host binding</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/279930425910c804e369a04f8df3a259f16b8daf"><img
src="https://img.shields.io/badge/2799304259-fix-green" alt="fix -
2799304259" /></a></td>
<td>avoid uncaught promise errors in injectAsync prefetching</td>
</tr>
</tbody>
</table>
<h3>http</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/8cdc202dfcd45b95fdcabb2af3493571f57a4762"><img
src="https://img.shields.io/badge/8cdc202dfc-fix-green" alt="fix -
8cdc202dfc" /></a></td>
<td>prevent caching of responses with Set-Cookie headers</td>
</tr>
</tbody>
</table>
<h3>service-worker</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/b4a5a2fb4eb2b2ffb6e79170d453d55af2c72e73"><img
src="https://img.shields.io/badge/b4a5a2fb4e-fix-green" alt="fix -
b4a5a2fb4e" /></a></td>
<td>preserve referrer in asset requests</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/a16f9b22633ef88f64517e18b29923c74da6bff6"><img
src="https://img.shields.io/badge/a16f9b2263-fix-green" alt="fix -
a16f9b2263" /></a></td>
<td>preserve referrer policy in asset requests</td>
</tr>
</tbody>
</table>
<h3>upgrade</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/bcc648f4b6dae63d600a9f1c40854940bf8442c7"><img
src="https://img.shields.io/badge/bcc648f4b6-fix-green" alt="fix -
bcc648f4b6" /></a></td>
<td>support model() signals in downgradeComponent</td>
</tr>
</tbody>
</table>
<h2>22.0.2</h2>
<h3>common</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/94ea4035638db37e938831e3cb0e9562ca399475"><img
src="https://img.shields.io/badge/94ea403563-fix-green" alt="fix -
94ea403563" /></a></td>
<td>escape anchor fragment in shadow DOM name selector</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/6c1f3e9d49907ef643f1bc5297ff404768017acf"><img
src="https://img.shields.io/badge/6c1f3e9d49-fix-green" alt="fix -
6c1f3e9d49" /></a></td>
<td>skip transfer cache for uncacheable HTTP traffic (<a
href="https://github.com/angular/angular/tree/HEAD/packages/router/issues/69316">#69316</a>)</td>
</tr>
</tbody>
</table>
<h3>compiler</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/6f1171991a1262b5384470f34029f7312dc4fc53"><img
src="https://img.shields.io/badge/6f1171991a-fix-green" alt="fix -
6f1171991a" /></a></td>
<td>restrict possible event handler check to property names longer than
2 characters</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/528a34f766191da3fc684c6fac988b1bd2028f49"><img
src="https://img.shields.io/badge/528a34f766-fix-green" alt="fix -
528a34f766" /></a></td>
<td>avoid caching missing locale data</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/e17e8d542242333359946863d0272680c966325b"><img
src="https://img.shields.io/badge/e17e8d5422-fix-green" alt="fix -
e17e8d5422" /></a></td>
<td>escape overlapping comment delimiters in escapeCommentText</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/59dea13f802f0bf43c4ee2b65c2a1aa0e59a2a15"><img
src="https://img.shields.io/badge/59dea13f80-fix-green" alt="fix -
59dea13f80" /></a></td>
<td>guard against DOM clobbering in declareExperimentalWebMcpTool</td>
</tr>
</tbody>
</table>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/angular/angular/blob/main/CHANGELOG.md">@​angular/router's
changelog</a>.</em></p>
<blockquote>
<h1>22.0.4 (2026-06-26)</h1>
<h3>migrations</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/fd37f09f371184f6160ec7eb7fdf560eb9d77034">fd37f09f37</a></td>
<td>fix</td>
<td>resolve migration failure when tsconfig specifies rootDir</td>
</tr>
</tbody>
</table>
<!-- raw HTML omitted -->
<p><!-- raw HTML omitted --><!-- raw HTML omitted --></p>
<h1>22.1.0-next.2 (2026-06-25)</h1>
<h3>compiler</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/ecd047578e1eb3a4cdfee7bfee9b1422e5a5db2c">ecd047578e</a></td>
<td>fix</td>
<td>account for NgModule dependencies in JIT-compiled partial
declarations</td>
</tr>
</tbody>
</table>
<h3>compiler-cli</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/8b2785b597ccf11dae3cd3f2e7ee97480233e4d6">8b2785b597</a></td>
<td>fix</td>
<td>report diagnostic instead of crashing on malformed host binding</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/91d168e74b7cdcd1292772b1052888b83de5f3af">91d168e74b</a></td>
<td>fix</td>
<td>avoid uncaught promise errors in injectAsync prefetching</td>
</tr>
</tbody>
</table>
<h3>http</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/f76e8a98c1005827e562811d5d08ffd35493f9f5">f76e8a98c1</a></td>
<td>fix</td>
<td>prevent caching of responses with Set-Cookie headers</td>
</tr>
</tbody>
</table>
<h3>migrations</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/c75ff0255c3d5ee16f94a9969cd611ab2e02d4a2">c75ff0255c</a></td>
<td>feat</td>
<td>add migration from injectable to service</td>
</tr>
</tbody>
</table>
<h3>router</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/97a3fd6a55eccabf7c9adfb33f745c8d1da6d3e9">97a3fd6a55</a></td>
<td>feat</td>
<td>handle null and undefined inputs in RouterLinkActive</td>
</tr>
</tbody>
</table>
<h3>service-worker</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/angular/angular/commit/716f9eb032baea351c94352f8e36dac8bc82468e">716f9eb032</a></td>
<td>fix</td>
<td>preserve referrer in asset requests</td>
</tr>
<tr>
<td><a
href="https://github.com/angular/angular/commit/6f98f98f1f410e5343852e3c8f98c32267b29e01">6f98f98f1f</a></td>
<td>fix</td>
<td>preserve referrer policy in asset requests</td>
</tr>
</tbody>
</table>
<h3>upgrade</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="https://g...

_Description has been truncated_

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-01 21:59:48 -07:00
dependabot[bot] 81f63653d3 chore(deps): bump the langchain group with 8 updates (#2578)
Bumps the langchain group with 8 updates:

| Package | From | To |
| --- | --- | --- |
| [@langchain/anthropic](https://github.com/langchain-ai/langchainjs) |
`1.4.0` | `1.5.1` |
| [langchain](https://github.com/langchain-ai/langchainjs) | `1.4.4` |
`1.5.2` |
| [@langchain/openai](https://github.com/langchain-ai/langchainjs) |
`1.4.7` | `1.5.3` |
| [@langchain/groq](https://github.com/langchain-ai/langchainjs) |
`1.2.1` | `1.3.1` |
| [@langchain/mistralai](https://github.com/langchain-ai/langchainjs) |
`1.1.0` | `1.2.0` |
| [@langchain/ollama](https://github.com/langchain-ai/langchainjs) |
`1.2.7` | `1.3.0` |
| [@langchain/classic](https://github.com/langchain-ai/langchainjs) |
`1.0.34` | `1.0.38` |
| [langsmith](https://github.com/langchain-ai/langsmith-sdk) | `0.7.4` |
`0.7.14` |

Updates `@langchain/anthropic` from 1.4.0 to 1.5.1
<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>.5.1</h2>
<h3>Patch Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/langchain-ai/langchainjs/pull/11073">#11073</a>
<a
href="https://github.com/langchain-ai/langchainjs/commit/baa57ba7cdce2046ba3dd40e9e8cf3c93c9c1ac4"><code>baa57ba</code></a>
Thanks <a
href="https://github.com/archievi"><code>@​archievi</code></a>! - Stop
sending <code>thinking: { type: &quot;disabled&quot; }</code> on
<code>ChatAnthropic</code> requests when the user never configured
thinking. The disabled value is now only emitted when it is explicitly
set, so adaptive-only models (e.g. <code>claude-fable-5</code>) that
reject an explicit <code>thinking.type: &quot;disabled&quot;</code> no
longer fail with a 400 on a default <code>ChatAnthropic</code>
instance.</li>
</ul>
<h2><code>@​langchain/anthropic</code><a
href="https://github.com/1"><code>@​1</code></a>.5.0</h2>
<h3>Minor Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/langchain-ai/langchainjs/pull/10924">#10924</a>
<a
href="https://github.com/langchain-ai/langchainjs/commit/2e2811509d75af94f57cedcc3842f178f4c020d1"><code>2e28115</code></a>
Thanks <a
href="https://github.com/christian-bromann"><code>@​christian-bromann</code></a>!
- feat(anthropic): update native streamEvents event coverage</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/1ee0df0c49335104968f6c5130dbdb7e777f85d7"><code>1ee0df0</code></a>
chore: version packages (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11097">#11097</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/f01770895c06621b469a6c6b5244747f6efdfbf7"><code>f017708</code></a>
fix(core): better 429 error handling (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/10674">#10674</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/05936ab45ce1bbb04b955c3ebdd03dc1451b655c"><code>05936ab</code></a>
fix(openai): omit empty reasoning item id in Responses API input (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11045">#11045</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/798cb705222f43759e94d02a790ebb706ef2f099"><code>798cb70</code></a>
fix(openai): route standard url file blocks to native input_file in
Responses...</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/80c790b593ad19668f1101f84f06c175db114909"><code>80c790b</code></a>
fix(openai): stream built-in tool progress events (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11090">#11090</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/d2e6afcf17b269aa11a2f18444c208bc8a4b2520"><code>d2e6afc</code></a>
fix(groq): require <code>@​langchain/core</code> &gt;= 1.1.30 in peer
dependency (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11072">#11072</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/c66870ea8ebf9e3b0794ab8d969b25dfb189f2de"><code>c66870e</code></a>
feat(weaviate): add X-Weaviate-Client-Integration telemetry header (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11088">#11088</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/baa57ba7cdce2046ba3dd40e9e8cf3c93c9c1ac4"><code>baa57ba</code></a>
fix(anthropic): omit default disabled thinking from requests (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11073">#11073</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/04edb8d0fa3c408adbc6e4c277d1f3aaf5b40161"><code>04edb8d</code></a>
docs(ibm): fix &quot;Recieved&quot; typo in tool_choice error message
(<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11066">#11066</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/2b7f368c2baa3f2916a207bf099a437adce2179c"><code>2b7f368</code></a>
chore(deps): bump uuid from 14.0.0 to 14.0.1 (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11094">#11094</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/langchain-ai/langchainjs/compare/@langchain/anthropic@1.4.0...@langchain/anthropic@1.5.1">compare
view</a></li>
</ul>
</details>
<br />

Updates `langchain` from 1.4.4 to 1.5.2
<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.5.2</h2>
<h3>Patch Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/langchain-ai/langchainjs/pull/11100">#11100</a>
<a
href="https://github.com/langchain-ai/langchainjs/commit/3205b35ac83037a2fff2998f16a66b5126b306f8"><code>3205b35</code></a>
Thanks <a
href="https://github.com/colifran"><code>@​colifran</code></a>! -
fix(langchain, openai): decouple strict tools from strict structured
output response</li>
</ul>
<h2>langchain@1.5.1</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/langchain-ai/langchainjs/pull/11087">#11087</a>
<a
href="https://github.com/langchain-ai/langchainjs/commit/534b43a0719c89e3fb4ab7052d3f39797660aa43"><code>534b43a</code></a>
Thanks <a
href="https://github.com/christian-bromann"><code>@​christian-bromann</code></a>!
- fix(langchain): keep tool call streams pending across any tool
interrupt</p>
<p>A raw <code>interrupt()</code> raised from inside a tool surfaced as
a <code>tool-error</code> and
rejected the call's un-awaited <code>output</code> promise, producing an
unhandled
rejection that crashed HITL runs. The tool-call stream transformer now
treats
any serialized graph interrupt as control flow (the call stays pending
and
resumes), not just <code>humanInTheLoopMiddleware</code> interrupts.</p>
</li>
</ul>
<h2>langchain@1.5.0</h2>
<h3>Minor Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/langchain-ai/langchainjs/pull/11062">#11062</a>
<a
href="https://github.com/langchain-ai/langchainjs/commit/3ebd10ae381ef7c9e12759f08d2f2b745bdfae62"><code>3ebd10a</code></a>
Thanks <a
href="https://github.com/christian-bromann"><code>@​christian-bromann</code></a>!
- feat(langchain): surface tool-dispatched subagents on
<code>run.subagents</code></p>
<p>Add a native subagent stream transformer to <code>createAgent</code>
so v3 runs expose
named nested agents (<code>createAgent({ name })</code> invoked from
tools) as typed
<code>SubagentRunStream</code> handles with <code>name</code>,
<code>cause</code>, scoped <code>messages</code> /
<code>toolCalls</code>, and <code>output</code>. Refactors agent stream
transformers into
<code>agents/transformers/</code> and exports only the public stream
types from the
package entry.</p>
</li>
</ul>
<h2>langchain@1.4.6</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/langchain-ai/langchainjs/pull/11012">#11012</a>
<a
href="https://github.com/langchain-ai/langchainjs/commit/4aeaa767a48dcc5451371f14adf4a06f064d23b9"><code>4aeaa76</code></a>
Thanks <a
href="https://github.com/christian-bromann"><code>@​christian-bromann</code></a>!
- feat(langchain): add <code>when</code> predicate to human-in-the-loop
middleware</p>
<p>Add an optional <code>when</code> callback on
<code>InterruptOnConfig</code> so callers can
dynamically skip interrupts for specific tool calls. The predicate
receives
a <code>ToolCallRequest</code> (batch <code>afterModel</code> context)
and returns whether to
interrupt or auto-approve, matching Python
<code>HumanInTheLoopMiddleware</code>.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/langchain-ai/langchainjs/pull/11080">#11080</a>
<a
href="https://github.com/langchain-ai/langchainjs/commit/e51478a4436d69a21f75f1c9e0bb84f3abb6d6f5"><code>e51478a</code></a>
Thanks <a
href="https://github.com/aolsenjazz"><code>@​aolsenjazz</code></a>! -
feat(aws): bedrock prompt caching middleware</p>
<p>Adds bedrockPromptCachingMiddleware. The interface largely matches
what was previous implemented with anthropicPromptCachingMiddleware,
making a best-effort attempt at utilizing prompt caching features for
supported models.</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/f1d64ff8d6076fb6656c1f327b7b58eac520314b"><code>f1d64ff</code></a>
chore: version packages (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11101">#11101</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/72ffc4bf17dc6dca390546c0e6c9503607198f26"><code>72ffc4b</code></a>
fix(aws): add Bedrock stream idle timeout (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11098">#11098</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/3205b35ac83037a2fff2998f16a66b5126b306f8"><code>3205b35</code></a>
fix(langchain, openai): decouple strict tools from strict structured
output r...</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/1ee0df0c49335104968f6c5130dbdb7e777f85d7"><code>1ee0df0</code></a>
chore: version packages (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11097">#11097</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/f01770895c06621b469a6c6b5244747f6efdfbf7"><code>f017708</code></a>
fix(core): better 429 error handling (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/10674">#10674</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/05936ab45ce1bbb04b955c3ebdd03dc1451b655c"><code>05936ab</code></a>
fix(openai): omit empty reasoning item id in Responses API input (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11045">#11045</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/798cb705222f43759e94d02a790ebb706ef2f099"><code>798cb70</code></a>
fix(openai): route standard url file blocks to native input_file in
Responses...</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/80c790b593ad19668f1101f84f06c175db114909"><code>80c790b</code></a>
fix(openai): stream built-in tool progress events (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11090">#11090</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/d2e6afcf17b269aa11a2f18444c208bc8a4b2520"><code>d2e6afc</code></a>
fix(groq): require <code>@​langchain/core</code> &gt;= 1.1.30 in peer
dependency (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11072">#11072</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/c66870ea8ebf9e3b0794ab8d969b25dfb189f2de"><code>c66870e</code></a>
feat(weaviate): add X-Weaviate-Client-Integration telemetry header (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11088">#11088</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/langchain-ai/langchainjs/compare/@langchain/openai@1.4.4...langchain@1.5.2">compare
view</a></li>
</ul>
</details>
<br />

Updates `@langchain/openai` from 1.4.7 to 1.5.3
<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>.5.3</h2>
<h3>Patch Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/langchain-ai/langchainjs/pull/11100">#11100</a>
<a
href="https://github.com/langchain-ai/langchainjs/commit/3205b35ac83037a2fff2998f16a66b5126b306f8"><code>3205b35</code></a>
Thanks <a
href="https://github.com/colifran"><code>@​colifran</code></a>! -
fix(langchain, openai): decouple strict tools from strict structured
output response</li>
</ul>
<h2><code>@​langchain/openai</code><a
href="https://github.com/1"><code>@​1</code></a>.5.2</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/langchain-ai/langchainjs/pull/11045">#11045</a>
<a
href="https://github.com/langchain-ai/langchainjs/commit/05936ab45ce1bbb04b955c3ebdd03dc1451b655c"><code>05936ab</code></a>
Thanks <a
href="https://github.com/jackjin1997"><code>@​jackjin1997</code></a>! -
fix(openai): omit empty id and content on reasoning items in Responses
API input</p>
<p>Reasoning blocks reassembled from streaming chunks (e.g. via
<code>streamEvents</code>) never carry an id, since OpenAI's streaming
protocol only includes it in non-streaming responses. When such a
message was replayed as Responses API input on the next turn, the
reasoning item was emitted with <code>id: &quot;&quot;</code>, which
OpenAI rejects with <code>400 Invalid 'input[n].id': ''</code>. The
<code>id</code> field is now omitted when absent.</p>
<p>A second error surfaced immediately after that fix: the same
converter set a populated <code>content</code> array on the reasoning
input item, which the Responses API also rejects (<code>400 Invalid
'input[n].content': array too long. Expected an array with maximum
length 0</code>). Reasoning input items only carry <code>summary</code>,
so <code>content</code> is no longer forwarded. Thanks to <a
href="https://github.com/csrujanreddy"><code>@​csrujanreddy</code></a>
for catching the second issue and verifying both fixes against the live
API.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/langchain-ai/langchainjs/pull/11065">#11065</a>
<a
href="https://github.com/langchain-ai/langchainjs/commit/798cb705222f43759e94d02a790ebb706ef2f099"><code>798cb70</code></a>
Thanks <a href="https://github.com/rxits"><code>@​rxits</code></a>! -
fix(openai): route standard url file blocks to native input_file in
Responses API</p>
</li>
<li>
<p><a
href="https://redirect.github.com/langchain-ai/langchainjs/pull/11090">#11090</a>
<a
href="https://github.com/langchain-ai/langchainjs/commit/80c790b593ad19668f1101f84f06c175db114909"><code>80c790b</code></a>
Thanks <a
href="https://github.com/nikhilpakhloo"><code>@​nikhilpakhloo</code></a>!
- fix(openai): stream built-in tool progress events</p>
</li>
</ul>
<h2><code>@​langchain/openai</code><a
href="https://github.com/1"><code>@​1</code></a>.5.1</h2>
<h3>Patch Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/langchain-ai/langchainjs/pull/11001">#11001</a>
<a
href="https://github.com/langchain-ai/langchainjs/commit/80b43ecffe0701c3c375c407fb601cb452f708ef"><code>80b43ec</code></a>
Thanks <a
href="https://github.com/Herrtian"><code>@​Herrtian</code></a>! - Wrap
Responses API stream iteration errors with existing OpenAI client error
handling.</li>
</ul>
<h2><code>@​langchain/openai</code><a
href="https://github.com/1"><code>@​1</code></a>.5.0</h2>
<h3>Minor Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/langchain-ai/langchainjs/pull/10924">#10924</a>
<a
href="https://github.com/langchain-ai/langchainjs/commit/2e2811509d75af94f57cedcc3842f178f4c020d1"><code>2e28115</code></a>
Thanks <a
href="https://github.com/christian-bromann"><code>@​christian-bromann</code></a>!
- feat(openai): add native streamEvents event converters</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/f1d64ff8d6076fb6656c1f327b7b58eac520314b"><code>f1d64ff</code></a>
chore: version packages (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11101">#11101</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/72ffc4bf17dc6dca390546c0e6c9503607198f26"><code>72ffc4b</code></a>
fix(aws): add Bedrock stream idle timeout (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11098">#11098</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/3205b35ac83037a2fff2998f16a66b5126b306f8"><code>3205b35</code></a>
fix(langchain, openai): decouple strict tools from strict structured
output r...</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/1ee0df0c49335104968f6c5130dbdb7e777f85d7"><code>1ee0df0</code></a>
chore: version packages (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11097">#11097</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/f01770895c06621b469a6c6b5244747f6efdfbf7"><code>f017708</code></a>
fix(core): better 429 error handling (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/10674">#10674</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/05936ab45ce1bbb04b955c3ebdd03dc1451b655c"><code>05936ab</code></a>
fix(openai): omit empty reasoning item id in Responses API input (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11045">#11045</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/798cb705222f43759e94d02a790ebb706ef2f099"><code>798cb70</code></a>
fix(openai): route standard url file blocks to native input_file in
Responses...</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/80c790b593ad19668f1101f84f06c175db114909"><code>80c790b</code></a>
fix(openai): stream built-in tool progress events (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11090">#11090</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/d2e6afcf17b269aa11a2f18444c208bc8a4b2520"><code>d2e6afc</code></a>
fix(groq): require <code>@​langchain/core</code> &gt;= 1.1.30 in peer
dependency (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11072">#11072</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/c66870ea8ebf9e3b0794ab8d969b25dfb189f2de"><code>c66870e</code></a>
feat(weaviate): add X-Weaviate-Client-Integration telemetry header (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11088">#11088</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/langchain-ai/langchainjs/compare/@langchain/openai@1.4.7...@langchain/openai@1.5.3">compare
view</a></li>
</ul>
</details>
<br />

Updates `@langchain/groq` from 1.2.1 to 1.3.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>.3.1</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/langchain-ai/langchainjs/pull/11072">#11072</a>
<a
href="https://github.com/langchain-ai/langchainjs/commit/d2e6afcf17b269aa11a2f18444c208bc8a4b2520"><code>d2e6afc</code></a>
Thanks <a
href="https://github.com/atimothee"><code>@​atimothee</code></a>! -
fix(groq): require <code>@langchain/core</code> &gt;= 1.1.30 in peer
dependency</p>
<p>The package imports
<code>@langchain/core/utils/standard_schema</code> and
<code>@langchain/core/language_models/structured_output</code>, both of
which were
introduced in <code>@langchain/core@1.1.30</code>. The previous
<code>^1.0.0</code> peer
dependency range allowed installing incompatible older versions and
caused module-resolution failures at build/runtime.</p>
</li>
</ul>
<h2><code>@​langchain/groq</code><a
href="https://github.com/1"><code>@​1</code></a>.3.0</h2>
<h3>Minor Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/langchain-ai/langchainjs/pull/10924">#10924</a>
<a
href="https://github.com/langchain-ai/langchainjs/commit/2e2811509d75af94f57cedcc3842f178f4c020d1"><code>2e28115</code></a>
Thanks <a
href="https://github.com/christian-bromann"><code>@​christian-bromann</code></a>!
- feat(groq): add native OpenAI-compatible streamEvents events</li>
</ul>
<h3>Patch Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/langchain-ai/langchainjs/pull/11069">#11069</a>
<a
href="https://github.com/langchain-ai/langchainjs/commit/7d61f5f19861643bd39eda333628e59783c75fa9"><code>7d61f5f</code></a>
Thanks <a
href="https://github.com/brandonhawi"><code>@​brandonhawi</code></a>! -
Tighten the <code>@langchain/core</code> peer dependency to
<code>^1.1.30</code>, the version that introduced the
<code>utils/standard_schema</code> and
<code>language_models/structured_output</code> export subpaths imported
by <code>ChatGroq</code>. The previous <code>^1.0.0</code> range allowed
core versions below 1.1.30 that lack these exports, causing
module-not-found build failures.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/1ee0df0c49335104968f6c5130dbdb7e777f85d7"><code>1ee0df0</code></a>
chore: version packages (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11097">#11097</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/f01770895c06621b469a6c6b5244747f6efdfbf7"><code>f017708</code></a>
fix(core): better 429 error handling (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/10674">#10674</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/05936ab45ce1bbb04b955c3ebdd03dc1451b655c"><code>05936ab</code></a>
fix(openai): omit empty reasoning item id in Responses API input (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11045">#11045</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/798cb705222f43759e94d02a790ebb706ef2f099"><code>798cb70</code></a>
fix(openai): route standard url file blocks to native input_file in
Responses...</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/80c790b593ad19668f1101f84f06c175db114909"><code>80c790b</code></a>
fix(openai): stream built-in tool progress events (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11090">#11090</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/d2e6afcf17b269aa11a2f18444c208bc8a4b2520"><code>d2e6afc</code></a>
fix(groq): require <code>@​langchain/core</code> &gt;= 1.1.30 in peer
dependency (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11072">#11072</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/c66870ea8ebf9e3b0794ab8d969b25dfb189f2de"><code>c66870e</code></a>
feat(weaviate): add X-Weaviate-Client-Integration telemetry header (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11088">#11088</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/baa57ba7cdce2046ba3dd40e9e8cf3c93c9c1ac4"><code>baa57ba</code></a>
fix(anthropic): omit default disabled thinking from requests (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11073">#11073</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/04edb8d0fa3c408adbc6e4c277d1f3aaf5b40161"><code>04edb8d</code></a>
docs(ibm): fix &quot;Recieved&quot; typo in tool_choice error message
(<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11066">#11066</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/2b7f368c2baa3f2916a207bf099a437adce2179c"><code>2b7f368</code></a>
chore(deps): bump uuid from 14.0.0 to 14.0.1 (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11094">#11094</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/langchain-ai/langchainjs/compare/@langchain/groq@1.2.1...@langchain/groq@1.3.1">compare
view</a></li>
</ul>
</details>
<br />

Updates `@langchain/mistralai` from 1.1.0 to 1.2.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>.2.0</h2>
<h3>Minor Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/langchain-ai/langchainjs/pull/10924">#10924</a>
<a
href="https://github.com/langchain-ai/langchainjs/commit/2e2811509d75af94f57cedcc3842f178f4c020d1"><code>2e28115</code></a>
Thanks <a
href="https://github.com/christian-bromann"><code>@​christian-bromann</code></a>!
- feat(mistralai): add native streamEvents event conversion</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/c5e896270207fcd3bdf1d1877e80b94c72d35f1e"><code>c5e8962</code></a>
chore: version packages (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11059">#11059</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/e51478a4436d69a21f75f1c9e0bb84f3abb6d6f5"><code>e51478a</code></a>
feat(aws): bedrock prompt caching middleware (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11080">#11080</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/7d61f5f19861643bd39eda333628e59783c75fa9"><code>7d61f5f</code></a>
fix(groq): tighten <code>@​langchain/core</code> peer dependency to
^1.1.30 (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11069">#11069</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/2e2811509d75af94f57cedcc3842f178f4c020d1"><code>2e28115</code></a>
feat(deps): native streamEvents ChatModelStreamEvent protocol (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/10924">#10924</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/6d212ef91affd19b71dac22fd3761287a96108bf"><code>6d212ef</code></a>
docs(tavily): fix &quot;refering&quot; typo in tool description (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11067">#11067</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/a001816b56a0f19326d1e3e5ccbea5ae90dd549f"><code>a001816</code></a>
chore(deps): bump esbuild from 0.28.0 to 0.28.1 in
/environment_tests/test-ex...</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/234c8bbb97444357847de5751d81ee9c51a7d33f"><code>234c8bb</code></a>
ci(infra): pin GitHub Actions to full-length commit SHAs (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11061">#11061</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/4aeaa767a48dcc5451371f14adf4a06f064d23b9"><code>4aeaa76</code></a>
feat(langchain): add <code>when</code> predicate to human-in-the-loop
middleware (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11012">#11012</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/ac0f71d03994664cfee98e71a584d4aa3321746f"><code>ac0f71d</code></a>
fix(core): preserve AIMessage content blocks (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11047">#11047</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/39f338e08e6abfd9e1d02157b2e8b3c9768a673c"><code>39f338e</code></a>
chore: remove deprecated <code>@​langchain/google-cloud-sql-pg</code>
package (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11060">#11060</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/langchain-ai/langchainjs/compare/@langchain/mistralai@1.1.0...@langchain/mistralai@1.2.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `@langchain/ollama` from 1.2.7 to 1.3.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/langchain-ai/langchainjs/releases">@​langchain/ollama's
releases</a>.</em></p>
<blockquote>
<h2><code>@​langchain/ollama</code><a
href="https://github.com/1"><code>@​1</code></a>.3.0</h2>
<h3>Minor Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/langchain-ai/langchainjs/pull/10924">#10924</a>
<a
href="https://github.com/langchain-ai/langchainjs/commit/2e2811509d75af94f57cedcc3842f178f4c020d1"><code>2e28115</code></a>
Thanks <a
href="https://github.com/christian-bromann"><code>@​christian-bromann</code></a>!
- feat(ollama): add native streamEvents event conversion</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/c5e896270207fcd3bdf1d1877e80b94c72d35f1e"><code>c5e8962</code></a>
chore: version packages (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11059">#11059</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/e51478a4436d69a21f75f1c9e0bb84f3abb6d6f5"><code>e51478a</code></a>
feat(aws): bedrock prompt caching middleware (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11080">#11080</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/7d61f5f19861643bd39eda333628e59783c75fa9"><code>7d61f5f</code></a>
fix(groq): tighten <code>@​langchain/core</code> peer dependency to
^1.1.30 (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11069">#11069</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/2e2811509d75af94f57cedcc3842f178f4c020d1"><code>2e28115</code></a>
feat(deps): native streamEvents ChatModelStreamEvent protocol (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/10924">#10924</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/6d212ef91affd19b71dac22fd3761287a96108bf"><code>6d212ef</code></a>
docs(tavily): fix &quot;refering&quot; typo in tool description (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11067">#11067</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/a001816b56a0f19326d1e3e5ccbea5ae90dd549f"><code>a001816</code></a>
chore(deps): bump esbuild from 0.28.0 to 0.28.1 in
/environment_tests/test-ex...</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/234c8bbb97444357847de5751d81ee9c51a7d33f"><code>234c8bb</code></a>
ci(infra): pin GitHub Actions to full-length commit SHAs (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11061">#11061</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/4aeaa767a48dcc5451371f14adf4a06f064d23b9"><code>4aeaa76</code></a>
feat(langchain): add <code>when</code> predicate to human-in-the-loop
middleware (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11012">#11012</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/ac0f71d03994664cfee98e71a584d4aa3321746f"><code>ac0f71d</code></a>
fix(core): preserve AIMessage content blocks (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11047">#11047</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/39f338e08e6abfd9e1d02157b2e8b3c9768a673c"><code>39f338e</code></a>
chore: remove deprecated <code>@​langchain/google-cloud-sql-pg</code>
package (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11060">#11060</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/langchain-ai/langchainjs/compare/langchain@1.2.7...@langchain/ollama@1.3.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `@langchain/classic` from 1.0.34 to 1.0.38
<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.38</h2>
<h3>Patch Changes</h3>
<ul>
<li>Updated dependencies [<a
href="https://github.com/langchain-ai/langchainjs/commit/3205b35ac83037a2fff2998f16a66b5126b306f8"><code>3205b35</code></a>]:
<ul>
<li><code>@​langchain/openai</code><a
href="https://github.com/1"><code>@​1</code></a>.5.3</li>
</ul>
</li>
</ul>
<h2><code>@​langchain/classic</code><a
href="https://github.com/1"><code>@​1</code></a>.0.37</h2>
<h3>Patch Changes</h3>
<ul>
<li>Updated dependencies [<a
href="https://github.com/langchain-ai/langchainjs/commit/05936ab45ce1bbb04b955c3ebdd03dc1451b655c"><code>05936ab</code></a>,
<a
href="https://github.com/langchain-ai/langchainjs/commit/798cb705222f43759e94d02a790ebb706ef2f099"><code>798cb70</code></a>,
<a
href="https://github.com/langchain-ai/langchainjs/commit/80c790b593ad19668f1101f84f06c175db114909"><code>80c790b</code></a>]:
<ul>
<li><code>@​langchain/openai</code><a
href="https://github.com/1"><code>@​1</code></a>.5.2</li>
</ul>
</li>
</ul>
<h2><code>@​langchain/classic</code><a
href="https://github.com/1"><code>@​1</code></a>.0.36</h2>
<h3>Patch Changes</h3>
<ul>
<li>Updated dependencies [<a
href="https://github.com/langchain-ai/langchainjs/commit/80b43ecffe0701c3c375c407fb601cb452f708ef"><code>80b43ec</code></a>]:
<ul>
<li><code>@​langchain/openai</code><a
href="https://github.com/1"><code>@​1</code></a>.5.1</li>
</ul>
</li>
</ul>
<h2><code>@​langchain/classic</code><a
href="https://github.com/1"><code>@​1</code></a>.0.35</h2>
<h3>Patch Changes</h3>
<ul>
<li>Updated dependencies [<a
href="https://github.com/langchain-ai/langchainjs/commit/2e2811509d75af94f57cedcc3842f178f4c020d1"><code>2e28115</code></a>]:
<ul>
<li><code>@​langchain/openai</code><a
href="https://github.com/1"><code>@​1</code></a>.5.0</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/f1d64ff8d6076fb6656c1f327b7b58eac520314b"><code>f1d64ff</code></a>
chore: version packages (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11101">#11101</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/72ffc4bf17dc6dca390546c0e6c9503607198f26"><code>72ffc4b</code></a>
fix(aws): add Bedrock stream idle timeout (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11098">#11098</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/3205b35ac83037a2fff2998f16a66b5126b306f8"><code>3205b35</code></a>
fix(langchain, openai): decouple strict tools from strict structured
output r...</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/1ee0df0c49335104968f6c5130dbdb7e777f85d7"><code>1ee0df0</code></a>
chore: version packages (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11097">#11097</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/f01770895c06621b469a6c6b5244747f6efdfbf7"><code>f017708</code></a>
fix(core): better 429 error handling (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/10674">#10674</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/05936ab45ce1bbb04b955c3ebdd03dc1451b655c"><code>05936ab</code></a>
fix(openai): omit empty reasoning item id in Responses API input (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11045">#11045</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/798cb705222f43759e94d02a790ebb706ef2f099"><code>798cb70</code></a>
fix(openai): route standard url file blocks to native input_file in
Responses...</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/80c790b593ad19668f1101f84f06c175db114909"><code>80c790b</code></a>
fix(openai): stream built-in tool progress events (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11090">#11090</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/d2e6afcf17b269aa11a2f18444c208bc8a4b2520"><code>d2e6afc</code></a>
fix(groq): require <code>@​langchain/core</code> &gt;= 1.1.30 in peer
dependency (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11072">#11072</a>)</li>
<li><a
href="https://github.com/langchain-ai/langchainjs/commit/c66870ea8ebf9e3b0794ab8d969b25dfb189f2de"><code>c66870e</code></a>
feat(weaviate): add X-Weaviate-Client-Integration telemetry header (<a
href="https://redirect.github.com/langchain-ai/langchainjs/issues/11088">#11088</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/langchain-ai/langchainjs/compare/@langchain/classic@1.0.34...@langchain/classic@1.0.38">compare
view</a></li>
</ul>
</details>
<br />

Updates `langsmith` from 0.7.4 to 0.7.14
<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.14</h2>
<h2>What's Changed</h2>
<ul>
<li>fix: sum Anthropic cache tokens into input_tokens for correct cost
calculation by <a
href="https://github.com/QuentinBrosse"><code>@​QuentinBrosse</code></a>
in <a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2519">langchain-ai/langsmith-sdk#2519</a></li>
<li>chore(py): Bump version: 0.7.13 → 0.7.14 by <a
href="https://github.com/jacoblee93"><code>@​jacoblee93</code></a> in <a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2535">langchain-ai/langsmith-sdk#2535</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.13...v0.7.14">https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.13...v0.7.14</a></p>
<h2>v0.7.13</h2>
<h2>What's Changed</h2>
<ul>
<li>fix: initialize otel exporter before background thread by <a
href="https://github.com/ericdong-langchain"><code>@​ericdong-langchain</code></a>
in <a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2526">langchain-ai/langsmith-sdk#2526</a></li>
<li>fix: convert non primitive types to JSON strings by <a
href="https://github.com/ericdong-langchain"><code>@​ericdong-langchain</code></a>
in <a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2527">langchain-ai/langsmith-sdk#2527</a></li>
<li>fix: missing await by <a
href="https://github.com/ericdong-langchain"><code>@​ericdong-langchain</code></a>
in <a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2528">langchain-ai/langsmith-sdk#2528</a></li>
<li>fix: bump minimatch to resolve CVE-2026-27903 by <a
href="https://github.com/jkennedyvz"><code>@​jkennedyvz</code></a> in <a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2502">langchain-ai/langsmith-sdk#2502</a></li>
<li>feat(py): add experiment-level metadata to pytest integration by <a
href="https://github.com/baskaryan"><code>@​baskaryan</code></a> in <a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2524">langchain-ai/langsmith-sdk#2524</a></li>
<li>Bump version: 0.7.12 → 0.7.13 by <a
href="https://github.com/baskaryan"><code>@​baskaryan</code></a> in <a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2531">langchain-ai/langsmith-sdk#2531</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.12...v0.7.13">https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.12...v0.7.13</a></p>
<h2>v0.7.12</h2>
<h2>What's Changed</h2>
<ul>
<li>fix: sample before transform in ingest by <a
href="https://github.com/ericdong-langchain"><code>@​ericdong-langchain</code></a>
in <a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2488">langchain-ai/langsmith-sdk#2488</a></li>
<li>chore: bump version by <a
href="https://github.com/ericdong-langchain"><code>@​ericdong-langchain</code></a>
in <a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2521">langchain-ai/langsmith-sdk#2521</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.11...v0.7.12">https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.11...v0.7.12</a></p>
<h2>v0.7.11</h2>
<h2>What's Changed</h2>
<ul>
<li>add get insights reports with runs by <a
href="https://github.com/Palashio"><code>@​Palashio</code></a> in <a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2517">langchain-ai/langsmith-sdk#2517</a></li>
<li>bump version for insights sdk changes by <a
href="https://github.com/Palashio"><code>@​Palashio</code></a> in <a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2520">langchain-ai/langsmith-sdk#2520</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/Palashio"><code>@​Palashio</code></a>
made their first contribution in <a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2517">langchain-ai/langsmith-sdk#2517</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.10...v0.7.11">https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.10...v0.7.11</a></p>
<h2>v0.7.10</h2>
<h2>What's Changed</h2>
<ul>
<li>chore(deps-dev): bump the js-minor-and-patch group across 1
directory with 9 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/2490">langchain-ai/langsmith-sdk#2490</a></li>
<li>fix: update deprecated model and re-record VCR cassettes by <a
href="https://github.com/jkennedyvz"><code>@​jkennedyvz</code></a> in <a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2503">langchain-ai/langsmith-sdk#2503</a></li>
<li>chore(deps): bump minimatch from 3.1.2 to 3.1.5 in
/js/internal/environment_tests/test-exports-metro in the npm_and_yarn
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/2489">langchain-ai/langsmith-sdk#2489</a></li>
<li>fix: memory leak in _cached_attachment_args when tracing closures 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/2515">langchain-ai/langsmith-sdk#2515</a></li>
<li>Bump version: 0.7.9 → 0.7.10 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/2516">langchain-ai/langsmith-sdk#2516</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.9...v0.7.10">https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.9...v0.7.10</a></p>
<h2>v0.7.9</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/langchain-ai/langsmith-sdk/commit/f099beb36228b2ce008e56262ab6a5846d2dbdd1"><code>f099beb</code></a>
chore(py): Bump version: 0.7.13 → 0.7.14 (<a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2535">#2535</a>)</li>
<li><a
href="https://github.com/langchain-ai/langsmith-sdk/commit/27f1b8312c39b7acda31ac9a850fd74fb99a4e29"><code>27f1b83</code></a>
fix: sum Anthropic cache tokens into input_tokens for correct cost
calculatio...</li>
<li><a
href="https://github.com/langchain-ai/langsmith-sdk/commit/22c21bff7d1e429d0dfa7800adf95ef971ef2458"><code>22c21bf</code></a>
Bump version: 0.7.12 → 0.7.13 (<a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2531">#2531</a>)</li>
<li><a
href="https://github.com/langchain-ai/langsmith-sdk/commit/5d17205b854377bf1c8c59f2c40923c295e2c127"><code>5d17205</code></a>
feat(py): add experiment-level metadata to pytest integration (<a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2524">#2524</a>)</li>
<li><a
href="https://github.com/langchain-ai/langsmith-sdk/commit/1412ad4bfe5294e5d6407962162b2fbfcd75202d"><code>1412ad4</code></a>
fix: bump minimatch to resolve CVE-2026-27903 (<a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2502">#2502</a>)</li>
<li><a
href="https://github.com/langchain-ai/langsmith-sdk/commit/da0d6e3f137ff375d787c4ba773c8b8d7832d0d8"><code>da0d6e3</code></a>
fix: missing await (<a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2528">#2528</a>)</li>
<li><a
href="https://github.com/langchain-ai/langsmith-sdk/commit/9f587d5f45ead3f19a61bd12743827fd84541657"><code>9f587d5</code></a>
fix: convert non primitive types to JSON strings (<a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2527">#2527</a>)</li>
<li><a
href="https://github.com/langchain-ai/langsmith-sdk/commit/0efa7fb188a451857790d0066edd5e5cf28dca2f"><code>0efa7fb</code></a>
fix: initialize otel exporter before background thread (<a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2526">#2526</a>)</li>
<li><a
href="https://github.com/langchain-ai/langsmith-sdk/commit/51d4e0b867cab82fa95468099e6b2ec3fbb21644"><code>51d4e0b</code></a>
chore: bump version (<a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2521">#2521</a>)</li>
<li><a
href="https://github.com/langchain-ai/langsmith-sdk/commit/f8db5d1542703c388ccf7d506cbdbff5786c9d6f"><code>f8db5d1</code></a>
fix: sample before transform in ingest (<a
href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2488">#2488</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.4...v0.7.14">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-07-01 21:59:38 -07:00
dependabot[bot] 9293577f1a chore(deps): bump actions/checkout from 6.0.3 to 7.0.0 in the major group (#2577)
Bumps the major group with 1 update:
[actions/checkout](https://github.com/actions/checkout).

Updates `actions/checkout` from 6.0.3 to 7.0.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/checkout/releases">actions/checkout's
releases</a>.</em></p>
<blockquote>
<h2>v7.0.0</h2>
<h2>What's Changed</h2>
<ul>
<li>block checking out fork pr for pull_request_target and workflow_run
by <a href="https://github.com/aiqiaoy"><code>@​aiqiaoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2454">actions/checkout#2454</a></li>
<li>Bump actions/publish-immutable-action from 0.0.3 to 0.0.4 in the
minor-actions-dependencies group across 1 directory by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/checkout/pull/2458">actions/checkout#2458</a></li>
<li>Bump flatted from 3.3.1 to 3.4.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/checkout/pull/2460">actions/checkout#2460</a></li>
<li>Bump js-yaml from 4.1.0 to 4.2.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/checkout/pull/2461">actions/checkout#2461</a></li>
<li>Bump <code>@​actions/core</code> and
<code>@​actions/tool-cache</code> and Remove uuid by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/checkout/pull/2459">actions/checkout#2459</a></li>
<li>upgrade module to esm and update dependencies by <a
href="https://github.com/aiqiaoy"><code>@​aiqiaoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2463">actions/checkout#2463</a></li>
<li>Bump the minor-npm-dependencies group across 1 directory with 3
updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/checkout/pull/2462">actions/checkout#2462</a></li>
<li>getting ready for checkout v7 release by <a
href="https://github.com/aiqiaoy"><code>@​aiqiaoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2464">actions/checkout#2464</a></li>
<li>update error wording by <a
href="https://github.com/aiqiaoy"><code>@​aiqiaoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2467">actions/checkout#2467</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/aiqiaoy"><code>@​aiqiaoy</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/checkout/pull/2454">actions/checkout#2454</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/checkout/compare/v6.0.3...v7.0.0">https://github.com/actions/checkout/compare/v6.0.3...v7.0.0</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/actions/checkout/blob/main/CHANGELOG.md">actions/checkout's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<h2>v7.0.0</h2>
<ul>
<li>Block checking out fork PR for pull_request_target and workflow_run
by <a href="https://github.com/aiqiaoy"><code>@​aiqiaoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2454">actions/checkout#2454</a></li>
<li>Bump actions/publish-immutable-action from 0.0.3 to 0.0.4 in the
minor-actions-dependencies group across 1 directory by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/checkout/pull/2458">actions/checkout#2458</a></li>
<li>Bump flatted from 3.3.1 to 3.4.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/checkout/pull/2460">actions/checkout#2460</a></li>
<li>Bump js-yaml from 4.1.0 to 4.2.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/checkout/pull/2461">actions/checkout#2461</a></li>
<li>Bump <code>@​actions/core</code> and
<code>@​actions/tool-cache</code> and Remove uuid by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/checkout/pull/2459">actions/checkout#2459</a></li>
<li>upgrade module to esm and update dependencies by <a
href="https://github.com/aiqiaoy"><code>@​aiqiaoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2463">actions/checkout#2463</a></li>
<li>Bump the minor-npm-dependencies group across 1 directory with 3
updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/checkout/pull/2462">actions/checkout#2462</a></li>
</ul>
<h2>v6.0.3</h2>
<ul>
<li>Fix checkout init for SHA-256 repositories by <a
href="https://github.com/yaananth"><code>@​yaananth</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2439">actions/checkout#2439</a></li>
<li>fix: expand merge commit SHA regex and add SHA-256 test cases by <a
href="https://github.com/yaananth"><code>@​yaananth</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2414">actions/checkout#2414</a></li>
</ul>
<h2>v6.0.2</h2>
<ul>
<li>Fix tag handling: preserve annotations and explicit fetch-tags by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2356">actions/checkout#2356</a></li>
</ul>
<h2>v6.0.1</h2>
<ul>
<li>Add worktree support for persist-credentials includeIf by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2327">actions/checkout#2327</a></li>
</ul>
<h2>v6.0.0</h2>
<ul>
<li>Persist creds to a separate file by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2286">actions/checkout#2286</a></li>
<li>Update README to include Node.js 24 support details and requirements
by <a href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/2248">actions/checkout#2248</a></li>
</ul>
<h2>v5.0.1</h2>
<ul>
<li>Port v6 cleanup to v5 by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2301">actions/checkout#2301</a></li>
</ul>
<h2>v5.0.0</h2>
<ul>
<li>Update actions checkout to use node 24 by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2226">actions/checkout#2226</a></li>
</ul>
<h2>v4.3.1</h2>
<ul>
<li>Port v6 cleanup to v4 by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2305">actions/checkout#2305</a></li>
</ul>
<h2>v4.3.0</h2>
<ul>
<li>docs: update README.md by <a
href="https://github.com/motss"><code>@​motss</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1971">actions/checkout#1971</a></li>
<li>Add internal repos for checking out multiple repositories by <a
href="https://github.com/mouismail"><code>@​mouismail</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1977">actions/checkout#1977</a></li>
<li>Documentation update - add recommended permissions to Readme by <a
href="https://github.com/benwells"><code>@​benwells</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2043">actions/checkout#2043</a></li>
<li>Adjust positioning of user email note and permissions heading by <a
href="https://github.com/joshmgross"><code>@​joshmgross</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2044">actions/checkout#2044</a></li>
<li>Update README.md by <a
href="https://github.com/nebuk89"><code>@​nebuk89</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2194">actions/checkout#2194</a></li>
<li>Update CODEOWNERS for actions by <a
href="https://github.com/TingluoHuang"><code>@​TingluoHuang</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/2224">actions/checkout#2224</a></li>
<li>Update package dependencies by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2236">actions/checkout#2236</a></li>
</ul>
<h2>v4.2.2</h2>
<ul>
<li><code>url-helper.ts</code> now leverages well-known environment
variables by <a href="https://github.com/jww3"><code>@​jww3</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/1941">actions/checkout#1941</a></li>
<li>Expand unit test coverage for <code>isGhes</code> by <a
href="https://github.com/jww3"><code>@​jww3</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1946">actions/checkout#1946</a></li>
</ul>
<h2>v4.2.1</h2>
<ul>
<li>Check out other refs/* by commit if provided, fall back to ref by <a
href="https://github.com/orhantoy"><code>@​orhantoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1924">actions/checkout#1924</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/checkout/commit/9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0"><code>9c091bb</code></a>
update error wording (<a
href="https://redirect.github.com/actions/checkout/issues/2467">#2467</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/1044a6dea927916f2c38ba5aeffbc0a847b1221a"><code>1044a6d</code></a>
getting ready for checkout v7 release (<a
href="https://redirect.github.com/actions/checkout/issues/2464">#2464</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/f0282184c7ce73ab54c7e4ab5a617122602e575f"><code>f028218</code></a>
Bump the minor-npm-dependencies group across 1 directory with 3 updates
(<a
href="https://redirect.github.com/actions/checkout/issues/2462">#2462</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/d914b262ffc244530a203ab40decab34c3abf34d"><code>d914b26</code></a>
upgrade module to esm and update dependencies (<a
href="https://redirect.github.com/actions/checkout/issues/2463">#2463</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/537c7ef99cef6e5ddb5e7ff5d16d14510503801d"><code>537c7ef</code></a>
Bump <code>@​actions/core</code> and <code>@​actions/tool-cache</code>
and Remove uuid (<a
href="https://redirect.github.com/actions/checkout/issues/2459">#2459</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/130a169078a413d3a5246a393625e8e742f387f6"><code>130a169</code></a>
Bump js-yaml from 4.1.0 to 4.2.0 (<a
href="https://redirect.github.com/actions/checkout/issues/2461">#2461</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/7d09575332117a40b46e5e020664df234cd416f3"><code>7d09575</code></a>
Bump flatted from 3.3.1 to 3.4.2 (<a
href="https://redirect.github.com/actions/checkout/issues/2460">#2460</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/0f9f3aa320cb53abeb534aeb54048075d9697a0e"><code>0f9f3aa</code></a>
Bump actions/publish-immutable-action (<a
href="https://redirect.github.com/actions/checkout/issues/2458">#2458</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/f9e715a95fcd1f9253f77dd28f11e88d2d6460c7"><code>f9e715a</code></a>
block checking out fork pr for pull_request_target and workflow_run (<a
href="https://redirect.github.com/actions/checkout/issues/2454">#2454</a>)</li>
<li>See full diff in <a
href="https://github.com/actions/checkout/compare/df4cb1c069e1874edd31b4311f1884172cec0e10...9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/checkout&package-manager=github_actions&previous-version=6.0.3&new-version=7.0.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 <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-07-01 21:59:20 -07:00
dependabot[bot] 0984b3215e chore(deps): bump the minor-and-patch group with 3 updates (#2576)
Bumps the minor-and-patch group with 3 updates:
[pnpm/action-setup](https://github.com/pnpm/action-setup),
[actions/setup-python](https://github.com/actions/setup-python) and
[changesets/action](https://github.com/changesets/action).

Updates `pnpm/action-setup` from 6.0.8 to 6.0.9
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/pnpm/action-setup/releases">pnpm/action-setup's
releases</a>.</em></p>
<blockquote>
<h2>v6.0.9</h2>
<h2>What's Changed</h2>
<ul>
<li>fix: update pnpm to v11.7.0 by <a
href="https://github.com/zkochan"><code>@​zkochan</code></a> in <a
href="https://redirect.github.com/pnpm/action-setup/pull/267">pnpm/action-setup#267</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/pnpm/action-setup/compare/v6...v6.0.9">https://github.com/pnpm/action-setup/compare/v6...v6.0.9</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pnpm/action-setup/commit/0ebf47130e4866e96fce0953f49152a61190b271"><code>0ebf471</code></a>
fix: update pnpm to v11.7.0 (<a
href="https://redirect.github.com/pnpm/action-setup/issues/267">#267</a>)</li>
<li>See full diff in <a
href="https://github.com/pnpm/action-setup/compare/0e279bb959325dab635dd2c09392533439d90093...0ebf47130e4866e96fce0953f49152a61190b271">compare
view</a></li>
</ul>
</details>
<br />

Updates `actions/setup-python` from 6.2.0 to 6.3.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/setup-python/releases">actions/setup-python's
releases</a>.</em></p>
<blockquote>
<h2>v6.3.0</h2>
<h2>What's Changed</h2>
<h3>Enhancement</h3>
<ul>
<li>Add RHEL support and include Linux distro in cache keys by <a
href="https://github.com/priyagupta108"><code>@​priyagupta108</code></a>
in <a
href="https://redirect.github.com/actions/setup-python/pull/1323">actions/setup-python#1323</a></li>
<li>Fix pip cache error handling on Windows by <a
href="https://github.com/priyagupta108"><code>@​priyagupta108</code></a>
in <a
href="https://redirect.github.com/actions/setup-python/pull/1040">actions/setup-python#1040</a></li>
</ul>
<h3>Dependency update</h3>
<ul>
<li>Upgrade minimatch from 3.1.2 to 3.1.5 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/setup-python/pull/1281">actions/setup-python#1281</a></li>
<li>Upgrade actions dependencies by <a
href="https://github.com/gowridurgad"><code>@​gowridurgad</code></a>
with <a href="https://github.com/Copilot"><code>@​Copilot</code></a> in
<a
href="https://redirect.github.com/actions/setup-python/pull/1303">actions/setup-python#1303</a></li>
<li>Upgrade <code>@​actions/cache</code> to 5.1.0, log cache write
denied by <a
href="https://github.com/jasongin"><code>@​jasongin</code></a> in <a
href="https://redirect.github.com/actions/setup-python/pull/1324">actions/setup-python#1324</a></li>
<li>Upgrade dependency versions and test workflow configuration by <a
href="https://github.com/HarithaVattikuti"><code>@​HarithaVattikuti</code></a>
in <a
href="https://redirect.github.com/actions/setup-python/pull/1322">actions/setup-python#1322</a></li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Update advanced-usage.md by <a
href="https://github.com/Dunky-Z"><code>@​Dunky-Z</code></a> in <a
href="https://redirect.github.com/actions/setup-python/pull/811">actions/setup-python#811</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/gowridurgad"><code>@​gowridurgad</code></a>
with <a href="https://github.com/Copilot"><code>@​Copilot</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/setup-python/pull/1303">actions/setup-python#1303</a></li>
<li><a href="https://github.com/jasongin"><code>@​jasongin</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/setup-python/pull/1324">actions/setup-python#1324</a></li>
<li><a href="https://github.com/Dunky-Z"><code>@​Dunky-Z</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/setup-python/pull/811">actions/setup-python#811</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/setup-python/compare/v6...v6.3.0">https://github.com/actions/setup-python/compare/v6...v6.3.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/setup-python/commit/ece7cb06caefa5fff74198d8649806c4678c61a1"><code>ece7cb0</code></a>
Fix pip cache error handling on Windows. (<a
href="https://redirect.github.com/actions/setup-python/issues/1040">#1040</a>)</li>
<li><a
href="https://github.com/actions/setup-python/commit/1d18d7af5f767c1259ede05a0a5bcc30f3dcf1cf"><code>1d18d7a</code></a>
Update advanced-usage.md (<a
href="https://redirect.github.com/actions/setup-python/issues/811">#811</a>)</li>
<li><a
href="https://github.com/actions/setup-python/commit/d2b357a6a3a3687dd6781a416c0d24fcfd68660e"><code>d2b357a</code></a>
Update dependency versions and test workflow configuration (<a
href="https://redirect.github.com/actions/setup-python/issues/1322">#1322</a>)</li>
<li><a
href="https://github.com/actions/setup-python/commit/8f639b1e75c1048640734b2bb46e22cecf136982"><code>8f639b1</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/setup-python/issues/1324">#1324</a>
from jasongin/update-actions-cache-5.1.0</li>
<li><a
href="https://github.com/actions/setup-python/commit/6731c2ba87f530c26324d128c8fdd53499a4d4b0"><code>6731c2b</code></a>
Resolve high-severity audit issues</li>
<li><a
href="https://github.com/actions/setup-python/commit/0cb1a84326b90186fcd211036c65b42819794c87"><code>0cb1a84</code></a>
Add RHEL support and include Linux distro in cache keys (<a
href="https://redirect.github.com/actions/setup-python/issues/1323">#1323</a>)</li>
<li><a
href="https://github.com/actions/setup-python/commit/dc6eab6194394e0119523369788b507096f923e2"><code>dc6eab6</code></a>
Update dist</li>
<li><a
href="https://github.com/actions/setup-python/commit/6f4b74bfa2f520a380a620de3615c0dac427f4d3"><code>6f4b74b</code></a>
Strict equality</li>
<li><a
href="https://github.com/actions/setup-python/commit/fa8bde1a9cc6347d06948d66bcd68c598b79eaea"><code>fa8bde1</code></a>
Bump <code>@​actions/cache</code> to 5.1.0, log cache write denied</li>
<li><a
href="https://github.com/actions/setup-python/commit/c8813ba1bc76ebf779b911ad8ffccbf2e449cb48"><code>c8813ba</code></a>
Upgrade <a href="https://github.com/actions"><code>@​actions</code></a>
dependencies and update licenses (<a
href="https://redirect.github.com/actions/setup-python/issues/1303">#1303</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/actions/setup-python/compare/a309ff8b426b58ec0e2a45f0f869d46889d02405...ece7cb06caefa5fff74198d8649806c4678c61a1">compare
view</a></li>
</ul>
</details>
<br />

Updates `changesets/action` from 1.8.0 to 1.9.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/changesets/action/releases">changesets/action's
releases</a>.</em></p>
<blockquote>
<h2>v1.9.0</h2>
<h3>Minor Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/changesets/action/pull/636">#636</a>
<a
href="https://github.com/changesets/action/commit/b072bccc4c664a373c42168eed9139dce1e003b1"><code>b072bcc</code></a>
Thanks <a href="https://github.com/bluwy"><code>@​bluwy</code></a>! -
Add a new <code>@changesets/action/pr-comment</code> sub-action to
comment on PRs</p>
</li>
<li>
<p><a
href="https://redirect.github.com/changesets/action/pull/625">#625</a>
<a
href="https://github.com/changesets/action/commit/8795eee5eee884e887d352ac673a515ffe35aaa6"><code>8795eee</code></a>
Thanks <a href="https://github.com/bluwy"><code>@​bluwy</code></a>! -
Add a new <code>@changesets/action/pr-status</code> sub-action to
generate the changeset status comment for PRs as an alternative to the
<a href="https://github.com/apps/changeset-bot">Changesets Bot</a>.</p>
</li>
</ul>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/changesets/action/pull/535">#535</a>
<a
href="https://github.com/changesets/action/commit/34f64f6e2e1e47ddc183f174aa27c197aa47f520"><code>34f64f6</code></a>
Thanks <a
href="https://github.com/Andarist"><code>@​Andarist</code></a>! - Fixed
an issue with GitHub releases not being created for successfully
published packages when <em>some</em> packages failed to be published to
the registry.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/changesets/action/pull/632">#632</a>
<a
href="https://github.com/changesets/action/commit/1d54b9e660e435237accbcae0b4581af3be641b4"><code>1d54b9e</code></a>
Thanks <a href="https://github.com/bluwy"><code>@​bluwy</code></a>! -
Simplify internal implementation to get changelog entries for a package
version</p>
</li>
<li>
<p><a
href="https://redirect.github.com/changesets/action/pull/629">#629</a>
<a
href="https://github.com/changesets/action/commit/e0c90aa7fbd0cc26931a679c5abe9bbc0deb0b50"><code>e0c90aa</code></a>
Thanks <a href="https://github.com/bluwy"><code>@​bluwy</code></a>! -
Fix custom version and publish command argument parsing</p>
</li>
<li>
<p><a
href="https://redirect.github.com/changesets/action/pull/645">#645</a>
<a
href="https://github.com/changesets/action/commit/f9585d966a9c7d2f668b97199990de6f885823cf"><code>f9585d9</code></a>
Thanks <a
href="https://github.com/Andarist"><code>@​Andarist</code></a>! -
Improved force-push handling when using <code>commitMode:
&quot;github-api&quot;</code> so updating an existing branch no longer
temporarily resets the target branch to the base commit, avoiding cases
where GitHub closes open pull requests during the update. This should
remove a possibility of a GitHub state race that caused the force-pushed
PRs not being reopened.</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/changesets/action/blob/main/CHANGELOG.md">changesets/action's
changelog</a>.</em></p>
<blockquote>
<h1><code>@​changesets/action</code></h1>
<h2>2.0.0-next.3</h2>
<h3>Major Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/changesets/action/pull/680">#680</a>
<a
href="https://github.com/changesets/action/commit/ca57073900dc678254406a052a03c0c8824e319d"><code>ca57073</code></a>
Thanks <a href="https://github.com/bluwy"><code>@​bluwy</code></a>! -
Add a new <code>push-git-tags</code> option that complements
<code>create-github-releases</code> to control specifically if git tags
should be created but not GitHub releases.</p>
<p>If <code>create-github-releases</code> was previously set to
<code>false</code>, which also indirectly disabled git tag creation, git
tags will now be created instead by default. If this is not desired, set
<code>push-git-tags</code> to <code>false</code> explicitly.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/changesets/action/pull/681">#681</a>
<a
href="https://github.com/changesets/action/commit/73591071e61c7f61cf322dd7a6341dc29a8e1d4e"><code>7359107</code></a>
Thanks <a href="https://github.com/bluwy"><code>@​bluwy</code></a>! -
Rename the root action inputs and outputs to better match the
sub-actions' conventions.</p>
<p>Inputs:</p>
<ul>
<li><code>version</code> -&gt; <code>version-script</code></li>
<li><code>publish</code> -&gt; <code>publish-script</code></li>
<li><code>commit</code> -&gt; <code>commit-message</code></li>
<li><code>title</code> -&gt; <code>pr-title</code></li>
<li><code>branch</code> -&gt; <code>pr-base-branch</code></li>
</ul>
<p>Outputs:</p>
<ul>
<li><code>pull-request-number</code> -&gt; <code>pr-number</code></li>
</ul>
</li>
<li>
<p><a
href="https://redirect.github.com/changesets/action/pull/674">#674</a>
<a
href="https://github.com/changesets/action/commit/164652bdd60525670d95291addb8c6f92833ac60"><code>164652b</code></a>
Thanks <a href="https://github.com/bluwy"><code>@​bluwy</code></a>! -
Remove support for passing custom GitHub token through the GITHUB_TOKEN
environment variable. It should be passed to the
<code>github-token</code> input instead.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/changesets/action/pull/673">#673</a>
<a
href="https://github.com/changesets/action/commit/823cf741ca57c5e22652123d3a847dfafcd77ca0"><code>823cf74</code></a>
Thanks <a href="https://github.com/bluwy"><code>@​bluwy</code></a>! -
Update to Changesets v3 packages</p>
</li>
<li>
<p><a
href="https://redirect.github.com/changesets/action/pull/668">#668</a>
<a
href="https://github.com/changesets/action/commit/0eae789230defbc4ad287e9b476aba7e842e34e0"><code>0eae789</code></a>
Thanks <a href="https://github.com/bluwy"><code>@​bluwy</code></a>! -
Rename the input and output names to kebab-case instead of camelCase to
match the official GitHub actions pattern</p>
</li>
</ul>
<h3>Minor Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/changesets/action/pull/678">#678</a>
<a
href="https://github.com/changesets/action/commit/f71ae043ed5deb17952900091e009a60edef9507"><code>f71ae04</code></a>
Thanks <a
href="https://github.com/Andarist"><code>@​Andarist</code></a>! -
Published packages detection done through stdout parsing was replaced
with one based on the shared output file using
<code>CHANGESETS_OUTPUT</code> environment variable. When using custom
scripts this environment variable should always be passed down to the
Changesets CLI invocations.</li>
</ul>
<h2>2.0.0-next.2</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/changesets/action/pull/670">#670</a>
<a
href="https://github.com/changesets/action/commit/5a8b9b721bf683e3bf9bd72ea92a685dc024147b"><code>5a8b9b7</code></a>
Thanks <a
href="https://github.com/Andarist"><code>@​Andarist</code></a>! -
Authenticate git CLI pushes with the configured GitHub token using Git
extra headers instead of writing to a global <code>.netrc</code>
file.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/changesets/action/pull/670">#670</a>
<a
href="https://github.com/changesets/action/commit/5a8b9b721bf683e3bf9bd72ea92a685dc024147b"><code>5a8b9b7</code></a>
Thanks <a
href="https://github.com/Andarist"><code>@​Andarist</code></a>! - Derive
the Git server URL from the GitHub Actions context when configuring git
CLI authentication to support GitHub Enterprise Server setups.</p>
</li>
</ul>
<h2>2.0.0-next.1</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/changesets/action/pull/663">#663</a>
<a
href="https://github.com/changesets/action/commit/ccb38113eaaa4a13eb6aabe09520e49cc8519b84"><code>ccb3811</code></a>
Thanks <a
href="https://github.com/Andarist"><code>@​Andarist</code></a>! - Fix
the computed publish plan path passed internally to <code>changeset
pack</code> by the <code>/pack</code> subaction.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/changesets/action/pull/662">#662</a>
<a
href="https://github.com/changesets/action/commit/5c88881fff1f0d8b055d4a2d3a74a8ce843db6f3"><code>5c88881</code></a>
Thanks <a
href="https://github.com/Andarist"><code>@​Andarist</code></a>! - Fixed
usage of <code>--from-publish-plan</code> flag used by the
<code>/pack</code> subaction</p>
</li>
<li>
<p><a
href="https://redirect.github.com/changesets/action/pull/666">#666</a>
<a
href="https://github.com/changesets/action/commit/dc29b738b532d9e95f46b9bf493e2e3fdf48a7ed"><code>dc29b73</code></a>
Thanks <a
href="https://github.com/Andarist"><code>@​Andarist</code></a>! - Fix
the <code>/version</code> subaction to not crash on missing
<code>pr-base-branch</code> input. This input is meant to be
optional.</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/changesets/action/commit/a45c4d594aa4e2c509dc14a9f2b3b67ba3780d0d"><code>a45c4d5</code></a>
v1.9.0</li>
<li><a
href="https://github.com/changesets/action/commit/b459b1eaa0a3889b4eea8af244304a64da6331ce"><code>b459b1e</code></a>
Version Packages (<a
href="https://redirect.github.com/changesets/action/issues/637">#637</a>)</li>
<li><a
href="https://github.com/changesets/action/commit/f9585d966a9c7d2f668b97199990de6f885823cf"><code>f9585d9</code></a>
Update <code>@changesets/ghcommit</code> (<a
href="https://redirect.github.com/changesets/action/issues/645">#645</a>)</li>
<li><a
href="https://github.com/changesets/action/commit/020e8cc600a1e7e7b8b843654902f043f32387ea"><code>020e8cc</code></a>
Use internal bot for versioning (<a
href="https://redirect.github.com/changesets/action/issues/643">#643</a>)</li>
<li><a
href="https://github.com/changesets/action/commit/b072bccc4c664a373c42168eed9139dce1e003b1"><code>b072bcc</code></a>
Add simple PR comment sub-action (<a
href="https://redirect.github.com/changesets/action/issues/636">#636</a>)</li>
<li><a
href="https://github.com/changesets/action/commit/8795eee5eee884e887d352ac673a515ffe35aaa6"><code>8795eee</code></a>
Comment changeset status in PRs (<a
href="https://redirect.github.com/changesets/action/issues/625">#625</a>)</li>
<li><a
href="https://github.com/changesets/action/commit/34f64f6e2e1e47ddc183f174aa27c197aa47f520"><code>34f64f6</code></a>
Fixed an issue with GitHub releases not being created for successfully
publis...</li>
<li><a
href="https://github.com/changesets/action/commit/1d54b9e660e435237accbcae0b4581af3be641b4"><code>1d54b9e</code></a>
Simplify getChangelogEntry (<a
href="https://redirect.github.com/changesets/action/issues/632">#632</a>)</li>
<li><a
href="https://github.com/changesets/action/commit/031358f743b5a6199bd7a39bdc8b469280983df9"><code>031358f</code></a>
Update to typescript v6 (<a
href="https://redirect.github.com/changesets/action/issues/633">#633</a>)</li>
<li><a
href="https://github.com/changesets/action/commit/a0c05f7a4b1df776543903d7dca8e39cd787b30a"><code>a0c05f7</code></a>
Bump <code>@​changesets/changelog-github</code> from 0.5.2 to 0.7.0 (<a
href="https://redirect.github.com/changesets/action/issues/620">#620</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/changesets/action/compare/63a615b9cd06ba9a3e6d13796c7fbcb080a60a0b...a45c4d594aa4e2c509dc14a9f2b3b67ba3780d0d">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-07-01 21:59:13 -07:00
Christian Bromann e1b40c29e1 fix(cli): support node_version 24 in langgraph.json (#2575)
## Summary
- Add `"24"` to `NodeVersionSchema` in `@langchain/langgraph-cli` so
`node_version: "24"` is accepted in `langgraph.json`.
- Add config, `getBaseImage`, and `configToDocker` tests for Node 24 tag
resolution (`langchain/langgraphjs-api:24` and `{api_version}-node24`).
- Update CLI README to document supported Node versions (`"20"`, `"22"`,
`"24"`).
2026-06-29 20:10:24 -07:00
Christian Bromann ad7f9beb1e fix(ci): ignore example packages globbing the changelog 2026-06-25 16:40:40 -07:00
github-actions[bot] 2174637623 chore: version packages (#2572)
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.4.7

### Patch Changes

- [#2571](https://github.com/langchain-ai/langgraphjs/pull/2571)
[`85ba859`](https://github.com/langchain-ai/langgraphjs/commit/85ba859b6f60f4bf193d3313fa24149efe05491b)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(langgraph): drop unused zod-to-json-schema peer dependency

Remove the vestigial `zod-to-json-schema` (and its
`peerDependenciesMeta`/dev) declarations. JSON Schema generation now
flows through `@langchain/core`'s Zod v3/v4 interop (`toJsonSchema`), so
the old `zod-to-json-schema@^3.x` peer (which pins `zod@^3.24.1`) is no
longer needed and was the last source of install-time peer conflicts
with Zod v4. Closes
[#1706](https://github.com/langchain-ai/langgraphjs/issues/1706).

## @example/ai-elements@0.1.43

### Patch Changes

- Updated dependencies
\[[`85ba859`](https://github.com/langchain-ai/langgraphjs/commit/85ba859b6f60f4bf193d3313fa24149efe05491b)]:
    -   @langchain/langgraph@1.4.7

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

### Patch Changes

- Updated dependencies
\[[`85ba859`](https://github.com/langchain-ai/langgraphjs/commit/85ba859b6f60f4bf193d3313fa24149efe05491b)]:
    -   @langchain/langgraph@1.4.7

## @examples/ui-angular@0.0.53

### Patch Changes

- Updated dependencies
\[[`85ba859`](https://github.com/langchain-ai/langgraphjs/commit/85ba859b6f60f4bf193d3313fa24149efe05491b)]:
    -   @langchain/langgraph@1.4.7

## @examples/ui-multimodal@0.0.29

### Patch Changes

- Updated dependencies
\[[`85ba859`](https://github.com/langchain-ai/langgraphjs/commit/85ba859b6f60f4bf193d3313fa24149efe05491b)]:
    -   @langchain/langgraph@1.4.7

## @examples/ui-react@0.0.29

### Patch Changes

- Updated dependencies
\[[`85ba859`](https://github.com/langchain-ai/langgraphjs/commit/85ba859b6f60f4bf193d3313fa24149efe05491b)]:
    -   @langchain/langgraph@1.4.7

## langgraph@1.0.47

### Patch Changes

- Updated dependencies
\[[`85ba859`](https://github.com/langchain-ai/langgraphjs/commit/85ba859b6f60f4bf193d3313fa24149efe05491b)]:
    -   @langchain/langgraph@1.4.7

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@langchain/langgraph@1.4.7
2026-06-25 14:47:39 -07:00
Christian Bromann 82e07d06b4 docs(checkpoint): document edge runtime compatibility and persistence flush
Clarify that checkpoint writes are awaited before invoke/stream resolve,
and document Cloudflare Workers limitations and workarounds for Postgres
and Redis checkpointers. Closes #1692.
2026-06-25 11:30:59 -07:00
Christian Bromann 85ba859b6f fix(langgraph): drop unused zod-to-json-schema dependency (#2571)
## Summary
- Remove the vestigial `zod-to-json-schema` peer/dev dependency from
`@langchain/langgraph` (`libs/langgraph-core`) and the `langgraph`
umbrella package. Nothing in source imports it anymore — graph JSON
Schema generation flows through `@langchain/core/utils/json_schema`'s
`toJsonSchema`, which uses Zod v4's native `toJSONSchema` with a v3
fallback.
- This was the last remaining `zod@^3.24.1` peer constraint, which is
what produced the install-time conflict with Zod v4 reported in #1706.
- Prune the unused `zod-to-json-schema` declaration from 6 example
projects (`multi_agent`, `chatbot-simulation-evaluation`, `reflection`,
`rewoo`, `plan-and-execute`, `quickstart`) that declared but never used
it. Kept it in `rag`, `how-tos`, and `chatbots`, whose notebooks
genuinely call `zodToJsonSchema`.
- Regenerate `pnpm-lock.yaml`.

Fixes #1706
2026-06-25 11:06:46 -07:00
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 (&lt; 20.19 / &lt; 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>
@langchain/angular@1.0.26 @langchain/langgraph-api@1.4.1 @langchain/langgraph-checkpoint-postgres@1.0.4 @langchain/langgraph-checkpoint@1.1.3 @langchain/langgraph-cli@1.4.1 @langchain/langgraph-sdk@1.9.25 @langchain/langgraph-ui@1.4.1 @langchain/langgraph@1.4.6 @langchain/react@1.0.26 @langchain/svelte@1.0.26 @langchain/vue@1.0.26
2026-06-24 17:51:02 -07:00
Christian Bromann 03a0d8b863 fix(langgraph): emit valid UUIDs for exit-mode delta task_ids
Exit-mode DeltaChannel writes used a step-prefixed synthetic task id that
Postgres rejects for checkpoint_writes.task_id uuid in LangGraph API. Embed
the superstep in the first UUID group instead, matching langgraph#8165.
2026-06-23 18:31:07 -07:00
Christian Bromann 38d15e2f1f fix(langgraph-api): support configurable TypeScript loaders in dev server (#2568)
## Summary
- Add configurable TypeScript loader support for the in-memory dev
server to fix reflect-metadata / `emitDecoratorMetadata` incompatibility
with tsx (esbuild).
- Introduce `node_loader` on Node `langgraph.json` configs and
`LANGGRAPH_NODE_LOADER` env override; default remains `tsx` CLI watch
mode.
- Generalize non-tsx loaders to `node [--watch] --import <loader>
--import preload entrypoint`, with shorthand mapping for `ts-node` →
`ts-node/esm`.
- Add `spawn-args` helper + unit tests; add `ts-node` as optional peer
dependency of `@langchain/langgraph-api`.

Fixes #1834
2026-06-23 09:43:07 -07:00
Christian Bromann 091a46f32d fix(langgraph-checkpoint-postgres): prevent createAgent failures with PostgresSaver (#2566)
## Summary
- Add `BaseCheckpointSaver.toJSON()` so runnable
`configurable.__pregel_checkpointer` can be JSON-stringified without
traversing backend clients (fixes the circular `Timeout` error when
using `createAgent` with `PostgresSaver`).
- Harden `copyCheckpoint()` and `PostgresSaver._loadCheckpoint()` to
default missing `channel_versions` and `versions_seen` to `{}`, fixing
resume crashes on `__input__` after a failed first run.
- Add unit and integration tests covering stringify safety and missing
`versions_seen` recovery.

Fixes #1808
2026-06-22 15:23:18 -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
Christian Bromann 379bfd9a7d test(langgraph-checkpoint-validation): cover channel carry-over reconstruction across checkpoints
Add a getTuple conformance test reproducing #2555: a node that updates
only a subset of channels must not drop the channels it left untouched.

Delta-storing savers (Postgres, Redis) persist only the channels in
`newVersions` on each `put`, so on read they must reconstruct the
carried-over channels from blobs written by ancestor checkpoints. The
existing getTuple spec only re-wrote the same channel in the child
checkpoint, so it never exercised carry-over reconstruction — which is
how the Redis saver shipped 1.0.9 without it (fixed in 1.0.10, #2336).

The new test runs against every saver and fails on the buggy behavior
(returns `{ stepCount }` instead of `{ messages, stepCount }`).
2026-06-22 14:43:05 -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>
@langchain/angular@1.0.25 @langchain/langgraph-api@1.4.0 @langchain/langgraph-checkpoint-mongodb@1.4.0 @langchain/langgraph-cli@1.4.0 @langchain/langgraph-sdk@1.9.24 @langchain/langgraph-ui@1.4.0 @langchain/langgraph@1.4.5 @langchain/react@1.0.25 @langchain/svelte@1.0.25 @langchain/vue@1.0.25
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 48cbdd23fd feat(langgraph-cli): add deploy command for LangSmith Deployment (#2559)
## Summary
- Add `langgraphjs deploy` to `@langchain/langgraph-cli`, porting the
Python CLI's LangSmith Deployment workflow for JS projects.
- Support local Docker build/push and remote source-archive upload
paths, plus `deploy list`, `deploy revisions list`, `deploy delete`, and
`deploy logs`.
- Introduce host-backend client, archive/ignore/output helpers, and unit
tests; wire the command into the CLI entrypoint and add the `ignore`
dependency.

Test on our deployment cookbook:
```
pnpm run deploy

> js-langsmith@0.1.0 deploy /Users/christian.bromann/Sites/LangChain/deployment-cookbook/js-langsmith
> langgraphjs deploy

Note: 'langgraphjs deploy' is in beta. Expect frequent updates and improvements.

Skipping reserved env var: LANGSMITH_API_KEY
Skipping reserved env var: LANGSMITH_TENANT_ID
Docker is installed but not running.
Start Docker and try again.
Using remote build instead.

1. Looking up deployment 'deployment-cookbook-agent'
   No deployment found. Will create.
2. Creating deployment 'deployment-cookbook-agent'
   Deployment ID: fc41ac21-0251-4caf-9f6b-e8e381520e59
3. Creating source archive
   Archive created (0.1 MB)
4. Requesting upload URL
5. Uploading source
   Uploading (0.1 MB)... 100%
6. Triggering remote build
   View status: https://smith.langchain.com/o/d7ca4f49-e65f-4c96-8d03-e1d713acb728/host/deployments/fc41ac21-0251-4caf-9f6b-e8e381520e59
   QUEUED... (9s)
   AWAITING_BUILD... (18s)
   BUILDING... (3m 13s)
   AWAITING_DEPLOY... (3m 32s)
   DEPLOYING... (4m 50s)
   Deployment successful!
   URL: https://deployment-cookbook-agent-3569d4ef8d405f40850d56230f67258b.us.langgraph.app
   View status: https://smith.langchain.com/o/d7ca4f49-e65f-4c96-8d03-e1d713acb728/host/deployments/fc41ac21-0251-4caf-9f6b-e8e381520e59
```
2026-06-22 09:30:50 -07:00
lazyDev 2b8cc2f3fd feat(checkpoint): add setup() to create required MongoDB indexes (#2550)
## Summary

Fixes #2551

`MongoDBSaver` queries `checkpoints` and `checkpoint_writes` collections
by `thread_id`, `checkpoint_ns`, and `checkpoint_id`, but never creates
indexes on these fields. As the collections grow, every `getTuple()`,
`list()`, and `putWrites()` call triggers a **full collection scan**.

In production with ~450K checkpoints and ~570K checkpoint_writes, this
caused:
- `getState` taking **5-10 seconds** per request (scanning all 450K docs
each time)
- Total API response times of **30-40 seconds** instead of **3 seconds**

### Changes

- Adds a `setup()` method to `MongoDBSaver` that creates a compound
index `{ thread_id: 1, checkpoint_ns: 1, checkpoint_id: -1 }` on both
collections
- The method is idempotent (`createIndex` is a no-op when the index
already exists), safe to call on every app start
- Follows the same pattern as `MongoDBStore.start()` which already
creates indexes

### Before / After (production, 450K checkpoints)

| Metric | Before | After |
|---|---|---|
| Docs examined per query | 445,801 | 1 |
| `checkpoints` query | 5,173ms | <10ms |
| `checkpoint_writes` query | 925ms | <10ms |

### Test plan

- [x] Unit test added verifying `setup()` creates indexes on both
collections with correct key spec
- [x] Existing integration tests pass

---------

Signed-off-by: Christian Bromann <git@bromann.dev>
Co-authored-by: Christian Bromann <git@bromann.dev>
2026-06-22 08:25:03 -07:00
dependabot[bot] 617cac92a4 chore(deps-dev): bump typeorm from 0.3.28 to 0.3.29 (#2563)
Bumps [typeorm](https://github.com/typeorm/typeorm) from 0.3.28 to
0.3.29.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/typeorm/typeorm/releases">typeorm's
releases</a>.</em></p>
<blockquote>
<h2>0.3.29</h2>
<h2>What's Changed</h2>
<ul>
<li>fix: fix up aggregate methods ambiguous column by <a
href="https://github.com/Cprakhar"><code>@​Cprakhar</code></a> in <a
href="https://redirect.github.com/typeorm/typeorm/pull/11822">typeorm/typeorm#11822</a></li>
<li>fix: prevent eager-loaded entities from overwriting manual relations
by <a href="https://github.com/LeviHeber"><code>@​LeviHeber</code></a>
in <a
href="https://redirect.github.com/typeorm/typeorm/pull/11267">typeorm/typeorm#11267</a></li>
<li>fix: release query runner when there is no migration to revert by <a
href="https://github.com/mjr128"><code>@​mjr128</code></a> in <a
href="https://redirect.github.com/typeorm/typeorm/pull/11232">typeorm/typeorm#11232</a></li>
<li>fix: add async to the method using setFindOptions() by <a
href="https://github.com/bindon"><code>@​bindon</code></a> in <a
href="https://redirect.github.com/typeorm/typeorm/pull/10787">typeorm/typeorm#10787</a></li>
<li>chore: disable eslint errors for chai assertions by <a
href="https://github.com/alumni"><code>@​alumni</code></a> in <a
href="https://redirect.github.com/typeorm/typeorm/pull/11833">typeorm/typeorm#11833</a></li>
<li>ci(tests): Remove limitation of branches to run on by <a
href="https://github.com/OSA413"><code>@​OSA413</code></a> in <a
href="https://redirect.github.com/typeorm/typeorm/pull/11794">typeorm/typeorm#11794</a></li>
<li>ci: upgrade actions to v6 by <a
href="https://github.com/pkuczynski"><code>@​pkuczynski</code></a> in <a
href="https://redirect.github.com/typeorm/typeorm/pull/11844">typeorm/typeorm#11844</a></li>
<li>docs(v0.3): add version dropdown (stable/dev) by <a
href="https://github.com/naorpeled"><code>@​naorpeled</code></a> in <a
href="https://redirect.github.com/typeorm/typeorm/pull/11863">typeorm/typeorm#11863</a></li>
<li>fix(sap): <code>QueryBuilder</code> parameter of type JS
<code>Date</code> not escaped correctly by <a
href="https://github.com/alumni"><code>@​alumni</code></a> in <a
href="https://redirect.github.com/typeorm/typeorm/pull/11867">typeorm/typeorm#11867</a></li>
<li>feat(sap): add pool timeout by <a
href="https://github.com/alumni"><code>@​alumni</code></a> in <a
href="https://redirect.github.com/typeorm/typeorm/pull/11868">typeorm/typeorm#11868</a></li>
<li>feat(qodo): enable new review experience in v0.3 by <a
href="https://github.com/naorpeled"><code>@​naorpeled</code></a> in <a
href="https://redirect.github.com/typeorm/typeorm/pull/11910">typeorm/typeorm#11910</a></li>
<li>feat: add <code>returning</code> option to update/upsert operations
by <a href="https://github.com/naorpeled"><code>@​naorpeled</code></a>
in <a
href="https://redirect.github.com/typeorm/typeorm/pull/11782">typeorm/typeorm#11782</a></li>
<li>test: enable repository-returning test by <a
href="https://github.com/gioboa"><code>@​gioboa</code></a> in <a
href="https://redirect.github.com/typeorm/typeorm/pull/11913">typeorm/typeorm#11913</a></li>
<li>chore(qodo): disable in progress notification in v0.3 by <a
href="https://github.com/naorpeled"><code>@​naorpeled</code></a> in <a
href="https://redirect.github.com/typeorm/typeorm/pull/11928">typeorm/typeorm#11928</a></li>
<li>ci(docs): add deploy Github Action to v0.3 branch by <a
href="https://github.com/naorpeled"><code>@​naorpeled</code></a> in <a
href="https://redirect.github.com/typeorm/typeorm/pull/11929">typeorm/typeorm#11929</a></li>
<li>chore(qodo): disable persistent comments and inline code suggestions
in v0.3 by <a
href="https://github.com/naorpeled"><code>@​naorpeled</code></a> in <a
href="https://redirect.github.com/typeorm/typeorm/pull/11989">typeorm/typeorm#11989</a></li>
<li>chore(deps): update all dependencies to the latest minor version by
<a href="https://github.com/alumni"><code>@​alumni</code></a> in <a
href="https://redirect.github.com/typeorm/typeorm/pull/12015">typeorm/typeorm#12015</a></li>
<li>fix(redis): redis cache version detection by <a
href="https://github.com/mguida22"><code>@​mguida22</code></a> in <a
href="https://redirect.github.com/typeorm/typeorm/pull/11936">typeorm/typeorm#11936</a></li>
<li>ci: remove summary comments location policy by <a
href="https://github.com/naorpeled"><code>@​naorpeled</code></a> in <a
href="https://redirect.github.com/typeorm/typeorm/pull/12117">typeorm/typeorm#12117</a></li>
<li>ci(qodo): remove /improve from pr and push commands by <a
href="https://github.com/naorpeled"><code>@​naorpeled</code></a> in <a
href="https://redirect.github.com/typeorm/typeorm/pull/12129">typeorm/typeorm#12129</a></li>
<li>ci: migrate from npm to pnpm by <a
href="https://github.com/pkuczynski"><code>@​pkuczynski</code></a> in <a
href="https://redirect.github.com/typeorm/typeorm/pull/12193">typeorm/typeorm#12193</a></li>
<li>ci(qodo): sync qodo pr agent config from master by <a
href="https://github.com/naorpeled"><code>@​naorpeled</code></a> in <a
href="https://redirect.github.com/typeorm/typeorm/pull/12265">typeorm/typeorm#12265</a></li>
<li>ci: remove docs indexing by <a
href="https://github.com/alumni"><code>@​alumni</code></a> in <a
href="https://redirect.github.com/typeorm/typeorm/pull/12435">typeorm/typeorm#12435</a></li>
<li>fix(security): validate limit() in Update/SoftDelete query builders
by <a href="https://github.com/smith-xyz"><code>@​smith-xyz</code></a>
in <a
href="https://redirect.github.com/typeorm/typeorm/pull/12437">typeorm/typeorm#12437</a></li>
<li>chore(deps): update all minor by <a
href="https://github.com/alumni"><code>@​alumni</code></a> in <a
href="https://redirect.github.com/typeorm/typeorm/pull/12443">typeorm/typeorm#12443</a></li>
<li>chore(release): release 0.3.29 by <a
href="https://github.com/michaelbromley"><code>@​michaelbromley</code></a>
in <a
href="https://redirect.github.com/typeorm/typeorm/pull/12442">typeorm/typeorm#12442</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/LeviHeber"><code>@​LeviHeber</code></a>
made their first contribution in <a
href="https://redirect.github.com/typeorm/typeorm/pull/11267">typeorm/typeorm#11267</a></li>
<li><a href="https://github.com/mjr128"><code>@​mjr128</code></a> made
their first contribution in <a
href="https://redirect.github.com/typeorm/typeorm/pull/11232">typeorm/typeorm#11232</a></li>
<li><a href="https://github.com/bindon"><code>@​bindon</code></a> made
their first contribution in <a
href="https://redirect.github.com/typeorm/typeorm/pull/10787">typeorm/typeorm#10787</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/typeorm/typeorm/compare/0.3.28...0.3.29">https://github.com/typeorm/typeorm/compare/0.3.28...0.3.29</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/typeorm/typeorm/blob/master/CHANGELOG.md">typeorm's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/typeorm/typeorm/compare/0.3.28...0.3.29">0.3.29</a>
(2026-05-08)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>add async to the method using setFindOptions() (<a
href="https://redirect.github.com/typeorm/typeorm/issues/10787">#10787</a>)
(<a
href="https://github.com/typeorm/typeorm/commit/cc07c90f1de51bd31c0c450fae3a200f355c37f1">cc07c90</a>)</li>
<li>change import for process dependency (<a
href="https://redirect.github.com/typeorm/typeorm/issues/11248">#11248</a>)
(<a
href="https://github.com/typeorm/typeorm/commit/1c67c3b02632c92cac33f5cfd6895a92e93571d8">1c67c3b</a>)</li>
<li><strong>cli:</strong> init command loading non-existing package.json
(<a
href="https://redirect.github.com/typeorm/typeorm/issues/11947">#11947</a>)
(<a
href="https://github.com/typeorm/typeorm/commit/4d9d1a61c68ecc9b8161abbd59594e69fe052a80">4d9d1a6</a>)</li>
<li>fix up aggregate methods ambiguous column (<a
href="https://redirect.github.com/typeorm/typeorm/issues/11822">#11822</a>)
(<a
href="https://github.com/typeorm/typeorm/commit/6e34756b9d6cc8b7b96cfeab869483ef62b2a7e6">6e34756</a>)</li>
<li>fix up limit with joins (<a
href="https://redirect.github.com/typeorm/typeorm/issues/11987">#11987</a>)
(<a
href="https://github.com/typeorm/typeorm/commit/3657db86b9c26cd3fcb839279ad0e2f2165305fa">3657db8</a>)</li>
<li>getPendingMigrations unnecessarily creating migrations table (<a
href="https://redirect.github.com/typeorm/typeorm/issues/11672">#11672</a>)
(<a
href="https://github.com/typeorm/typeorm/commit/1dbc22428bdfd0b33760afe7bcbb5456d9eab8be">1dbc224</a>)</li>
<li><strong>postgres:</strong> execute queries sequentially to avoid pg
8.19.0 deprecation warning (<a
href="https://redirect.github.com/typeorm/typeorm/issues/12105">#12105</a>)
(<a
href="https://github.com/typeorm/typeorm/commit/79829a0f63cb4620a95d73841a77099b988cc1be">79829a0</a>)</li>
<li>prevent columns with select false from being returned (<a
href="https://redirect.github.com/typeorm/typeorm/issues/11944">#11944</a>)
(<a
href="https://github.com/typeorm/typeorm/commit/6b20831bb7bc285a9accbdfca6563e73d818d435">6b20831</a>)</li>
<li>prevent eager-loaded entities from overwriting manual relations (<a
href="https://redirect.github.com/typeorm/typeorm/issues/11267">#11267</a>)
(<a
href="https://github.com/typeorm/typeorm/commit/2d8c5158db1aef458cd909db05059fff9129305a">2d8c515</a>)</li>
<li>propagate schema and database to closure junction table (<a
href="https://redirect.github.com/typeorm/typeorm/issues/12110">#12110</a>)
(<a
href="https://github.com/typeorm/typeorm/commit/58b403f04cfe1e0aae17e6064279cee5e1a33eb3">58b403f</a>)</li>
<li><strong>redis:</strong> redis cache version detection (<a
href="https://redirect.github.com/typeorm/typeorm/issues/11936">#11936</a>)
(<a
href="https://github.com/typeorm/typeorm/commit/f22c7a2358108c6656f15470250d937bf440f71d">f22c7a2</a>)</li>
<li>release query runner when there is no migration to revert (<a
href="https://redirect.github.com/typeorm/typeorm/issues/11232">#11232</a>)
(<a
href="https://github.com/typeorm/typeorm/commit/a46eb0a7e18df52a39e5f39ae2c4e67a89c945d9">a46eb0a</a>)</li>
<li><strong>sap:</strong> <code>QueryBuilder</code> parameter of type JS
<code>Date</code> not escaped correctly (<a
href="https://redirect.github.com/typeorm/typeorm/issues/11867">#11867</a>)
(<a
href="https://github.com/typeorm/typeorm/commit/51534362daed2f1cc9ce72ee0886e894892face7">5153436</a>)</li>
<li><strong>security:</strong> validate limit() in Update/SoftDelete
query builders (<a
href="https://redirect.github.com/typeorm/typeorm/issues/12437">#12437</a>)
(<a
href="https://github.com/typeorm/typeorm/commit/0d7991a27a13a9af7818505e51dddb52c8299d0a">0d7991a</a>)</li>
<li>virtual property handling in schema builder (<a
href="https://redirect.github.com/typeorm/typeorm/issues/11000">#11000</a>)
(<a
href="https://github.com/typeorm/typeorm/commit/5bd3255dbd992387c5b7940cb95295570ae56c86">5bd3255</a>)</li>
</ul>
<h3>Features</h3>
<ul>
<li>add <code>returning</code> option to update/upsert operations (<a
href="https://redirect.github.com/typeorm/typeorm/issues/11782">#11782</a>)
(<a
href="https://github.com/typeorm/typeorm/commit/11d9767212e95e9e36e09af5e1eac4668c326551">11d9767</a>)</li>
<li><strong>sap:</strong> add pool timeout (<a
href="https://redirect.github.com/typeorm/typeorm/issues/11868">#11868</a>)
(<a
href="https://github.com/typeorm/typeorm/commit/b4e2ad2a6cbd941a8a665b5d7fde6bb28546ffef">b4e2ad2</a>)</li>
<li><strong>sap:</strong> support locking in select (<a
href="https://redirect.github.com/typeorm/typeorm/issues/11996">#11996</a>)
(<a
href="https://github.com/typeorm/typeorm/commit/86a9e3e1d8e019ef036ccd4935bdc6c25898cf75">86a9e3e</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/typeorm/typeorm/commit/0ed009a12867e302ecbc7cedfd442cc60d21c006"><code>0ed009a</code></a>
ci: add npm environment to publish job for trusted publishing</li>
<li><a
href="https://github.com/typeorm/typeorm/commit/6ede38bb0e51939dee50c88ab7bfa88cd407e5e9"><code>6ede38b</code></a>
chore: enable trusted publishing in publish workflow</li>
<li><a
href="https://github.com/typeorm/typeorm/commit/578d9e9636b5bd3beef6e1482f366126caf9d843"><code>578d9e9</code></a>
chore: fix pnpm publish for v0.3</li>
<li><a
href="https://github.com/typeorm/typeorm/commit/253f060b3513f465638a05a27f75244148de8bf8"><code>253f060</code></a>
chore: disable git check on pnpm publish for v0.3</li>
<li><a
href="https://github.com/typeorm/typeorm/commit/1b5476fd2936e925484fe126b8dd621f11d75021"><code>1b5476f</code></a>
chore: set pnpm publish branch for v0.3</li>
<li><a
href="https://github.com/typeorm/typeorm/commit/17c6ec2e83e81312c0f1b2b27fa0a22551acd04f"><code>17c6ec2</code></a>
chore(release): release 0.3.29 (<a
href="https://redirect.github.com/typeorm/typeorm/issues/12442">#12442</a>)</li>
<li><a
href="https://github.com/typeorm/typeorm/commit/0ac80921c249b37886c131546ca01ab851abe0fe"><code>0ac8092</code></a>
chore(deps): update all minor (<a
href="https://redirect.github.com/typeorm/typeorm/issues/12443">#12443</a>)</li>
<li><a
href="https://github.com/typeorm/typeorm/commit/0d7991a27a13a9af7818505e51dddb52c8299d0a"><code>0d7991a</code></a>
fix(security): validate limit() in Update/SoftDelete query builders (<a
href="https://redirect.github.com/typeorm/typeorm/issues/12437">#12437</a>)</li>
<li><a
href="https://github.com/typeorm/typeorm/commit/c38c754a06618a69277cb5069845ae68a0af8ef0"><code>c38c754</code></a>
ci: remove docs indexing (<a
href="https://redirect.github.com/typeorm/typeorm/issues/12435">#12435</a>)</li>
<li><a
href="https://github.com/typeorm/typeorm/commit/1b66c44d0410bdc56a0dcefb46be41867ec0fffc"><code>1b66c44</code></a>
Merge commit from fork</li>
<li>Additional commits viewable in <a
href="https://github.com/typeorm/typeorm/compare/0.3.28...0.3.29">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 typeorm since your current version.</p>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=typeorm&package-manager=npm_and_yarn&previous-version=0.3.28&new-version=0.3.29)](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-22 08:20:36 -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
George Mihailov 3d7fcea7d7 feat(langgraph-checkpoint-mongodb): add TTL support for automatic checkpoint data expiration (#1928)
Add optional TTL parameter to MongoDBSaver that enables automatic
expiration of checkpoints using MongoDB's TTL indexes.

- Add `ttl` option to MongoDBSaverParams (value in seconds)
- Add `setup()` method to create TTL indexes, returns Error[] for caller
to handle failures
- Add `upserted_at` timestamp to documents when TTL is enabled
- Each write refreshes TTL (expires after inactivity, not creation)

```js
  // Create checkpointer with 1-hour TTL (in seconds)                         
  const checkpointer = new MongoDBSaver({                                     
    client,                                                                   
    ttl: 3600,                                                                
  });                                                                         
                                                                              
  // Create TTL indexes (call on startup/deployment)                          
  const errors = await checkpointer.setup();                                  
  if (errors.length) {                                                        
    console.warn("Failed to create TTL indexes:", errors);                    
  } 
```

Fixes # (issue)

Ever growing records in database.

---------

Co-authored-by: Christian Bromann <git@bromann.dev>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-22 07:58:03 -07:00
dependabot[bot] d95ed2095d chore(deps-dev): bump uuid from 14.0.0 to 14.0.1 (#2560)
Bumps [uuid](https://github.com/uuidjs/uuid) from 14.0.0 to 14.0.1.
<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.1</h2>
<h2><a
href="https://github.com/uuidjs/uuid/compare/v14.0.0...v14.0.1">14.0.1</a>
(2026-06-20)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>add types condition to node export for moduleResolution bundler (<a
href="https://redirect.github.com/uuidjs/uuid/issues/961">#961</a>) (<a
href="https://github.com/uuidjs/uuid/commit/27ffae5e867823b8c7db255975d65358fbdb1a7e">27ffae5</a>)</li>
</ul>
</blockquote>
</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/v14.0.0...v14.0.1">14.0.1</a>
(2026-06-20)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>add types condition to node export for moduleResolution bundler (<a
href="https://redirect.github.com/uuidjs/uuid/issues/961">#961</a>) (<a
href="https://github.com/uuidjs/uuid/commit/27ffae5e867823b8c7db255975d65358fbdb1a7e">27ffae5</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/uuidjs/uuid/commit/70177807e9229dfacde2038dc1e722f1828f358a"><code>7017780</code></a>
chore(main): release 14.0.1 (<a
href="https://redirect.github.com/uuidjs/uuid/issues/964">#964</a>)</li>
<li><a
href="https://github.com/uuidjs/uuid/commit/f2c3e4b513e47968f568ad1bf96417c6924e83a7"><code>f2c3e4b</code></a>
chore: fix release-please workflow (<a
href="https://redirect.github.com/uuidjs/uuid/issues/963">#963</a>)</li>
<li><a
href="https://github.com/uuidjs/uuid/commit/27ffae5e867823b8c7db255975d65358fbdb1a7e"><code>27ffae5</code></a>
fix: add types condition to node export for moduleResolution bundler (<a
href="https://redirect.github.com/uuidjs/uuid/issues/961">#961</a>)</li>
<li><a
href="https://github.com/uuidjs/uuid/commit/664cb3163531f49d3a5125f732d38724621bfcaa"><code>664cb31</code></a>
Remove outdated security contact information (<a
href="https://redirect.github.com/uuidjs/uuid/issues/959">#959</a>)</li>
<li><a
href="https://github.com/uuidjs/uuid/commit/d729016037c4e1b09a522f4854a96f4f4add9047"><code>d729016</code></a>
fix(ci): checkout PR head commit in browser workflow (<a
href="https://redirect.github.com/uuidjs/uuid/issues/957">#957</a>)</li>
<li><a
href="https://github.com/uuidjs/uuid/commit/89a5ebcc56999fc25c95350f922693b71fb11d32"><code>89a5ebc</code></a>
Workflows (<a
href="https://redirect.github.com/uuidjs/uuid/issues/948">#948</a>)</li>
<li><a
href="https://github.com/uuidjs/uuid/commit/196e208db33d568d8d43d5b549d5d0eb3d9b0fbf"><code>196e208</code></a>
chore: fix workflow (<a
href="https://redirect.github.com/uuidjs/uuid/issues/947">#947</a>)</li>
<li><a
href="https://github.com/uuidjs/uuid/commit/95af4489be459d6ba14d137b6fcd87ffd0953e91"><code>95af448</code></a>
chore: update workflows (<a
href="https://redirect.github.com/uuidjs/uuid/issues/946">#946</a>)</li>
<li><a
href="https://github.com/uuidjs/uuid/commit/3b57f95555ab1b8432213264b5eaa318958fb8fe"><code>3b57f95</code></a>
chore: add workflow_dispatch (<a
href="https://redirect.github.com/uuidjs/uuid/issues/944">#944</a>)</li>
<li><a
href="https://github.com/uuidjs/uuid/commit/a433096a74e1d1815432fb1bed8115369785a1a9"><code>a433096</code></a>
chore: add 12.x and 13.x maintenance release branches (<a
href="https://redirect.github.com/uuidjs/uuid/issues/941">#941</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/uuidjs/uuid/compare/v14.0.0...v14.0.1">compare
view</a></li>
</ul>
</details>
<details>
<summary>Install script changes</summary>
<p>This version modifies <code>prepare</code> script that runs during
installation. Review the package contents before updating.</p>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=uuid&package-manager=npm_and_yarn&previous-version=14.0.0&new-version=14.0.1)](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-22 07:53:38 -07:00
Mohamed Khaled bee3c91d0a fix(langgraph-checkpoint-mongodb): no-op putWrites on empty writes (#2556)
## Summary

`MongoDBSaver.putWrites` builds a `bulkWrite` operations array from
`writes` and calls `collection.bulkWrite(operations)`. When `writes` is
empty, `operations` is empty and the MongoDB driver throws:

```
MongoServerError: Invalid BulkOperation, Batch cannot be empty
```

This is reached in normal operation by **human-in-the-loop /
`interrupt()`** flows: when a graph interrupts to wait for input, a task
can complete producing **zero channel writes**, so LangGraph calls
`putWrites(config, [], taskId)` and the saver throws.

The other first-party savers don't hit this — `checkpoint-postgres` and
`checkpoint-sqlite` iterate over `writes`, so an empty array is a
natural no-op. The sibling `store.ts` in this same package already
guards its bulk write with `if (bulkOps.length > 0)`. `putWrites` was
simply missing the equivalent guard.

## Fix

Skip the `bulkWrite` call when there are no operations, mirroring the
existing guard in `store.ts`. The guard is at the call site (not an
early return), so the existing `configurable` validation is preserved.
This aligns the MongoDB saver's empty-writes behavior with the postgres
and sqlite savers.

## Tests

- **Unit** (`checkpoints.test.ts`): asserts `putWrites(config, [],
taskId)` resolves and that `bulkWrite` is **not** called. Verified to
fail before the fix (`bulkWrite` was called with `[]`).
- **Integration** (`checkpoints.int.test.ts`): asserts `putWrites` with
empty writes resolves and persists nothing — the truest repro against
the real driver.

`pnpm build`, `pnpm lint`, `pnpm format:check`, and the unit suite all
pass locally. A changeset is included
(`@langchain/langgraph-checkpoint-mongodb` patch).

## Related

Same class of HITL / `interrupt()` + `putWrites` bug previously fixed
for the Redis saver: #1996 / #2026.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 20:25:49 -07:00
github-actions[bot] e6082e0575 chore: version packages (#2554)
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.4.4

### Patch Changes

- [#2552](https://github.com/langchain-ai/langgraphjs/pull/2552)
[`d662cbb`](https://github.com/langchain-ai/langgraphjs/commit/d662cbbc63eebdf1312e57d41908da1b9018e783)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(langgraph): isolate concurrent singleton-agent invocations by thread

`ensureLangGraphConfig` ignores the ambient `AsyncLocalStorage`
`configurable`
on root-level invokes that supply an invoke-time `thread_id` and have no
nesting
keys (ignoring graph-bound `.withConfig()` defaults). On a fresh
top-level run
the ambient `configurable` can belong to another concurrent invocation,
so its
    keys — internal scratchpad/task-input as well as user keys like
`tenant_id`/`user_id` — must not leak in; values the caller wants arrive
through
the explicit (bound + invoke-time) configs. Ambient nesting
(`__pregel_read__`)
and bound child graphs invoked from parent tasks are unaffected. This
prevents
cross-invocation leakage between concurrent `invoke()` calls on a shared
compiled
graph (e.g. BullMQ workers with `concurrency > 1`). Complements the
config-merge
fix that stopped shared graph-bound `metadata`/`configurable` objects
from being
    mutated across invocations
    ([#2040](https://github.com/langchain-ai/langgraphjs/issues/2040)).

- [#2553](https://github.com/langchain-ai/langgraphjs/pull/2553)
[`1c2aa5b`](https://github.com/langchain-ai/langgraphjs/commit/1c2aa5bfeacd8b7463e3d5b6010daee26e9217e0)
Thanks [@christian-bromann](https://github.com/christian-bromann)! -
fix(langgraph): recognize JSON-erased `Overwrite` values across runtimes

`Overwrite` already survives JSON serialization in JS because
`Overwrite.toJSON()`
emits the canonical `{ "__overwrite__": value }` sentinel.
`_getOverwriteValue`
now additionally recognizes the discriminator form `{ "type":
"__overwrite__",
value }` produced when a typed `Overwrite` from another runtime (e.g. a
Python
dataclass routed through the LangGraph API server) is serialized and its
type is
erased. This keeps `Overwrite` (and `DeltaChannel`) semantics intact
across
cross-runtime JSON boundaries. These delta-channel APIs remain Beta.

## @example/ai-elements@0.1.40

### Patch Changes

- Updated dependencies
\[[`d662cbb`](https://github.com/langchain-ai/langgraphjs/commit/d662cbbc63eebdf1312e57d41908da1b9018e783),
[`1c2aa5b`](https://github.com/langchain-ai/langgraphjs/commit/1c2aa5bfeacd8b7463e3d5b6010daee26e9217e0)]:
    -   @langchain/langgraph@1.4.4

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

### Patch Changes

- Updated dependencies
\[[`d662cbb`](https://github.com/langchain-ai/langgraphjs/commit/d662cbbc63eebdf1312e57d41908da1b9018e783),
[`1c2aa5b`](https://github.com/langchain-ai/langgraphjs/commit/1c2aa5bfeacd8b7463e3d5b6010daee26e9217e0)]:
    -   @langchain/langgraph@1.4.4

## @examples/ui-angular@0.0.50

### Patch Changes

- Updated dependencies
\[[`d662cbb`](https://github.com/langchain-ai/langgraphjs/commit/d662cbbc63eebdf1312e57d41908da1b9018e783),
[`1c2aa5b`](https://github.com/langchain-ai/langgraphjs/commit/1c2aa5bfeacd8b7463e3d5b6010daee26e9217e0)]:
    -   @langchain/langgraph@1.4.4

## @examples/ui-multimodal@0.0.26

### Patch Changes

- Updated dependencies
\[[`d662cbb`](https://github.com/langchain-ai/langgraphjs/commit/d662cbbc63eebdf1312e57d41908da1b9018e783),
[`1c2aa5b`](https://github.com/langchain-ai/langgraphjs/commit/1c2aa5bfeacd8b7463e3d5b6010daee26e9217e0)]:
    -   @langchain/langgraph@1.4.4

## @examples/ui-react@0.0.26

### Patch Changes

- Updated dependencies
\[[`d662cbb`](https://github.com/langchain-ai/langgraphjs/commit/d662cbbc63eebdf1312e57d41908da1b9018e783),
[`1c2aa5b`](https://github.com/langchain-ai/langgraphjs/commit/1c2aa5bfeacd8b7463e3d5b6010daee26e9217e0)]:
    -   @langchain/langgraph@1.4.4

## langgraph@1.0.44

### Patch Changes

- Updated dependencies
\[[`d662cbb`](https://github.com/langchain-ai/langgraphjs/commit/d662cbbc63eebdf1312e57d41908da1b9018e783),
[`1c2aa5b`](https://github.com/langchain-ai/langgraphjs/commit/1c2aa5bfeacd8b7463e3d5b6010daee26e9217e0)]:
    -   @langchain/langgraph@1.4.4

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@langchain/angular@1.0.24 @langchain/langgraph-checkpoint-redis@1.0.10 @langchain/langgraph-checkpoint@1.1.2 @langchain/langgraph-sdk@1.9.23 @langchain/langgraph@1.4.4 @langchain/react@1.0.24 @langchain/svelte@1.0.24 @langchain/vue@1.0.24
2026-06-17 16:41:40 -07:00
Christian Bromann d662cbbc63 fix(langgraph): isolate concurrent singleton-agent invocations by thread (#2552)
## Summary
- Hardens `ensureLangGraphConfig` so root-level invokes with an explicit
`thread_id` (and no nesting keys) no longer inherit langgraph-internal
`configurable` entries from `AsyncLocalStorage`, preventing
scratchpad/`currentTaskInput` leakage between concurrent `invoke()`
calls on a singleton agent.
- Adds unit tests for the new ALS-skipping behavior and an end-to-end
regression test that verifies checkpoint and tool state stay isolated
across concurrent invocations on a shared graph with `.withConfig()`.
- Complements #2531 (config merge / shared bound-config mutation fix),
which was the primary cause of cross-thread contamination reported in
#2040.

fixes #2040
2026-06-17 16:35:38 -07:00
Christian Bromann 1c2aa5bfea fix(langgraph): recognize JSON-erased Overwrite values across runtimes (#2553)
## Summary
- JS `Overwrite` already survives JSON serialization because
`Overwrite.toJSON()` emits the canonical `{ "__overwrite__": value }`
sentinel, which `_getOverwriteValue` recognizes.
- This adds recognition of the discriminator form `{ "type":
"__overwrite__", value }` that results when a typed `Overwrite` from
another runtime (notably a Python dataclass, post
langchain-ai/langgraph#8127) is serialized through a JSON boundary and
its type is erased.
- Brings JS to full parity with Python's three-form `_get_overwrite`
(instance, sentinel dict, discriminator dict), so `Overwrite`
round-trips both directions across the JS↔Python API boundary.
Delta-channel APIs remain Beta.
2026-06-17 15:58:20 -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 448721449f fix(langgraph): replay concurrent DeltaChannel writes in live order (#2544)
## Summary
- Fix a non-deterministic divergence where a `DeltaChannel`'s
reconstructed state did not match its live state when concurrent writes
(notably a plain write + an `Overwrite`) were applied in the same
super-step. Live execution applied concurrent writes in task-**path**
order, while every checkpointer replays persisted writes in task-**id**
order, so an `Overwrite` hard reset could land at a different point on
reload.
- `_applyWrites` (`@langchain/langgraph`) now applies concurrent
`DeltaChannel` writes in the canonical `(task_id, idx)` order — the same
order checkpointers replay them in.
- The base `getDeltaChannelHistory` (`@langchain/langgraph-checkpoint`)
now stable-sorts each ancestor checkpoint's writes by `task_id`, making
reconstruction order independent of how a saver returns `pendingWrites`.
This fixes Postgres, SQLite, MongoDB, Redis, and any custom saver in one
place; MemorySaver was already correct via its override.
2026-06-17 15:22:57 -07:00
Christian Bromann bc667a998a fix(langgraph): support DeltaChannel fields in StateSchema (#2549)
## Summary
- Add `DeltaValue<Value, Input>` (`state/values/delta.ts`), a
`StateSchema` field backed by a `DeltaChannel`'s batch reducer +
`snapshotFrequency` — distinct from `ReducedValue`'s single-value
reducer.
- Wire `DeltaValue` into `StateSchema`: `getChannels()` maps it to a
`DeltaChannel` (forwarding `snapshotFrequency` and seeding the initial
value from the value-schema default);
`getJsonSchema()`/`getInputJsonSchema()`/`validateInput()` handle it
(incl. `Overwrite`) like `ReducedValue`; and the type helpers infer
`State`/`Update` correctly.
- Add the `MessagesDeltaValue` prebuilt (a `DeltaChannel`-backed drop-in
for `MessagesValue`); export `DeltaValue` and `MessagesDeltaValue` from
`@langchain/langgraph`.
- Previously `DeltaChannel` was only usable via `Annotation.Root` / raw
channel maps; the `StateSchema` class and Zod paths threw. This closes
the `StateSchema` gap (Zod remains a separate follow-up).
2026-06-17 13:08:12 -07:00