نقشهٔ مسیرها
پوستهٔ اپ
بخش با عنوان “پوستهٔ اپ”پوستهٔ اپ (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 |