# What changed in @langchain/langgraph

> 118 changes in @langchain/langgraph 1 from its official release notes, upgrade guides and advisories: 14 breaking, 4 security, 40 new APIs and options. Each one cited. Sources checked 2026-10-18. HTML: https://unstale.sh/npm/@langchain/langgraph/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## @langchain/langgraph 1

### Breaking changes

- A branch no longer reads DeltaChannel writes from another branch; new-branch snapshots and checkpoint updates/replays avoid storing writes on an advanced base checkpoint. (1.5.0) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.5.0)
- Forking before a DeltaChannel's first write no longer starts subscribers that never ran on the original path. (1.5.0) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.5.0)
- Task metadata paths change for Send tasks and node error handlers to match Python's task-path shapes. (1.5.0) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.5.0)
- Sav ers must return pendingWrites in writesSortKey order so replay reproduces the run's DeltaChannel value. (1.5.0) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.5.0)
- Run setup once from one process after upgrading and before serving traffic, or reads and writes fail until the task_path migration is applied. (1.5.0) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.5.0)
- Plain objects shaped like Command are treated as ordinary state input; construct commands with new Command(...) to pass them as input. Command instances from another installed copy remain recognized. (1.4.21) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.21)
- Requires @langchain/langgraph-sdk 1.12.3 or later. (1.4.21) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.21)
- Hydrating a written DeltaChannel without a checkpointer or config now throws instead of returning an empty value. (1.4.19) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.19)
- State methods resolve the checkpointer as a run does; a checkpointer: false graph no longer writes state using a checkpointer supplied through config and has no task state in getState. (1.4.19) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.19)
- A checkpointer: true graph used as a root now rejects state methods with the same error as a run. (1.4.19) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.19)
- The vestigial peer dependency was removed, eliminating the last source of install-time peer conflicts with Zod v4. (1.4.7) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.7)
- User-initiated writes from submit, respond, and respondAll now commit synchronously in the triggering tick; high-frequency streaming writes keep macrotask coalescing. (1.4.5) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.5)
- Node return values and Command updates are validated against Zod state schema constraints before being applied to graph state. (1.4.1) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.1)
- Moved from a runtime dependency to a required peer dependency; consumers using streaming or message coercion must install it explicitly or via @langchain/langgraph. (1.3.2) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.3.2)

### Security

