Ir al contenido

Mapa de rutas

El shell de la aplicación (ControlCenterLayout) envuelve cada ruta dentro del espacio de trabajo mediante un ShellRoute. Todo destino dentro del shell lleva el prefijo del espacio de trabajo — /workspaces/:workspaceId/… — y el id del espacio de trabajo de la URL es la única fuente de verdad del espacio de trabajo activo. Solo las superficies previas al contexto carecen de prefijo: /splash, /onboarding, /signed-out y el selector /workspaces sin más, todas a pantalla completa y fuera del shell.

La puerta está completa cuando hay al menos un host de código conectado para el usuario que ha iniciado sesión y existe al menos un espacio de trabajo.

Una credencial ausente y una configuración ausente son pantallas distintas, y el discriminante es users.onboarding_finished_at, leído del propio identity.me de quien llama — nunca «existen espacios de trabajo», que es falso en cuanto a alguien lo invitan a un espacio de trabajo que no creó. Sin ningún host de código conectado, una cuenta que ya ha completado la incorporación inicial va a /signed-out para volver a autenticarse; una que no lo ha hecho va a /onboarding. Mientras el indicador siga siendo desconocido, la guardia retiene la pantalla de inicio en lugar de suponer, porque nunca redirige de vuelta fuera de la incorporación inicial.

Ruta Pantalla
/splash Pantalla de inicio que resuelve la puerta de incorporación inicial
/onboarding Conectar un host de código, crear un espacio de trabajo o unirse a uno, entorno aislado, adaptador predeterminado y, por último, voz. El paso del espacio de trabajo se omite cuando la cuenta ya pertenece a uno
/signed-out Volver a autenticarse: la misma tarjeta de conexiones de host de código que muestra Ajustes, sin barra de pasos ni botón de continuar — el enrutador se marcha por su cuenta en cuanto un host de código se reporta
/workspaces Lista y selector de espacios de trabajo
/workspaces/:workspaceId Redirige a /workspaces/:workspaceId/inbox

Las rutas siguientes omiten el prefijo /workspaces/:workspaceId.

Ruta Parámetros de consulta Pantalla
/inbox — Bandeja de entrada unificada: PRs clasificadas por ciclo de vida de revisión más el trabajo que no es de PR y que bloquea al operador. La ruta de aterrizaje tras la guardia; un /workspaces/:workspaceId sin más redirige aquí
/spaces — Superficie de espacios, sin ningún espacio seleccionado
/spaces/:spaceId ?m=<messageId>, ?tab=<key> Un espacio; m enlaza directamente con un mensaje y se consume una vez al abrirlo
/tickets — Tablero de tickets
/tickets/:ticketId — Maestro-detalle de tickets
/projects/:projectId — Resumen del proyecto
/pull-requests ?repo=<owner/name> Lista de PRs; repo selecciona ese repositorio en la barra lateral izquierda
/pull-requests/compose ?space=<spaceId> Redactar una nueva pull request; space nombra el espacio cuyo worktree aislado aporta la rama
/pull-requests/:owner/:repo/:prNumber ?tab=<key>, ?comment=<id> Detalle de la PR con visor de diferencias; comment es el id numérico de la API REST de un comentario
/pipelines — Lista de ejecuciones de pipeline
/pipelines/run ?templateId=<id> Lanzador de ejecuciones manuales
/pipelines/:runId — Detalle de la ejecución de pipeline (cronología de pasos)
/plans — Centro de Plan Studio: planes activos, documentos de plan, playbooks
/plans/:kind/:id — Plan Studio para un plan; kind es orchestration o document
/meetings — Lista de reuniones
/meetings/record — Pantalla de grabación de reuniones en directo
/meetings/:meetingId — Detalle de la reunión: notas, transcripción, tareas pendientes, decisiones
/calendar — Calendario: vistas de mes, semana y agenda
/calendar/:eventId — Detalle del evento de calendario (ruta hermana; comparte la clave de página del calendario)
/newsfeed — Lista de la fuente de noticias
/newsfeed/article/:articleId — Lector de artículos
/observability — Centro de observabilidad: pestañas Uso, Resumen, En vivo y Calidad sobre el flujo de registros de ejecución del espacio de trabajo. Se abre en la pestaña Uso por defecto
/users/:login — Perfil de usuario de GitHub
/teams/:organization/:slug — Perfil de equipo de una organización de GitHub
/api-keys — Gestión de claves de API. Sin punto de entrada en la navegación — solo accesible por URL
/settings/… — Pantallas de ajustes (más abajo)

