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 merges organization, admin, and system tools and inserts `Home` in the regular tier. Active organization-defined links appear before the built-in tools; collapsed navigation shows their titles in tooltips. The personal `Hide admin sidebar items` setting hides the entire built-in main-nav tool list, including regular, admin, and developer links, but keeps custom links and the top and bottom sidebar controls. This browser-local display preference does not revoke access to routes or alter organization navigation configuration.
- 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. A normal organization switch opens the selected organization's home. On a missing shared Docs/Storage path recovery screen, its organization switcher keeps the requested URL path so the link can be retried in the selected organization.
- Search opens the command palette, not a dedicated `/search` page. It keeps built-in commands above organization search results grouped as `Database records`, `Files`, `Knowledge`, and `Related by meaning`. A result opens its record in a saved card view or its file/note in Docs. Enter at least three characters to search; results can include matching excerpts and a partial-results notice. See `organization-search.md` for scope and response behavior.
- 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`)
- `Databases` (`/databases`) for structured data that teammates and AI can query
- `Workflows` (`/workflows`)
- `Docs` (`/docs`)
- `Variables` (`/variables`)
- `Mcps` (`/mcps`)
- `Integrations` (`/integrations`)
- `Settings` (`/org-settings`)
- Admin tier:
- `Logs` (`/logs`)
- Developer tier:
- `Admin` (`/admin`)
- `Models` (`/models`)
- `Prompts` (`/prompts`)
- `Voices` (`/voices`)
- `Defaults` (`/defaults`)
Bottom user menu
- The user identity uses the provider-independent `name` and `picture` fields from the current user payload.
- Expanded sidebar mode shows the profile image, display name, email, and current status indicator.
- Collapsed sidebar mode shows the profile image and status indicator; its tooltip shows the display name and email.
- If `name` is absent, the email is used as the display name and avatar fallback. If `picture` is absent, the avatar component uses that text fallback.
- 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. An organization admin can also designate one active custom link as `Use as home page`. Opening the portal root redirects to that same-origin internal page; if it is unavailable or invalid, the existing fallback is used (`/home` on desktop, Docs chat history on mobile). An external URL, `/`, `/login`, or `/logout` cannot be the Home destination. Turning off `Show in sidebar` also prevents that link from being used as Home.
- Organization-defined links can point to internal paths or full HTTP(S) URLs, optionally open in a new tab, and appear in admin-defined order. Disabled links are omitted from the sidebar. Same-origin navigation uses the app navigation guard; external destinations use the browser.
- 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.
Organization navigation API
- `GET /api/organizations/{organization_id}/navigation-items` lists links for organization members. Owners and admins can `POST` to the same route, `PATCH` or `DELETE /{navigation_item_id}`, and `PUT /order` with `navigation_item_ids`. The records include title, URL, icon, position, `open_in_new_tab`, `is_active`, and `is_home`; create defaults to visible, same-tab, not Home. The general AI organization-action tool can read navigation items and submit create, update, reorder, or delete actions, but an AI-initiated manage action is authorized only when the initiating organization user is an owner or admin; requests without an authorized initiating user are denied.
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 Docs menu uses the same direct-open `Chats` action.
- The shared mobile bottom bar uses `Menu`, `Files`, `Omni`, `Home`, `Chats`.
- Mobile `Chats` routes to `/docs?coworkPanel=history`; mobile `Files` routes to `/docs?coworkPanel=tree`.
- Inside the `/docs` workspace itself, the mobile bottom bar is labeled `Docs panels` for assistive tech.
- 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`.