From 9fb80bbd6a065e35b74390bbdc0d7fa65d3332cf Mon Sep 17 00:00:00 2001 From: bracesproul Date: Thu, 10 Jul 2025 16:51:30 -0700 Subject: [PATCH] fix: Dont fetch entire thread history --- apps/docs/setup/monorepo.mdx | 2 +- apps/open-swe/package.json | 2 +- apps/web/package.json | 2 +- .../src/app/(v2)/chat/[thread_id]/page.tsx | 1 + apps/web/src/app/api/[..._path]/route.ts | 42 ++++++++++++++++++- .../src/components/v2/actions-renderer.tsx | 1 + apps/web/src/components/v2/terminal-input.tsx | 1 + package.json | 2 +- packages/shared/package.json | 2 +- yarn.lock | 17 ++++---- 10 files changed, 58 insertions(+), 14 deletions(-) diff --git a/apps/docs/setup/monorepo.mdx b/apps/docs/setup/monorepo.mdx index 8d3506a5..6933bd35 100644 --- a/apps/docs/setup/monorepo.mdx +++ b/apps/docs/setup/monorepo.mdx @@ -89,7 +89,7 @@ Run these commands from the repository root: ```json { "resolutions": { - "@langchain/langgraph-sdk": "^0.0.85", + "@langchain/langgraph-sdk": "^0.0.92", "@langchain/core": "^0.3.58" } } diff --git a/apps/open-swe/package.json b/apps/open-swe/package.json index dca29869..48965c39 100644 --- a/apps/open-swe/package.json +++ b/apps/open-swe/package.json @@ -28,7 +28,7 @@ "@langchain/core": "^0.3.56", "@langchain/google-genai": "^0.2.9", "@langchain/langgraph": "^0.3.3", - "@langchain/langgraph-sdk": "^0.0.85", + "@langchain/langgraph-sdk": "^0.0.92", "@langchain/mcp-adapters": "^0.5.2", "@langchain/openai": "^0.5.10", "@mendable/firecrawl-js": "^1.29.1", diff --git a/apps/web/package.json b/apps/web/package.json index 9fdff400..263f6916 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -21,7 +21,7 @@ "dependencies": { "@langchain/core": "^0.3.57", "@langchain/langgraph": "^0.3.3", - "@langchain/langgraph-sdk": "^0.0.85", + "@langchain/langgraph-sdk": "^0.0.92", "@octokit/app": "^16.0.1", "@open-swe/shared": "*", "@radix-ui/react-alert-dialog": "^1.1.14", diff --git a/apps/web/src/app/(v2)/chat/[thread_id]/page.tsx b/apps/web/src/app/(v2)/chat/[thread_id]/page.tsx index aea65755..72c60b0d 100644 --- a/apps/web/src/app/(v2)/chat/[thread_id]/page.tsx +++ b/apps/web/src/app/(v2)/chat/[thread_id]/page.tsx @@ -28,6 +28,7 @@ export default function ThreadPage({ assistantId: MANAGER_GRAPH_ID, threadId: thread_id, reconnectOnMount: true, + fetchStateHistory: false, }); const { threads, threadsLoading } = useThreads(MANAGER_GRAPH_ID); diff --git a/apps/web/src/app/api/[..._path]/route.ts b/apps/web/src/app/api/[..._path]/route.ts index cc960052..b54c0782 100644 --- a/apps/web/src/app/api/[..._path]/route.ts +++ b/apps/web/src/app/api/[..._path]/route.ts @@ -94,6 +94,35 @@ const isNewRunRequest = (reqUrlStr: string, reqMethod: string) => { } }; +const isGetStateRequest = (reqUrlStr: string, reqMethod: string) => { + try { + const reqPathnameParts = new URL(reqUrlStr).pathname.split("/"); + const isGetStateReq = + reqPathnameParts?.[1] === "api" && + reqPathnameParts?.[2] === "threads" && + validate(reqPathnameParts?.[3]) && + reqPathnameParts?.[4] === "state"; + reqMethod.toLowerCase() === "get"; + return isGetStateReq; + } catch { + return false; + } +}; + +const isSearchThreadsRequest = (reqUrlStr: string, reqMethod: string) => { + try { + const reqPathnameParts = new URL(reqUrlStr).pathname.split("/"); + const isGetStateReq = + reqPathnameParts?.[1] === "api" && + reqPathnameParts?.[2] === "threads" && + reqPathnameParts?.[3] === "search"; + reqMethod.toLowerCase() === "get"; + return isGetStateReq; + } catch { + return false; + } +}; + async function getInstallationNameFromReq( req: Request, installationId: string, @@ -101,14 +130,23 @@ async function getInstallationNameFromReq( try { const requestJson = await req.json(); const installationName = requestJson?.input?.targetRepository?.owner; - return installationName; + if (installationName) { + return installationName; + } } catch { // no-op } try { - if (isNewRunRequest(req.url, req.method)) { + if ( + isNewRunRequest(req.url, req.method) || + isGetStateRequest(req.url, req.method) || + isSearchThreadsRequest(req.url, req.method) + ) { + console.log("Trying to get installation name from request"); return await getInstallationName(installationId); + } else { + console.log("is not a new run req", req.url); } return ""; } catch { diff --git a/apps/web/src/components/v2/actions-renderer.tsx b/apps/web/src/components/v2/actions-renderer.tsx index 46830181..675ad094 100644 --- a/apps/web/src/components/v2/actions-renderer.tsx +++ b/apps/web/src/components/v2/actions-renderer.tsx @@ -119,6 +119,7 @@ export function ActionsRenderer({ setCustomNodeEvents((prev) => [...prev, event]); } }, + fetchStateHistory: false, }); const { cancelRun } = useCancelStream({ diff --git a/apps/web/src/components/v2/terminal-input.tsx b/apps/web/src/components/v2/terminal-input.tsx index f087c6c2..6f3ba7ca 100644 --- a/apps/web/src/components/v2/terminal-input.tsx +++ b/apps/web/src/components/v2/terminal-input.tsx @@ -57,6 +57,7 @@ export function TerminalInput({ apiUrl, assistantId, reconnectOnMount: true, + fetchStateHistory: false, }); const handleSend = async () => { diff --git a/package.json b/package.json index 7ade16b3..ad58a49c 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "typescript": "^5" }, "resolutions": { - "@langchain/langgraph-sdk": "^0.0.85", + "@langchain/langgraph-sdk": "^0.0.92", "@langchain/core": "^0.3.58" }, "packageManager": "yarn@3.5.1" diff --git a/packages/shared/package.json b/packages/shared/package.json index 7df1e825..855c8879 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -19,7 +19,7 @@ "dependencies": { "@langchain/core": "^0.3.56", "@langchain/langgraph": "^0.3.3", - "@langchain/langgraph-sdk": "^0.0.85", + "@langchain/langgraph-sdk": "^0.0.92", "@octokit/rest": "^22.0.0", "zod": "^3.25.32" }, diff --git a/yarn.lock b/yarn.lock index 6ad4dcf3..c170be6f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2556,9 +2556,9 @@ __metadata: languageName: node linkType: hard -"@langchain/langgraph-sdk@npm:^0.0.85": - version: 0.0.85 - resolution: "@langchain/langgraph-sdk@npm:0.0.85" +"@langchain/langgraph-sdk@npm:^0.0.92": + version: 0.0.92 + resolution: "@langchain/langgraph-sdk@npm:0.0.92" dependencies: "@types/json-schema": ^7.0.15 p-queue: ^6.6.2 @@ -2567,12 +2567,15 @@ __metadata: peerDependencies: "@langchain/core": ">=0.2.31 <0.4.0" react: ^18 || ^19 + react-dom: ^18 || ^19 peerDependenciesMeta: "@langchain/core": optional: true react: optional: true - checksum: f6d206c718cf4cb5d69dd677f2afa38325fdd69b485310a6beb61f06f24b2b4a8c0446eacbe7911c02cedc8bd4b719e22894c6f9b93572e6665c6a609cc9f511 + react-dom: + optional: true + checksum: 905380f0785da27dd5638b37e6215f3f2655cd0cb9111f6178e4b72085e930f1e250dfbfa6bb3b0ce4b7dc7f129f988095fac2240b420c09f63d65c3a8d5b8d6 languageName: node linkType: hard @@ -3457,7 +3460,7 @@ __metadata: "@langchain/google-genai": ^0.2.9 "@langchain/langgraph": ^0.3.3 "@langchain/langgraph-cli": latest - "@langchain/langgraph-sdk": ^0.0.85 + "@langchain/langgraph-sdk": ^0.0.92 "@langchain/mcp-adapters": ^0.5.2 "@langchain/openai": ^0.5.10 "@mendable/firecrawl-js": ^1.29.1 @@ -3506,7 +3509,7 @@ __metadata: "@eslint/js": ^9.19.0 "@langchain/core": ^0.3.56 "@langchain/langgraph": ^0.3.3 - "@langchain/langgraph-sdk": ^0.0.85 + "@langchain/langgraph-sdk": ^0.0.92 "@octokit/rest": ^22.0.0 "@octokit/types": ^12.0.0 "@tsconfig/recommended": ^1.0.8 @@ -3531,7 +3534,7 @@ __metadata: "@eslint/js": ^9.19.0 "@langchain/core": ^0.3.57 "@langchain/langgraph": ^0.3.3 - "@langchain/langgraph-sdk": ^0.0.85 + "@langchain/langgraph-sdk": ^0.0.92 "@octokit/app": ^16.0.1 "@octokit/types": ^14.1.0 "@open-swe/shared": "*"