مواد پر جائیں

روٹ میپ

ایپ شیل (ControlCenterLayout) ورک اسپیس کے اندر موجود ہر روٹ کو ایک ShellRoute کے ذریعے لپیٹتا ہے۔ شیل کے اندر کی ہر منزل پر ورک اسپیس کا پری فکس لگا ہوتا ہے — /workspaces/:workspaceId/… — اور URL میں موجود ورک اسپیس آئی ڈی فعال ورک اسپیس کا واحد ذریعۂ حقیقت ہے۔ صرف سیاق سے پہلے کی سطحوں پر کوئی پری فکس نہیں ہوتا: /splash، /onboarding، /signed-out اور بغیر سابقہ /workspaces پکر، جو سب فل اسکرین اور شیل سے باہر ہیں۔

گیٹ اُس وقت مکمل ہوتا ہے جب سائن اِن صارف کے لیے کم از کم ایک forge منسلک ہو اور کم از کم ایک ورک اسپیس موجود ہو۔

کسی کریڈنشل کا نہ ہونا اور کوئی سیٹ اپ نہ ہونا دو الگ اسکرینیں ہیں، اور اِن میں فرق کرنے والی چیز users.onboarding_finished_at ہے جو کالر کے اپنے identity.me سے پڑھی جاتی ہے — ہرگز “ورک اسپیسز موجود ہیں” نہیں، جو اُس لمحے غلط ثابت ہو جاتا ہے جب کسی کو ایسے ورک اسپیس میں مدعو کیا جائے جو اُس نے خود نہ بنایا ہو۔ کوئی forge منسلک نہ ہونے پر، وہ اکاؤنٹ جس نے آن بورڈنگ مکمل کر لی ہو دوبارہ تصدیق کے لیے /signed-out پر جاتا ہے؛ اور جس نے نہ کی ہو وہ /onboarding پر جاتا ہے۔ جب تک یہ فلیگ نامعلوم رہتا ہے، گارڈ اندازہ لگانے کے بجائے اسپلاش کو روکے رکھتا ہے، کیونکہ وہ کبھی آن بورڈنگ سے واپس باہر ری ڈائریکٹ نہیں کرتا۔

راستہ اسکرین
/splash اسٹارٹ اپ اسپلاش جو آن بورڈنگ گیٹ کو حل کرتا ہے
/onboarding ایک forge جوڑیں، ورک اسپیس بنائیں یا اُس میں شامل ہوں، سینڈ باکس، ڈیفالٹ اڈاپٹر، پھر آواز۔ ورک اسپیس والا مرحلہ اُس وقت ہٹا دیا جاتا ہے جب اکاؤنٹ پہلے ہی کسی ورک اسپیس سے وابستہ ہو
/signed-out دوبارہ تصدیق: وہی forge-کنکشنز کارڈ جو ترتیبات رینڈر کرتی ہے، بغیر اسٹیپ بار اور بغیر جاری رکھیں بٹن — forge کے رپورٹ کرتے ہی روٹر خود بخود نکل جاتا ہے
/workspaces ورک اسپیس کی فہرست اور پکر
/workspaces/:workspaceId /workspaces/:workspaceId/inbox پر ری ڈائریکٹ کرتا ہے

نیچے دیے گئے راستوں میں /workspaces/:workspaceId پری فکس شامل نہیں ہے۔

راستہ کوئری پیرامز اسکرین
/inbox — متحد ان باکس: ریویو لائف سائیکل کے مطابق درجہ بند PRs کے ساتھ ساتھ وہ غیر-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 اُس اسپیس کا نام دیتا ہے جس کا الگ تھلگ ورک ٹری برانچ فراہم کرتا ہے
/pull-requests/:owner/:repo/:prNumber ?tab=<key>, ?comment=<id> diff ویوئر کے ساتھ PR کی تفصیل؛ 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 نام، لوگو، سیکرٹ گلوبز، ریویو کی بیک وقتی، برانچ کے نام کا انداز، سنک ہیلتھ، چیٹ برجز، ڈینجر زون
/settings/workspace/meetings میٹنگ نوٹ کے ٹیمپلیٹس اور محفوظ آواز پروفائلز
/settings/workspace/members راسٹر، دعوتیں، آڈٹ ٹریل۔ آڈٹ ٹریل اختیاری ?cursor= کے ساتھ صفحہ بند ہوتی ہے
/settings/workspace/repositories اِس ورک اسپیس میں رجسٹرڈ ریپوزٹریز
/settings/workspace/agents رجسٹرڈ ایجنٹ شناختیں
/settings/workspace/skills مہارت کی کنفیگریشن
/settings/memory ورک اسپیس میموری: حقائق، پالیسیاں، نالج گراف
/settings/workspace/permissions ایجنٹ اجازتیں: گارڈریل میٹرکس اور what-if پروب
/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 تعارف اور اپ ڈیٹس

lib/features/settings/settings_nav.dart میں kSettingsNav اِس فہرست کا واحد ذریعۂ حقیقت ہے۔ 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