From a3b09dc6c76502905185de5d30a6aa89cc5af3f5 Mon Sep 17 00:00:00 2001 From: Basit Balogun Date: Mon, 25 May 2026 23:05:02 +0100 Subject: [PATCH 1/2] fix: sticky sidebar top panel with scrollable task section - Top nav icons (new task, search, inbox, skills, etc.) now sit in a shrink-0 flex child so they never scroll away - Task list moved into min-h-0 flex-1 ScrollArea so it fills the remaining height and scrolls independently - Tasks section header (search + filter icons) is sticky top-0 within the scroll area --- .../sidebar/components/SidebarMenu.tsx | 155 +++++++++--------- .../sidebar/components/TaskListView.tsx | 20 ++- 2 files changed, 93 insertions(+), 82 deletions(-) diff --git a/apps/code/src/renderer/features/sidebar/components/SidebarMenu.tsx b/apps/code/src/renderer/features/sidebar/components/SidebarMenu.tsx index 7d9b26d49..d41825d3c 100644 --- a/apps/code/src/renderer/features/sidebar/components/SidebarMenu.tsx +++ b/apps/code/src/renderer/features/sidebar/components/SidebarMenu.tsx @@ -293,79 +293,88 @@ function SidebarMenuComponent() { }, [setEditingTaskId]); return ( - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {sidebarData.isLoading ? ( - } - label="Loading tasks..." - disabled - /> - ) : ( - - )} - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {sidebarData.isLoading ? ( + } + label="Loading tasks..." + disabled + /> + ) : ( + + )} + + + ); } diff --git a/apps/code/src/renderer/features/sidebar/components/TaskListView.tsx b/apps/code/src/renderer/features/sidebar/components/TaskListView.tsx index b8cec1f3e..93bb4cad0 100644 --- a/apps/code/src/renderer/features/sidebar/components/TaskListView.tsx +++ b/apps/code/src/renderer/features/sidebar/components/TaskListView.tsx @@ -336,15 +336,17 @@ export function TaskListView({ )} - - - - - } - /> +
+ + + + + } + /> +
{pinnedTasks.length === 0 && flatTasks.length === 0 && From c6322024bb999f66131cf376578f87c0e68d277f Mon Sep 17 00:00:00 2001 From: Basit Balogun Date: Mon, 25 May 2026 23:33:08 +0100 Subject: [PATCH 2/2] fix: move Tasks header outside scroll area; auto-hide scrollbar when not needed --- .../sidebar/components/SidebarMenu.tsx | 75 +++++++++++-------- .../sidebar/components/TaskListView.tsx | 16 +--- 2 files changed, 45 insertions(+), 46 deletions(-) diff --git a/apps/code/src/renderer/features/sidebar/components/SidebarMenu.tsx b/apps/code/src/renderer/features/sidebar/components/SidebarMenu.tsx index d41825d3c..0958ba63d 100644 --- a/apps/code/src/renderer/features/sidebar/components/SidebarMenu.tsx +++ b/apps/code/src/renderer/features/sidebar/components/SidebarMenu.tsx @@ -14,7 +14,7 @@ import { import { useTasks, useUpdateTask } from "@features/tasks/hooks/useTasks"; import { useWorkspaces } from "@features/workspace/hooks/useWorkspace"; import { useTaskContextMenu } from "@hooks/useTaskContextMenu"; -import { ScrollArea, Separator } from "@posthog/quill"; +import { MenuLabel, Separator } from "@posthog/quill"; import { Box, Flex } from "@radix-ui/themes"; import type { Schemas } from "@renderer/api/generated"; import type { Task } from "@shared/types"; @@ -35,7 +35,7 @@ import { McpServersItem } from "./items/McpServersItem"; import { SearchItem } from "./items/SearchItem"; import { SkillsItem } from "./items/SkillsItem"; import { SidebarItem } from "./SidebarItem"; -import { TaskListView } from "./TaskListView"; +import { TaskFilterMenu, TaskListView, TaskSearchButton } from "./TaskListView"; function SidebarMenuComponent() { const { @@ -345,36 +345,47 @@ function SidebarMenuComponent() { - - - - {sidebarData.isLoading ? ( - } - label="Loading tasks..." - disabled - /> - ) : ( - - )} - - - +
+ + Tasks + + + + + +
+ +
+ + {sidebarData.isLoading ? ( + } + label="Loading tasks..." + disabled + /> + ) : ( + + )} + +
); } diff --git a/apps/code/src/renderer/features/sidebar/components/TaskListView.tsx b/apps/code/src/renderer/features/sidebar/components/TaskListView.tsx index 93bb4cad0..1e4a5a36b 100644 --- a/apps/code/src/renderer/features/sidebar/components/TaskListView.tsx +++ b/apps/code/src/renderer/features/sidebar/components/TaskListView.tsx @@ -134,7 +134,7 @@ function TaskRow({ ); } -function TaskSearchButton() { +export function TaskSearchButton() { const openCommandMenu = useCommandMenuStore((state) => state.open); return (