From 99d5e6ac59698692dca44f640aa201b1021940cc Mon Sep 17 00:00:00 2001 From: cyberprophet Date: Sat, 7 Mar 2026 23:12:06 +0900 Subject: [PATCH] fix(app): guard session-header current() against undefined when options is empty When options() is temporarily empty (during startup or project switching), options()[0] returns undefined, causing current().id to throw a TypeError. Add a fileManager()-based fallback so current() always returns a valid object. Fixes #16459 Fixes #16467 --- packages/app/src/components/session/session-header.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/app/src/components/session/session-header.tsx b/packages/app/src/components/session/session-header.tsx index bb4d9812503..9b4551584c6 100644 --- a/packages/app/src/components/session/session-header.tsx +++ b/packages/app/src/components/session/session-header.tsx @@ -303,7 +303,12 @@ export function SessionHeader() { }) const canOpen = createMemo(() => platform.platform === "desktop" && !!platform.openPath && server.isLocal()) - const current = createMemo(() => options().find((o) => o.id === prefs.app) ?? options()[0]) + const current = createMemo( + () => + options().find((o) => o.id === prefs.app) ?? + options()[0] ?? + ({ id: "finder", label: fileManager().label, icon: fileManager().icon } as const), + ) const opening = createMemo(() => openRequest.app !== undefined) const selectApp = (app: OpenApp) => {