Hartă de rute
Shell-ul aplicației
Secțiune intitulată „Shell-ul aplicației”Shell-ul aplicației (ControlCenterLayout) învelește fiecare rută din interiorul unui spațiu de lucru printr-un ShellRoute. Fiecare destinație din shell are prefixul spațiului de lucru — /workspaces/:workspaceId/… — iar id-ul spațiului de lucru din URL este singura sursă de adevăr pentru spațiul de lucru activ. Doar suprafețele dinainte de context nu au prefix: /splash, /onboarding, /signed-out și selectorul simplu /workspaces, toate pe tot ecranul și în afara shell-ului.
Poarta este completă atunci când cel puțin un forge este conectat pentru utilizatorul autentificat și există cel puțin un spațiu de lucru.
O acreditare lipsă și o configurare lipsă sunt ecrane diferite, iar discriminatorul este users.onboarding_finished_at, citit din identity.me al apelantului — niciodată „există spații de lucru”, ceea ce este greșit din momentul în care cineva este invitat într-un spațiu de lucru pe care nu l-a creat. Fără niciun forge conectat, un cont care a trecut prin onboarding merge la /signed-out ca să se reautentifice; unul care nu a trecut merge la /onboarding. Cât timp indicatorul este încă necunoscut, garda ține splash-ul în loc să ghicească, pentru că nu redirecționează niciodată înapoi din onboarding.
Rute fără prefix
Secțiune intitulată „Rute fără prefix”| Cale | Ecran |
|---|---|
/splash |
Splash-ul de pornire care rezolvă poarta de onboarding |
/onboarding |
Conectează un forge, creează sau alătură-te unui spațiu de lucru, sandbox, adaptor implicit, apoi voce. Pasul de spațiu de lucru este omis atunci când contul aparține deja unuia |
/signed-out |
Reautentificare: același card de conexiuni la forge pe care îl afișează Setări, fără bară de pași și fără buton de continuare — routerul pleacă singur odată ce un forge raportează |
/workspaces |
Lista și selectorul de spații de lucru |
/workspaces/:workspaceId |
Redirecționează către /workspaces/:workspaceId/inbox |
Rute de spațiu de lucru
Secțiune intitulată „Rute de spațiu de lucru”Căile de mai jos omit prefixul /workspaces/:workspaceId.
| Cale | Parametri de interogare | Ecran |
|---|---|---|
/inbox |
— | Inbox unificat: PR-uri clasificate după ciclul de viață al revizuirii, plus munca non-PR care îl blochează pe operator. Ruta pe care se aterizează după gardă; un /workspaces/:workspaceId simplu redirecționează aici |
/spaces |
— | Suprafața spațiilor, fără niciun spațiu selectat |
/spaces/:spaceId |
?m=<messageId>, ?tab=<key> |
Un singur spațiu; m face un link direct către un mesaj și este consumat o singură dată la deschidere |
/tickets |
— | Panoul de tichete |
/tickets/:ticketId |
— | Tichet în vizualizare listă-detaliu |
/projects/:projectId |
— | Prezentare generală a proiectului |
/pull-requests |
?repo=<owner/name> |
Lista de PR-uri; repo selectează acel repo în bara laterală din stânga |
/pull-requests/compose |
?space=<spaceId> |
Compune un pull request nou; space numește spațiul al cărui worktree izolat furnizează branch-ul |
/pull-requests/:owner/:repo/:prNumber |
?tab=<key>, ?comment=<id> |
Detaliul PR-ului cu vizualizator de diff; comment este id-ul numeric REST al unui comentariu |
/pipelines |
— | Lista rulărilor de pipeline |
/pipelines/run |
?templateId=<id> |
Lansator de rulări manuale |
/pipelines/:runId |
— | Detaliul rulării de pipeline (cronologia pașilor) |
/plans |
— | Hub-ul Plan Studio: planuri active, documente de plan, playbook-uri |
/plans/:kind/:id |
— | Plan Studio pentru un singur plan; kind este orchestration sau document |
/meetings |
— | Lista întâlnirilor |
/meetings/record |
— | Ecranul de înregistrare a întâlnirii în direct |
/meetings/:meetingId |
— | Detaliul întâlnirii: note, transcriere, acțiuni, decizii |
/calendar |
— | Calendar: vizualizările pe lună, pe săptămână și agendă |
/calendar/:eventId |
— | Detaliul evenimentului de calendar (rută soră; partajează cheia paginii de calendar) |
/newsfeed |
— | Lista fluxului de știri |
/newsfeed/article/:articleId |
— | Cititor de articole |
/observability |
— | Hub-ul Observabilitate: filele Utilizare, Insights, Live și Calitate peste fluxul de jurnale de rulare al spațiului de lucru. Se deschide implicit pe fila Utilizare |
/users/:login |
— | Profilul de utilizator GitHub |
/teams/:organization/:slug |
— | Profilul echipei unei organizații GitHub |
/api-keys |
— | Gestionarea cheilor API. Fără punct de intrare în navigație — accesibilă doar prin URL |
/settings/… |
— | Ecranele de setări (mai jos) |
Conversațiile și firele nu au o rută proprie — un fir este o conversație în interiorul /spaces/:spaceId, deschisă ca filă de editor, nu adresată prin URL.
Nu există nicio rută /dashboard și niciun ecran de dashboard. Suprafața de analiză este /observability, accesată din subsolul barei laterale.
Nu există niciun element „Planuri” în bara laterală. Plan Studio se deschide ca filă de editor din rândul planului, în conversația care l-a produs; /plans și /plans/:kind/:id sunt linkuri directe.
/observability și /pull-requests/compose nu au nicio intrare în registrele de titluri de rută sau de breadcrumb, așa că ambele afișează numele simplu al aplicației în titlul ferestrei și nicio urmă de breadcrumb.
Rute de setări
Secțiune intitulată „Rute de setări”/settings redirecționează către /settings/you/appearance. Atât butonul de setări din bara laterală, cât și Cmd/Ctrl + , duc la /settings/you/appearance.
Căile de setări sunt grupate pe domenii de aplicare — you/, workspace/, server/ — pentru că segmentul arată pe cine afectează o modificare. Două căi preced această grupare și nu au domeniu de aplicare în URL: /settings/memory și /settings/pipelines.
| Cale | Ecran |
|---|---|
/settings/you/appearance |
Temă, limbă, tipografie, tema editorului (pagina de aterizare a setărilor) |
/settings/you/notifications |
Comutatoare per eveniment, orele de liniște |
/settings/you/keybindings |
Referință de scurtături de tastatură (doar în citire) |
/settings/you/audio |
Microfon, dictare, detectarea întâlnirilor și ieșirea de peisaj sonor |
/settings/you/devices |
Telefoane asociate și control remote |
/settings/you/newsfeed |
Gestionarea fluxului: surse, reîmprospătare, stare de citire |
Spațiu de lucru
Secțiune intitulată „Spațiu de lucru”| Cale | Ecran |
|---|---|
/settings/workspace/profile |
Profilul și identitatea în acest spațiu de lucru: nume, autor git, găzduire de cod, calendar |
/settings/workspace/general |
Nume, logo, globuri de secrete, concurența revizuirilor, denumirea branch-urilor, sănătatea sincronizării, punți de chat, zona periculoasă |
/settings/workspace/meetings |
Șabloane de note de întâlnire și profiluri vocale salvate |
/settings/workspace/members |
Lista membrilor, invitații, jurnal de audit. Jurnalul de audit se paginează cu ?cursor= opțional |
/settings/workspace/repositories |
Repo-urile înregistrate în acest spațiu de lucru |
/settings/workspace/agents |
Identitățile de agent înregistrate |
/settings/workspace/skills |
Configurarea skill-urilor |
/settings/memory |
Memoria spațiului de lucru: fapte, politici, graf de cunoștințe |
/settings/workspace/permissions |
Permisiunile agenților: matricea de guardrail-uri și sonda „ce-ar fi dacă” |
/settings/pipelines |
Șabloane de pipeline |
/settings/pipelines/:templateId |
Editorul de șabloane de pipeline (pânză cu tragere și plasare) |
| Cale | Ecran |
|---|---|
/settings/server/connection |
Conexiune și stare |
/settings/server/sso |
Autentificare unică (SAML, OIDC, provisionare SCIM) |
/settings/server/providers |
Provideri de modele și adaptoare |
/settings/server/mcp |
Servere MCP integrate și externe |
/settings/server/voice |
Modele vocale și de întâlniri (ASR, diarizare) |
/settings/server/rigs |
Stații: ce poate porni această gazdă, imagini de bază, imagini personalizate, mașini în rulare |
/settings/server/sandbox |
Acordări de execuție în sandbox: programe pe care agenții le pot rula din copia lor de lucru a repo-urilor tale |
/settings/server/diagnostics |
Diagnosticări și confidențialitate: sandbox, embedding, jurnalizare, raportarea crash-urilor |
/settings/server/backup |
Backup și restaurare: snapshot-uri de instalare, export per spațiu de lucru, import și ștergere |
/settings/server/about |
Despre și actualizări |
kSettingsNav din lib/features/settings/settings_nav.dart este singura sursă de adevăr pentru această listă. settings_nav_test.dart fixează id-uri unice, rute unice, ordinea aplatizată J/K și cele trei domenii de aplicare. Nu parcurge fiecare GoRoute înregistrat.
Configurarea rutelor
Secțiune intitulată „Configurarea rutelor”| Aspect | Fișier |
|---|---|
| Router | lib/router/app_router.dart |
| Constructorii de rute | lib/router/routes.dart |
| Gărzile de autentificare | lib/router/guards.dart |
| Poarta de onboarding | lib/features/auth/providers/onboarding_providers.dart |
| Navigarea în setări | lib/features/settings/settings_nav.dart |