Repository navigation
fix: preserve non-plain Send args - #2409
Merged
Christian Bromann (christian-bromann) merged 6 commits intoJun 1, 2026
Merged
Christian Bromann (christian-bromann) merged 6 commits into
Christian Bromann (christian-bromann) merged 6 commits into
Conversation
🦋 Changeset detectedLatest commit: d406518 The changes in this PR will be included in the next version bump. This PR includes changesets to release 7 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
@langchain/langgraph-checkpoint
@langchain/langgraph-checkpoint-mongodb
@langchain/langgraph-checkpoint-postgres
@langchain/langgraph-checkpoint-redis
@langchain/langgraph-checkpoint-sqlite
@langchain/langgraph-checkpoint-validation
create-langgraph
@langchain/langgraph-api
@langchain/langgraph-cli
@langchain/langgraph
@langchain/langgraph-cua
@langchain/langgraph-supervisor
@langchain/langgraph-swarm
@langchain/langgraph-ui
@langchain/langgraph-sdk
@langchain/angular
@langchain/react
@langchain/svelte
@langchain/vue
commit: |
Christian Bromann (christian-bromann)
approved these changes
Jun 1, 2026
Christian Bromann (christian-bromann)
left a comment
Member
There was a problem hiding this comment.
LGTM 👍
Christian Bromann (christian-bromann)
merged commit Jun 1, 2026
101b70a
into
langchain-ai:main
24 checks passed
This was referenced Jun 1, 2026
Christian Bromann (christian-bromann)
pushed a commit
that referenced
this pull request
Jun 1, 2026
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/[email protected] ### Patch Changes - [#2344](#2344) [`0125920`](0125920) Thanks [@dependabot](https://github.com/apps/dependabot)! - chore(deps): bump uuid to 14.0.0 and keep checkpoint ID ordering stable Bump `uuid` from 10.x/13.x to 14.0.0 across packages. Starting with uuid 11, `v6({ clockseq })` no longer advances the sub-millisecond time counter when an explicit `clockseq` is passed, so checkpoint IDs created within the same millisecond were ordered only by `clockseq`. Since checkpoint IDs are sorted lexicographically, this broke ordering — most visibly for the negative `clockseq` used by the first ("input") checkpoint, which sorted as the newest. `uuid6()` now maintains its own monotonic `(msecs, nsecs)` clock (mirroring uuid 10's internal v1 behavior) so the time component is always strictly increasing and checkpoint ordering no longer depends on the `clockseq` value. `emptyCheckpoint()` also uses a non-negative `clockseq`. ## @langchain/[email protected] ### Patch Changes - [#2186](#2186) [`26c2e32`](26c2e32) Thanks [@jackjin1997](https://github.com/jackjin1997)! - fix: metadata filter in list() now works by querying a plain JSON shadow copy instead of the serialized binary blob ## @langchain/[email protected] ### Patch Changes - [#2255](#2255) [`e82a50b`](e82a50b) Thanks [@leesta24](https://github.com/leesta24)! - fix(checkpoint-postgres): move serialization outside transaction in put() ## @langchain/[email protected] ### Patch Changes - [#2344](#2344) [`0125920`](0125920) Thanks [@dependabot](https://github.com/apps/dependabot)! - chore(deps): bump uuid to 14.0.0 and keep checkpoint ID ordering stable Bump `uuid` from 10.x/13.x to 14.0.0 across packages. Starting with uuid 11, `v6({ clockseq })` no longer advances the sub-millisecond time counter when an explicit `clockseq` is passed, so checkpoint IDs created within the same millisecond were ordered only by `clockseq`. Since checkpoint IDs are sorted lexicographically, this broke ordering — most visibly for the negative `clockseq` used by the first ("input") checkpoint, which sorted as the newest. `uuid6()` now maintains its own monotonic `(msecs, nsecs)` clock (mirroring uuid 10's internal v1 behavior) so the time component is always strictly increasing and checkpoint ordering no longer depends on the `clockseq` value. `emptyCheckpoint()` also uses a non-negative `clockseq`. ## @langchain/[email protected] ### Patch Changes - [#2344](#2344) [`0125920`](0125920) Thanks [@dependabot](https://github.com/apps/dependabot)! - chore(deps): bump uuid to 14.0.0 and keep checkpoint ID ordering stable Bump `uuid` from 10.x/13.x to 14.0.0 across packages. Starting with uuid 11, `v6({ clockseq })` no longer advances the sub-millisecond time counter when an explicit `clockseq` is passed, so checkpoint IDs created within the same millisecond were ordered only by `clockseq`. Since checkpoint IDs are sorted lexicographically, this broke ordering — most visibly for the negative `clockseq` used by the first ("input") checkpoint, which sorted as the newest. `uuid6()` now maintains its own monotonic `(msecs, nsecs)` clock (mirroring uuid 10's internal v1 behavior) so the time component is always strictly increasing and checkpoint ordering no longer depends on the `clockseq` value. `emptyCheckpoint()` also uses a non-negative `clockseq`. - Updated dependencies \[]: - @langchain/[email protected] ## @langchain/[email protected] ### Patch Changes - [#1925](#1925) [`6503319`](6503319) Thanks [@jbrody-nexxa](https://github.com/jbrody-nexxa)! - fix(cli): add --no-reload flag to dev command - Updated dependencies \[[`0125920`](0125920)]: - @langchain/[email protected] ## @langchain/[email protected] ### Patch Changes - [#2037](#2037) [`9eb478f`](9eb478f) Thanks [@pawel-twardziak](https://github.com/pawel-twardziak)! - Decouple `ContextType` generic from `configurable` in `PregelOptions` so that providing a custom context type no longer incorrectly narrows the configurable parameter. - [#2457](#2457) [`91a5494`](91a5494) Thanks [@christian-bromann](https://github.com/christian-bromann)! - fix(langgraph): pass context with stateful RemoteGraph runs Pop `thread_id` from run `config.configurable` and forward `context` to the SDK so checkpointed remote runs accept user context without a 400 from ambiguous parameters. Closes [#1922](#1922). - [#1988](#1988) [`6d4bf92`](6d4bf92) Thanks [@Axadali](https://github.com/Axadali)! - Fix race condition in IterableReadableWritableStream.push() that caused ERR_INVALID_STATE errors when streaming with multiple parallel nodes and aborting the stream. - [#2409](#2409) [`101b70a`](101b70a) Thanks [@pragnyanramtha](https://github.com/pragnyanramtha)! - Preserve non-plain objects passed through `Send` and `Command` argument deserialization. - [#2344](#2344) [`0125920`](0125920) Thanks [@dependabot](https://github.com/apps/dependabot)! - chore(deps): bump uuid to 14.0.0 and keep checkpoint ID ordering stable Bump `uuid` from 10.x/13.x to 14.0.0 across packages. Starting with uuid 11, `v6({ clockseq })` no longer advances the sub-millisecond time counter when an explicit `clockseq` is passed, so checkpoint IDs created within the same millisecond were ordered only by `clockseq`. Since checkpoint IDs are sorted lexicographically, this broke ordering — most visibly for the negative `clockseq` used by the first ("input") checkpoint, which sorted as the newest. `uuid6()` now maintains its own monotonic `(msecs, nsecs)` clock (mirroring uuid 10's internal v1 behavior) so the time component is always strictly increasing and checkpoint ordering no longer depends on the `clockseq` value. `emptyCheckpoint()` also uses a non-negative `clockseq`. - Updated dependencies \[[`863b555`](863b555), [`0125920`](0125920)]: - @langchain/[email protected] - @langchain/[email protected] ## @langchain/[email protected] ### Patch Changes - [#2344](#2344) [`0125920`](0125920) Thanks [@dependabot](https://github.com/apps/dependabot)! - chore(deps): bump uuid to 14.0.0 and keep checkpoint ID ordering stable Bump `uuid` from 10.x/13.x to 14.0.0 across packages. Starting with uuid 11, `v6({ clockseq })` no longer advances the sub-millisecond time counter when an explicit `clockseq` is passed, so checkpoint IDs created within the same millisecond were ordered only by `clockseq`. Since checkpoint IDs are sorted lexicographically, this broke ordering — most visibly for the negative `clockseq` used by the first ("input") checkpoint, which sorted as the newest. `uuid6()` now maintains its own monotonic `(msecs, nsecs)` clock (mirroring uuid 10's internal v1 behavior) so the time component is always strictly increasing and checkpoint ordering no longer depends on the `clockseq` value. `emptyCheckpoint()` also uses a non-negative `clockseq`. ## @langchain/[email protected] ### Patch Changes - [#2455](#2455) [`863b555`](863b555) Thanks [@JHSeo-git](https://github.com/JHSeo-git)! - fix(sdk): prefer completed task's direct mapping over pending checkpoint's positional guess in fetchSubagentHistory - [#2344](#2344) [`0125920`](0125920) Thanks [@dependabot](https://github.com/apps/dependabot)! - chore(deps): bump uuid to 14.0.0 and keep checkpoint ID ordering stable Bump `uuid` from 10.x/13.x to 14.0.0 across packages. Starting with uuid 11, `v6({ clockseq })` no longer advances the sub-millisecond time counter when an explicit `clockseq` is passed, so checkpoint IDs created within the same millisecond were ordered only by `clockseq`. Since checkpoint IDs are sorted lexicographically, this broke ordering — most visibly for the negative `clockseq` used by the first ("input") checkpoint, which sorted as the newest. `uuid6()` now maintains its own monotonic `(msecs, nsecs)` clock (mirroring uuid 10's internal v1 behavior) so the time component is always strictly increasing and checkpoint ordering no longer depends on the `clockseq` value. `emptyCheckpoint()` also uses a non-negative `clockseq`. ## @langchain/[email protected] ### Patch Changes - Updated dependencies \[[`863b555`](863b555), [`0125920`](0125920)]: - @langchain/[email protected] ## @langchain/[email protected] ### Patch Changes - Updated dependencies \[[`863b555`](863b555), [`0125920`](0125920)]: - @langchain/[email protected] ## @langchain/[email protected] ### Patch Changes - Updated dependencies \[[`863b555`](863b555), [`0125920`](0125920)]: - @langchain/[email protected] ## @langchain/[email protected] ### Patch Changes - Updated dependencies \[[`863b555`](863b555), [`0125920`](0125920)]: - @langchain/[email protected] ## @langchain/[email protected] ## @example/[email protected] ### Patch Changes - Updated dependencies \[[`9eb478f`](9eb478f), [`91a5494`](91a5494), [`6d4bf92`](6d4bf92), [`101b70a`](101b70a), [`0125920`](0125920)]: - @langchain/[email protected] - @langchain/[email protected] ## @examples/[email protected] ### Patch Changes - Updated dependencies \[[`9eb478f`](9eb478f), [`91a5494`](91a5494), [`6d4bf92`](6d4bf92), [`101b70a`](101b70a), [`0125920`](0125920)]: - @langchain/[email protected] - @langchain/[email protected] ## @examples/[email protected] ### Patch Changes - Updated dependencies \[[`863b555`](863b555), [`9eb478f`](9eb478f), [`91a5494`](91a5494), [`6d4bf92`](6d4bf92), [`101b70a`](101b70a), [`0125920`](0125920)]: - @langchain/[email protected] - @langchain/[email protected] - @langchain/[email protected] ## @examples/[email protected] ### Patch Changes - Updated dependencies \[[`9eb478f`](9eb478f), [`91a5494`](91a5494), [`6d4bf92`](6d4bf92), [`101b70a`](101b70a), [`0125920`](0125920)]: - @langchain/[email protected] - @langchain/[email protected] ## @examples/[email protected] ### Patch Changes - Updated dependencies \[[`863b555`](863b555), [`9eb478f`](9eb478f), [`91a5494`](91a5494), [`6d4bf92`](6d4bf92), [`101b70a`](101b70a), [`0125920`](0125920)]: - @langchain/[email protected] - @langchain/[email protected] - @langchain/[email protected] ## [email protected] ### Patch Changes - Updated dependencies \[[`9eb478f`](9eb478f), [`91a5494`](91a5494), [`6d4bf92`](6d4bf92), [`101b70a`](101b70a), [`0125920`](0125920)]: - @langchain/[email protected] Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Send/Commandargument treesCommand, and serializedSendpayloadsSet,Map,Date, and a custom class instance passed throughSendFixes part of #1142.
Test plan
pnpm install --frozen-lockfilepnpm --filter @langchain/langgraph exec vitest run src/tests/constants.test.ts --testNamePattern "preserves non-plain objects"pnpm --filter @langchain/langgraph exec vitest run src/tests/constants.test.tspnpm exec oxfmt --check libs/langgraph-core/src/constants.ts libs/langgraph-core/src/tests/constants.test.tspnpm exec oxlint libs/langgraph-core/src/constants.ts libs/langgraph-core/src/tests/constants.test.tsgit diff --checkpnpm --filter @langchain/langgraph build