تخطَّ إلى المحتوى

خريطة المسارات

يغلّف غلاف التطبيق (ControlCenterLayout) كل مسار داخل مساحة العمل عبر ShellRoute. كل وجهة داخل الغلاف مسبوقة بمساحة العمل — /workspaces/:workspaceId/… — ومعرّف مساحة العمل في العنوان هو المصدر الوحيد لمساحة العمل النشطة. الأسطح التي تسبق السياق وحدها بلا بادئة: /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 — الوارد الموحّد: طلبات سحب مصنّفة حسب دورة حياة المراجعة، مع عمل غير مرتبط بطلب سحب يعوق المشغّل. مسار الهبوط بعد الحارس، ويعيد /workspaces/:workspaceId العاري التوجيه إليه
/spaces — سطح المساحات، بلا مساحة مختارة
/spaces/:spaceId ?m=<messageId>، ?tab=<key> مساحة واحدة؛ يعمّق m الرابط إلى رسالة ويُستهلك مرة واحدة عند الفتح
/tickets — لوحة التذاكر
/tickets/:ticketId — عرض التذكرة رئيسًا وتفاصيل
/projects/:projectId — نظرة عامة على المشروع
/pull-requests ?repo=<owner/name> قائمة طلبات السحب؛ يختار repo ذلك المستودع في السكة اليسرى
/pull-requests/compose ?space=<spaceId> إنشاء طلب سحب جديد؛ يسمّي space المساحة التي تمدّ الفرع بشجرة عملها المعزولة
/pull-requests/:owner/:repo/:prNumber ?tab=<key>، ?comment=<id> تفاصيل طلب السحب مع عارض الفروق؛ 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. لا مدخل تنقّل — لا يُبلَغ إلا بالعنوان
/settings/… — شاشات الإعدادات (أدناه)

لا مسار خاص بالمحادثات والخيوط. الخيط محادثة داخل /spaces/:spaceId، يُفتح لسان محرّر ولا يُعنون بمسار.

لا مسار /dashboard ولا شاشة لوحة معلومات. سطح التحليلات هو /observability، ويُبلَغ من تذييل الشريط الجانبي.

لا عنصر في الشريط الجانبي باسم «الخطط». يُفتح Plan Studio لسان محرّر من صف الخطة في المحادثة التي أنتجتها، و/plans و/plans/:kind/:id روابط عميقة.

/observability و/pull-requests/compose بلا مدخل في سجل عنوان المسار ولا في سجل شريط التنقل، فيُظهر كلاهما اسم التطبيق وحده في عنوان النافذة وبلا أثر لشريط التنقل.

يعيد /settings التوجيه إلى /settings/you/appearance. زر الإعدادات في الشريط الجانبي وCmd/Ctrl + , يصلان كلاهما إلى /settings/you/appearance.

تُسمّى مسارات الإعدادات حسب النطاق — you/ وworkspace/ وserver/ — لأن المقطع يبيّن من يمسّه التغيير. مساران أقدم من هذه التسمية وليسا محصورين بنطاق في العنوان: /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 الاسم والشعار واستثناءات مسارات الأسرار وتوزيع المراجعة وقالب اسم الفرع وسلامة المزامنة وجسور الدردشة ومنطقة الخطر
/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