MeridiansMeridians

Home console [UI]

Source path: knowledge-base/diagrams/ui/home-console.md

# Home console `[UI]`

The regions of `GatewayShell` — shared by the sign-in portal and the home stage, so signing in flows straight into the console (same spine, different stage).

```mermaid
flowchart LR
    subgraph Shell["GatewayShell"]
        direction LR
        Spine["**Left spine**<br/>brand · nav (role-gated) · identity chip<br/><br/>Home · New domain · Usage ·<br/>Hosting · API keys · Environment<br/>+ White Paper · FAQ · host pill"]
        Stage["**Right stage** — the page"]
    end

    Stage --> Header["Header — greeting + tunnel chip ·<br/>host toggle · invite"]
    Stage --> Composer["**HomeComposer** — one capture card, three modes:<br/>**Note** (route a thought into an expert's queue) ·<br/>**Ask** (AI routes a message to the best-fit expert, opens its chat) ·<br/>**Build** (paste a corpus → extraction)"]
    Stage --> Tabs["Tabs"]
    Tabs --> Worlds["**Domains** — one grid of<br/>constellation folders + domains"]
    Tabs --> Extract["Extraction launcher"]
    Tabs --> Games["Games — open games to join"]
    Tabs --> People["People — member registry (admin+)"]
    Tabs --> Invites["Invitations — admit /join requests (admin+)"]

    Spine -.->|identity chip| Profile["Profile modal —<br/>own name/email/mobile + password"]
    Spine -.->|spine buttons| Modals["CreationWizard · Sync (Hosting) ·<br/>API keys · Environment (export/import/clear)"]
    Host["Gateway Hosting view"] -.-> MCP["MCP setup modal<br/>mint / copy / revoke remote token"]
    Stage -.-> Host
```

- **Spine modals live on the shell** so they open from every page (`open-api-keys` / `open-hosting` window events route through it).
- **The composer is the console's capture instrument.** Note and Ask share one route picker (Auto = AI proposes → operator confirms; or an explicit tile). A Note lands in ONE domain's queue (constellations have no notes queue) and deep-links to `routes.note(...)`; an Ask targets a domain (`?ask=`) or a constellation (`?tab=chat&ask=`) and auto-sends on arrival. Composer gating is Director-on-master (`canExtract`).
- **Role-gated:** People is a home tab (admins+; credentials Director-only); **API keys** and **Environment** are Director-only, each destructive action confirm-gated.
- The tunnel chip + host toggle + invite button read the shared `useTunnelStatus` store (one poll loop).
- The MCP setup modal is shared by the instance shell and Gateway Hosting view; it configures local stdio or Director-bound remote HTTP without creating a second tool catalog.
- The routes these tabs open are in [flows/navigation](../flows/navigation.md); on a phone the spine collapses to a drawer — see [ui/mobile](mobile.md).
Open on GitHub

Raw Markdown source