From 2a29f87b36a69ba4e1c5508408b3a872db3fa32e Mon Sep 17 00:00:00 2001 From: Lakshmi Tanmay Date: Wed, 16 Sep 2026 23:02:56 +0530 Subject: [PATCH 1/2] fix(web): clarify sidebar project filter --- apps/web/src/components/Sidebar.tsx | 3 ++- .../sidebar/SidebarThreadHeader.tsx | 22 +++++++++---------- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/apps/web/src/components/Sidebar.tsx b/apps/web/src/components/Sidebar.tsx index e5a86ff98a3c..4b8e1c149108 100644 --- a/apps/web/src/components/Sidebar.tsx +++ b/apps/web/src/components/Sidebar.tsx @@ -49,6 +49,7 @@ import { EyeIcon, FolderIcon, GitBranchIcon, + ListFilterIcon, MessageCircleQuestionIcon, PinIcon, PinOffIcon, @@ -4419,7 +4420,7 @@ export default function Sidebar() { ) : ( - + )} ; /** Without projects there is nothing to scope, so those controls stay out. */ hasProjects: boolean; - /** The project scope combobox, rendered as the first icon of the group. */ + /** The project scope combobox, rendered inside the search surface. */ projectScope: ReactNode; onNewProject: () => void; /** Receives the click so Shift+click can skip the project picker. */ @@ -82,7 +83,7 @@ export function SidebarThreadHeader({
) : null} + {hasProjects ? projectScope : null}
- {/* Unfilled like the search field beside it: the buttons carry their own - hover states, and a background well reads far louder on themed - palettes than on the base light and dark ones. */} + {/* These actions stay outside the search surface and carry their own + hover states. */}
{hasProjects ? ( - <> - {projectScope} - - - - + + + ) : null} Date: Thu, 17 Sep 2026 09:55:07 +0530 Subject: [PATCH 2/2] fix(web): keep project filter separate from search --- .../sidebar/SidebarThreadHeader.tsx | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/apps/web/src/components/sidebar/SidebarThreadHeader.tsx b/apps/web/src/components/sidebar/SidebarThreadHeader.tsx index a6a68d262111..6f9a686e5219 100644 --- a/apps/web/src/components/sidebar/SidebarThreadHeader.tsx +++ b/apps/web/src/components/sidebar/SidebarThreadHeader.tsx @@ -2,8 +2,7 @@ * The sidebar header: one row holding search, project scope and new thread. * * Search owns the row's text and spans it. Project scope collapses to an icon - * at the trailing edge of the search surface, ahead of new-project and - * new-thread. + * that sits with new-project and new-thread as a segmented group at the end. * The scope icon swaps to the project favicon while a project is selected, * so the header still names the scope after the row that showed it is gone. * @@ -31,7 +30,7 @@ export interface SidebarThreadHeaderProps { searchFieldRef?: RefObject; /** Without projects there is nothing to scope, so those controls stay out. */ hasProjects: boolean; - /** The project scope combobox, rendered inside the search surface. */ + /** The project scope combobox, rendered as the first icon of the group. */ projectScope: ReactNode; onNewProject: () => void; /** Receives the click so Shift+click can skip the project picker. */ @@ -83,7 +82,7 @@ export function SidebarThreadHeader({
) : null} - {hasProjects ? projectScope : null}
- {/* These actions stay outside the search surface and carry their own - hover states. */} + {/* Unfilled like the search field beside it: the buttons carry their own + hover states, and a background well reads far louder on themed + palettes than on the base light and dark ones. */}
{hasProjects ? ( - - - + <> + {projectScope} + + + + ) : null}