Bỏ qua để đến nội dung

Bản đồ tuyến

Khung ứng dụng (ControlCenterLayout) bọc mọi tuyến bên trong không gian làm việc qua một ShellRoute. Mọi đích đến trong khung đều mang tiền tố không gian làm việc — /workspaces/:workspaceId/… — và id không gian làm việc trong URL là nguồn chân lý duy nhất cho không gian làm việc đang hoạt động. Chỉ những bề mặt trước ngữ cảnh là không có tiền tố: /splash, /onboarding, /signed-out và trình chọn /workspaces trần, tất cả đều toàn màn hình và nằm ngoài khung.

Chốt chặn hoàn tất khi có ít nhất một máy chủ mã được kết nối cho người dùng đã đăng nhập và có ít nhất một không gian làm việc tồn tại.

Thông tin xác thực bị thiếu và phần thiết lập ban đầu bị thiếu là hai màn hình khác nhau, và yếu tố phân biệt là users.onboarding_finished_at đọc từ chính identity.me của người gọi — không bao giờ là “đã có không gian làm việc tồn tại”, vì điều đó sai ngay khi ai đó được mời vào một không gian làm việc mà họ chưa từng tạo. Khi không có máy chủ mã nào được kết nối, một tài khoản đã hoàn tất thiết lập ban đầu sẽ đến /signed-out để xác thực lại; tài khoản chưa hoàn tất thì đến /onboarding. Khi cờ này vẫn chưa rõ, chốt chặn giữ nguyên màn hình splash thay vì đoán, bởi nó không bao giờ chuyển hướng ngược ra khỏi onboarding.

Đường dẫn Màn hình
/splash Màn hình splash lúc khởi động, nơi phân giải chốt chặn thiết lập ban đầu
/onboarding Kết nối một máy chủ mã, tạo hoặc tham gia một không gian làm việc, sandbox, adapter mặc định, rồi đến giọng nói. Bước không gian làm việc bị bỏ qua khi tài khoản đã thuộc về một không gian làm việc
/signed-out Xác thực lại: đúng thẻ kết nối máy chủ mã mà Cài đặt hiển thị, không có thanh bước và không có nút tiếp tục — bộ định tuyến tự rời đi khi một máy chủ mã báo về
/workspaces Danh sách và trình chọn không gian làm việc
/workspaces/:workspaceId Chuyển hướng đến /workspaces/:workspaceId/inbox

Các đường dẫn bên dưới lược bỏ tiền tố /workspaces/:workspaceId.

Đường dẫn Tham số truy vấn Màn hình
/inbox — Hộp thư hợp nhất: các PR được phân loại theo vòng đời đánh giá cùng công việc không phải PR đang chặn người vận hành. Tuyến đích sau chốt chặn; một /workspaces/:workspaceId trần sẽ chuyển hướng đến đây
/spaces — Bề mặt space, chưa chọn space nào
/spaces/:spaceId ?m=<messageId>, ?tab=<key> Một space; m liên kết sâu tới một tin nhắn và chỉ được dùng một lần khi mở
/tickets — Bảng phiếu
/tickets/:ticketId — Phiếu dạng chính - chi tiết
/projects/:projectId — Tổng quan dự án
/pull-requests ?repo=<owner/name> Danh sách PR; repo chọn kho lưu trữ đó trong ray bên trái
/pull-requests/compose ?space=<spaceId> Soạn một pull request mới; space chỉ định space có worktree cách ly cung cấp nhánh
/pull-requests/:owner/:repo/:prNumber ?tab=<key>, ?comment=<id> Chi tiết PR kèm trình xem diff; comment là id REST dạng số của một bình luận
/pipelines — Danh sách lần chạy quy trình
/pipelines/run ?templateId=<id> Trình khởi chạy thủ công
/pipelines/:runId — Chi tiết lần chạy quy trình (dòng thời gian các bước)
/plans — Trung tâm Studio kế hoạch: kế hoạch đang hoạt động, tài liệu kế hoạch, playbook
/plans/:kind/:id — Studio kế hoạch cho một kế hoạch; kind là orchestration hoặc document
/meetings — Danh sách cuộc họp
/meetings/record — Màn hình ghi cuộc họp trực tiếp
/meetings/:meetingId — Chi tiết cuộc họp: ghi chú, bản phiên âm, việc cần làm, quyết định
/calendar — Lịch: chế độ xem tháng, tuần và lịch trình
/calendar/:eventId — Chi tiết sự kiện lịch (tuyến ngang cấp; dùng chung khóa trang lịch)
/newsfeed — Danh sách bảng tin
/newsfeed/article/:articleId — Trình đọc bài viết
/observability — Trung tâm Quan sát: các thẻ Mức dùng, Phân tích, Trực tiếp và Chất lượng trên luồng nhật ký chạy của không gian làm việc. Mặc định mở thẻ Mức dùng
/users/:login — Hồ sơ người dùng GitHub
/teams/:organization/:slug — Hồ sơ nhóm của tổ chức GitHub
/api-keys — Quản lý khóa API. Không có điểm vào nào từ điều hướng — chỉ truy cập được bằng URL
/settings/… — Các màn hình cài đặt (bên dưới)

