Mappa delle route
Shell dell’app
Sezione intitolata “Shell dell’app”Il shell dell’app (ControlCenterLayout) avvolge ogni route interna allo spazio di lavoro tramite una ShellRoute. Ogni destinazione interna al shell è prefissata dallo spazio di lavoro — /workspaces/:workspaceId/… — e l’id dello spazio di lavoro nell’URL è l’unica fonte di verità per lo spazio di lavoro attivo. Solo le superfici che precedono il contesto non hanno prefisso: /splash, /onboarding, /signed-out e il semplice selettore /workspaces, tutte a schermo intero e fuori dal shell.
Il gate è completo quando è collegata almeno una forge per l’utente che ha effettuato l’accesso ed esiste almeno uno spazio di lavoro.
Una credenziale mancante e una configurazione mancante sono schermate diverse, e il discriminante è users.onboarding_finished_at, letto sul identity.me del chiamante stesso — mai «esistono spazi di lavoro», che è sbagliato nel momento in cui qualcuno viene invitato in uno spazio di lavoro che non ha creato. Senza alcuna forge collegata, un account che ha completato l’onboarding va a /signed-out per riautenticarsi; uno che non l’ha completato va a /onboarding. Finché il flag è ancora sconosciuto, la guardia trattiene lo splash invece di tirare a indovinare, perché non reindirizza mai fuori dall’onboarding.
Route senza prefisso
Sezione intitolata “Route senza prefisso”| Percorso | Schermata |
|---|---|
/splash |
Splash di avvio che risolve il gate di onboarding |
/onboarding |
Collega una forge, crea o unisciti a uno spazio di lavoro, sandbox, adapter predefinito, poi voce. Il passaggio dello spazio di lavoro viene saltato quando l’account appartiene già a uno |
/signed-out |
Riautenticazione: la stessa scheda Hosting del codice che mostra Impostazioni, senza barra dei passaggi e senza pulsante di continuazione — il router esce da solo quando una forge risponde |
/workspaces |
Elenco e selettore degli spazi di lavoro |
/workspaces/:workspaceId |
Reindirizza a /workspaces/:workspaceId/inbox |
Route dello spazio di lavoro
Sezione intitolata “Route dello spazio di lavoro”I percorsi seguenti omettono il prefisso /workspaces/:workspaceId.
| Percorso | Parametri di query | Schermata |
|---|---|---|
/inbox |
— | Posta in arrivo unificata: PR classificate in base al ciclo di vita della revisione più il lavoro non-PR che blocca l’operatore. La route di atterraggio dopo la guardia; un /workspaces/:workspaceId senza suffisso reindirizza qui |
/spaces |
— | Superficie degli spazi, nessuno spazio selezionato |
/spaces/:spaceId |
?m=<messageId>, ?tab=<key> |
Un solo spazio; m punta direttamente a un messaggio e viene consumato una volta all’apertura |
/tickets |
— | Bacheca dei ticket |
/tickets/:ticketId |
— | Master-detail del ticket |
/projects/:projectId |
— | Panoramica del progetto |
/pull-requests |
?repo=<owner/name> |
Elenco delle PR; repo seleziona quel repository nella barra laterale sinistra |
/pull-requests/compose |
?space=<spaceId> |
Componi una nuova pull request; space indica lo spazio il cui worktree isolato fornisce il branch |
/pull-requests/:owner/:repo/:prNumber |
?tab=<key>, ?comment=<id> |
Dettaglio della PR con visualizzatore del diff; comment è l’id REST numerico di un commento |
/pipelines |
— | Elenco delle esecuzioni delle pipeline |
/pipelines/run |
?templateId=<id> |
Avvio manuale delle esecuzioni |
/pipelines/:runId |
— | Dettaglio dell’esecuzione di una pipeline (sequenza dei passaggi) |
/plans |
— | Hub di Plan Studio: piani attivi, documenti di piano, playbook |
/plans/:kind/:id |
— | Plan Studio per un piano; kind è orchestration o document |
/meetings |
— | Elenco delle riunioni |
/meetings/record |
— | Schermata di registrazione di una riunione dal vivo |
/meetings/:meetingId |
— | Dettaglio della riunione: note, trascrizione, elementi di azione, decisioni |
/calendar |
— | Calendario: viste mese, settimana e agenda |
/calendar/:eventId |
— | Dettaglio dell’evento del calendario (route affine; condivide la chiave di pagina del calendario) |
/newsfeed |
— | Elenco delle notizie |
/newsfeed/article/:articleId |
— | Lettore degli articoli |
/observability |
— | Hub di osservabilità: schede Utilizzo, Panoramica, Dal vivo e Qualità sul feed dei log di esecuzione dello spazio di lavoro. Il valore predefinito è la scheda Utilizzo |
/users/:login |
— | Profilo utente GitHub |
/teams/:organization/:slug |
— | Profilo del team di un’organizzazione GitHub |
/api-keys |
— | Gestione delle chiavi API. Nessun punto di accesso dalla navigazione — raggiungibile solo tramite URL |
/settings/… |
— | Schermate delle impostazioni (sotto) |
Le conversazioni e i thread non hanno una route propria — un thread è una conversazione dentro /spaces/:spaceId, aperto come scheda dell’editor anziché indirizzato tramite URL.
Non esiste alcuna route /dashboard né alcuna schermata dashboard. La superficie di analisi è /observability, raggiunta dal piè di pagina della barra laterale.
Non esiste alcuna voce «Piani» nella barra laterale. Plan Studio si apre come scheda dell’editor dalla riga del piano nella conversazione che l’ha generato; /plans e /plans/:kind/:id sono link diretti.
/observability e /pull-requests/compose non hanno alcuna voce nei registri dei titoli di route o dei breadcrumb, quindi entrambe mostrano solo il nome dell’app nel titolo della finestra e nessun percorso di breadcrumb.
Route delle impostazioni
Sezione intitolata “Route delle impostazioni”/settings reindirizza a /settings/you/appearance. Il pulsante delle impostazioni della barra laterale e Cmd/Ctrl + , portano entrambi a /settings/you/appearance.
I percorsi delle impostazioni sono suddivisi per ambito — you/, workspace/, server/ — perché il segmento dichiara chi è interessato da una modifica. Due percorsi sono precedenti a questa suddivisione e non hanno ambito nell’URL: /settings/memory e /settings/pipelines.
| Percorso | Schermata |
|---|---|
/settings/you/appearance |
Tema, lingua, tipografia, tema dell’editor (la pagina di atterraggio delle impostazioni) |
/settings/you/notifications |
Interruttori per evento, fasce di silenzio |
/settings/you/keybindings |
Riferimento delle scorciatoie da tastiera (sola lettura) |
/settings/you/audio |
Microfono, dettatura, rilevamento delle riunioni e output del paesaggio sonoro |
/settings/you/devices |
Telefoni associati e controllo remoto |
/settings/you/newsfeed |
Gestione dei feed: sorgenti, aggiornamento, stato di lettura |
Spazio di lavoro
Sezione intitolata “Spazio di lavoro”| Percorso | Schermata |
|---|---|
/settings/workspace/profile |
Profilo e identità in questo spazio di lavoro: nome, autore git, hosting del codice, calendario |
/settings/workspace/general |
Nome, logo, glob dei segreti, concorrenza delle revisioni, denominazione dei branch, integrità della sincronizzazione, ponti di chat, zona pericolosa |
/settings/workspace/meetings |
Modelli delle note delle riunioni e profili vocali salvati |
/settings/workspace/members |
Elenco dei membri, inviti, registro di audit. Il registro di audit si pagina con ?cursor= opzionale |
/settings/workspace/repositories |
Repository registrati in questo spazio di lavoro |
/settings/workspace/agents |
Identità degli agenti registrate |
/settings/workspace/skills |
Configurazione delle skill |
/settings/memory |
Memoria dello spazio di lavoro: fatti, policy, grafo della conoscenza |
/settings/workspace/permissions |
Permessi degli agenti: matrice dei guardrail e sonda what-if |
/settings/pipelines |
Modelli di pipeline |
/settings/pipelines/:templateId |
Editor dei modelli di pipeline (canvas drag-and-drop) |
| Percorso | Schermata |
|---|---|
/settings/server/connection |
Connessione e stato |
/settings/server/sso |
Accesso singolo (SAML, OIDC, provisioning SCIM) |
/settings/server/providers |
Fornitori di modelli e adapter |
/settings/server/mcp |
Server MCP integrati ed esterni |
/settings/server/voice |
Modelli vocali e per riunioni (ASR, diarizzazione) |
/settings/server/rigs |
Rig: cosa può avviare questo host, immagini di base, immagini personalizzate, macchine in esecuzione |
/settings/server/sandbox |
Concessioni di esecuzione nel sandbox: programmi che gli agenti possono avviare dalla loro copia di lavoro dei tuoi repository |
/settings/server/diagnostics |
Diagnostica e privacy: sandbox, embedding, logging, segnalazione degli arresti anomali |
/settings/server/backup |
Backup e ripristino: istantanee dell’installazione, esportazione per spazio di lavoro, importazione ed eliminazione |
/settings/server/about |
Informazioni e aggiornamenti |
kSettingsNav in lib/features/settings/settings_nav.dart è l’unica fonte di verità per questo elenco. settings_nav_test.dart fissa id univoci, route univoche, l’ordine J/K appiattito e i tre ambiti. Non percorre ogni GoRoute registrata.
Configurazione delle route
Sezione intitolata “Configurazione delle route”| Aspetto | File |
|---|---|
| Router | lib/router/app_router.dart |
| Costruttori di route | lib/router/routes.dart |
| Guardie di autenticazione | lib/router/guards.dart |
| Gate di onboarding | lib/features/auth/providers/onboarding_providers.dart |
| Navigazione delle impostazioni | lib/features/settings/settings_nav.dart |