fix(frontend): replace invalid "context" select field with "metadata" in threads.search (#2053)

* fix(frontend): replace invalid "context" select field with "metadata" in threads.search

The LangGraph API server does not support "context" as a select field for
threads/search, causing a 422 Unprocessable Entity error introduced by
commit 60e0abf (#1771).

- Replace "context" with "metadata" in the default select list
- Persist agent_name into thread metadata on creation so search results
  carry the agent identity
- Update pathOfThread() to fall back to metadata.agent_name when
  context is unavailable from search results
- Add regression tests for metadata-based agent routing

Fixes #2037

Made-with: Cursor

* fix: apply Copilot suggestions

* style: fix the lint error
This commit is contained in:
yangzheli
2026-04-10 08:35:07 +08:00
committed by GitHub
parent 6572fa5b75
commit f88970985a
3 changed files with 42 additions and 6 deletions
+8 -1
View File
@@ -212,6 +212,13 @@ export function useThreadStream({
onCreated(meta) {
handleStreamStart(meta.thread_id);
setOnStreamThreadId(meta.thread_id);
if (context.agent_name && !isMock) {
void getAPIClient()
.threads.update(meta.thread_id, {
metadata: { agent_name: context.agent_name },
})
.catch(() => ({}));
}
},
onLangChainEvent(event) {
if (event.event === "on_tool_end") {
@@ -528,7 +535,7 @@ export function useThreads(
limit: 50,
sortBy: "updated_at",
sortOrder: "desc",
select: ["thread_id", "updated_at", "values", "context"],
select: ["thread_id", "updated_at", "values", "metadata"],
},
) {
const apiClient = getAPIClient();