Collapse the sidebars (maximize chat area)
Two independent toggles let you hide either side panel on the Omniscio dashboard so the chat takes the whole window. The projects sidebar is the narrow leftmost column (project rows, color bars). The sessions sidebar sits to its right (session rows for the active project, inbox at the top).
What it is
Two independent toggles let you hide either side panel on the Omniscio dashboard so the chat takes the whole window. The projects sidebar is the narrow leftmost column (project rows, color bars). The sessions sidebar sits to its right (session rows for the active project, inbox at the top). Either can be collapsed without affecting the other. The projects sidebar additionally supports an intermediate icons-only state (see "Collapse the projects sidebar to icons only" below) — a narrow rail of just project icons — distinct from hiding it entirely.
What you see
Each sidebar header carries a small three-dot overflow menu (MoreVertical icon) in the upper-right of the header. Opening the menu exposes the Hide sidebar action plus a Search action — both previously had their own visible icon buttons and were promoted into a menu to declutter the header:
- Projects sidebar header — menu trigger labeled "Projects sidebar menu",
data-ui-anchor="sidebar-projects-menu". Menu items: "Search projects" (only when at least one project exists) and "Hide projects sidebar (Ctrl+\)". The standalone + Add button stays visible next to the menu. - Sessions sidebar header — menu trigger labeled "Sessions sidebar menu",
data-ui-anchor="sidebar-sessions-menu". Menu items: "Search conversations (Ctrl+K)" (omitted in Gmail / SMS / Telegram / Calendar / Drive / Daily Digest / Channel sub-modes — they don't expose a conversation search) and "Hide sessions sidebar (Ctrl+Shift+\)". The menu trigger is rendered once after the per-mode header so it appears across every sub-mode (regular project, Gmail, SMS, Telegram, Calendar, Drive, Daily Digest, channels, Inbox).
Selecting an item closes the menu and runs the action immediately. The hide choice persists across launches; search opens the same modal / inline-filter UI as before.
What persists
Three boolean fields on AppSettings (appearance slice):
projectsSidebarHidden: boolean— defaultfalse.sessionsSidebarHidden: boolean— defaultfalse.projectsSidebarIconsOnly: boolean— defaultfalse(the icons-only rail; projects sidebar only).
Both are routed through updateSettingsSchema (src/shared/ipc-schemas.ts) so the renderer write path validates them, and both flow through useSettingsStore.updateSetting(...) on every entry point (toolbar button, gutter button, keyboard shortcut, Settings toggle).
Where to find it
Each sidebar header carries a three-dot overflow menu in its upper right; Hide sidebar lives in it. Both sidebars are independent, so collapsing one leaves the other alone.
How it behaves
How to bring a hidden sidebar back
A thin 8-pixel-wide vertical edge gutter replaces the hidden sidebar. The gutter is the same height as the dashboard and carries a faint hover background. Hover it and a PanelLeftOpen / PanelRightOpen icon fades in — click anywhere on the gutter strip to re-open the sidebar.
- Projects gutter: leftmost column,
data-ui-anchor="sidebar-projects-reopen-gutter", labeled "Show projects sidebar". - Sessions gutter: shown to the right of the projects sidebar (or against the chat-area's left edge if both sidebars are hidden),
data-ui-anchor="sidebar-sessions-reopen-gutter", labeled "Show sessions sidebar".
Re-opening restores the previously chosen sidebar width (the resize handle is reattached too).
Collapse the projects sidebar to icons only
Between "fully shown" and "fully hidden", the projects sidebar has a third state: an icons-only rail — a fixed ~56 px strip showing just each project's icon, with the full name revealed on hover.
- Collapse to it — open the projects sidebar's ⋮ overflow menu ("Projects sidebar menu") and choose Collapse to icons (
PanelLefticon). - Expand back — click the expand button in the collapsed rail's header (
PanelLeftOpenicon, labeled "Expand projects sidebar",data-ui-anchor="sidebar-projects-expand"). Your previous resizable width is restored exactly — the icons-only state overrides the width while collapsed but never overwrites your savedprojectsSidebarWidth. - What you see — each project's icon, plus a single solid status dot in the most-urgent color when it has active sessions (error red → needs-you amber → waiting ember → running green), so nothing needing attention disappears; the full count breakdown stays in the row's hover tooltip. The color bar stays; group headers, the search box, the agent-driven group, and the drag-to-resize handle are hidden while collapsed. Focus Mode still suppresses the dot.
- Desktop only — the phone's project list is a full-screen list with no narrow-rail concept, so it's unaffected even though the setting syncs to mobile (mobile's
MobileProjectsListsimply never opts in).
This is independent of Hide projects sidebar below: hiding wins (the sidebar isn't rendered at all), and icons-only applies only while the sidebar is shown.
Keyboard shortcuts
| Shortcut | Action |
|---|---|
Ctrl+\ |
Toggle the projects sidebar (hide / show) |
Ctrl+Shift+\ |
Toggle the sessions sidebar (hide / show) |
Both shortcuts pass through input fields (you can collapse a sidebar while typing in the composer). Rebind them at Settings → Keyboard Shortcuts — the action ids are toggleProjectsSidebar and toggleSessionsSidebar.
Why two toggles instead of one
The requesting user explicitly chose separate buttons over a combined one — they want to fold either panel independently. A common pattern: hide the sessions panel during deep focus on one chat (projects column still visible for quick switching), or hide both when reviewing a long agent response on a small monitor. Combining them into one shortcut would have removed that flexibility.
For agents
Settings toggles
Settings → Appearance has two matching switches under "Sidebar Position":
- Hide Projects Sidebar —
data-setting-id="hide-projects-sidebar". Search keywords includecollapse,hide,minimize,shrink,fold,panel,maximize chat,full width,distraction free,focus,compact. - Hide Sessions Sidebar —
data-setting-id="hide-sessions-sidebar". Same synonym set.
The switches are mirrors of the inline collapse buttons + the keyboard shortcuts; flipping them all writes to the same persisted setting.
Implementation map
For agents editing this feature:
- Conditional rendering in Dashboard.tsx — when
projectsSidebarHiddenis true, render<SidebarEdgeGutter side="left" ... />in place of<ProjectsSidebar />+<ResizeHandle />. Same shape for sessions. - Gutter component: SidebarEdgeGutter.tsx (8-px wide, icon hover-revealed).
- Overflow menus live inline in ProjectsSidebar.tsx and SessionsSidebar.tsx headers via the shared SidebarHeaderMenu.tsx component (
MoreVerticaltrigger, React portal menu,useMenuKeyboard+useClickOutside+clampToViewport). The sessions menu is rendered once outside the per-mode conditional so all 9 modes inherit it; the Search item is conditionally added based on whether the current sub-mode supports a conversation search. - Keyboard shortcut handlers in useKeyboardShortcuts.ts — switch arms
toggleProjectsSidebar/toggleSessionsSidebar. - Shortcut registry: keybindings.ts —
SHORTCUT_ACTIONSarray (entries neartoggleFocusMode). - Settings UI: AppearanceSettings.tsx — two
ToggleSwitchrows under the existing "Sidebar Position" group, usingSETTING_TOGGLE_ROW. - Settings search index: settings-search-index.ts — two entries with synonym keywords.
- AI-pointable anchors: ui-anchor-registry.ts —
sidebar-projects-menu,sidebar-sessions-menu,sidebar-projects-reopen-gutter,sidebar-sessions-reopen-gutter,sidebar-projects-expand(the icons-only expand button). - Icons-only rail: ProjectsSidebar.tsx reads
projectsSidebarIconsOnly, overrides the<aside>to a fixedPROJECTS_SIDEBAR_ICONS_ONLY_WIDTH_PX(56) +data-icons-only, renders a compact header (expand button) + the "Collapse to icons" menu item + a flat icon list. Each ProjectListItem.tsx takes an expliciticonsOnlyprop (added to itsprojectListItemPropsEqualmemo comparator) — passed ONLY by the desktop sidebar, so mobile is unaffected. The single dot colour comes fromgetCountDotColorin status-display.ts. DashboardDesktopLayout.tsx hides the projectsResizeHandlewhile collapsed.
Related
- show-only-active-projects.md — the funnel filter in the same header, which changes what the project list shows.
- sidebar-sort-by-usage.md — the sort-by-usage mode in the same header.
- sidebar-items-visibility.md — decides which sidebar entries exist at all.
- projects-sidebar.md — the sidebar these controls live in.
Last verified 2026-09-28