رفتن به محتوا

نقشهٔ مسیرها

پوستهٔ اپ (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 نام، لوگو، استثناهای مسیر محرمانه، گسترش بازبینی، نام‌گذاری شاخه، سلامت همگام‌سازی، پل‌های گفتگو، منطقهٔ خطر
/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