ڈومین ایونٹس
ایونٹ بس
سیکشن کا عنوان “ایونٹ بس”DomainEventBus ایک ان پروسیس براڈکاسٹ پبلش/سبسکرائب بس ہے۔ پبلشرز publish(event) کال کرتے ہیں؛ سبسکرائبرز ایک ٹائپ شدہ on<T>() اسٹریم استعمال کرتے ہیں۔ ہر ایونٹ DomainEvent کو نافذ کرتا ہے اور occurredAt ساتھ رکھتا ہے۔
بس cc_server کے اندر چلتی ہے۔ ہر پبلشر اور ہر زندہ سبسکرائبر وہیں رہتا ہے۔ کوئی کلائنٹ اس بس کو نہیں دیکھتا — سرور ایک چُنا ہوا ذیلی مجموعہ notifications/* JSON-RPC فریمز کے طور پر آگے بھیجتا ہے، جو فی سبسکرائبر ورک اسپیس رکنیت کے مطابق فلٹر ہوتا ہے۔
| پیمانہ | تعداد |
|---|---|
| ٹھوس ایونٹ کلاسز | 54 |
سورس فائلیں (packages/cc_domain/lib/core/domain/events/) |
14 (نیز domain_event_bus.dart) |
| ایبسٹریکٹ بیسز جو کبھی براہِ راست شائع نہیں ہوتے | 1 (TaskLifecycleEvent، ایک سیلڈ درجہ بندی) |
نیچے کی کیٹلاگ کا ہر ایونٹ اسی ایک ڈائریکٹری میں رہتا ہے؛ کہیں اور کوئی ڈومین ایونٹ اعلان شدہ نہیں ہے۔
ورک اسپیس، ایجنٹ اور ریپو ایونٹس
سیکشن کا عنوان “ورک اسپیس، ایجنٹ اور ریپو ایونٹس”| ایونٹ | پیلوڈ | کب جاری ہوتا ہے |
|---|---|---|
WorkspaceCreated |
workspaceId |
ورک اسپیس بنتا ہے |
AgentRunCompleted |
agentId, runId?, workspaceId?, conversationId? |
ایجنٹ ایک رن مکمل کرتا ہے (کامیابی یا ناکامی) |
AgentAwaitingInput |
workspaceId, kind, summary, spaceId?, conversationId?, agentId?, agentName? |
کوئی ایجنٹ کسی انسان کا انتظار شروع کرتا ہے: کوئی منظوری، کوئی ask_user سوال یا اسناد کی وجہ سے رکا ہوا رن (kind کی قدر approval، question یا credential ہوتی ہے) |
RepoAdded |
repoId, path, workspaceId |
ایک ریپو رجسٹر ہوتا ہے؛ پس منظر میں کوڈ انڈیکسنگ شروع کرتا ہے |
SkillUpdated |
workspaceId, slug, origin, computedHash, scanVerdict? |
کوئی مہارت انسٹال یا تازہ ہوتی ہے اور اپنا سپلائی چین اسکین فیصلہ ساتھ لاتی ہے |
PR اور ریویو ایونٹس
سیکشن کا عنوان “PR اور ریویو ایونٹس”پہلا بلاک خود PR کا لائف سائیکل ہے۔ دوسرا خود لکھے PR کی نگرانی ہے: ایسے سگنلز جو آپ کے کھولے ہوئے PR کے بارے میں ہیں، اور اِن میں سے ہر ایک forUserId ساتھ رکھتا ہے تاکہ پول اُنہیں سب کو نشر کرنے کے بجائے اُس شخص تک پہنچا سکے جس سے وہ تعلق رکھتے ہیں۔
| ایونٹ | پیلوڈ | کب جاری ہوتا ہے |
|---|---|---|
PullRequestPublished |
prId, workspaceId, repoOwner, repoName |
ایجنٹ ایک PR کھولتا ہے |
PullRequestStatusChanged |
status, workspaceId, prId?, repoFullName?, prNumber? |
PR مرج/بند/کھلا/دوبارہ کھلا/منظور |
PrMerged |
prId, workspaceId, agentId |
PR مرج ہوتا ہے — ایک تنگ، صرف مرج کا سگنل جو اینالیٹکس/اطلاعات کے لیے رکھا گیا ہے |
PrReviewRequested |
workspaceId, repoOwner, repoName, prNumber, prTitle |
GitHub سرور صارف سے ریویو مانگتا ہے (اطلاعات پول، review_requested) |
PrMentioned |
workspaceId, repoOwner, repoName, prNumber, prTitle |
کسی PR پر سرور صارف کا ذکر ہوتا ہے (اطلاعات پول، mention) |
ExternalPrMerged |
workspaceId, repoOwner, repoName, prNumber, prTitle, mergedByLogin? |
باہر سے نگرانی شدہ (غیر ایجنٹ) PR مرج ہوا، جس کا پتہ GitHub اطلاعات پول نے لگایا؛ prMerged اطلاع کی قسم پر میپ ہوتا ہے |
ExternalPrDetected |
repoOwner, repoName, prNumber, prTitle, author, workspaceId? |
پولنگ سے ملا غیر ایجنٹ PR — صرف پائپ لائن (جو external_pr_welcome چلاتا ہے)، کوئی اطلاع نہیں اٹھاتا |
PrHeadChanged |
repoOwner, repoName, prNumber, prTitle, previousHeadSha, headSha, workspaceId |
PR کا head SHA آگے بڑھا — مصنف نے پش کیا |
ReviewBecameStale |
workspaceId, spaceId, repoOwner, repoName, prNumber, prTitle, reviewedHeadSha, headSha |
کوئی مکمل شدہ AI ریویو اب اُس PR کی وضاحت نہیں کرتا جس کا اُس نے ریویو کیا تھا۔ صرف اُس وقت جاری ہوتا ہے جب بے دخل کیے گئے کمٹ کے لیے کوئی ریویو موجود ہو، اس لیے یہ فی پش پنگ کے بجائے ایک سگنل رہتا ہے |
خود لکھے PR کی نگرانی
سیکشن کا عنوان “خود لکھے PR کی نگرانی”اِن تمام چھ میں workspaceId، repoOwner، repoName، prNumber، prTitle اور ایک اختیاری forUserId ہوتا ہے۔
| ایونٹ | اضافی پیلوڈ | کب جاری ہوتا ہے |
|---|---|---|
PrMergeReadinessChanged |
ready, reason |
آپ کا لکھا PR مرج کے قابل ہو گیا، یا ہونا بند ہو گیا |
PrReviewDecisionChanged |
decision, reviewersRemaining, approverLogin? |
کسی ریویوور نے منظوری دی، تبدیلیاں مانگیں، یا اُس کی منظوری برطرف ہوئی |
PrChecksStatusChanged |
failing, failingCheckName?, failingCheckUrl? |
CI سرخ ہو گیا، یا بحال ہو گیا |
PrCommentMentioned |
commentId, authorLogin, bodyPreview, isReviewComment, threadId?, path?, line? |
کسی نے PR کمنٹ یا ریویو کمنٹ میں آپ کا ذکر کیا |
PrThreadReplied |
commentId, authorLogin, bodyPreview, threadId?, path?, line? |
کسی نے اُس ریویو تھریڈ میں جواب دیا جس میں آپ شامل ہیں |
PrThreadResolved |
threadId, commentId?, path?, line? |
کسی نے اُس ریویو تھریڈ کو حل کیا جس میں آپ شامل ہیں |
میسجنگ ایونٹس
سیکشن کا عنوان “میسجنگ ایونٹس”| ایونٹ | پیلوڈ | کب جاری ہوتا ہے |
|---|---|---|
MessageReceived |
spaceId, messageId, senderName, contentPreview, isAgentMessage, workspaceId?, mentions, requestedByUserId?, senderUserId? |
نیا پیغام آتا ہے |
SpaceCreated |
spaceId, workspaceId |
اسپیس بنتی ہے |
SpaceDeleted |
spaceId, workspaceId |
اسپیس حذف ہو جاتی ہے |
SpaceProvisioningChanged |
workspaceId, spaceId, status, step? |
اسپیس کا ورک اسپیس پروویژننگ میں داخل ہوتا ہے، کسی قدم تک پہنچتا ہے (ریپو کلون کرنا، PR چیک آؤٹ کرنا، ایجنٹ سیٹ اپ کرنا)، یا تیار/ناکام پر پلٹ جاتا ہے — چیٹ برج اسے اُس کے ٹاسک کارڈ پر بیان کرتا ہے |
ٹکٹنگ ایونٹس
سیکشن کا عنوان “ٹکٹنگ ایونٹس”| ایونٹ | پیلوڈ | کب جاری ہوتا ہے |
|---|---|---|
TicketCreated |
ticketId, workspaceId |
ٹکٹ بنتا ہے |
TicketAssigned |
ticketId, ticketTitle, ticketBody?, ticketUrl?, assignedAgentId?, assigneeType, assignedTeamId?, workspaceId |
ٹکٹ کسی پرنسپل یا ٹیم کو تفویض |
TicketCompleted |
ticketId |
کام مکمل ہوتا ہے (حتمی) |
TicketFailed |
ticketId, errorMessage |
ایجنٹ ناکام ہوتا ہے (حتمی) |
TicketCancelled |
ticketId |
ٹکٹ منسوخ (حتمی) |
TicketStatusChanged |
ticketId, workspaceId, from, to |
کوئی بھی اسٹیٹس تبدیلی |
TicketReassigned |
ticketId, workspaceId, fromAgentId?, toAgentId? |
ٹکٹ دوبارہ تفویض |
TicketDetailsUpdated |
ticketId, workspaceId |
عنوان، تفصیل یا ترجیح بدلتی ہے |
ٹاسک لائف سائیکل ایونٹس
سیکشن کا عنوان “ٹاسک لائف سائیکل ایونٹس”یکجا ٹاسک لائف سائیکل اسٹریم — ایک ڈسپیچ شدہ ایجنٹ رن، جس کی کلید اُس کا رن لاگ id ہے۔ ہر ایونٹ taskId، فی ٹاسک ایک مونوٹونک seq، workspaceId?، agentId? اور ایک phase ساتھ رکھتا ہے؛ نیچے کی قطاریں صرف اضافی فیلڈز بتاتی ہیں۔
| ایونٹ | پیلوڈ | کب جاری ہوتا ہے |
|---|---|---|
TaskDispatched |
— | ٹاسک عمل درآمد کے لیے کسی بیک اینڈ کے حوالے |
TaskRunning |
— | ٹاسک نے آؤٹ پٹ دینا شروع کیا |
TaskWaitingLocalDirectory |
lockedPath, holderTaskId? |
ٹاسک پارک — ڈسک پر موجود اُس پاتھ لاک کا مالک کوئی اور ٹاسک ہے جس کی اُسے ضرورت ہے |
TaskProgress |
note? |
رن کے دوران پیش رفت کا چیک پوائنٹ |
TaskMessage |
messageType, content |
اسٹریم شدہ پیغام (text/thinking/tool_use/tool_result/error)؛ progress فیز کے تحت رپورٹ ہوتا ہے |
TaskCompleted |
summary? |
ٹاسک کامیابی سے مکمل |
TaskFailed |
errorMessage |
ٹاسک ایرر کے ساتھ مکمل |
TaskCancelled |
— | ٹاسک تکمیل سے پہلے منسوخ |
TaskPhase enum میں queued رکن بھی ہے، مگر کوئی چیز قطار میں رکھے جانے کا ایونٹ شائع نہیں کرتی — کوئی TaskQueued کلاس نہیں ہے۔ کسی ٹاسک کا پہلا قابلِ مشاہدہ فریم TaskDispatched ہے۔
پائپ لائن ایونٹس
سیکشن کا عنوان “پائپ لائن ایونٹس”| ایونٹ | پیلوڈ | کب جاری ہوتا ہے |
|---|---|---|
PipelineRunCompleted |
workspaceId, pipelineRunId, templateId |
رن مکمل ہوتا ہے |
PipelineRunCancelled |
workspaceId, pipelineRunId, templateId |
رن منسوخ (صارف یا نظام کی طرف سے) — ایک سوچا سمجھا توقف، ایرر نہیں |
PipelineRunFailed |
workspaceId, pipelineRunId, templateId, errorMessage |
رن ناکام ہوتا ہے |
صرف حتمی تبدیلیاں شائع ہوتی ہیں۔ نہ کوئی PipelineRunStarted ہے اور نہ فی قدم کوئی ایونٹ: کسی قدم کی پیش رفت کلائنٹس تک رن کی اپنی قطاروں اور جس ایجنٹ کو اُس نے ڈسپیچ کیا اُس کے ٹاسک لائف سائیکل اسٹریم کے ذریعے پہنچتی ہے، بس کے ذریعے نہیں۔
آبزرویبیلٹی ایونٹس
سیکشن کا عنوان “آبزرویبیلٹی ایونٹس”| ایونٹ | پیلوڈ | کب جاری ہوتا ہے |
|---|---|---|
ActivityLogged |
id, actorType, actorId?, action, entityType, entityId?, details?, workspaceId?, runId? |
آڈٹ ٹریل کا اندراج بنتا ہے |
BudgetThresholdCrossed |
scopeType, scopeId, spentCents, budgetCents, isHardStop |
خرچ حد سے بڑھ جاتا ہے |
شناخت اور رکنیت کے ایونٹس
سیکشن کا عنوان “شناخت اور رکنیت کے ایونٹس”| ایونٹ | پیلوڈ | کب جاری ہوتا ہے |
|---|---|---|
WorkspaceMemberAdded |
workspaceId, userId, role |
کوئی صارف ورک اسپیس میں شامل ہوتا ہے (دعوت کا استعمال یا ایڈمن کا اضافہ) |
WorkspaceMemberRemoved |
workspaceId, userId |
کوئی رکن ہٹایا جاتا ہے — اُس صارف کے ورک اسپیس تک محدود زندہ سیشنز کو فوراً رسائی دوبارہ جانچنی ہوتی ہے |
WorkspaceMemberRoleChanged |
workspaceId, userId, role |
کسی رکن کا کردار بدلتا ہے |
بس پر شناخت کی پوری سطح رکنیت ہی ہے۔ صارف کی تخلیق اور ڈیوائس کی منسوخی ہوتی ہے، مگر وہ ڈومین ایونٹس کے طور پر شائع نہیں ہوتیں — منسوخی بس سے گزارنے کے بجائے براہِ راست زندہ سیشنز پر نافذ کی جاتی ہے۔
کیلنڈر اور میٹنگ ایونٹس
سیکشن کا عنوان “کیلنڈر اور میٹنگ ایونٹس”| ایونٹ | پیلوڈ | کب جاری ہوتا ہے |
|---|---|---|
CalendarAuthExpired |
workspaceId, accountEmail |
کسی منسلک اکاؤنٹ کا OAuth ریفریش ٹوکن مستقل طور پر ناجائز ہو جاتا ہے (فی منقطع ہونے کے واقعے ایک بار شائع ہوتا ہے) |
MeetingStartingSoon |
workspaceId, eventId, title, startTime, meetingUrl? |
کوئی کیلنڈر ایونٹ کنفیگر شدہ لیڈ ونڈو کے اندر شروع ہو رہا ہے |
MeetingRecordingStopped |
workspaceId, meetingId, title, userNotes, transcript, summaryInstructions? |
کوئی میٹنگ ریکارڈنگ مکمل ہوتی ہے اور بلٹ اِن meeting_summary پائپ لائن شروع کرتی ہے |
رگ ایونٹس
سیکشن کا عنوان “رگ ایونٹس”| ایونٹ | پیلوڈ | کب جاری ہوتا ہے |
|---|---|---|
RigClosedEvent |
workspaceId, rigId, reason |
ایک رگ ختم ہو گئی، اپنی بندش کی وجہ کے ساتھ؛ صارفین صرف backendFailure پر عمل کرتے ہیں — باقی ہر وجہ یا تو درخواست کی گئی ہوتی ہے یا اُس کے ساتھ کوئی RigReaped بھی ہوتا ہے |
RigControlChanged |
workspaceId, rigId, controller? |
کسی انسان نے ایک رگ پر خصوصی کنٹرول لیا یا واپس دے دیا (چھوڑتے وقت controller null — ایونٹ یہ ریکارڈ نہیں کرتا کہ کس نے چھوڑا) |
RigReaped |
workspaceId, rigId, reason, agentId? |
نظام نے مشین واپس لے لی: بیکاری، TTL، یا میموری کے دباؤ پر انخلا (جو idleTimeout کے طور پر رپورٹ ہوتا ہے)، چلانے والے ایجنٹ کے ساتھ |
رگ کا کھلنا کوئی ایونٹ نہیں ہے۔ بوٹ مکمل ہوتا ہے اور رگ کی قطار تیار پر پلٹ جاتی ہے؛ کچھ شائع نہیں ہوتا، اس لیے سبسکرائب کرنے کے لیے کوئی RigOpened نہیں ہے۔
وہ ذیلی ڈومینز جن میں بالکل کوئی ایونٹ نہیں
سیکشن کا عنوان “وہ ذیلی ڈومینز جن میں بالکل کوئی ایونٹ نہیں”کئی ذیلی نظام جو باہر سے ایونٹ پر مبنی دکھائی دیتے ہیں، دراصل نہیں ہیں۔ وہ یہاں اس لیے درج ہیں کیونکہ اُن کی عدم موجودگی ایک ڈیزائن کا فیصلہ ہے، جو کسی ہک کی تلاش میں نکلنے سے پہلے جاننے کے قابل ہے:
| ذیلی ڈومین | اس کے بجائے حالت کیسے آگے بڑھتی ہے |
|---|---|
| میموری | record_memory_fact اور اُس کے ساتھی لکھ کر واپس آتے ہیں؛ recall پڑھتا ہے۔ کسی فیکٹ یا تنازع پر کچھ شائع نہیں ہوتا |
| آرکیسٹریشن | پروپوزل، اُس کی منظوری اور پیدا شدہ پائپ لائن رن قطاریں اور RPC کالیں ہیں |
| پلان دستاویزات | submit_plan ایک ریویژن لکھتا ہے؛ منظوری ایک آرکیسٹریشن مواد بناتی ہے۔ کسی کا بھی اعلان نہیں ہوتا |
| آرٹی فیکٹس | publish_artifact / revise_artifact سیدھا ریویژنز لکھتے ہیں |
| منظوریاں | ایسکلیشن منظوری ورک فلو سروس کے اندر نمٹایا جاتا ہے |
| ٹکٹ سنک | وینڈر کوآرڈینیٹر اوپر بیان کردہ ٹکٹ ایونٹس کو سبسکرائب کرتا ہے؛ آنے والے ویب ہکس سیدھا لاگو کیے جاتے ہیں |
| کیلنڈر ریفریش | ایک سنک ایونٹس اپسرٹ کرتا ہے اور کلائنٹ دوبارہ پڑھتا ہے؛ کوئی ریفریش براڈکاسٹ نہیں ہے |
| worktree مرج | worktree_merge_log میں ریکارڈ ہوتے ہیں اور وہیں سے پڑھے جاتے ہیں |
سبسکرائبرز
سیکشن کا عنوان “سبسکرائبرز”نیچے کا ہر سبسکرائبر runCcServer کے اندر (یا اُس کی بنائی ہوئی کسی سروس میں) بنایا جاتا ہے۔ کوئی کلائنٹ سائیڈ سبسکرائبر نہیں ہے۔
| سبسکرائبر | جو ایونٹس استعمال کرتا ہے |
|---|---|
WorkspaceSeeder |
WorkspaceCreated |
| اسٹارٹر ایوال سوٹ کی بیجائی (ان لائن) | WorkspaceCreated |
| چیٹ اسپیس پروویژننگ (ان لائن) | SpaceCreated |
PipelineTriggerDispatcher |
ہر DomainEvent؛ ہر فعال ٹرگر اپنی قسم کے لیے فلٹر کرتا ہے |
SubPipelineResumeListener |
PipelineRunCompleted, PipelineRunFailed |
PipelineCostRollupListener |
AgentRunCompleted |
BudgetEvaluationListener |
AgentRunCompleted |
MeetingSummaryReconciler |
PipelineRunCompleted, PipelineRunFailed, PipelineRunCancelled (صرف meeting_summary رنز) |
PipelineStepResumeListener |
AgentRunCompleted |
AgentRunTaskCompleter |
AgentRunCompleted |
GoalSupervisor |
AgentRunCompleted |
CheckerDispatchListener |
AgentRunCompleted |
TeamRoutingService |
AgentRunCompleted, TicketAssigned |
OrchestrationRunListener |
PipelineRunCancelled, PipelineRunFailed |
MultiVendorTicketSyncCoordinator |
TicketCreated, TicketAssigned, TicketReassigned, TicketStatusChanged, TicketDetailsUpdated |
WorktreeGcListener |
TicketCompleted, TicketCancelled, SpaceDeleted, PrMerged, PullRequestStatusChanged |
ChatBridgeService |
MessageReceived, SpaceProvisioningChanged |
ActivityLogPersister |
ActivityLogged |
RigEventListener |
RigControlChanged, RigReaped, RigClosedEvent — چلانے والے ایجنٹ کے اسٹیئرنگ لین پر ایک سادہ زبان میں نوٹس داخل کرتا ہے |
StaleReviewWatcher |
PrHeadChanged — ReviewBecameStale صرف اُس وقت شائع کرتا ہے جب بے دخل کیے گئے کمٹ کے لیے کوئی مکمل شدہ ریویو موجود ہو |
GitHubPrConversationBridge |
AgentRunCompleted — باہر جانے والے PR گفتگو کے جوابات |
NotificationFeedRecorder |
نیچے دیے گئے بائیس اطلاع کلاس ایونٹس |
RemoteEventForwarder |
وہی بائیس نیز TicketReassigned اور ہر TaskLifecycleEvent۔ تینوں رکنیت ایونٹس صرف اُس کا فی ورک اسپیس رکنیت کیشے باطل کرتے ہیں؛ وہ فریمز کے طور پر آگے نہیں بھیجے جاتے |
LocalRpcServer / RemoteRelayHost |
WorkspaceMemberRemoved — اُس صارف کی منسلک ورک اسپیس سبسکرپشنز گرا دیتا ہے؛ ساکٹ کھلا رہتا ہے |
TicketAssigned ایک آڈٹ اور اطلاع کا سگنل اور ایک پائپ لائن ٹرگر ہے۔ کسی ایجنٹ کو تفویض ملکیت ریکارڈ کرتی ہے اور کوئی رن شروع نہیں کرتی — کوئی ٹکٹ ڈسپیچر نہیں ہے۔ کسی ٹیم کو تفویض (assignedTeamId سیٹ) استثناء ہے: TeamRoutingService ٹیم لیڈر کو ڈسپیچ کرتی ہے۔
TicketRemoteSyncHandler کا اعلان ہے مگر پروڈکشن کوڈ میں کبھی بنایا نہیں جاتا، اس لیے آج یہ کسی چیز کو سبسکرائب نہیں کرتا۔ کلائنٹ سائیڈ NotificationEventMapper صرف اپنے ہی ٹیسٹ میں بنایا جاتا ہے — یہ کلائنٹ/سرور کی تقسیم سے پہلے والے ان پروسیس راستے کا بقیہ ہے۔ زندہ ٹوسٹس نیچے دیے گئے وائر فریمز سے آتے ہیں۔
اطلاع کی میپنگ
سیکشن کا عنوان “اطلاع کی میپنگ”سرور پر NotificationFeedRecorder اور RemoteEventForwarder اِن ایونٹس کو notifications/* وائر فریمز (notification_wire.dart) میں بدلتے ہیں۔ کلائنٹ پر RpcNotificationMapper → mapNotificationFrame ایک فریم کو AppNotification میں بدلتا ہے۔
ٹھیک سترہ اطلاع کی اقسام ہیں۔ کئی ایونٹس ایک سے زیادہ وائر میتھڈ پر میپ ہوتے ہیں، کیونکہ فریم کنارہ لے کر چلتا ہے (ناکام بمقابلہ بحال) جبکہ قسم سوال لے کر چلتی ہے (“CI کیا کر رہا ہے؟”)۔
| قسم | ماخذ ایونٹ | وائر میتھڈ |
|---|---|---|
newMessage |
MessageReceived |
notifications/message_received (آپ کا ذکر کرتا ہے) |
agentRunCompleted |
MessageReceived |
notifications/message_received (is_agent_message، آپ کا ذکر نہیں) |
agentAwaitingInput |
AgentAwaitingInput |
notifications/agent_awaiting_input |
ticketAssigned |
TicketAssigned |
notifications/ticket_assigned |
ticketStatusChanged |
TicketStatusChanged |
notifications/ticket_status_changed |
pullRequestPublished |
PullRequestPublished |
notifications/pr_published |
prMerged |
PrMerged |
notifications/pr_merged |
prMerged |
ExternalPrMerged |
notifications/external_pr_merged |
prMentioned |
PrMentioned |
notifications/pr_mentioned |
prMentioned |
PrCommentMentioned |
notifications/pr_comment_mentioned |
reviewRequested |
PrReviewRequested |
notifications/pr_review_requested |
reviewStale |
ReviewBecameStale |
notifications/review_stale |
prMergeReadiness |
PrMergeReadinessChanged |
notifications/pr_ready_to_merge / pr_merge_blocked |
prReviewDecision |
PrReviewDecisionChanged |
notifications/pr_approved / pr_changes_requested / pr_review_dismissed |
prChecksStatus |
PrChecksStatusChanged |
notifications/pr_checks_failed / pr_checks_recovered |
prThreadActivity |
PrThreadReplied |
notifications/pr_thread_replied |
prThreadActivity |
PrThreadResolved |
notifications/pr_thread_resolved |
meetingStartsSoon |
MeetingStartingSoon |
notifications/meeting_starting_soon |
calendarAuthExpired |
CalendarAuthExpired |
notifications/calendar_auth_expired |
rigStatusChanged |
RigControlChanged |
notifications/rig_control_changed |
rigStatusChanged |
RigReaped |
notifications/rig_reaped |
rigStatusChanged |
RigClosedEvent |
notifications/rig_closed |
رگ ٹیک اوور کا فریم اُسے واپس نہیں بھیجا جاتا جس نے کنٹرول لیا، چھوڑنے کا فریم
بغیر فلٹر ہوتا ہے (ایونٹ یہ ریکارڈ نہیں کرتا کہ کس نے چھوڑا)، اور صرف
backendFailure بندش ہی rig_closed فریم پیدا کرتی ہے — باقی وجوہات یا تو
درخواست کی گئی ہوتی ہیں یا ریپ فریم پہلے ہی اُنہیں ڈھانپ چکا ہوتا ہے۔
AgentAwaitingInput کو AgentAwaitingInputPublisher شائع کرتا ہے، جو منظوریوں اور اسناد کی رکاوٹوں کی رجسٹریوں میں نئے اندراجات پر نظر رکھتا ہے، اور ہر ask_user سوال کی خبر اُسے AgentQuestionService دیتا ہے۔ ایک انتظار ایک ایونٹ ہے؛ انتظار ختم ہونے پر کچھ شائع نہیں ہوتا۔
خود لکھے PR کی پانچ اقسام forUserId ساتھ رکھتی ہیں، اس لیے وہ ورک اسپیس میں سب کے بجائے مصنف تک پہنچتی ہیں۔
RemoteEventForwarder مزید TicketReassigned کو notifications/ticket_reassigned کے طور پر اور ہر TaskLifecycleEvent کو notifications/task_<phase> کے طور پر آگے بھیجتا ہے۔ اِن میں سے کوئی بھی اطلاع کی قسم پر میپ نہیں ہوتا — وہ لائیو UI چلاتے ہیں، اطلاعات کا مرکز نہیں۔ رکنیت ایونٹس فریمز کے طور پر آگے نہیں بھیجے جاتے: وہ فارورڈر کا کیشے باطل کرتے ہیں، اور سیشن ہوسٹس ہٹائے گئے رکن کی ورک اسپیس سبسکرپشنز گرا دیتے ہیں۔