Mapa de rotas
Shell do app
Seção intitulada “Shell do app”O shell do app (ControlCenterLayout) envolve toda rota dentro do espaço de trabalho por meio de um ShellRoute. Todo destino dentro do shell tem o prefixo do espaço de trabalho — /workspaces/:workspaceId/… — e o id do espaço de trabalho na URL é a única fonte de verdade do espaço de trabalho ativo. Só as superfícies anteriores ao contexto não têm prefixo: /splash, /onboarding, /signed-out e o seletor puro /workspaces, todas em tela cheia e fora do shell.
O portão é considerado completo quando pelo menos um forge está conectado para o usuário autenticado e existe pelo menos um espaço de trabalho.
Uma credencial ausente e uma configuração ausente são telas diferentes, e o discriminador é users.onboarding_finished_at, lido do próprio identity.me de quem chama — nunca “existem espaços de trabalho”, o que já está errado no momento em que alguém é convidado para um espaço de trabalho que nunca criou. Sem nenhum forge conectado, uma conta que passou pelo onboarding vai para /signed-out para se autenticar de novo; uma que não passou vai para /onboarding. Enquanto o sinalizador ainda é desconhecido, a guarda mantém a splash em vez de adivinhar, porque ela nunca redireciona de volta para fora do onboarding.
Rotas sem prefixo
Seção intitulada “Rotas sem prefixo”| Caminho | Tela |
|---|---|
/splash |
Splash de inicialização que resolve o portão de onboarding |
/onboarding |
Conectar um forge, criar ou entrar em um espaço de trabalho, sandbox, adaptador padrão e depois voz. A etapa do espaço de trabalho é dispensada quando a conta já pertence a um |
/signed-out |
Autenticar-se de novo: o mesmo cartão de conexões de forge que a tela Configurações renderiza, sem barra de etapas e sem botão de continuar — o roteador sai sozinho assim que um forge se reporta |
/workspaces |
Lista e seletor de espaços de trabalho |
/workspaces/:workspaceId |
Redireciona para /workspaces/:workspaceId/inbox |
Rotas do espaço de trabalho
Seção intitulada “Rotas do espaço de trabalho”Os caminhos abaixo omitem o prefixo /workspaces/:workspaceId.
| Caminho | Parâmetros de consulta | Tela |
|---|---|---|
/inbox |
— | Caixa de entrada unificada: PRs classificadas pelo ciclo de vida da revisão mais trabalho que não é de PR e que bloqueia o operador. A rota de destino após a guarda; um /workspaces/:workspaceId puro redireciona para cá |
/spaces |
— | Superfície de espaços, sem espaço selecionado |
/spaces/:spaceId |
?m=<messageId>, ?tab=<key> |
Um espaço; m cria um link direto para uma mensagem e é consumido uma vez na abertura |
/tickets |
— | Quadro de tickets |
/tickets/:ticketId |
— | Detalhe do ticket (lista-detalhe) |
/projects/:projectId |
— | Visão geral do projeto |
/pull-requests |
?repo=<owner/name> |
Lista de PRs; repo seleciona esse repositório na barra lateral esquerda |
/pull-requests/compose |
?space=<spaceId> |
Compor uma nova pull request; space nomeia o espaço cujo worktree isolado fornece o branch |
/pull-requests/:owner/:repo/:prNumber |
?tab=<key>, ?comment=<id> |
Detalhe da PR com visualizador de diff; comment é o id numérico REST de um comentário |
/pipelines |
— | Lista de execuções de pipeline |
/pipelines/run |
?templateId=<id> |
Iniciador de execução manual |
/pipelines/:runId |
— | Detalhe da execução do pipeline (linha do tempo de etapas) |
/plans |
— | Hub do Plan Studio: planos ativos, documentos de plano, playbooks |
/plans/:kind/:id |
— | Plan Studio de um plano; kind é orchestration ou document |
/meetings |
— | Lista de reuniões |
/meetings/record |
— | Tela de gravação de reunião ao vivo |
/meetings/:meetingId |
— | Detalhe da reunião: notas, transcrição, itens de ação, decisões |
/calendar |
— | Calendário: visões de mês, semana e agenda |
/calendar/:eventId |
— | Detalhe do evento do calendário (rota irmã; compartilha a chave da página de calendário) |
/newsfeed |
— | Lista do feed de notícias |
/newsfeed/article/:articleId |
— | Leitor de artigos |
/observability |
— | Hub de observabilidade: abas Uso, Resumo, Ao vivo e Qualidade sobre o feed de log de execução do espaço de trabalho. Abre por padrão na aba Uso |
/users/:login |
— | Perfil de usuário do GitHub |
/teams/:organization/:slug |
— | Perfil de equipe de organização do GitHub |
/api-keys |
— | Gerenciamento de chaves de API. Nenhum ponto de entrada de navegação — acessível apenas por URL |
/settings/… |
— | Telas de configurações (abaixo) |
Conversas e threads não têm rota própria — uma thread é uma conversa dentro de /spaces/:spaceId, aberta como aba do editor em vez de endereçada por URL.
Não existe rota /dashboard nem tela de dashboard. A superfície de análise é /observability, alcançada pelo rodapé da barra lateral.
Não existe nenhum item “Planos” na barra lateral. O Plan Studio abre como uma aba do editor a partir da linha do plano na conversa que o produziu; /plans e /plans/:kind/:id são links diretos.
/observability e /pull-requests/compose não têm entrada nos registros de título de rota nem de trilha de navegação, então ambas mostram o nome puro do app no título da janela e nenhuma trilha de navegação.
Rotas de configurações
Seção intitulada “Rotas de configurações”/settings redireciona para /settings/you/appearance. O botão de configurações da barra lateral e Cmd/Ctrl + , vão ambos para /settings/you/appearance.
Os caminhos de configurações são separados por escopo — you/, workspace/, server/ — porque o segmento indica quem uma alteração afeta. Dois caminhos são anteriores a essa separação e não têm escopo na URL: /settings/memory e /settings/pipelines.
| Caminho | Tela |
|---|---|
/settings/you/appearance |
Tema, idioma, tipografia, tema do editor (a página inicial das configurações) |
/settings/you/notifications |
Interruptores por evento, horário de silêncio |
/settings/you/keybindings |
Referência de atalhos de teclado (somente leitura) |
/settings/you/audio |
Microfone, ditado, detecção de reunião e saída de paisagens sonoras |
/settings/you/devices |
Telefones emparelhados e controle remoto |
/settings/you/newsfeed |
Gerenciamento de feeds: fontes, atualização, estado de leitura |
Espaço de trabalho
Seção intitulada “Espaço de trabalho”| Caminho | Tela |
|---|---|
/settings/workspace/profile |
Perfil e identidade neste espaço de trabalho: nome, autor do git, hospedagem de código, calendário |
/settings/workspace/general |
Nome, logo, globs de segredos, concorrência de revisão, nomenclatura de branches, saúde da sincronização, pontes de chat, zona de perigo |
/settings/workspace/meetings |
Modelos de notas de reunião e perfis de voz salvos |
/settings/workspace/members |
Lista de membros, convites, trilha de auditoria. A trilha de auditoria é paginada com ?cursor= opcional |
/settings/workspace/repositories |
Repositórios registrados neste espaço de trabalho |
/settings/workspace/agents |
Identidades de agentes registradas |
/settings/workspace/skills |
Configuração de skills |
/settings/memory |
Memória do espaço de trabalho: fatos, políticas, grafo de conhecimento |
/settings/workspace/permissions |
Permissões dos agentes: matriz de guardrails e sonda hipotética |
/settings/pipelines |
Modelos de pipeline |
/settings/pipelines/:templateId |
Editor de modelo de pipeline (canvas de arrastar e soltar) |
Servidor
Seção intitulada “Servidor”| Caminho | Tela |
|---|---|
/settings/server/connection |
Conexão e status |
/settings/server/sso |
Logon único (provisionamento SAML, OIDC, SCIM) |
/settings/server/providers |
Provedores e adaptadores de modelos |
/settings/server/mcp |
Servidores MCP integrados e externos |
/settings/server/voice |
Modelos de voz e reunião (ASR, diarização) |
/settings/server/rigs |
Rigs: o que este host consegue iniciar, imagens base, imagens personalizadas, máquinas em execução |
/settings/server/sandbox |
Concessões de execução no sandbox: programas que os agentes podem executar a partir da cópia de trabalho dos seus repositórios |
/settings/server/diagnostics |
Diagnóstico e privacidade: sandboxing, embedding, registro de logs, relatórios de falhas |
/settings/server/backup |
Backup e restauração: snapshots da instalação, exportação por espaço de trabalho, importação e exclusão |
/settings/server/about |
Sobre e atualizações |
kSettingsNav em lib/features/settings/settings_nav.dart é a única fonte de verdade desta lista. settings_nav_test.dart fixa ids únicos, rotas únicas, a ordem J/K achatada e os três escopos. Ele não percorre toda GoRoute registrada.
Configuração de rotas
Seção intitulada “Configuração de rotas”| Assunto | Arquivo |
|---|---|
| Roteador | lib/router/app_router.dart |
| Construtores de rota | lib/router/routes.dart |
| Guardas de autenticação | lib/router/guards.dart |
| Portão de onboarding | lib/features/auth/providers/onboarding_providers.dart |
| Navegação de configurações | lib/features/settings/settings_nav.dart |