- Context values are kept out of tracer-derived metadata. (1.4.10) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.10)
- Root-level invokes with an invoke-time thread_id no longer inherit ambient configurable values, preventing cross-invocation leakage on shared compiled graphs. (1.4.4) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.4)
- Provides a guard for validating subscription requests against recognized channels. (1.3.7) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.3.7)
- LangGraph has NoSQL parameter injection in MongoDBSaver, allowing cross-tenant state access (1.3.1) — [security advisory](https://github.com/advisories/GHSA-98XF-R82G-9MHX)

### New APIs and options

- Adds a helper to distinguish invalid-resume errors from other errors. (1.5.1) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.5.1)
- The method accepts an optional serialized task path; custom savers must persist it and return pending writes in the new sort order. (1.5.0) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.5.0)
- A new checkpoint-package export provides comparison for pending-write sort keys. (1.5.0) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.5.0)
- SQLite and Postgres add a task_path column, migrated automatically by setup(); Redis and MongoDB documents also store the path. (1.5.0) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.5.0)
- A new checkpoint-package export provides the sort key used to order pending writes. (1.5.0) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.5.0)
- Adds typed handleInterrupt and handleResume lifecycle events through normal callback configuration; callbacks are awaited before terminal chain callbacks and work independently of stream mode. (1.4.17) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.17)
- Surfaces the response schema on Interrupt so clients such as Studio can render a typed form instead of a free-form JSON editor. (1.4.16) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.16)
- Adds a schema option that validates the resume value; a Zod schema's parsed result is returned by interrupt(), while a raw JSON Schema object is passed through as-is. (1.4.16) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.16)
- Omitting outputs can suppress messages returned directly by nodes, while omitting inputs can affect message deduplication. (1.4.15) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.15)
- Per-node input/output processors transform payloads recorded on a node’s trace while retaining its span and timing; if a processor throws, the original payload is used. (1.4.15) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.15)
- respond accepts goto alongside an interrupt resume, mapping it to LangGraph's Command so the resume can include a navigation instruction. (1.4.5) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.5)
- ToolNode forwards its input to tools as runtime.state, allowing tools to access current graph state across runtimes without relying on getCurrentTaskInput(). (1.4.1) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.1)
- Adds a control option to invoke, stream, streamEvents, and the functional API for requesting or inspecting cooperative graph draining. (1.4.0) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.0)
- Adds counters_since_delta_snapshot to CheckpointMetadata for tracking delta snapshot cadence. (1.4.0) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.0)
- Adds a reducer channel that stores a sentinel in checkpoint blobs and reconstructs state by replaying ancestor writes, avoiding repeated serialization of accumulated values. (1.4.0) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.0)
- Adds node-level error handlers that run after retryPolicy is exhausted, receive typed node and error context, and can return state updates or route to recovery branches. (1.4.0) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.0)
- Adds a beta checkpoint saver API that walks the parent chain and returns per-channel writes and optional seeds. (1.4.0) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.0)
- When a drain is requested and tasks remain, the graph saves a checkpoint and throws GraphDrained so the run can be resumed later from the same config. (1.4.0) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.0)
- Adds an environment variable for the system bound on supersteps since a delta snapshot; the default bound is 5000. (1.4.0) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.0)
- Adds a batching-invariant messages reducer that coerces raw object and string writes for use with DeltaChannel. (1.4.0) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.0)
- Adds the typed NodeError context passed to node-level error handlers. (1.4.0) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.0)
- Timeouts raise NodeTimeoutError, drop the attempt's buffered writes, and abort the node's AbortSignal; the error is retryable under the default retry policy. (1.4.0) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.0)
- Adds v3 streamEvents support to RemoteGraph by adapting remote SDK thread streams to the local GraphRunStream shape. (1.4.0) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.0)
- Adds cooperative between-superstep draining through requestDrain(reason) and read-only drainRequested and drainReason; control is available to nodes and propagates into subgraphs. (1.4.0) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.0)
- Adds an explicit heartbeat call that refreshes idleTimeout. (1.4.0) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.0)
- Allows a graph-wide default error handler for regular nodes without their own handler; per-node handlers take precedence and defaults are not inherited by subgraphs. (1.4.0) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.0)
- Adds graph-wide retryPolicy and cachePolicy defaults resolved at compile time; per-node addNode values take precedence and defaults are not inherited by subgraphs. (1.4.0) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.0)
- Adds per-node, functional task and entrypoint, and Send timeouts, accepting milliseconds or a TimeoutPolicy with run and idle limits. (1.4.0) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.0)
- Adds a policy type for configuring run and idle timeouts and idle refresh behavior. (1.4.0) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.0)
- Maps an event to its subscription Channel, including named custom channels. (1.3.7) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.3.7)
- Provides namespace prefix matching. (1.3.7) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.3.7)
- Adds a transport-agnostic backend toolkit for building custom servers on top of the v2 streaming protocol. (1.3.7) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.3.7)
- Determines whether a buffered event should be delivered for a SubscribeParams filter, honoring channel, namespace prefix/depth, and an optional since replay cursor. (1.3.7) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.3.7)
- Exposes the recognized channel set for validating subscription requests. (1.3.7) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.3.7)
- The runtime is enhanced with executionInfo, adding runtime information for developers to use. (1.2.8) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.2.8)
- The runtime is enhanced with serverInfo, adding server information for developers to use. (1.2.8) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.2.8)
- The SDK now supports headless tools. (1.2.7) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.2.7)
- Adds an exported class for bypassing channel reducers so nodes can replace accumulated state directly. (1.2.0) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.2.0)
- Adds a type included in Annotation, StateSchema, and zod schema update type mappings for reducer-bypassing updates. (1.2.0) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.2.0)
- Adds a tools stream mode for tool lifecycle events. (1.2.0) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.2.0)

### Performance

- For checkpoints marked with `delta_writes_versioned`, the checkpointer is no longer asked for the history of a DeltaChannel that was never written, avoiding a walk through every ancestor. (1.4.20) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.20)
- Avoids building full-state debug checkpoint payloads on every tick when no consumer subscribes to checkpoints or debug stream modes. (1.4.0) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.0)
- Resolved checkpointer promises are cleaned up to reduce memory retention. (1.2.6) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.2.6)

