Carte des routes
Coquille de l’application
Section intitulée “Coquille de l’application”La coquille de l’application (ControlCenterLayout) enveloppe chaque route au sein d’un
espace de travail au moyen d’un ShellRoute. Chaque destination à l’intérieur de la
coquille est préfixée par l’espace de travail — /workspaces/:workspaceId/… — et
l’identifiant d’espace de travail présent dans l’URL est la source unique de vérité de
l’espace de travail actif. Seules les surfaces hors contexte n’ont aucun préfixe :
/splash, /onboarding, /signed-out et le sélecteur /workspaces seul, toutes en
plein écran et à l’extérieur de la coquille.
La condition d’accès est remplie lorsque au moins une forge est connectée pour l’utilisateur connecté et qu’au moins un espace de travail existe.
Un identifiant manquant et une configuration manquante mènent à des écrans différents, et
le discriminant est users.onboarding_finished_at, lu depuis le identity.me de
l’appelant lui-même — jamais « des espaces de travail existent », ce qui est faux dès
l’instant où quelqu’un est invité dans un espace de travail qu’il n’a jamais créé. Sans
forge connectée, un compte qui a terminé la configuration initiale se rend à
/signed-out pour se réauthentifier ; un compte qui ne l’a pas terminée se rend à
/onboarding. Tant que l’indicateur demeure inconnu, la garde retient l’écran de
démarrage plutôt que de deviner, parce qu’elle ne redirige jamais à rebours hors de la
configuration initiale.
Routes sans préfixe
Section intitulée “Routes sans préfixe”| Chemin | Écran |
|---|---|
/splash |
Écran de démarrage qui résout la condition d’accès à la configuration initiale |
/onboarding |
Connecter une forge, créer ou joindre un espace de travail, le bac à sable, l’adaptateur par défaut, puis la voix. L’étape Espace de travail est omise lorsque le compte appartient déjà à un espace |
/signed-out |
Se réauthentifier : la même carte des connexions aux forges que celle qu’affiche Paramètres, sans barre d’étapes ni bouton Continuer — le routeur quitte de lui-même dès qu’une forge répond |
/workspaces |
Liste et sélecteur d’espaces de travail |
/workspaces/:workspaceId |
Redirige vers /workspaces/:workspaceId/inbox |
Routes d’espace de travail
Section intitulée “Routes d’espace de travail”Les chemins ci-dessous omettent le préfixe /workspaces/:workspaceId.
| Chemin | Paramètres de requête | Écran |
|---|---|---|
/inbox |
— | Boîte de réception unifiée : les PR classées selon le cycle de vie de la revue, en plus du travail hors PR qui bloque l’opérateur. La route d’atterrissage après la garde ; un /workspaces/:workspaceId seul redirige ici |
/spaces |
— | Surface des espaces, aucun espace sélectionné |
/spaces/:spaceId |
?m=<messageId>, ?tab=<key> |
Un espace ; m crée un lien direct vers un message et est consommé à la première ouverture |
/tickets |
— | Tableau des tickets |
/tickets/:ticketId |
— | Vue maître-détail d’un ticket |
/projects/:projectId |
— | Vue d’ensemble du projet |
/pull-requests |
?repo=<owner/name> |
Liste des PR ; repo sélectionne ce dépôt dans le rail de gauche |
/pull-requests/compose |
?space=<spaceId> |
Rédiger une nouvelle demande de tirage ; space nomme l’espace dont l’arbre de travail isolé fournit la branche |
/pull-requests/:owner/:repo/:prNumber |
?tab=<key>, ?comment=<id> |
Détail d’une PR avec visionneuse de différences ; comment est l’identifiant REST numérique d’un commentaire |
/pipelines |
— | Liste des exécutions de pipeline |
/pipelines/run |
?templateId=<id> |
Lanceur d’exécution manuelle |
/pipelines/:runId |
— | Détail d’une exécution de pipeline (chronologie des étapes) |
/plans |
— | Carrefour de Plan Studio : plans actifs, documents de plan, playbooks |
/plans/:kind/:id |
— | Plan Studio pour un plan ; kind vaut orchestration ou document |
/meetings |
— | Liste des réunions |
/meetings/record |
— | Écran d’enregistrement d’une réunion en direct |
/meetings/:meetingId |
— | Détail d’une réunion : notes, transcription, tâches, décisions |
/calendar |
— | Calendrier : vues Mois, Semaine et Agenda |
/calendar/:eventId |
— | Détail d’un événement du calendrier (route sœur ; partage la clé de page du calendrier) |
/newsfeed |
— | Liste du fil de nouvelles |
/newsfeed/article/:articleId |
— | Lecteur d’articles |
/observability |
— | Carrefour d’observabilité : onglets Utilisation, Aperçu, En direct et Qualité au-dessus du flux de journal d’exécution de l’espace de travail. S’ouvre par défaut sur l’onglet Utilisation |
/users/:login |
— | Profil d’utilisateur GitHub |
/teams/:organization/:slug |
— | Profil d’une équipe d’organisation GitHub |
/api-keys |
— | Gestion des clés API. Aucun point d’entrée dans la navigation — accessible uniquement par URL |
/settings/… |
— | Écrans de paramètres (ci-dessous) |
Les conversations et les fils n’ont aucune route qui leur soit propre — un fil est une
conversation à l’intérieur de /spaces/:spaceId, ouverte comme onglet d’éditeur plutôt
qu’adressée par URL.
Il n’existe aucune route /dashboard ni aucun écran de tableau de bord. La surface
d’analyse est /observability, accessible depuis le pied de la barre latérale.
Il n’existe aucun élément « Plans » dans la barre latérale. Plan Studio s’ouvre comme
onglet d’éditeur depuis la ligne du plan, dans la conversation qui l’a produit ; /plans
et /plans/:kind/:id sont des liens directs.
/observability et /pull-requests/compose n’ont aucune entrée dans les registres des
titres de route ni des fils d’Ariane ; les deux affichent donc le simple nom de
l’application dans le titre de la fenêtre, sans fil d’Ariane.
Routes de paramètres
Section intitulée “Routes de paramètres”/settings redirige vers /settings/you/appearance. Le bouton de paramètres de la barre
latérale et Cmd/Ctrl + , mènent tous deux à /settings/you/appearance.
Les chemins de paramètres sont organisés par portée — you/, workspace/,
server/ — parce que le segment indique qui est touché par un changement. Deux chemins
sont antérieurs à cette organisation et ne portent aucune portée dans l’URL :
/settings/memory et /settings/pipelines.
| Chemin | Écran |
|---|---|
/settings/you/appearance |
Thème, langue, typographie, thème de l’éditeur (la page d’accueil des paramètres) |
/settings/you/notifications |
Interrupteurs par événement, heures calmes |
/settings/you/keybindings |
Référence des raccourcis clavier (en lecture seule) |
/settings/you/audio |
Microphone, dictée, détection des réunions et sortie d’ambiance sonore |
/settings/you/devices |
Téléphones appairés et contrôle à distance |
/settings/you/newsfeed |
Gestion du fil : sources, actualisation, état de lecture |
Espace de travail
Section intitulée “Espace de travail”| Chemin | Écran |
|---|---|
/settings/workspace/profile |
Profil et identité dans cet espace de travail : nom, auteur git, hébergement de code, calendrier |
/settings/workspace/general |
Nom, logo, globs de secrets, concurrence des révisions, nommage des branches, état de la synchronisation, passerelles de clavardage, zone sensible |
/settings/workspace/meetings |
Modèles de notes de réunion et profils vocaux enregistrés |
/settings/workspace/members |
Liste des membres, invitations, journal d’audit. Le journal d’audit se pagine au moyen du paramètre facultatif ?cursor= |
/settings/workspace/repositories |
Dépôts enregistrés dans cet espace de travail |
/settings/workspace/agents |
Identités d’agents enregistrées |
/settings/workspace/skills |
Configuration des compétences |
/settings/memory |
Mémoire de l’espace de travail : faits, politiques, graphe de connaissances |
/settings/workspace/permissions |
Autorisations des agents : matrice de garde-fous et sonde « Et si ? » |
/settings/pipelines |
Modèles de pipeline |
/settings/pipelines/:templateId |
Éditeur de modèles de pipeline (canevas glisser-déposer) |
Serveur
Section intitulée “Serveur”| Chemin | Écran |
|---|---|
/settings/server/connection |
Connexion et état |
/settings/server/sso |
Authentification unique (SAML, OIDC, provisionnement SCIM) |
/settings/server/providers |
Fournisseurs de modèles et adaptateurs |
/settings/server/mcp |
Serveurs MCP intégrés et externes |
/settings/server/voice |
Modèles vocaux et de réunion (ASR, diarisation) |
/settings/server/rigs |
Rigs : ce que cet hôte peut démarrer, les images de base, les images personnalisées et les machines en cours d’exécution |
/settings/server/sandbox |
Autorisations d’exécution en bac à sable : programmes que les agents peuvent lancer depuis leur copie de travail de vos dépôts |
/settings/server/diagnostics |
Diagnostics et confidentialité : bac à sable, embedding, journalisation, rapports de plantage |
/settings/server/backup |
Sauvegarde et restauration : instantanés de l’installation, export par espace de travail, import et suppression |
/settings/server/about |
À propos et mises à jour |
kSettingsNav, dans lib/features/settings/settings_nav.dart, est la source unique de
vérité de cette liste. settings_nav_test.dart verrouille l’unicité des identifiants,
l’unicité des routes, l’ordre aplati J/K et les trois portées. Il ne parcourt pas chaque
GoRoute enregistré.
Configuration des routes
Section intitulée “Configuration des routes”| Aspect | Fichier |
|---|---|
| Routeur | lib/router/app_router.dart |
| Constructeurs de routes | lib/router/routes.dart |
| Gardes d’authentification | lib/router/guards.dart |
| Condition d’accès à la configuration initiale | lib/features/auth/providers/onboarding_providers.dart |
| Navigation des paramètres | lib/features/settings/settings_nav.dart |