ข้ามไปยังเนื้อหา

แผนที่เส้นทาง

เชลล์แอป (ControlCenterLayout) ครอบทุกเส้นทางภายในเวิร์กสเปซผ่าน ShellRoute ทุกปลายทางภายในเชลล์มีคำนำหน้าเป็นเวิร์กสเปซ — /workspaces/:workspaceId/… — และไอดีเวิร์กสเปซใน URL เป็นแหล่งความจริงเดียวสำหรับเวิร์กสเปซที่ใช้งานอยู่ มีเพียงพื้นผิวที่อยู่ก่อนบริบทเท่านั้นที่ไม่มีคำนำหน้า: /splash, /onboarding, /signed-out และตัวเลือก /workspaces เปล่า ๆ ซึ่งล้วนเป็นแบบเต็มหน้าจอและอยู่นอกเชลล์

ด่านจะสมบูรณ์เมื่อมีฟอร์จอย่างน้อยหนึ่งแห่งที่เชื่อมต่อไว้ สำหรับผู้ใช้ที่ลงชื่อเข้าใช้ และมีเวิร์กสเปซอย่างน้อยหนึ่งแห่ง

ข้อมูลรับรองที่หายไปกับการตั้งค่าที่ยังไม่เสร็จเป็นคนละหน้าจอกัน และตัวแยกคือ users.onboarding_finished_at ที่อ่านจาก identity.me ของผู้เรียกเอง — ไม่ใช่ “มีเวิร์กสเปซอยู่” ซึ่งผิดทันทีที่มีคนถูกเชิญเข้าเวิร์กสเปซที่ตัวเองไม่เคยสร้าง เมื่อไม่มีฟอร์จที่เชื่อมต่อ บัญชีที่เริ่มต้นใช้งานแล้วจะไปที่ /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> สเปซหนึ่งสเปซ; m ลิงก์ลึกไปยังข้อความหนึ่งและถูกใช้ไปครั้งเดียวเมื่อเปิด
/tickets — บอร์ดตั๋วงาน
/tickets/:ticketId — ตั๋วงานแบบมาสเตอร์-ดีเทล
/projects/:projectId — ภาพรวมโปรเจกต์
/pull-requests ?repo=<owner/name> รายการ PR; repo เลือกรีโพสิทอรีนั้นในแถบข้างซ้าย
/pull-requests/compose ?space=<spaceId> เขียน pull request ใหม่; space ระบุชื่อสเปซที่ worktree แยกตัวของมันให้สาขามา
/pull-requests/:owner/:repo/:prNumber ?tab=<key>, ?comment=<id> รายละเอียด PR พร้อมตัวดู diff; comment คือไอดี REST แบบตัวเลขของคอมเมนต์หนึ่งรายการ
/pipelines — รายการรันไปป์ไลน์
/pipelines/run ?templateId=<id> ตัวเรียกใช้การรันด้วยตนเอง
/pipelines/:runId — รายละเอียดรันไปป์ไลน์ (ไทม์ไลน์ของขั้นตอน)
/plans — ฮับ Plan Studio: แผนที่ใช้งานอยู่ เอกสารแผน เพลย์บุ๊ก
/plans/:kind/:id — 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/ — เพราะส่วนนั้นระบุว่าการเปลี่ยนแปลงส่งผลต่อใคร สองเส้นทางมีมาก่อนการแบ่งเนมสเปซและไม่มีขอบเขตใน URL: /settings/memory และ /settings/pipelines

เส้นทาง หน้าจอ
/settings/you/appearance ธีม ภาษา ตัวอักษร ธีมตัวแก้ไข (หน้าจอเริ่มต้นของการตั้งค่า)
/settings/you/notifications สวิตช์เปิดปิดต่อเหตุการณ์ ช่วงเวลาห้ามรบกวน
/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 สิทธิ์ของเอเจนต์: เมทริกซ์กฎคุมและตัวตรวจสอบแบบสมมติ
/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 เกี่ยวกับและอัปเดต

kSettingsNav ใน lib/features/settings/settings_nav.dart เป็นแหล่งความจริงเดียวสำหรับรายการนี้ settings_nav_test.dart ปักหมุดไอดีที่ไม่ซ้ำ เส้นทางที่ไม่ซ้ำ ลำดับ J/K แบบแบน และขอบเขตทั้งสาม มันไม่ได้ไล่ทุก 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