Mapa tras
Powłoka aplikacji
Dział zatytułowany „Powłoka aplikacji”Powłoka aplikacji (ControlCenterLayout) opakowuje każdą trasę wewnątrz obszaru roboczego przez ShellRoute. Każde miejsce docelowe w powłoce ma prefiks obszaru roboczego — /workspaces/:workspaceId/… — a identyfikator obszaru roboczego w adresie URL jest jedynym źródłem prawdy o aktywnym obszarze roboczym. Tylko widoki sprzed kontekstu nie mają prefiksu: /splash, /onboarding, /signed-out oraz samo /workspaces (wybór obszaru roboczego) — wszystkie na pełnym ekranie i poza powłoką.
Brama jest domknięta, gdy dla zalogowanego użytkownika połączono co najmniej jedno forge i istnieje co najmniej jeden obszar roboczy.
Brak poświadczenia i brak konfiguracji to różne ekrany, a rozstrzyga o tym users.onboarding_finished_at odczytane z własnego identity.me wywołującego — nigdy „obszary robocze istnieją”, co jest błędne w chwili, gdy ktoś zostanie zaproszony do obszaru roboczego, którego nigdy nie utworzył. Gdy nie połączono żadnego forge, konto, które ukończyło onboarding, trafia do /signed-out, aby ponownie się uwierzytelnić; konto, które go nie ukończyło, trafia do /onboarding. Dopóki flaga pozostaje nieznana, strażnik trzyma ekran startowy, zamiast zgadywać, ponieważ nigdy nie przekierowuje z powrotem poza onboarding.
Trasy bez prefiksu
Dział zatytułowany „Trasy bez prefiksu”| Ścieżka | Ekran |
|---|---|
/splash |
Ekran startowy, który rozstrzyga bramę onboardingu |
/onboarding |
Połącz forge, utwórz obszar roboczy albo dołącz do niego, sandbox, domyślny adapter, a następnie głos. Krok z obszarem roboczym jest pomijany, gdy konto już do niego należy |
/signed-out |
Ponowne uwierzytelnienie: ta sama karta połączeń z forge, którą renderują Ustawienia, bez paska kroków i przycisku kontynuowania — router wychodzi sam, gdy forge się zgłosi |
/workspaces |
Lista i wybór obszarów roboczych |
/workspaces/:workspaceId |
Przekierowuje do /workspaces/:workspaceId/inbox |
Trasy obszaru roboczego
Dział zatytułowany „Trasy obszaru roboczego”Poniższe ścieżki pomijają prefiks /workspaces/:workspaceId.
| Ścieżka | Parametry zapytania | Ekran |
|---|---|---|
/inbox |
— | Ujednolicona skrzynka: PR-y sklasyfikowane według cyklu życia recenzji oraz praca poza PR-ami blokująca operatora. Trasa docelowa po przejściu strażnika; samo /workspaces/:workspaceId przekierowuje tutaj |
/spaces |
— | Powierzchnia przestrzeni, bez wybranej przestrzeni |
/spaces/:spaceId |
?m=<messageId>, ?tab=<key> |
Jedna przestrzeń; m prowadzi bezpośrednim linkiem do wiadomości i jest zużywane przy pierwszym otwarciu |
/tickets |
— | Tablica zgłoszeń |
/tickets/:ticketId |
— | Zgłoszenie w układzie lista–szczegóły |
/projects/:projectId |
— | Przegląd projektu |
/pull-requests |
?repo=<owner/name> |
Lista PR-ów; repo wybiera to repozytorium na lewej szynie |
/pull-requests/compose |
?space=<spaceId> |
Tworzenie nowego pull requesta; space wskazuje przestrzeń, której odizolowany worktree dostarcza gałąź |
/pull-requests/:owner/:repo/:prNumber |
?tab=<key>, ?comment=<id> |
Szczegóły PR-a z przeglądarką diffów; comment to numeryczny identyfikator REST jednego komentarza |
/pipelines |
— | Lista uruchomień potoków |
/pipelines/run |
?templateId=<id> |
Ekran ręcznego uruchamiania potoku |
/pipelines/:runId |
— | Szczegóły uruchomienia potoku (os czasu kroków) |
/plans |
— | Centrum Plan Studio: aktywne plany, dokumenty planów, playbooki |
/plans/:kind/:id |
— | Plan Studio dla jednego planu; kind to orchestration albo document |
/meetings |
— | Lista spotkań |
/meetings/record |
— | Ekran nagrywania spotkania na żywo |
/meetings/:meetingId |
— | Szczegóły spotkania: notatki, transkrypcja, zadania do wykonania, decyzje |
/calendar |
— | Kalendarz: widoki miesiąca, tygodnia i agendy |
/calendar/:eventId |
— | Szczegóły wydarzenia w kalendarzu (trasa siostrzana; współdzieli klucz strony kalendarza) |
/newsfeed |
— | Lista newsfeeda |
/newsfeed/article/:articleId |
— | Czytnik artykułów |
/observability |
— | Centrum obserwowalności: karty Użycie, Analizy, Na żywo i Jakość nad strumieniem dzienników uruchomień obszaru roboczego. Domyślnie otwiera kartę Użycie |
/users/:login |
— | Profil użytkownika GitHub |
/teams/:organization/:slug |
— | Profil zespołu organizacji GitHub |
/api-keys |
— | Zarządzanie kluczami API. Brak punktu wejścia w nawigacji — dostępne tylko przez URL |
/settings/… |
— | Ekrany ustawień (poniżej) |
Rozmowy i wątki nie mają własnej trasy — wątek to rozmowa wewnątrz /spaces/:spaceId, otwierana jako karta edytora, a nie adresowana przez URL.
Nie istnieje trasa /dashboard ani ekran pulpitu. Powierzchnią analityczną jest /observability, dostępna ze stopki paska bocznego.
W pasku bocznym nie ma pozycji „Plany”. Plan Studio otwiera się jako karta edytora z wiersza planu w rozmowie, która go utworzyła; /plans i /plans/:kind/:id to linki bezpośrednie.
/observability i /pull-requests/compose nie mają wpisu w rejestrach tytułów tras ani ścieżek nawigacyjnych, więc oba pokazują w tytule okna samą nazwę aplikacji i żadnej ścieżki nawigacyjnej.
Trasy ustawień
Dział zatytułowany „Trasy ustawień”/settings przekierowuje do /settings/you/appearance. Przycisk ustawień na pasku bocznym i Cmd/Ctrl + , prowadzą do /settings/you/appearance.
Ścieżki ustawień są podzielone przestrzeniami nazw według zasięgu — you/, workspace/, server/ — ponieważ segment mówi, kogo dotyczy zmiana. Dwie ścieżki powstały przed wprowadzeniem przestrzeni nazw i nie mają zasięgu w adresie URL: /settings/memory i /settings/pipelines.
| Ścieżka | Ekran |
|---|---|
/settings/you/appearance |
Motyw, język, typografia, motyw edytora (ekran docelowy ustawień) |
/settings/you/notifications |
Przełączniki dla poszczególnych zdarzeń, godziny ciszy |
/settings/you/keybindings |
Informacje o skrótach klawiszowych (tylko do odczytu) |
/settings/you/audio |
Mikrofon, dyktowanie, wykrywanie spotkań i wyjście pejzażu dźwiękowego |
/settings/you/devices |
Sparowane telefony i sterowanie zdalne |
/settings/you/newsfeed |
Zarządzanie kanałem: źródła, odświeżanie, stan przeczytania |
Obszar roboczy
Dział zatytułowany „Obszar roboczy”| Ścieżka | Ekran |
|---|---|
/settings/workspace/profile |
Profil i tożsamość w tym obszarze roboczym: nazwa, autor git, hosting kodu, kalendarz |
/settings/workspace/general |
Nazwa, logo, wzorce ścieżek sekretów, rozrzut recenzji, nazewnictwo gałęzi, stan synchronizacji, mostki czatu, strefa niebezpieczeństwa |
/settings/workspace/meetings |
Szablony notatek ze spotkań i zapisane profile głosowe |
/settings/workspace/members |
Lista członków, zaproszenia, dziennik audytu. Dziennik audytu dzieli się na strony za pomocą opcjonalnego ?cursor= |
/settings/workspace/repositories |
Repozytoria zarejestrowane w tym obszarze roboczym |
/settings/workspace/agents |
Zarejestrowane tożsamości agentów |
/settings/workspace/skills |
Konfiguracja skilli |
/settings/memory |
Pamięć obszaru roboczego: fakty, zasady, graf wiedzy |
/settings/workspace/permissions |
Uprawnienia agentów: macierz guardraili i sonda A co jeśli? |
/settings/pipelines |
Szablony potoków |
/settings/pipelines/:templateId |
Edytor szablonu potoku (kanwa przeciągnij-i-upuść) |
| Ścieżka | Ekran |
|---|---|
/settings/server/connection |
Połączenie i status |
/settings/server/sso |
Logowanie jednokrotne (SAML, OIDC, provisionowanie SCIM) |
/settings/server/providers |
Dostawcy modeli i adaptery |
/settings/server/mcp |
Wbudowane i zewnętrzne serwery MCP |
/settings/server/voice |
Modele głosu i spotkań (ASR, diaryzacja) |
/settings/server/rigs |
Rigi: co ten host potrafi uruchomić, obrazy bazowe, obrazy niestandardowe, działające maszyny |
/settings/server/sandbox |
Uprawnienia wykonywania w sandboxie: programy, które agenci mogą uruchamiać z kopii roboczej Twoich repozytoriów |
/settings/server/diagnostics |
Diagnostyka i prywatność: sandbox, osadzanie, logowanie, zgłaszanie awarii |
/settings/server/backup |
Kopia zapasowa i przywracanie: migawki instalacji, eksport pojedynczego obszaru roboczego, import i usuwanie |
/settings/server/about |
O aplikacji i aktualizacje |
kSettingsNav w lib/features/settings/settings_nav.dart jest jedynym źródłem prawdy dla tej listy. settings_nav_test.dart przypina unikalne identyfikatory, unikalne trasy, spłaszczoną kolejność J/K oraz trzy zasięgi. Nie przechodzi przez każdą zarejestrowaną trasę GoRoute.
Konfiguracja tras
Dział zatytułowany „Konfiguracja tras”| Zagadnienie | Plik |
|---|---|
| Router | lib/router/app_router.dart |
| Funkcje budujące trasy | lib/router/routes.dart |
| Strażnicy uwierzytelniania | lib/router/guards.dart |
| Brama onboardingu | lib/features/auth/providers/onboarding_providers.dart |
| Nawigacja ustawień | lib/features/settings/settings_nav.dart |