Карта маршрутів
Оболонка застосунку
Розділ із назвою «Оболонка застосунку»Оболонка застосунку (ControlCenterLayout) обгортає кожен маршрут у межах робочого простору через ShellRoute. Кожен пункт призначення всередині оболонки має префікс робочого простору — /workspaces/:workspaceId/… — і ідентифікатор робочого простору в URL є єдиним джерелом істини для активного робочого простору. Лише поверхні до контексту не мають префікса: /splash, /onboarding, /signed-out і голий засіб вибору /workspaces — усі на весь екран і поза оболонкою.
Шлюз пройдено, коли для користувача, який увійшов, підключено щонайменше один forge і існує щонайменше один робочий простір.
Відсутні облікові дані та відсутнє налаштування — це різні екрани, і розрізняє їх users.onboarding_finished_at, прочитане з власного identity.me того, хто звертається, — а не «робочі простори існують», бо це хибно вже тієї миті, коли когось запрошують до робочого простору, якого він не створював. Якщо forge не підключено, обліковий запис, який пройшов онбординг, переходить на /signed-out, щоб автентифікуватися знову; той, що не пройшов, — на /onboarding. Поки прапорець невідомий, вартовий утримує splash, а не вгадує, бо він ніколи не переспрямовує назад з онбордингу.
Маршрути без префікса
Розділ із назвою «Маршрути без префікса»| Шлях | Екран |
|---|---|
/splash |
Початковий splash, який визначає результат шлюзу онбордингу |
/onboarding |
Підключіть forge, створіть робочий простір або приєднайтеся до нього, пісочниця, типовий адаптер, потім голос. Крок із робочим простором пропускається, якщо обліковий запис уже належить до якогось |
/signed-out |
Повторна автентифікація: та сама картка підключень forge, яку рендерять Налаштування, без смуги кроків і без кнопки продовження — маршрутизатор виходить сам, щойно forge дасть про себе знати |
/workspaces |
Список робочих просторів і засіб вибору |
/workspaces/:workspaceId |
Переспрямовує на /workspaces/:workspaceId/inbox |
Маршрути робочого простору
Розділ із назвою «Маршрути робочого простору»Наведені нижче шляхи опускають префікс /workspaces/:workspaceId.
| Шлях | Параметри запиту | Екран |
|---|---|---|
/inbox |
— | Єдині вхідні: PR, класифіковані за життєвим циклом перевірки, плюс робота без PR, що блокує оператора. Маршрут приземлення після вартового; голий /workspaces/:workspaceId переспрямовує сюди |
/spaces |
— | Поверхня простору, жодного простору не вибрано |
/spaces/:spaceId |
?m=<messageId>, ?tab=<key> |
Один простір; m веде глибоким посиланням на повідомлення і споживається один раз під час відкриття |
/tickets |
— | Дошка тікетів |
/tickets/:ticketId |
— | Деталі тікета (майстер — деталі) |
/projects/:projectId |
— | Огляд проєкту |
/pull-requests |
?repo=<owner/name> |
Список PR; repo вибирає цей репозиторій у лівій панелі |
/pull-requests/compose |
?space=<spaceId> |
Створення нового pull request; space називає простір, чиє ізольоване worktree дає гілку |
/pull-requests/:owner/:repo/:prNumber |
?tab=<key>, ?comment=<id> |
Деталі PR із переглядачем діфів; comment — числовий REST-ідентифікатор одного коментаря |
/pipelines |
— | Список запусків конвеєрів |
/pipelines/run |
?templateId=<id> |
Засіб запуску вручну |
/pipelines/:runId |
— | Деталі запуску конвеєра (хронологія кроків) |
/plans |
— | Хаб Plan Studio: активні плани, документи планів, плейбуки |
/plans/:kind/:id |
— | Plan Studio для одного плану; kind — це orchestration або document |
/meetings |
— | Список зустрічей |
/meetings/record |
— | Екран запису зустрічі наживо |
/meetings/:meetingId |
— | Деталі зустрічі: нотатки, транскрипт, завдання, рішення |
/calendar |
— | Календар: подання місяця, тижня та порядку денного |
/calendar/:eventId |
— | Деталі події календаря (сусідній маршрут; спільний ключ сторінки календаря) |
/newsfeed |
— | Список стрічки новин |
/newsfeed/article/:articleId |
— | Читач статей |
/observability |
— | Хаб спостережуваності: вкладки Використання, Інсайти, Наживо та Якість над стрічкою журналів запусків робочого простору. Типово відкривається вкладка Використання |
/users/:login |
— | Профіль користувача GitHub |
/teams/:organization/:slug |
— | Профіль команди організації GitHub |
/api-keys |
— | Керування API-ключами. Жодної точки входу в навігації — доступне лише за URL |
/settings/… |
— | Екрани налаштувань (нижче) |
Розмови та гілки не мають власного маршруту — гілка є розмовою всередині /spaces/:spaceId, яку відкривають як вкладку редактора, а не адресують за URL.
Маршруту /dashboard не існує, як і екрана дашборда. Аналітична поверхня — це /observability, доступна з нижнього колонтитула бічної панелі.
У бічній панелі немає пункту «Plans». Plan Studio відкривається як вкладка редактора з рядка плану в розмові, яка його породила; /plans і /plans/:kind/:id — це глибокі посилання.
/observability і /pull-requests/compose не мають запису в реєстрах заголовків маршрутів чи ланцюжків навігації, тож обидва показують саму назву застосунку в заголовку вікна й жодного ланцюжка навігації.
Маршрути налаштувань
Розділ із назвою «Маршрути налаштувань»/settings переспрямовує на /settings/you/appearance. Кнопка налаштувань у бічній панелі та Cmd/Ctrl + , обидві ведуть на /settings/you/appearance.
Шляхи налаштувань розділено за областями — you/, workspace/, server/ — бо сегмент указує, на кого впливає зміна. Два шляхи передують цьому поділу й не мають області в URL: /settings/memory і /settings/pipelines.
| Шлях | Екран |
|---|---|
/settings/you/appearance |
Тема, мова, типографіка, тема редактора (початковий екран налаштувань) |
/settings/you/notifications |
Перемикачі для кожної події, тихі години |
/settings/you/keybindings |
Довідник гарячих клавіш (лише для читання) |
/settings/you/audio |
Мікрофон, диктування, виявлення зустрічей і вивід звукових пейзажів |
/settings/you/devices |
Прив’язані телефони та віддалене керування |
/settings/you/newsfeed |
Керування стрічкою: джерела, оновлення, стан прочитаного |
Робочий простір
Розділ із назвою «Робочий простір»| Шлях | Екран |
|---|---|
/settings/workspace/profile |
Профіль та ідентичність у цьому робочому просторі: назва, автор git, хостинг коду, календар |
/settings/workspace/general |
Назва, логотип, glob-шаблони секретів, паралельність перевірок, іменування гілок, стан синхронізації, чат-мости, небезпечна зона |
/settings/workspace/meetings |
Шаблони нотаток зустрічей і збережені голосові профілі |
/settings/workspace/members |
Список учасників, запрошення, журнал аудиту. Журнал аудиту гортається через необов’язковий ?cursor= |
/settings/workspace/repositories |
Репозиторії, зареєстровані в цьому робочому просторі |
/settings/workspace/agents |
Зареєстровані ідентичності агентів |
/settings/workspace/skills |
Конфігурація навичок |
/settings/memory |
Пам’ять робочого простору: факти, політики, граф знань |
/settings/workspace/permissions |
Дозволи агента: матриця обмежень і зонд «що якщо» |
/settings/pipelines |
Шаблони конвеєрів |
/settings/pipelines/:templateId |
Редактор шаблону конвеєра (полотно з перетягуванням) |
| Шлях | Екран |
|---|---|
/settings/server/connection |
Підключення та стан |
/settings/server/sso |
Єдиний вхід (SAML, OIDC, підготовка через SCIM) |
/settings/server/providers |
Постачальники моделей та адаптери |
/settings/server/mcp |
Вбудовані та зовнішні MCP-сервери |
/settings/server/voice |
Голосові моделі та моделі зустрічей (ASR, діаризація) |
/settings/server/rigs |
Rigs: що цей хост може завантажити, базові образи, власні образи, запущені машини |
/settings/server/sandbox |
Дозволи на виконання в пісочниці: програми, які агенти можуть запускати зі своєї робочої копії ваших репозиторіїв |
/settings/server/diagnostics |
Діагностика й приватність: пісочниця, ембеддинг, журналювання, звітування про збої |
/settings/server/backup |
Резервне копіювання та відновлення: знімки інсталяції, експорт окремих робочих просторів, імпорт і видалення |
/settings/server/about |
Про застосунок і оновлення |
kSettingsNav у lib/features/settings/settings_nav.dart — єдине джерело істини для цього списку. settings_nav_test.dart фіксує унікальні id, унікальні маршрути, плаский порядок J/K і три області. Він не обходить кожен зареєстрований GoRoute.
Конфігурація маршрутів
Розділ із назвою «Конфігурація маршрутів»| Аспект | Файл |
|---|---|
| Маршрутизатор | lib/router/app_router.dart |
| Будівники маршрутів | lib/router/routes.dart |
| Вартові автентифікації | lib/router/guards.dart |
| Шлюз онбордингу | lib/features/auth/providers/onboarding_providers.dart |
| Навігація налаштувань | lib/features/settings/settings_nav.dart |