diff --git a/libs/langgraph/langgraph/graph/ui.py b/libs/langgraph/langgraph/graph/ui.py index 70ebf95b1..aac9d2044 100644 --- a/libs/langgraph/langgraph/graph/ui.py +++ b/libs/langgraph/langgraph/graph/ui.py @@ -100,10 +100,9 @@ def push_ui_message( "name": name, "props": props, "metadata": { - **(config.get("metadata") or {}), + "run_id": config.get("run_id", None), "tags": config.get("tags", None), "name": config.get("run_name", None), - "run_id": config.get("run_id", None), **(metadata or {}), **({"message_id": message_id} if message_id else {}), }, diff --git a/libs/sdk-js/src/react-ui/server/server.ts b/libs/sdk-js/src/react-ui/server/server.ts index 7bc7bab5d..708385694 100644 --- a/libs/sdk-js/src/react-ui/server/server.ts +++ b/libs/sdk-js/src/react-ui/server/server.ts @@ -38,13 +38,6 @@ export const typedUi = >( const runId = (config.metadata?.run_id as string | undefined) ?? config.runId; if (!runId) throw new Error("run_id is required"); - const metadata = { - ...config.metadata, - tags: config.tags, - name: config.runName, - run_id: runId, - }; - const handlePush = ( message: { id?: string; @@ -60,7 +53,9 @@ export const typedUi = >( name: message?.name, props: message?.props, metadata: { - ...metadata, + run_id: runId, + tags: config.tags, + name: config.runName, ...message?.metadata, ...(options?.message ? { message_id: options.message.id } : null), }, diff --git a/libs/sdk-js/src/react-ui/types.ts b/libs/sdk-js/src/react-ui/types.ts index c3f52b5b8..d60d81728 100644 --- a/libs/sdk-js/src/react-ui/types.ts +++ b/libs/sdk-js/src/react-ui/types.ts @@ -5,7 +5,9 @@ export interface UIMessage { name: string; props: Record; metadata: { - run_id: string; + run_id?: string; + name?: string; + tags?: string[]; message_id?: string; [key: string]: unknown; };