Peta rute
Shell aplikasi
Bagian berjudul “Shell aplikasi”Shell aplikasi (ControlCenterLayout) membungkus setiap rute di dalam ruang kerja melalui ShellRoute. Setiap tujuan di dalam shell diberi prefiks ruang kerja — /workspaces/:workspaceId/… — dan id ruang kerja di URL adalah satu-satunya sumber kebenaran untuk ruang kerja aktif. Hanya permukaan pra-konteks yang tidak berprefiks: /splash, /onboarding, /signed-out, dan pemilih /workspaces kosong, semuanya layar penuh dan berada di luar shell.
Gerbangnya selesai ketika setidaknya satu forge terhubung untuk pengguna yang sudah masuk dan setidaknya satu ruang kerja ada.
Kredensial yang hilang dan penyiapan yang belum selesai adalah dua layar yang berbeda, dan pembedanya adalah users.onboarding_finished_at yang dibaca dari identity.me milik pemanggil itu sendiri — bukan “ruang kerja ada”, yang langsung keliru begitu seseorang diundang ke ruang kerja yang tidak pernah ia buat. Tanpa forge yang terhubung, akun yang sudah menyelesaikan onboarding menuju /signed-out untuk autentikasi ulang; akun yang belum menuju /onboarding. Selama flag itu masih belum diketahui, penjaga menahan splash alih-alih menebak, karena ia tidak pernah mengalihkan kembali keluar dari onboarding.
Rute tanpa prefiks
Bagian berjudul “Rute tanpa prefiks”| Jalur | Layar |
|---|---|
/splash |
Splash awal yang menyelesaikan gerbang onboarding |
/onboarding |
Hubungkan forge, buat atau gabung ruang kerja, sandbox, adapter bawaan, lalu suara. Langkah ruang kerja dilewati jika akun sudah menjadi anggota salah satunya |
/signed-out |
Autentikasi ulang: kartu koneksi forge yang sama seperti yang dirender Pengaturan, tanpa bilah langkah dan tanpa tombol lanjutkan — router keluar sendiri begitu sebuah forge melapor |
/workspaces |
Daftar dan pemilih ruang kerja |
/workspaces/:workspaceId |
Dialihkan ke /workspaces/:workspaceId/inbox |
Rute ruang kerja
Bagian berjudul “Rute ruang kerja”Jalur di bawah ini menghilangkan prefiks /workspaces/:workspaceId.
| Jalur | Parameter kueri | Layar |
|---|---|---|
/inbox |
— | Kotak masuk terpadu: PR yang diklasifikasikan menurut siklus hidup tinjauan plus pekerjaan non-PR yang memblokir operator. Rute pendaratan pasca-penjaga; /workspaces/:workspaceId kosong dialihkan ke sini |
/spaces |
— | Permukaan space, tanpa space yang dipilih |
/spaces/:spaceId |
?m=<messageId>, ?tab=<key> |
Satu space; m menautkan dalam ke sebuah pesan dan dikonsumsi sekali saat dibuka |
/tickets |
— | Papan tiket |
/tickets/:ticketId |
— | Master-detail tiket |
/projects/:projectId |
— | Ringkasan proyek |
/pull-requests |
?repo=<owner/name> |
Daftar PR; repo memilih repositori itu di rel kiri |
/pull-requests/compose |
?space=<spaceId> |
Susun pull request baru; space menamai space yang worktree terisolasinya memasok branch |
/pull-requests/:owner/:repo/:prNumber |
?tab=<key>, ?comment=<id> |
Detail PR dengan penampil diff; comment adalah id REST numerik dari sebuah komentar |
/pipelines |
— | Daftar eksekusi pipeline |
/pipelines/run |
?templateId=<id> |
Peluncur eksekusi manual |
/pipelines/:runId |
— | Detail eksekusi pipeline (linimasa langkah) |
/plans |
— | Pusat Plan Studio: rencana aktif, dokumen rencana, playbook |
/plans/:kind/:id |
— | Plan Studio untuk satu rencana; kind adalah orchestration atau document |
/meetings |
— | Daftar rapat |
/meetings/record |
— | Layar perekaman rapat langsung |
/meetings/:meetingId |
— | Detail rapat: catatan, transkrip, item tindakan, keputusan |
/calendar |
— | Kalender: tampilan bulan, minggu, dan agenda |
/calendar/:eventId |
— | Detail acara kalender (rute saudara; berbagi kunci halaman kalender) |
/newsfeed |
— | Daftar umpan berita |
/newsfeed/article/:articleId |
— | Pembaca artikel |
/observability |
— | Pusat observabilitas: tab Penggunaan, Wawasan, Langsung, dan Kualitas di atas umpan log eksekusi ruang kerja. Secara bawaan membuka tab Penggunaan |
/users/:login |
— | Profil pengguna GitHub |
/teams/:organization/:slug |
— | Profil tim organisasi GitHub |
/api-keys |
— | Manajemen kunci API. Tidak ada titik masuk navigasi — hanya dapat dijangkau lewat URL |
/settings/… |
— | Layar Pengaturan (di bawah) |
Percakapan dan thread tidak punya rute sendiri — thread adalah percakapan di dalam /spaces/:spaceId, yang dibuka sebagai tab editor alih-alih dialamatkan lewat URL.
Tidak ada rute /dashboard dan tidak ada layar dasbor. Permukaan analitiknya adalah /observability, yang dicapai dari footer bilah sisi.
Tidak ada item bilah sisi “Plans”. Plan Studio terbuka sebagai tab editor dari baris rencana di percakapan yang menghasilkannya; /plans dan /plans/:kind/:id adalah tautan dalam.
/observability dan /pull-requests/compose tidak punya entri di registri judul rute atau breadcrumb, sehingga keduanya menampilkan nama aplikasi saja di judul jendela dan tanpa jejak breadcrumb.
Rute Pengaturan
Bagian berjudul “Rute Pengaturan”/settings dialihkan ke /settings/you/appearance. Tombol pengaturan di bilah sisi dan Cmd/Ctrl + , keduanya menuju /settings/you/appearance.
Jalur Pengaturan diberi ruang nama berdasarkan cakupan — you/, workspace/, server/ — karena segmen itu menyatakan siapa yang terpengaruh oleh suatu perubahan. Dua jalur mendahului pemberian ruang nama tersebut dan tidak bercakupan di URL: /settings/memory dan /settings/pipelines.
| Jalur | Layar |
|---|---|
/settings/you/appearance |
Tema, bahasa, tipografi, tema editor (halaman pendaratan Pengaturan) |
/settings/you/notifications |
Toggle per peristiwa, jam tenang |
/settings/you/keybindings |
Referensi pintasan keyboard (hanya-baca) |
/settings/you/audio |
Mikrofon, dikte, deteksi rapat, dan keluaran soundscape |
/settings/you/devices |
Ponsel yang dipasangkan dan kontrol jarak jauh |
/settings/you/newsfeed |
Manajemen umpan: sumber, penyegaran, status dibaca |
Ruang kerja
Bagian berjudul “Ruang kerja”| Jalur | Layar |
|---|---|
/settings/workspace/profile |
Profil dan identitas di ruang kerja ini: nama, penulis git, hosting kode, kalender |
/settings/workspace/general |
Nama, logo, glob rahasia, konkurensi tinjauan, penamaan branch, kesehatan sinkronisasi, jembatan chat, zona berbahaya |
/settings/workspace/meetings |
Templat catatan rapat dan profil suara tersimpan |
/settings/workspace/members |
Daftar anggota, undangan, jejak audit. Jejak audit dipaginasi dengan ?cursor= opsional |
/settings/workspace/repositories |
Repositori yang terdaftar di ruang kerja ini |
/settings/workspace/agents |
Identitas agen yang terdaftar |
/settings/workspace/skills |
Konfigurasi skill |
/settings/memory |
Memori ruang kerja: fakta, kebijakan, graf pengetahuan |
/settings/workspace/permissions |
Izin agen: matriks pagar pengaman dan uji “Bagaimana jika?” |
/settings/pipelines |
Templat pipeline |
/settings/pipelines/:templateId |
Editor templat pipeline (kanvas seret-lepas) |
Server
Bagian berjudul “Server”| Jalur | Layar |
|---|---|
/settings/server/connection |
Koneksi dan status |
/settings/server/sso |
Masuk tunggal (SAML, OIDC, provisi SCIM) |
/settings/server/providers |
Penyedia model dan adapter |
/settings/server/mcp |
Server MCP bawaan dan eksternal |
/settings/server/voice |
Model suara dan rapat (ASR, diarisasi) |
/settings/server/rigs |
Rigs: apa yang dapat di-boot host ini, image dasar, image kustom, mesin yang berjalan |
/settings/server/sandbox |
Hibah eksekusi sandbox: program yang boleh dijalankan agen dari salinan kerja repositori Anda |
/settings/server/diagnostics |
Diagnostik dan privasi: sandboxing, embedding, logging, pelaporan crash |
/settings/server/backup |
Cadangan dan pemulihan: snapshot instalasi, ekspor per ruang kerja, impor, dan penghapusan |
/settings/server/about |
Tentang dan pembaruan |
kSettingsNav di lib/features/settings/settings_nav.dart adalah satu-satunya sumber kebenaran untuk daftar ini. settings_nav_test.dart mematok id unik, rute unik, urutan J/K yang diratakan, dan ketiga cakupan. Pengujian itu tidak menelusuri setiap GoRoute yang terdaftar.
Konfigurasi rute
Bagian berjudul “Konfigurasi rute”| Aspek | Berkas |
|---|---|
| Router | lib/router/app_router.dart |
| Pembangun rute | lib/router/routes.dart |
| Penjaga autentikasi | lib/router/guards.dart |
| Gerbang onboarding | lib/features/auth/providers/onboarding_providers.dart |
| Navigasi Pengaturan | lib/features/settings/settings_nav.dart |