Las conversaciones y los hilos no tienen ruta propia — un hilo es una conversación dentro de /spaces/:spaceId, que se abre como pestaña del editor en lugar de direccionarse por URL.

No hay ninguna ruta /dashboard ni ninguna pantalla de panel. La superficie de analítica es /observability, a la que se llega desde el pie de la barra lateral.

No hay ningún elemento «Plans» en la barra lateral. Plan Studio se abre como pestaña del editor desde la fila del plan en la conversación que lo produjo; /plans y /plans/:kind/:id son enlaces directos.

/observability y /pull-requests/compose no tienen entrada en los registros de títulos de ruta ni de migas de pan, así que ambos muestran el nombre de la aplicación sin más en el título de la ventana y ninguna ruta de migas.

/settings redirige a /settings/you/appearance. Tanto el botón de ajustes de la barra lateral como Cmd/Ctrl + , llevan a /settings/you/appearance.

Las rutas de ajustes se agrupan por ámbito — you/, workspace/, server/ — porque el segmento indica a quién afecta un cambio. Dos rutas son anteriores a esta agrupación y no llevan ámbito en la URL: /settings/memory y /settings/pipelines.

Ruta Pantalla
/settings/you/appearance Tema, idioma, tipografía, tema del editor (la pantalla de inicio de los ajustes)
/settings/you/notifications Conmutadores por evento, horas de silencio
/settings/you/keybindings Referencia de atajos de teclado (solo lectura)
/settings/you/audio Micrófono, dictado, detección de reuniones y salida de paisajes sonoros
/settings/you/devices Teléfonos emparejados y control remoto
/settings/you/newsfeed Gestión de fuentes: orígenes, actualización, estado de lectura
Ruta Pantalla
/settings/workspace/profile Perfil e identidad en este espacio de trabajo: nombre, autor de git, alojamiento de código, calendario
/settings/workspace/general Nombre, logotipo, globs de rutas secretas, concurrencia de revisiones, nomenclatura de ramas, estado de sincronización, puentes de chat, zona de peligro
/settings/workspace/meetings Plantillas de notas de reunión y perfiles de voz guardados
/settings/workspace/members Lista de miembros, invitaciones, registro de auditoría. El registro de auditoría pagina con el ?cursor= opcional
/settings/workspace/repositories Repositorios registrados en este espacio de trabajo
/settings/workspace/agents Identidades de agente registradas
/settings/workspace/skills Configuración de skills
/settings/memory Memoria del espacio de trabajo: hechos, políticas, grafo de conocimiento
/settings/workspace/permissions Permisos de agentes: matriz de barandillas y sonda hipotética
/settings/pipelines Plantillas de pipeline
/settings/pipelines/:templateId Editor de plantillas de pipeline (lienzo de arrastrar y soltar)
Ruta Pantalla
/settings/server/connection Conexión y estado
/settings/server/sso Inicio de sesión único (SAML, OIDC, aprovisionamiento SCIM)
/settings/server/providers Proveedores y adaptadores de modelos
/settings/server/mcp Servidores MCP integrados y externos
/settings/server/voice Modelos de voz y reuniones (ASR, diarización)
/settings/server/rigs Rigs: qué puede arrancar este host, imágenes base, imágenes personalizadas, máquinas en ejecución
/settings/server/sandbox Concesiones de ejecución del entorno aislado: programas que los agentes pueden ejecutar desde su copia de trabajo de tus repositorios
/settings/server/diagnostics Diagnóstico y privacidad: aislamiento, indexación, registro, informes de fallos
/settings/server/backup Copia de seguridad y restauración: instantáneas de la instalación, exportación por espacio de trabajo, importación y eliminación
/settings/server/about Acerca de y actualizaciones

kSettingsNav, en lib/features/settings/settings_nav.dart, es la única fuente de verdad de esta lista. settings_nav_test.dart fija ids únicos, rutas únicas, el orden J/K aplanado y los tres ámbitos. No recorre todas las GoRoute registradas.

Aspecto Archivo
Enrutador lib/router/app_router.dart
Constructores de rutas lib/router/routes.dart
Guardias de autenticación lib/router/guards.dart
Puerta de incorporación inicial lib/features/auth/providers/onboarding_providers.dart
Navegación de ajustes lib/features/settings/settings_nav.dart