### Behavior and default changes

- Parallel writes are applied and replayed in (task_path, task_id, idx) order instead of task-id order, keeping live execution and saver replay consistent. (1.5.0) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.5.0)
- respond accepts update alongside an interrupt resume, applying the state update in the same superstep; @langchain/core messages are serialized to dicts before transport. (1.4.5) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.5)
- respondAll applies update optimistically, painting pushed messages immediately with stable ids that reconcile with the resumed run's echo. (1.4.5) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.5)
- Exposes state, input, and context JSON schemas through getJsonSchema() and getInputJsonSchema() for LangGraph Studio introspection. (1.4.0) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.0)
- Public stream chunks remain three-element tuples; checkpoint envelopes are emitted separately before paired values chunks. (1.3.5) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.3.5)
- Runtime serverInfo now reads assistant_id and graph_id from config.configurable first, falling back to config.metadata for compatibility. (1.3.1) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.3.1)
- Tracer metadata defaults are now propagated from configurable. (1.2.9) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.2.9)
- Adds a browser condition to the package root export so browser bundlers resolve to web.js instead of pulling in node:async_hooks; web.ts also exports interrupt, writer, pushMessage, getStore, getWriter, getConfig, getPreviousState, and getCurrentTaskInput. (1.2.6) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.2.6)

### Fixes and other changes

