แผนที่เส้นทาง
เชลล์แอป
หัวข้อที่มีชื่อว่า “เชลล์แอป”เชลล์แอป (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 |