ルートマップ
アプリシェル
「アプリシェル」というセクションアプリシェル(ControlCenterLayout)は、ShellRoute を介してワークスペース内のすべてのルートをラップします。シェル内のすべての遷移先にはワークスペースのプレフィックスが付き — /workspaces/:workspaceId/… — URL 内のワークスペース id が、アクティブなワークスペースの唯一の信頼できる情報源です。 プレフィックスが付かないのは、コンテキスト確立前のサーフェスだけです。すなわち /splash、/onboarding、/signed-out、および素の /workspaces ピッカーで、いずれも全画面表示でシェルの外側にあります。
ゲートが完了するのは、サインイン中のユーザーに対して少なくとも 1 つのコードホストが接続され、かつ少なくとも 1 つのワークスペースが存在するときです。
資格情報の欠如とセットアップの欠如は別の画面であり、その判別基準は、呼び出し元自身の identity.me から読み取る users.onboarding_finished_at です — 「ワークスペースが存在するかどうか」では決してありません。これは、自分が作成していないワークスペースに招待されたその瞬間に誤りになります。コードホストが 1 つも接続されていない場合、オンボーディングを完了済みのアカウントは再認証のために /signed-out へ進み、未完了のアカウントは /onboarding へ進みます。フラグがまだ不明な間は、ガードは推測せずにスプラッシュを保持します。オンボーディングから外へ戻すリダイレクトを決して行わないためです。
プレフィックスのないルート
「プレフィックスのないルート」というセクション| パス | 画面 |
|---|---|
/splash |
オンボーディングゲートを解決する起動スプラッシュ |
/onboarding |
コードホストへの接続、ワークスペースの作成または参加、サンドボックス、既定のアダプター、続いて音声。アカウントがすでにワークスペースに所属している場合、ワークスペースのステップは省略されます |
/signed-out |
再認証: 設定画面が描画するのと同じコードホスト接続カードを、ステップバーも続行ボタンもなしで表示します。コードホストが応答を返すと、ルーターが自ら画面を離れます |
/workspaces |
ワークスペースの一覧とピッカー |
/workspaces/:workspaceId |
/workspaces/:workspaceId/inbox へリダイレクトします |
ワークスペースのルート
「ワークスペースのルート」というセクション以下のパスでは /workspaces/:workspaceId プレフィックスを省略しています。
| パス | クエリパラメーター | 画面 |
|---|---|---|
/inbox |
— | 統合受信トレイ: レビューライフサイクルで分類された PR と、オペレーターをブロックしている PR 以外の作業。ガード通過後のランディングルートで、素の /workspaces/:workspaceId はここへリダイレクトします |
/spaces |
— | スペースサーフェス。スペースは未選択 |
/spaces/:spaceId |
?m=<messageId>, ?tab=<key> |
1 つのスペース。m はメッセージへのディープリンクで、開いたときに一度だけ消費されます |
/tickets |
— | チケットボード |
/tickets/:ticketId |
— | チケットのマスター/詳細 |
/projects/:projectId |
— | プロジェクトの概要 |
/pull-requests |
?repo=<owner/name> |
PR 一覧。repo は左レールでそのリポジトリを選択します |
/pull-requests/compose |
?space=<spaceId> |
新しいプルリクエストの作成。space は、分離されたワークツリーがブランチを提供するスペースを指定します |
/pull-requests/:owner/:repo/:prNumber |
?tab=<key>, ?comment=<id> |
diff ビューアー付きの PR 詳細。comment は 1 件のコメントの数値 REST id です |
/pipelines |
— | パイプライン実行の一覧 |
/pipelines/run |
?templateId=<id> |
手動実行ランチャー |
/pipelines/:runId |
— | パイプライン実行の詳細(ステップタイムライン) |
/plans |
— | Plan Studio ハブ: アクティブなプラン、プランドキュメント、プレイブック |
/plans/:kind/:id |
— | 1 つのプランの 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 で、サイドバーのフッターから到達します。
サイドバーに「プラン」の項目はありません。 Plan Studio は、そのプランを生み出した会話内のプランの行からエディタータブとして開きます。/plans と /plans/:kind/:id はディープリンクです。
/observability と /pull-requests/compose は、ルートタイトルやパンくずのレジストリにエントリがないため、どちらもウィンドウタイトルにはアプリ名だけを表示し、パンくずの階層も表示しません。
設定のルート
「設定のルート」というセクション/settings は /settings/you/appearance へリダイレクトします。サイドバーの設定ボタンと Cmd/Ctrl + , は、どちらも /settings/you/appearance へ移動します。
設定のパスはスコープ — you/、workspace/、server/ — で名前空間が分かれています。これは、そのセグメントが変更の影響範囲を表すためです。2 つのパスはこの名前空間化より前からあり、URL 内でスコープ化されていません: /settings/memory と /settings/pipelines です。
| パス | 画面 |
|---|---|
/settings/you/appearance |
テーマ、言語、タイポグラフィ、エディターテーマ(設定のランディング) |
/settings/you/notifications |
イベントごとのトグル、Quiet hours |
/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 |
エージェントの権限: ガードレールマトリクスと what-if プローブ |
/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 |
リグ: このホストが起動できるもの、ベースイメージ、カスタムイメージ、実行中のマシン |
/settings/server/sandbox |
サンドボックス実行許可: エージェントがあなたのリポジトリの作業コピーから実行できるプログラム |
/settings/server/diagnostics |
診断とプライバシー: サンドボックス化、埋め込み、ログ、クラッシュレポート |
/settings/server/backup |
バックアップと復元: インストールのスナップショット、ワークスペース単位のエクスポート、インポート、削除 |
/settings/server/about |
このアプリについてと更新 |
lib/features/settings/settings_nav.dart の kSettingsNav が、この一覧の唯一の信頼できる情報源です。settings_nav_test.dart は、一意な id、一意なルート、フラット化した J/K 順序、3 つのスコープを固定します。登録されたすべての 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 |