@@ -29,6 +29,7 @@ Gemini Desktop is a powerful, cross-platform desktop and web application that pr
29
29
- ** Security-first design** : Comprehensive command filtering and permission system
30
30
- ** Custom title bar** : Enhanced desktop experience with native window controls
31
31
- ** About dialog** : Integrated help and version information
32
+ - ** Resizable sidebar** : Interactive sidebar with drag-to-resize functionality and persistent width settings
32
33
- ** Cross-platform support** : Windows, macOS, and Linux compatibility
33
34
34
35
## Architecture
@@ -122,7 +123,7 @@ The project is organized as a Rust workspace with three main crates:
122
123
- ` RecentChats.tsx ` - Session history sidebar
123
124
- ** ` layout/ ` ** - Application structure
124
125
- ` AppHeader.tsx ` - Top navigation bar
125
- - ` AppSidebar.tsx ` - Navigation and project selection
126
+ - ` AppSidebar.tsx ` - Navigation and project selection with resizable functionality
126
127
- ` CustomTitleBar.tsx ` - Native window controls for desktop
127
128
- ` PageLayout.tsx ` - Responsive layout management
128
129
- ** ` mcp/ ` ** - Model Context Protocol components
@@ -149,6 +150,7 @@ The project is organized as a Rust workspace with three main crates:
149
150
- Complete design system with consistent theming
150
151
- Accessible components with proper ARIA support
151
152
- Dark/light mode toggle support
153
+ - Enhanced sidebar component with resize handle and drag-to-resize functionality
152
154
153
155
#### Context and State Management
154
156
- ** ` BackendContext.tsx ` ** - Primary communication layer
@@ -166,6 +168,7 @@ The project is organized as a Rust workspace with three main crates:
166
168
- ** ` useConversationManager.ts ` ** - Conversation state management
167
169
- ** ` useMessageHandler.ts ` ** - Message processing and display
168
170
- ** ` useProcessManager.ts ` ** - Session lifecycle management
171
+ - ** ` useResizable.ts ` ** - Sidebar resize functionality with mouse drag handling and localStorage persistence
169
172
- ** ` useToolCallConfirmation.ts ` ** - User approval workflow
170
173
- ** ` use-mobile.ts ` ** - Responsive design utilities
171
174
@@ -780,15 +783,15 @@ gemini-desktop/
780
783
│ │ ├── components/
781
784
│ │ │ ├── branding/
782
785
│ │ │ │ ├── DesktopText.tsx
783
- │ │ │ │ ├── GeminiIcon.tsx # NEW: Gemini brand icon
786
+ │ │ │ │ ├── GeminiIcon.tsx
784
787
│ │ │ │ ├── GeminiWordmark.tsx
785
788
│ │ │ │ ├── PiebaldLogo.tsx
786
- │ │ │ │ ├── QwenIcon.tsx # NEW: Qwen brand icon
789
+ │ │ │ │ ├── QwenIcon.tsx
787
790
│ │ │ │ ├── QwenWordmark.tsx
788
791
│ │ │ │ ├── SmartLogo.tsx
789
792
│ │ │ │ └── SmartLogoCenter.tsx
790
793
│ │ │ ├── common/
791
- │ │ │ │ ├── AboutDialog.tsx # NEW: About dialog
794
+ │ │ │ │ ├── AboutDialog.tsx
792
795
│ │ │ │ ├── CliWarnings.tsx
793
796
│ │ │ │ ├── CodeBlock.tsx
794
797
│ │ │ │ ├── DiffViewer.tsx
@@ -813,7 +816,7 @@ gemini-desktop/
813
816
│ │ │ ├── layout/
814
817
│ │ │ │ ├── AppHeader.tsx
815
818
│ │ │ │ ├── AppSidebar.tsx
816
- │ │ │ │ ├── CustomTitleBar.tsx # NEW: Custom title bar
819
+ │ │ │ │ ├── CustomTitleBar.tsx
817
820
│ │ │ │ └── PageLayout.tsx
818
821
│ │ │ ├── mcp/
819
822
│ │ │ │ ├── AddMcpServerDialog.tsx
@@ -832,7 +835,7 @@ gemini-desktop/
832
835
│ │ │ │ ├── ReadManyFilesRenderer.tsx
833
836
│ │ │ │ ├── SearchRenderer.tsx
834
837
│ │ │ │ └── WebToolRenderer.tsx
835
- │ │ │ ├── theme/ # NEW: Theme management
838
+ │ │ │ ├── theme/
836
839
│ │ │ │ ├── simple-theme-toggle.tsx
837
840
│ │ │ │ └── theme-provider.tsx
838
841
│ │ │ └── ui/
@@ -869,6 +872,7 @@ gemini-desktop/
869
872
│ │ │ ├── useConversationManager.ts
870
873
│ │ │ ├── useMessageHandler.ts
871
874
│ │ │ ├── useProcessManager.ts
875
+ │ │ │ ├── useResizable.ts
872
876
│ │ │ └── useToolCallConfirmation.ts
873
877
│ │ ├── index.css
874
878
│ │ ├── lib/
@@ -893,7 +897,7 @@ gemini-desktop/
893
897
│ │ │ ├── mcpValidation.ts
894
898
│ │ │ ├── toolCallParser.ts
895
899
│ │ │ ├── toolInputParser.ts
896
- │ │ │ └── wordDiff.ts # NEW: Word-level diff utilities
900
+ │ │ │ └── wordDiff.ts
897
901
│ │ └── vite-env.d.ts
898
902
│ ├── tsconfig.json
899
903
│ ├── tsconfig.node.json
0 commit comments