From d460614cd7ad9e047a2792139ea67e16caa82ea7 Mon Sep 17 00:00:00 2001 From: Luke Parker <10430890+Hona@users.noreply.github.com> Date: Fri, 20 Mar 2026 14:12:06 +1000 Subject: fix: lots of desktop stability, better e2e error logging (#18300) --- packages/app/src/pages/layout/helpers.ts | 4 ++-- packages/app/src/pages/layout/sidebar-project.tsx | 7 ++----- packages/app/src/pages/layout/sidebar-workspace.tsx | 4 ++-- 3 files changed, 6 insertions(+), 9 deletions(-) (limited to 'packages/app/src/pages/layout') diff --git a/packages/app/src/pages/layout/helpers.ts b/packages/app/src/pages/layout/helpers.ts index 209cff8a7..226098c1c 100644 --- a/packages/app/src/pages/layout/helpers.ts +++ b/packages/app/src/pages/layout/helpers.ts @@ -40,10 +40,10 @@ export const latestRootSession = (stores: SessionStore[], now: number) => stores.flatMap(roots).sort(sortSessions(now))[0] export function hasProjectPermissions( - request: Record, + request: Record | undefined, include: (item: T) => boolean = () => true, ) { - return Object.values(request).some((list) => list?.some(include)) + return Object.values(request ?? {}).some((list) => list?.some(include)) } export const childMapByParent = (sessions: Session[] | undefined) => { diff --git a/packages/app/src/pages/layout/sidebar-project.tsx b/packages/app/src/pages/layout/sidebar-project.tsx index a26bc1831..252826456 100644 --- a/packages/app/src/pages/layout/sidebar-project.tsx +++ b/packages/app/src/pages/layout/sidebar-project.tsx @@ -15,6 +15,7 @@ import { childMapByParent, displayName, sortedRootSessions } from "./helpers" export type ProjectSidebarContext = { currentDir: Accessor + currentProject: Accessor sidebarOpened: Accessor sidebarHovering: Accessor hoverProject: Accessor @@ -278,11 +279,7 @@ export const SortableProject = (props: { const globalSync = useGlobalSync() const language = useLanguage() const sortable = createSortable(props.project.worktree) - const selected = createMemo( - () => - props.project.worktree === props.ctx.currentDir() || - props.project.sandboxes?.includes(props.ctx.currentDir()) === true, - ) + const selected = createMemo(() => props.ctx.currentProject()?.worktree === props.project.worktree) const workspaces = createMemo(() => props.ctx.workspaceIds(props.project).slice(0, 2)) const workspaceEnabled = createMemo(() => props.ctx.workspacesEnabled(props.project)) const dirs = createMemo(() => props.ctx.workspaceIds(props.project)) diff --git a/packages/app/src/pages/layout/sidebar-workspace.tsx b/packages/app/src/pages/layout/sidebar-workspace.tsx index 127626feb..3bf00ea42 100644 --- a/packages/app/src/pages/layout/sidebar-workspace.tsx +++ b/packages/app/src/pages/layout/sidebar-workspace.tsx @@ -17,7 +17,7 @@ import { type LocalProject } from "@/context/layout" import { useGlobalSync } from "@/context/global-sync" import { useLanguage } from "@/context/language" import { NewSessionItem, SessionItem, SessionSkeleton } from "./sidebar-items" -import { childMapByParent, sortedRootSessions } from "./helpers" +import { childMapByParent, sortedRootSessions, workspaceKey } from "./helpers" type InlineEditorComponent = (props: { id: string @@ -323,7 +323,7 @@ export const SortableWorkspace = (props: { const sessions = createMemo(() => sortedRootSessions(workspaceStore, props.sortNow())) const children = createMemo(() => childMapByParent(workspaceStore.session)) const local = createMemo(() => props.directory === props.project.worktree) - const active = createMemo(() => props.ctx.currentDir() === props.directory) + const active = createMemo(() => workspaceKey(props.ctx.currentDir()) === workspaceKey(props.directory)) const workspaceValue = createMemo(() => { const branch = workspaceStore.vcs?.branch const name = branch ?? getFilename(props.directory) -- cgit v1.2.3