Ga naar inhoud

Routekaart

De app-shell (ControlCenterLayout) omvat elke route binnen een werkruimte via een ShellRoute. Elke bestemming binnen de shell heeft een werkruimteprefix — /workspaces/:workspaceId/… — en het werkruimte-id in de URL is de enige bron van waarheid voor de actieve werkruimte. Alleen de oppervlakken vóór de context hebben geen prefix: /splash, /onboarding, /signed-out en de kale /workspaces-kiezer, allemaal schermvullend en buiten de shell.

De poort is compleet wanneer minstens één forge is gekoppeld voor de aangemelde gebruiker en er minstens één werkruimte bestaat.

Ontbrekende inloggegevens en een ontbrekende configuratie zijn verschillende schermen, en het onderscheidende criterium is users.onboarding_finished_at, uitgelezen uit de eigen identity.me van de aanroeper — nooit “er bestaan werkruimtes”, wat fout is op het moment dat iemand wordt uitgenodigd in een werkruimte die hij nooit heeft gemaakt. Zonder gekoppelde forge gaat een account dat de onboarding heeft afgerond naar /signed-out om opnieuw te authenticeren; een account dat dat niet heeft gedaan gaat naar /onboarding. Zolang de vlag nog onbekend is, houdt de guard het splashscherm vast in plaats van te gokken, want hij verwijst nooit terug weg uit de onboarding.

Pad Scherm
/splash Opstartsplash die de onboardingpoort bepaalt
/onboarding Een forge koppelen, een werkruimte maken of erbij komen, sandbox, standaardadapter en dan spraak. De werkruimtestap vervalt wanneer het account al bij een werkruimte hoort
/signed-out Opnieuw authenticeren: dezelfde kaart met forge-verbindingen die Instellingen toont, zonder stappenbalk en zonder knop Doorgaan — de router vertrekt vanzelf zodra een forge zich meldt
/workspaces Werkruimtelijst en -kiezer
/workspaces/:workspaceId Verwijst door naar /workspaces/:workspaceId/inbox

De paden hieronder laten de prefix /workspaces/:workspaceId weg.

Pad Queryparameters Scherm
/inbox — Verzameld postvak in: PR’s ingedeeld naar reviewlevenscyclus plus niet-PR-werk dat de operator blokkeert. De landingsroute na de guard; een kale /workspaces/:workspaceId verwijst hierheen
/spaces — Ruimteoppervlak, geen ruimte geselecteerd
/spaces/:spaceId ?m=<messageId>, ?tab=<key> Eén ruimte; m verwijst diep naar een bericht en wordt bij het openen eenmalig verbruikt
/tickets — Ticketbord
/tickets/:ticketId — Ticket master-detail
/projects/:projectId — Projectoverzicht
/pull-requests ?repo=<owner/name> PR-lijst; repo selecteert die repository in de linkerbalk
/pull-requests/compose ?space=<spaceId> Een nieuwe pull request opstellen; space noemt de ruimte waarvan de geïsoleerde worktree de branch levert
/pull-requests/:owner/:repo/:prNumber ?tab=<key>, ?comment=<id> PR-detail met diff-viewer; comment is het numerieke REST-id van één reactie
/pipelines — Lijst met pipelineruns
/pipelines/run ?templateId=<id> Startscherm voor handmatige runs
/pipelines/:runId — Detail van een pipelinerun (tijdlijn van stappen)
/plans — Plan Studio-hub: actieve plannen, plandocumenten, playbooks
/plans/:kind/:id — Plan Studio voor één plan; kind is orchestration of document
/meetings — Lijst met vergaderingen
/meetings/record — Scherm voor live vergaderopname
/meetings/:meetingId — Vergaderdetail: notities, transcriptie, actiepunten, besluiten
/calendar — Agenda: weergaven Maand, Week en Agenda
/calendar/:eventId — Detail van een agenda-afspraak (zusterrroute; deelt de pagina-key van de agenda)
/newsfeed — Lijst van de nieuwsfeed
/newsfeed/article/:articleId — Artikellezer
/observability — Hub voor observeerbaarheid: tabbladen Gebruik, Overzicht, Live en Kwaliteit boven de run-logfeed van de werkruimte. Staat standaard op het tabblad Gebruik
/users/:login — GitHub-gebruikersprofiel
/teams/:organization/:slug — Teampagina van een GitHub-organisatie
/api-keys — Beheer van API-sleutels. Geen ingang in de navigatie — alleen via de URL te bereiken
/settings/… — Instellingenschermen (hieronder)

