From bb0fe0defc8aea4566b63dcf93d600d5d3745caa Mon Sep 17 00:00:00 2001
From: Shivam Sharma <91240327+shivamhwp@users.noreply.github.com>
Date: Tue, 24 Mar 2026 07:37:48 +0530
Subject: [PATCH 1/2] Add resizable chat sidebar
---
apps/web/src/routes/_chat.tsx | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/apps/web/src/routes/_chat.tsx b/apps/web/src/routes/_chat.tsx
index 193cb0e7a9..d2279d0d97 100644
--- a/apps/web/src/routes/_chat.tsx
+++ b/apps/web/src/routes/_chat.tsx
@@ -10,11 +10,14 @@ import { serverConfigQueryOptions } from "../lib/serverReactQuery";
import { resolveShortcutCommand } from "../keybindings";
import { selectThreadTerminalState, useTerminalStateStore } from "../terminalStateStore";
import { useThreadSelectionStore } from "../threadSelectionStore";
-import { Sidebar, SidebarProvider } from "~/components/ui/sidebar";
import { resolveSidebarNewThreadEnvMode } from "~/components/Sidebar.logic";
import { useAppSettings } from "~/appSettings";
+import { Sidebar, SidebarProvider, SidebarRail } from "~/components/ui/sidebar";
const EMPTY_KEYBINDINGS: ResolvedKeybindingsConfig = [];
+const THREAD_SIDEBAR_WIDTH_STORAGE_KEY = "chat_thread_sidebar_width";
+const THREAD_SIDEBAR_MIN_WIDTH = 16 * 16;
+const THREAD_MAIN_CONTENT_MIN_WIDTH = 40 * 16;
function ChatRouteGlobalShortcuts() {
const clearSelection = useThreadSelectionStore((state) => state.clearSelection);
@@ -116,8 +119,15 @@ function ChatRouteLayout() {
side="left"
collapsible="offcanvas"
className="border-r border-border bg-card text-foreground"
+ resizable={{
+ minWidth: THREAD_SIDEBAR_MIN_WIDTH,
+ shouldAcceptWidth: ({ nextWidth, wrapper }) =>
+ wrapper.clientWidth - nextWidth >= THREAD_MAIN_CONTENT_MIN_WIDTH,
+ storageKey: THREAD_SIDEBAR_WIDTH_STORAGE_KEY,
+ }}
>
+
From a7dcfa118e4dcba8c25fc597ed35f2ba00b404e5 Mon Sep 17 00:00:00 2001
From: Julius Marminge
Date: Mon, 23 Mar 2026 19:24:43 -0700
Subject: [PATCH 2/2] adjust min size
---
apps/web/src/routes/_chat.tsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/apps/web/src/routes/_chat.tsx b/apps/web/src/routes/_chat.tsx
index d2279d0d97..7cb377056b 100644
--- a/apps/web/src/routes/_chat.tsx
+++ b/apps/web/src/routes/_chat.tsx
@@ -16,7 +16,7 @@ import { Sidebar, SidebarProvider, SidebarRail } from "~/components/ui/sidebar";
const EMPTY_KEYBINDINGS: ResolvedKeybindingsConfig = [];
const THREAD_SIDEBAR_WIDTH_STORAGE_KEY = "chat_thread_sidebar_width";
-const THREAD_SIDEBAR_MIN_WIDTH = 16 * 16;
+const THREAD_SIDEBAR_MIN_WIDTH = 13 * 16;
const THREAD_MAIN_CONTENT_MIN_WIDTH = 40 * 16;
function ChatRouteGlobalShortcuts() {