Technical docs
Sidebar Navigation
Overview
Support-facing summary of the current sidebar structure and behavior.
Layout
- Top area:
- organization switcher
- search button
- quick HQ tool buttons
- Today the only visible quick HQ button is `Chats`.
- Main nav is built by merging organization, admin, and system tools, then prepending `Home`.
- Bottom menu includes operator status plus static user-menu links/actions.
- On mobile portal routes, the desktop sidebar is replaced by a shared bottom bar plus a full-width `Menu` sheet.
Top controls
- Org switcher always shows the current org.
- The dropdown appears only when the user belongs to more than one org.
- Orgs are grouped as system orgs first, then regular orgs.
- Search opens the command palette, not a dedicated `/search` page.
- Search shortcut label is platform-aware: `Cmd+K` on macOS, `Ctrl+K` elsewhere.
Main navigation items
- Regular tier:
- `Home` (`/home`)
- `Omni Hub` (`/omni`)
- `Staff` (`/staff`)
- `Storage` (`/storage`)
- `Workflows` (`/workflows`)
- `Cowork` (`/cowork`)
- `Variables` (`/variables`)
- `Mcps` (`/mcps`)
- `Integrations` (`/integrations`)
- `Settings` (`/org-settings`)
- Admin tier:
- `Flows` (`/skills`)
- `Logs` (`/logs`)
- Developer tier:
- `Admin` (`/admin`)
- `Models` (`/models`)
- `Prompts` (`/prompts`)
- `Voices` (`/voices`)
- `Defaults` (`/defaults`)
- `Scout Logs` (`/scout-logs`)
Bottom user menu
- Status selector:
- `Active`
- other operator-status options from `STATUS_OPTIONS`
- Static items:
- `Invite people` -> `/staff?tab=invites&invite=true`
- `Upgrade` -> toast placeholder, not a real modal yet
- `Website` -> `https://alloy.cx`
- `Portal` -> `/`
- `Toggle Theme`
- `Sign Out`
Visibility rules
- Hidden items are filtered out before render.
- `Home` is always inserted as the first regular nav item.
- Role grouping uses `splitToolsByRole()`:
- regular: no role gate
- admin: `isOrgAdmin` or `isOrgOwner`
- developer: `isDeveloper`
- Developers bypass org-role gates.
- A tool marked both developer and org-role gated appears only in the developer tier.
- Separators render only between non-empty tiers.
- `Notifications` stays hidden.
- `Search` exists in the manifest but is rendered as the top search control instead of a nav item.
- `Admin` comes from the `(sys)` route group and is flagged `isDeveloper: true` in the generated sidebar manifest.
Chats and Staff behavior
- The old sidebar Ally entry is now labeled `Chats`.
- Clicking sidebar `Chats` opens internal chat directly through an action item instead of navigating to a dedicated `/ai` route.
- Global shortcut: `Alt+C`.
- On macOS, `Alt+C` is ignored while focus is inside an editable field; on other platforms it still fires.
- The mobile Cowork menu uses the same direct-open `Chats` action.
- The shared mobile bottom bar uses `Menu`, `Files`, `Omni`, `Home`, `Chats`.
- Mobile `Chats` routes to `/cowork?coworkPanel=history`; mobile `Files` routes to `/cowork?coworkPanel=tree`.
- The mobile menu sheet is full width, sits above the bottom bar, closes on route change, and includes org switcher, search, visible tools, full nav, and user menu.
- `Staff` behavior:
- desktop + active AI teammates -> hover/focus quick launcher with `Staff` plus direct teammate chat shortcuts
- mobile, or no active AI teammates -> plain nav link
Resize and collapse behavior
- Expanded width is persisted in local storage.
- Width bounds:
- min `175px`
- max `270px`
- default `225px`
- Collapse threshold: dragging below `130px` switches to icon-only mode.
- Collapsed desktop width is `80px`.
- Collapsed desktop mode removes the expanded card chrome, keeps the sidebar fully visible, shortens separators, and uses smaller compact icons.
- In collapsed desktop mode, the old footer expand toggle is no longer shown.
- Collapsed desktop mode instead exposes a thin right-edge `Expand sidebar` hit area.
- Collapsed desktop mode uses tooltips for non-`Staff` items, including the `Alt+C` hint on `Chats`.