- When a field changes from a DeltaChannel to a plain reducer, reads rebuild its value from stored writes and the next run adds to it rather than replacing it. (1.5.1) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.5.1)
- With exit durability, resuming parallel interrupts no longer applies a finished task's output twice because the save keeps only writes made during that run. (1.5.1) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.5.1)
- Stores message chunks as their non-chunk class so streamed graph runs checkpoint the same AIMessage as invoke, without duplicate tool-call chunks or reverted in-place tool_calls edits after reload. (1.5.1) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.5.1)
- Stores message chunks as their non-chunk class so streamed graph runs checkpoint the same AIMessage as invoke, without duplicate tool-call chunks or reverted in-place tool_calls edits after reload. (1.5.1) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.5.1)
- Resuming after some parallel interrupts are answered no longer reruns already-finished nodes and task() calls, including in subgraphs or when resuming at the latest checkpoint. (1.5.1) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.5.1)
- When one answer in a multi-answer resume fails its interrupt response schema, other tasks in the step finish before the ZodError is thrown, avoiding aborted tasks rerunning after side effects. (1.5.1) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.5.1)
- Channels written in one step share a version again, preventing updateState without asNode from selecting one parallel node instead of reporting an ambiguous update. (1.5.0) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.5.0)
- An exit-durability run addressed to an older checkpoint snapshots the channels it wrote instead of storing DeltaChannel writes on a checkpoint shared with a later branch. (1.5.0) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.5.0)
- updateState saves the snapshot counters on each checkpoint it creates, preserving the schedule for later DeltaChannel snapshots. (1.5.0) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.5.0)
- Checkpoint saves wait for preceding DeltaChannel writes and are skipped if a write fails, preventing state from reading back without that write. (1.5.0) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.5.0)
- A drain requested immediately before an interruptBefore breakpoint now stops at the breakpoint rather than draining past it on resume. (1.5.0) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.5.0)
- Messages written to a DeltaChannel using this reducer now receive ids across updateState, raw inputs, Overwrite, and Command paths, allowing RemoveMessage to target them. (1.5.0) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.5.0)
- A cached node's writes are now saved as if the node ran, so DeltaChannel state remains available after loading state again. (1.5.0) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.5.0)
- Exit-mode DeltaChannel writes are no longer stored under the null task id, so first-checkpoint reads and replays apply updates to plain channels too. (1.5.0) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.5.0)
- An Overwrite through updateState snapshots the reset DeltaChannel on the saved checkpoint, so subsequent reads do not walk back past the reset. (1.5.0) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.5.0)
- Raw Pregel DeltaChannel input is stored on the starting checkpoint or snapshotted on a new thread or addressed checkpoint, preventing input loss or leakage across runs and branches. (1.5.0) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.5.0)
- Checkpointer write failures no longer surface as process-level unhandled rejections before the run boundary reports them. (1.5.0) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.5.0)
- Each update in a multi-update super-step gets its own task id, so a DeltaChannel keeps every update instead of only the first. (1.4.20) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.20)
- No longer saves a checkpoint as its own parent when a run ends without running anything, preventing crashes when reading such a thread with a DeltaChannel. (1.4.20) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.20)
- Versions writes taken from the head, preventing PostgresSaver from dropping them and preserving DeltaChannel writes on a new thread. (1.4.20) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.20)
- Subgraphs now read a DeltaChannel using the checkpointer resolved by the parent, instead of hydrating it empty. (1.4.19) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.19)
- getState, getStateHistory, and updateState use a checkpointer: true subgraph's run-stored namespace, so reads find state and updates are not lost. (1.4.19) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.19)
- Resuming from a subgraph checkpoint returned by getState with subgraphs enabled now applies the resume value instead of re-firing the interrupt. (1.4.19) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.19)
- pushMessage now emits on the streamEvents v3 messages channel. (1.4.14) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.14)
- Deduplicates merged callback handlers by identity, preventing handlers inherited by both ambient and explicit config from being registered repeatedly and delivering streamed tokens twice. (1.4.11) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.11)
- Topic checkpoints are now stored as a flat values list to match Python; legacy [seen, values] checkpoints remain readable for restore compatibility. (1.4.9) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.9)
- Waits for completed-superstep persistence when using sync durability. (1.4.8) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.8)
- Exit-mode DeltaChannel writes now emit valid UUID task IDs accepted by Postgres for checkpoint_writes.task_id. (1.4.6) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.6)
- Overwrite now recognizes the JSON discriminator form emitted when typed values from another runtime are serialized and their type is erased, preserving Overwrite and DeltaChannel semantics across runtimes. (1.4.4) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.4)
- Fixes replay and fork behavior for graphs with interrupts and subgraphs, including stale resume writes and checkpoint loading. (1.4.0) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.4.0)
- Normalizes dynamic namespace suffixes for prefix matching. (1.3.7) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.3.7)
- Remote StreamChannel emissions are forwarded as custom:<name> protocol events and normalized to custom-channel payloads, so matching subscriptions receive extension channel data consistently. (1.3.6) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.3.6)
- Zod schema defaults no longer overwrite checkpoint state in Command.update. (1.3.4) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.3.4)
- Preserves non-plain objects passed through Send and Command during argument deserialization. (1.3.3) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.3.3)
- Checkpoint IDs created within the same millisecond retain stable lexicographic ordering instead of depending on clockseq. (1.3.3) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.3.3)
- Fixes a race condition that could cause ERR_INVALID_STATE when streaming with multiple parallel nodes and aborting the stream. (1.3.3) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.3.3)
- Decouples the ContextType generic from configurable so a custom context type no longer incorrectly narrows the configurable parameter. (1.3.3) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.3.3)
- Stateful remote runs now forward context to the SDK and remove thread_id from config.configurable, allowing checkpointed runs to accept user context without an ambiguous-parameters error. (1.3.3) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.3.3)
- Structured response parse failures are now surfaced by createReactAgent. (1.3.1) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.3.1)
- Tool results are kept out of v3 message streams. (1.3.1) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.3.1)
- Missing types are exported to support TypeScript 6.0 declaration file compatibility. (1.2.9) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.2.9)
- Reverts the abort signal change that was causing problematic errors. (1.2.6) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.2.6)
- Returns `true` instead of `false` when values are received, aligning its behavior with other channel implementations. (1.2.5) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.2.5)
- Prevents an AbortSignal listener leak by using AbortSignal.any() on Node 20+ and disposing manually managed listeners on Node 18 when the stream completes or is cancelled. (1.2.5) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.2.5)
- Prevents an AbortSignal listener leak by using AbortSignal.any() on Node 20+ and disposing manually managed listeners on Node 18 when the stream completes or is cancelled. (1.2.5) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.2.5)
- Fixes fetching subagent history in the SDK. (1.2.4) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.2.4)
- Fixes input JSON schema generation to merge jsonSchemaExtra. (1.2.3) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.2.3)
- Explicit symbol type annotations make declarations compatible when multiple versions of the package are present in a dependency tree, without changing runtime behavior. (1.2.1) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.2.1)
- Channel reads and writes are no longer traced. (1.2.0) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph%401.2.0)
