From 581aa7279f41c02b38f28a4cb05b184f0637e592 Mon Sep 17 00:00:00 2001 From: Julius Marminge Date: Thu, 26 Feb 2026 20:48:32 -0800 Subject: [PATCH] Require bootstrap IDs for root thread auto-navigation - Remove snapshot fallback lookup for missing bootstrap project/thread IDs - Only expand project and navigate when server payload includes both IDs --- apps/web/src/routes/__root.tsx | 35 +++++----------------------------- 1 file changed, 5 insertions(+), 30 deletions(-) diff --git a/apps/web/src/routes/__root.tsx b/apps/web/src/routes/__root.tsx index 80bf213b40a88065df45b7ceddb34d4ab7ed7a34..51e4e9b01393d18a21497a9f91377025b74bc39b 100644 --- a/apps/web/src/routes/__root.tsx +++ b/apps/web/src/routes/__root.tsx @@ -198,52 +198,27 @@ function EventRouter() { return; } - const fallbackSnapshot = - payload.bootstrapProjectId && payload.bootstrapThreadId - ? null - : await api.orchestration.getSnapshot().catch(() => null); - if (disposed) { - return; - } - - const bootstrapProjectId = - payload.bootstrapProjectId ?? - fallbackSnapshot?.projects.find( - (project) => project.workspaceRoot === payload.cwd && project.deletedAt === null, - )?.id; - if (!bootstrapProjectId) { + if (!payload.bootstrapProjectId || !payload.bootstrapThreadId) { return; } dispatch({ type: "SET_PROJECT_EXPANDED", - projectId: bootstrapProjectId, + projectId: payload.bootstrapProjectId, expanded: true, }); - const bootstrapThreadId = - payload.bootstrapThreadId ?? - fallbackSnapshot?.threads - .filter((thread) => thread.projectId === bootstrapProjectId && thread.deletedAt === null) - .toSorted((a, b) => { - const byDate = new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime(); - if (byDate !== 0) return byDate; - return b.id.localeCompare(a.id); - })[0]?.id; - if (!bootstrapThreadId) { - return; - } if (pathnameRef.current !== "/") { return; } - if (handledBootstrapThreadIdRef.current === bootstrapThreadId) { + if (handledBootstrapThreadIdRef.current === payload.bootstrapThreadId) { return; } await navigate({ to: "/$threadId", - params: { threadId: bootstrapThreadId }, + params: { threadId: payload.bootstrapThreadId }, replace: true, }); - handledBootstrapThreadIdRef.current = bootstrapThreadId; + handledBootstrapThreadIdRef.current = payload.bootstrapThreadId; })().catch(() => undefined); }); const unsubServerConfigUpdated = onServerConfigUpdated((payload) => { -- 2.54.0