Gesprekken en threads hebben geen eigen route — een thread is een gesprek binnen /spaces/:spaceId, geopend als een tabblad in de editor in plaats van aangesproken via de URL.

Er is geen /dashboard-route en geen dashboardscherm. Het analyseoppervlak is /observability, bereikbaar onderaan de zijbalk.

Er is geen zijbalkitem “Plannen”. Plan Studio opent als een tabblad in de editor vanaf de rij van het plan in het gesprek dat het heeft voortgebracht; /plans en /plans/:kind/:id zijn deeplinks.

/observability en /pull-requests/compose hebben geen vermelding in de registers voor routetitels of broodkruimels, dus beide tonen alleen de kale app-naam in de venstertitel en geen broodkruimelpad.

/settings verwijst door naar /settings/you/appearance. De instellingenknop in de zijbalk en Cmd/Ctrl + , gaan beide naar /settings/you/appearance.

Instellingenpaden zijn genamespaced per bereik — you/, workspace/, server/ — omdat het segment aangeeft wie een wijziging raakt. Twee paden dateren van vóór de namespacing en hebben geen bereik in de URL: /settings/memory en /settings/pipelines.

Pad Scherm
/settings/you/appearance Thema, taal, typografie, editorthema (de landingspagina van de instellingen)
/settings/you/notifications Schakelaars per gebeurtenis, stille uren
/settings/you/keybindings Naslagwerk voor sneltoetsen (alleen-lezen)
/settings/you/audio Microfoon, dicteren, vergaderingsdetectie en klanklandschap-uitvoer
/settings/you/devices Gekoppelde telefoons en afstandsbediening
/settings/you/newsfeed Feedbeheer: bronnen, verversen, leesstatus
Pad Scherm
/settings/workspace/profile Profiel en identiteit in deze werkruimte: naam, git-auteur, codehosting, agenda
/settings/workspace/general Naam, logo, patronen voor geheimen, reviewconcurrentie, branchnaamgeving, synchronisatiestatus, chatbruggen, gevarenzone
/settings/workspace/meetings Sjablonen voor vergadernotities en opgeslagen stemprofielen
/settings/workspace/members Ledenlijst, uitnodigingen, auditlogboek. Het auditlogboek pagineert met optionele ?cursor=
/settings/workspace/repositories Repository’s die in deze werkruimte zijn geregistreerd
/settings/workspace/agents Geregistreerde agentidentiteiten
/settings/workspace/skills Configuratie van skills
/settings/memory Werkruimtegeheugen: feiten, beleid, kennisgraaf
/settings/workspace/permissions Agentmachtigingen: matrix van beveiligingen en wat-als-probe
/settings/pipelines Pipelinesjablonen
/settings/pipelines/:templateId Editor voor pipelinesjablonen (drag-and-drop-canvas)
Pad Scherm
/settings/server/connection Verbinding en status
/settings/server/sso Single sign-on (SAML, OIDC, SCIM-provisioning)
/settings/server/providers Modelaanbieders en adapters
/settings/server/mcp Ingebouwde en externe MCP-servers
/settings/server/voice Spraak- en vergadermodellen (ASR, diarisatie)
/settings/server/rigs Rigs: wat deze host kan starten, basis-images, aangepaste images, draaiende machines
/settings/server/sandbox Sandbox-uitvoeringsrechten: programma’s die agents mogen uitvoeren vanuit hun werkkopie van je repository’s
/settings/server/diagnostics Diagnose en privacy: sandboxing, embedding, logging, crashrapportage
/settings/server/backup Back-up en herstel: momentopnamen van de installatie, export per werkruimte, importeren en verwijderen
/settings/server/about Over en updates

kSettingsNav in lib/features/settings/settings_nav.dart is de enige bron van waarheid voor deze lijst. settings_nav_test.dart legt unieke id’s, unieke routes, de afgevlakte J/K-volgorde en de drie bereiken vast. De test loopt niet elke geregistreerde GoRoute af.

Aandachtspunt Bestand
Router lib/router/app_router.dart
Routebuilders lib/router/routes.dart
Auth-guards lib/router/guards.dart
Onboardingpoort lib/features/auth/providers/onboarding_providers.dart
Instellingennavigatie lib/features/settings/settings_nav.dart