Hội thoại và luồng không có tuyến riêng — một luồng là một hội thoại bên trong /spaces/:spaceId, được mở dưới dạng thẻ trình soạn thảo chứ không được định địa chỉ bằng URL.

Không có tuyến /dashboard và cũng không có màn hình bảng điều khiển. Bề mặt phân tích là /observability, truy cập từ chân thanh bên.

Không có mục “Kế hoạch” nào trên thanh bên. Studio kế hoạch mở dưới dạng thẻ trình soạn thảo từ hàng của kế hoạch trong hội thoại đã tạo ra nó; /plans và /plans/:kind/:id là những liên kết sâu.

/observability và /pull-requests/compose không có mục nào trong sổ đăng ký tiêu đề tuyến hay đường dẫn điều hướng, nên cả hai đều hiển thị tên ứng dụng trần trong tiêu đề cửa sổ và không có vệt đường dẫn điều hướng.

/settings chuyển hướng đến /settings/you/appearance. Nút cài đặt trên thanh bên và Cmd/Ctrl + , đều dẫn đến /settings/you/appearance.

Các đường dẫn cài đặt được đặt trong không gian tên theo phạm vi — you/, workspace/, server/ — vì đoạn đó cho biết thay đổi ảnh hưởng đến ai. Hai đường dẫn có trước cơ chế không gian tên nên không mang phạm vi trong URL: /settings/memory và /settings/pipelines.

Đường dẫn Màn hình
/settings/you/appearance Chủ đề, ngôn ngữ, kiểu chữ, chủ đề trình soạn thảo (trang đích của cài đặt)
/settings/you/notifications Công tắc theo từng sự kiện, giờ yên tĩnh
/settings/you/keybindings Tham chiếu phím tắt (chỉ đọc)
/settings/you/audio Micro, đọc chính tả, phát hiện cuộc họp và đầu ra cảnh âm
/settings/you/devices Điện thoại đã ghép nối và điều khiển từ xa
/settings/you/newsfeed Quản lý bảng tin: nguồn, làm mới, trạng thái đã đọc
Đường dẫn Màn hình
/settings/workspace/profile Hồ sơ và danh tính trong không gian làm việc này: tên, tác giả git, nơi lưu trữ mã, lịch
/settings/workspace/general Tên, logo, mẫu glob bí mật, số đánh giá đồng thời, cách đặt tên nhánh, tình trạng đồng bộ, cầu nối chat, vùng nguy hiểm
/settings/workspace/meetings Mẫu ghi chú cuộc họp và hồ sơ giọng nói đã lưu
/settings/workspace/members Danh sách thành viên, lời mời, nhật ký kiểm tra. Nhật ký kiểm tra phân trang bằng ?cursor= tùy chọn
/settings/workspace/repositories Các kho lưu trữ đã đăng ký trong không gian làm việc này
/settings/workspace/agents Danh tính agent đã đăng ký
/settings/workspace/skills Cấu hình kỹ năng
/settings/memory Bộ nhớ không gian làm việc: dữ kiện, chính sách, đồ thị tri thức
/settings/workspace/permissions Quyền của agent: ma trận rào chắn và phép thử giả định
/settings/pipelines Mẫu quy trình
/settings/pipelines/:templateId Trình soạn mẫu quy trình (canvas kéo thả)
Đường dẫn Màn hình
/settings/server/connection Kết nối & trạng thái
/settings/server/sso Đăng nhập một lần (SAML, OIDC, cấp phát SCIM)
/settings/server/providers Nhà cung cấp mô hình và adapter
/settings/server/mcp Máy chủ MCP tích hợp sẵn và bên ngoài
/settings/server/voice Mô hình giọng nói và cuộc họp (ASR, phân tách người nói)
/settings/server/rigs Rigs: máy chủ này có thể khởi động những gì, ảnh nền, ảnh tùy chỉnh, máy đang chạy
/settings/server/sandbox Quyền cấp exec sandbox: các chương trình agent được phép chạy từ bản sao làm việc trong kho lưu trữ của bạn
/settings/server/diagnostics Chẩn đoán và quyền riêng tư: sandbox, embedding, ghi nhật ký, báo cáo sự cố
/settings/server/backup Sao lưu và khôi phục: ảnh chụp bản cài, xuất theo từng không gian làm việc, nhập và xóa
/settings/server/about Giới thiệu và cập nhật

kSettingsNav trong lib/features/settings/settings_nav.dart là nguồn chân lý duy nhất cho danh sách này. settings_nav_test.dart ghim id duy nhất, tuyến duy nhất, thứ tự J/K đã làm phẳng và ba phạm vi. Nó không duyệt mọi GoRoute đã đăng ký.

Mối quan tâm Tệp
Bộ định tuyến lib/router/app_router.dart
Hàm dựng tuyến lib/router/routes.dart
Chốt chặn xác thực lib/router/guards.dart
Chốt chặn thiết lập ban đầu lib/features/auth/providers/onboarding_providers.dart
Điều hướng cài đặt lib/features/settings/settings_nav.dart