History

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

Julius Marminge committed 8 months ago

Commit 9e8363c1 parent 080752a1 file · +5 −30Browse files

Unified · Split

apps/web/src/routes/__root.tsx+5−30
@@ -198,52 +198,27 @@ function EventRouter() { · 197 unmodified lines
198198 return;
199199 }
200200
201− const fallbackSnapshot =
202− payload.bootstrapProjectId && payload.bootstrapThreadId
203− ? null
204− : await api.orchestration.getSnapshot().catch(() => null);
205− if (disposed) {
206− return;
207− }
208−
209− const bootstrapProjectId =
210− payload.bootstrapProjectId ??
211− fallbackSnapshot?.projects.find(
212− (project) => project.workspaceRoot === payload.cwd && project.deletedAt === null,
213− )?.id;
214− if (!bootstrapProjectId) {
201+ if (!payload.bootstrapProjectId || !payload.bootstrapThreadId) {
215202 return;
216203 }
217204 dispatch({
218205 type: "SET_PROJECT_EXPANDED",
219− projectId: bootstrapProjectId,
206+ projectId: payload.bootstrapProjectId,
220207 expanded: true,
221208 });
222209
223− const bootstrapThreadId =
224− payload.bootstrapThreadId ??
225− fallbackSnapshot?.threads
226− .filter((thread) => thread.projectId === bootstrapProjectId && thread.deletedAt === null)
227− .toSorted((a, b) => {
228− const byDate = new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime();
229− if (byDate !== 0) return byDate;
230− return b.id.localeCompare(a.id);
231− })[0]?.id;
232− if (!bootstrapThreadId) {
233− return;
234− }
235210 if (pathnameRef.current !== "/") {
236211 return;
237212 }
238− if (handledBootstrapThreadIdRef.current === bootstrapThreadId) {
213+ if (handledBootstrapThreadIdRef.current === payload.bootstrapThreadId) {
239214 return;
240215 }
241216 await navigate({
242217 to: "/$threadId",
243− params: { threadId: bootstrapThreadId },
218+ params: { threadId: payload.bootstrapThreadId },
244219 replace: true,
245220 });
246− handledBootstrapThreadIdRef.current = bootstrapThreadId;
221+ handledBootstrapThreadIdRef.current = payload.bootstrapThreadId;
247222 })().catch(() => undefined);
248223 });
249224 const unsubServerConfigUpdated = onServerConfigUpdated((payload) => {