Files
langgraphjs/examples/assistant-ui-claude
github-actions[bot] c418781870 chore: version packages (#2495)
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


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

### Patch Changes

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

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

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

## @langchain/langgraph-cli@1.2.5

### Patch Changes

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

## @langchain/langgraph@1.3.6

### Patch Changes

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

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

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

## @langchain/langgraph-sdk@1.9.17

### Patch Changes

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

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

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

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

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

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

## @langchain/angular@1.0.17

### Patch Changes

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

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

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

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

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

## @langchain/react@1.0.17

### Patch Changes

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

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

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

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

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

## @langchain/svelte@1.0.17

### Patch Changes

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

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

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

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

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

## @langchain/vue@1.0.17

### Patch Changes

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

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

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

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

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

## @langchain/langgraph-ui@1.2.5



## @example/ai-elements@0.1.32

### Patch Changes

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

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

### Patch Changes

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

## @examples/ui-angular@0.0.42

### Patch Changes

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

## @examples/ui-multimodal@0.0.18

### Patch Changes

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

## @examples/ui-react@0.0.18

### Patch Changes

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

## langgraph@1.0.38

### Patch Changes

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

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-06-05 15:52:16 -07:00
..
2026-06-05 15:52:16 -07:00
2026-06-05 15:52:16 -07:00

Assistant-UI Claude Example

This example combines:

  • @assistant-ui/react for the Claude-style chat surface
  • @langchain/react for streaming LangGraph state on the frontend
  • a basic langchain agent on the backend

What it shows

  • A Claude-inspired assistant-ui thread and composer
  • A local single-agent graph powered by langchain
  • How to bridge @langchain/react state into assistant-ui with useExternalStoreRuntime

Setup

Create a local .env file in this folder with:

OPENAI_API_KEY=your_openai_api_key
OPENAI_MODEL=gpt-4.1-mini

Optional overrides:

LANGGRAPH_API_URL=http://localhost:2024
VITE_LANGGRAPH_API_URL=http://localhost:2024
VITE_LANGGRAPH_ASSISTANT_ID=assistant-ui-claude

Run

pnpm --filter @examples/assistant-ui-claude dev

Then open the Vite URL shown in the terminal, usually http://localhost:5173.

The frontend talks directly to the LangGraph dev server at http://localhost:2024, which serves the local assistant-ui-claude graph from langgraph.json.