Routenkarte
App-Shell
Abschnitt betitelt „App-Shell“Die App-Shell (ControlCenterLayout) umschließt jede Route im Arbeitsbereich über eine ShellRoute. Jedes Ziel in der Shell trägt den Arbeitsbereich als Präfix — /workspaces/:workspaceId/… — und die Arbeitsbereichs-ID in der URL ist die einzige Quelle der Wahrheit für den aktiven Arbeitsbereich. Nur die Flächen vor dem Kontext haben kein Präfix: /splash, /onboarding, /signed-out und die nackte Auswahl /workspaces, alle im Vollbild und außerhalb der Shell.
Das Gate ist vollständig, wenn mindestens eine Forge für den angemeldeten User verbunden ist und mindestens ein Arbeitsbereich existiert.
Fehlende Zugangsdaten und ein fehlendes Setup sind verschiedene Bildschirme, und das Unterscheidungsmerkmal ist users.onboarding_finished_at, gelesen vom eigenen identity.me des Aufrufers — nie „Arbeitsbereiche existieren“, was in dem Moment falsch ist, in dem jemand in einen Arbeitsbereich eingeladen wird, den diese Person nie angelegt hat. Ohne verbundene Forge geht ein Konto, das das Onboarding abgeschlossen hat, nach /signed-out, um sich neu zu authentifizieren; eines, das es nicht abgeschlossen hat, nach /onboarding. Solange das Flag noch unbekannt ist, hält der Guard den Splash, statt zu raten, weil er nie aus dem Onboarding wieder herausleitet.
Routen ohne Präfix
Abschnitt betitelt „Routen ohne Präfix“| Pfad | Bildschirm |
|---|---|
/splash |
Start-Splash, der das Onboarding-Gate auflöst |
/onboarding |
Forge verbinden, einen Arbeitsbereich anlegen oder beitreten, Sandbox, Standard-Adapter, dann Stimme. Der Schritt zum Arbeitsbereich entfällt, wenn das Konto schon zu einem gehört |
/signed-out |
Neu authentifizieren: dieselbe Karte Code-Hosting, die die Einstellungen zeigen, ohne Schrittleiste und ohne Schaltfläche Weiter — der Router verlässt die Seite von selbst, sobald eine Forge sich meldet |
/workspaces |
Liste und Auswahl der Arbeitsbereiche |
/workspaces/:workspaceId |
Leitet um nach /workspaces/:workspaceId/inbox |
Arbeitsbereichsrouten
Abschnitt betitelt „Arbeitsbereichsrouten“Die Pfade unten lassen das Präfix /workspaces/:workspaceId weg.
| Pfad | Query-Parameter | Bildschirm |
|---|---|---|
/inbox |
— | Einheitlicher Posteingang: Pull Requests nach Review-Lebenszyklus plus Arbeit außerhalb von PRs, die den Operator blockiert. Die Landeroute nach dem Guard; ein nacktes /workspaces/:workspaceId leitet hierher um |
/spaces |
— | Bereichsfläche, kein Bereich ausgewählt |
/spaces/:spaceId |
?m=<messageId>, ?tab=<key> |
Ein Bereich; m verlinkt direkt auf eine Nachricht und wird beim Öffnen einmal verbraucht |
/tickets |
— | Ticket-Board |
/tickets/:ticketId |
— | Ticket als Master-Detail |
/projects/:projectId |
— | Projektübersicht |
/pull-requests |
?repo=<owner/name> |
PR-Liste; repo wählt dieses Repository in der linken Leiste |
/pull-requests/compose |
?space=<spaceId> |
Eine neue Pull Request verfassen; space nennt den Bereich, dessen isolierter Worktree den Branch liefert |
/pull-requests/:owner/:repo/:prNumber |
?tab=<key>, ?comment=<id> |
PR-Detail mit Diff-Ansicht; comment ist die numerische REST-ID eines Kommentars |
/pipelines |
— | Liste der Pipeline-Läufe |
/pipelines/run |
?templateId=<id> |
Start eines manuellen Laufs |
/pipelines/:runId |
— | Detail eines Pipeline-Laufs (Schritt-Zeitleiste) |
/plans |
— | Plan-Studio-Hub: aktive Pläne, Plandokumente, Playbooks |
/plans/:kind/:id |
— | Plan Studio für einen Plan; kind ist orchestration oder document |
/meetings |
— | Liste der Besprechungen |
/meetings/record |
— | Bildschirm für die Live-Aufnahme einer Besprechung |
/meetings/:meetingId |
— | Besprechungsdetail: Notizen, Transkript, Aufgaben, Entscheidungen |
/calendar |
— | Kalender: Ansichten Monat, Woche und Agenda |
/calendar/:eventId |
— | Detail eines Kalendertermins (Geschwisterroute; teilt den Page-Key des Kalenders) |
/newsfeed |
— | Newsfeed-Liste |
/newsfeed/article/:articleId |
— | Artikelansicht |
/observability |
— | Observability-Hub: die Reiter Nutzung, Übersicht, Live und Qualität über dem Laufprotokoll des Arbeitsbereichs. Standard ist der Reiter Nutzung |
/users/:login |
— | GitHub-Benutzerprofil |
/teams/:organization/:slug |
— | Teamprofil einer GitHub-Organisation |
/api-keys |
— | Verwaltung der API-Schlüssel. Kein Navigationseintrag — nur über die URL erreichbar |
/settings/… |
— | Einstellungsbildschirme (unten) |
Unterhaltungen und Threads haben keine eigene Route — ein Thread ist eine Unterhaltung in /spaces/:spaceId, geöffnet als Editor-Tab statt über die URL adressiert.
Es gibt keine Route /dashboard und keinen Dashboard-Bildschirm. Die Analysefläche ist /observability, erreichbar aus der Fußzeile der Seitenleiste.
Es gibt keinen Seitenleisteneintrag „Pläne“. Plan Studio öffnet sich als Editor-Tab aus der Planzeile der Unterhaltung, die ihn erzeugt hat; /plans und /plans/:kind/:id sind Direktlinks.
/observability und /pull-requests/compose stehen weder in der Registry der Routentitel noch in der der Breadcrumbs, deshalb zeigen beide nur den App-Namen im Fenstertitel und keine Breadcrumb-Spur.
Einstellungsrouten
Abschnitt betitelt „Einstellungsrouten“/settings leitet auf /settings/you/appearance um. Die Schaltfläche Einstellungen in der Seitenleiste und Cmd/Ctrl + , führen beide nach /settings/you/appearance.
Einstellungspfade sind nach Geltungsbereich benannt — you/, workspace/, server/ — weil das Segment sagt, wen eine Änderung betrifft. Zwei Pfade sind älter als diese Benennung und in der URL keinem Geltungsbereich zugeordnet: /settings/memory und /settings/pipelines.
| Pfad | Bildschirm |
|---|---|
/settings/you/appearance |
Thema, Sprache, Typografie, Editor-Thema (die Einstiegsseite der Einstellungen) |
/settings/you/notifications |
Schalter je Ereignis, Quiet hours |
/settings/you/keybindings |
Referenz der Tastaturkürzel (nur lesbar) |
/settings/you/audio |
Mikrofon, Diktat, Besprechungserkennung und Klanglandschafts-Ausgabe |
/settings/you/devices |
Gekoppelte Telefone und Fernsteuerung |
/settings/you/newsfeed |
Feed-Verwaltung: Quellen, Aktualisierung, Lesestatus |
Arbeitsbereich
Abschnitt betitelt „Arbeitsbereich“| Pfad | Bildschirm |
|---|---|
/settings/workspace/profile |
Profil und Identität in diesem Arbeitsbereich: Name, Git-Autor, Code-Hosting, Kalender |
/settings/workspace/general |
Name, Logo, ausgeschlossene Geheimnispfade, parallele Prüfer, Vorlage für Branch-Namen, Sync-Status, Chat-Brücken, Gefahrenzone |
/settings/workspace/meetings |
Vorlagen für Besprechungsnotizen und gespeicherte Stimmprofile |
/settings/workspace/members |
Mitgliederliste, Einladungen, Prüfprotokoll. Das Prüfprotokoll paginiert optional mit ?cursor= |
/settings/workspace/repositories |
In diesem Arbeitsbereich registrierte Repositorys |
/settings/workspace/agents |
Registrierte Agentenidentitäten |
/settings/workspace/skills |
Konfiguration der Fähigkeiten |
/settings/memory |
Arbeitsbereichs-Gedächtnis: Fakten, Richtlinien, Wissensgraph |
/settings/workspace/permissions |
Agent-Berechtigungen: Schutzregel-Matrix und Prüfung „Was wäre wenn?“ |
/settings/pipelines |
Pipeline-Vorlagen |
/settings/pipelines/:templateId |
Editor für Pipeline-Vorlagen (Drag-and-Drop-Leinwand) |
| Pfad | Bildschirm |
|---|---|
/settings/server/connection |
Verbindung und Status |
/settings/server/sso |
Single sign-on (SAML, OIDC, SCIM-Bereitstellung) |
/settings/server/providers |
Modellanbieter und Adapter |
/settings/server/mcp |
Eingebaute und externe MCP-Server |
/settings/server/voice |
Sprach- und Meeting-Modelle (ASR, Diarisierung) |
/settings/server/rigs |
Rigs: was dieser Host starten kann, Basis-Images, eigene Images, laufende Maschinen |
/settings/server/sandbox |
Ausführungsberechtigungen der Sandbox: Programme, die Agenten aus ihrer Arbeitskopie deiner Repositorys ausführen dürfen |
/settings/server/diagnostics |
Diagnose und Datenschutz: Sandboxing, Embedding, Logging, Absturzberichte |
/settings/server/backup |
Sicherung und Wiederherstellung: Momentaufnahmen der Installation, Export, Import und Löschen je Arbeitsbereich |
/settings/server/about |
Über und Updates |
kSettingsNav in lib/features/settings/settings_nav.dart ist die einzige Quelle der Wahrheit für diese Liste. settings_nav_test.dart hält eindeutige Ids, eindeutige Routen, die flache J/K-Reihenfolge und die drei Geltungsbereiche fest. Er geht nicht jede registrierte GoRoute ab.
Routenkonfiguration
Abschnitt betitelt „Routenkonfiguration“| Gegenstand | Datei |
|---|---|
| Router | lib/router/app_router.dart |
| Route-Builder | lib/router/routes.dart |
| Auth-Guards | lib/router/guards.dart |
| Onboarding-Gate | lib/features/auth/providers/onboarding_providers.dart |
| Einstellungen-Navigation | lib/features/settings/settings_nav.dart |