{"generatedAt":"2026-05-20T03:30:35.887Z","operationsState":{"overall":"critical","reason":"1 decision(s) waiting → collab reply; 2 agent(s) stale (codex@mission-control, cursor@mission-control) → collab kickall","severity":"critical","nextAction":"Track pickup in COLLAB and route unclear ownership immediately.","humanAction":"1 decision(s) pending: GitHub annotation on Vibeful wrapper jobs 26017933766 and 26"},"sinceLastVisit":{"commits":0,"decisions":10,"requests":1,"releases":0,"blockers":1,"recentDecisions":[{"date":"2026-05-20","decision":"Typed actor collaboration templates defined","context":"User corrected the framework: builder/verifier/planner are roles, while Cursor/Codex/Claude Code are runtimes; humans are actors too, with natural-language input adapted into required protocol fields. Codex added `docs/collaboration-templates-v1.md` and aligned SaaS/onboarding/control-plane docs around deterministic workflows, role/runtime separation, and human input validation.","by":"jiansen + codex"},{"date":"2026-05-20","decision":"Elegant Actor Workflow v1 implementation slice defined","context":"User asked whether the comprehensive design was over-designed and whether Cursor needed a spec. Codex narrowed the next implementation to three visible actor kinds, four message categories, one Software Product Delivery template, `/command` as category-based message creation, actor registry role/runtime separation, and required-field validation.","by":"jiansen + codex"},{"date":"2026-05-19","decision":"R-008 upgrade control plane phase 2 landed","context":"Codex added `/upgrades` as the SaaS version-drift surface: target Cloud/protocol/rules/adapter/gate versions, project upgrade matrix, runtime proof risk, and explicit local `collab` commands. This moves the next gap from \"show version drift\" to \"hosted auth/pairing/project-agent registration/event sync\".","by":"codex"},{"date":"2026-05-19","decision":"R-008 registration/enrollment API contracts landed","context":"Codex added `/api/projects/register` and `/api/agents/enroll` as local-adapter-safe contracts. They expose required fields, policy defaults, latest protocol versions, and validated POST behavior without implying hosted MC can silently mutate local repos. Next cloud gap is pairing tokens, event ingestion, machine freshness, and hosted storage/auth.","by":"codex"},{"date":"2026-05-19","decision":"R-008 event ingestion and machine freshness landed","context":"Codex added `/api/events`, a transparent local-dev `docs/cloud-events.json` ledger, and an `/upgrades` Machine Pairing And Sync Freshness section. This models cloud/local adapter pairing and token-scope freshness without adding a runner, scheduler, or filesystem authority assumption. Next gap is hosted token issuance/revocation, event signatures/replay protection, and durable workspace storage.","by":"codex"}]},"systemHealth":{"overall":"critical","signals":{"agentsRunning":0,"agentsStale":2,"boardConflicts":0,"staleClaims":0,"orphanUpstreams":0,"staleOwnershipDrive":0,"humanBlockers":1,"releaseHandoffsNeedingRouting":0,"criticalFindings":0}},"patrolDecision":{"mode":"drive","level":"drive","project":"mission-control","owner":"codex","title":"Drive mission-control: MC product/control-plane QA","reason":"Codex patrol is conservative on empty queue: if no self-block is present, wait for next heartbeat/re-read before initiating a new high-ROI task, unless board drift/security/authorized verification is obvious.","action":"Track pickup in COLLAB and route unclear ownership immediately."},"krMetrics":{"commits24h":0,"humanRequests":1,"activeBlockers":0,"dashboard":"operational"},"registry":{"registered":3,"discovered":0,"items":[{"name":"beefit","root":"/Users/jiansenhe/Coding/beefit","collabPath":"docs/COLLAB.md","absoluteCollabPath":"/Users/jiansenhe/Coding/beefit/docs/COLLAB.md","registered":true,"exists":false,"source":"docs/projects.json","note":"Registered but COLLAB.md is missing or unreadable."},{"name":"mission-control","root":"/var/task","collabPath":"docs/COLLAB.md","absoluteCollabPath":"/var/task/docs/COLLAB.md","registered":true,"exists":true,"source":"docs/projects.json","note":"Loaded into dashboard metrics and patrol decisions."},{"name":"vibeful","root":"/Users/jiansenhe/Coding/vibeful","collabPath":"docs/COLLAB.md","absoluteCollabPath":"/Users/jiansenhe/Coding/vibeful/docs/COLLAB.md","registered":true,"exists":false,"source":"docs/projects.json","note":"Registered but COLLAB.md is missing or unreadable."}]},"productDirection":{"status":"draft-ready","href":"/product-design","sourcePath":"/var/task/docs/product-design.md","recommendation":"Build Mission Control as an agent ops console first, with a triage-board layer for handoffs. It should feel closer to Vercel project operations plus Linear/Sentry triage than to a generic analytics dashboard.","summary":"First viewport should expose the current patrol decision, Mission Control self-health, project registry/discovery, and cross-project risk. Project cards and queues sit below that, because the primary user question is \"what needs driving now?\" not \"how many cards exist?\""},"releaseHandoffs":[],"dependencyGraph":{"blockers":0,"edges":0,"blockedCount":0,"orphanUpstreams":0,"topBlockers":[]},"verificationReadiness":{"ready":0,"blocked":0,"waiting":0,"items":[]},"agentRuntime":{"agents":[{"agentId":"codex@mission-control","project":"mission-control","role":"codex","reportStatus":"stale","patrolMode":"on","lastTaskCompletedAt":"","lastTaskCompletedAge":"not reported","lastProtocolReviewAt":"","lastProtocolReviewAge":"not reported","selfBlockHandledAt":"","selfBlockHandledAge":"not reported","lastSeen":"2026-05-19T08:26:44+08:00","lastSeenAge":"1d ago","lastReportRef":"agent-runtime.json: collab report-runtime","loopHealth":"stale","askQuestionPolicy":"disabled","rulesFreshness":"fresh","protocolSource":"shared COLLAB patrol protocol","collabCommandSource":"shared","emptyQueuePolicy":"next-heartbeat-confirm","nextRuntimeAction":"Refresh stale agent-runtime report (>30m old)"},{"agentId":"cursor@mission-control","project":"mission-control","role":"cursor","reportStatus":"stale","patrolMode":"on","lastTaskCompletedAt":"2026-05-19T07:57:00+08:00","lastTaskCompletedAge":"1d ago","lastProtocolReviewAt":"2026-05-19T07:20:00+08:00","lastProtocolReviewAge":"1d ago","selfBlockHandledAt":"2026-05-19T07:20:00+08:00","selfBlockHandledAge":"1d ago","lastSeen":"2026-05-19T07:57:00+08:00","lastSeenAge":"1d ago","lastReportRef":"agent-runtime.json: collab report-runtime","loopHealth":"stale","askQuestionPolicy":"disabled","rulesFreshness":"fresh","protocolSource":"shared COLLAB patrol protocol","collabCommandSource":"shared","emptyQueuePolicy":"immediate-init","nextRuntimeAction":"Refresh stale agent-runtime report (>30m old)"}],"activeCount":0,"idleCount":0,"staleCount":2,"ruleFreshness":[{"project":"mission-control","file":"AGENTS.md","lastModified":"2018-10-20T01:46:40.000Z","ageDays":2769,"stale":true}],"staleRulesCount":1,"reportSource":"docs/agent-runtime.json + child .collab/runtime/reports.jsonl","explicitReportCount":0,"missingReportCount":0,"staleReportCount":2,"runtimeAdoption":{"items":[],"needsAdoptionCount":0,"openRequestCount":0,"unroutedCount":0},"commandSourceAdoption":{"items":[],"needsAdoptionCount":0,"openRequestCount":0,"unroutedCount":0}},"commandSourceAdoption":{"items":[],"needsAdoptionCount":0,"openRequestCount":0,"unroutedCount":0},"verificationControlPlane":{"summary":{"totalPendingVerify":0,"staleClaims":0,"missingEvidence":0,"boardConflicts":0,"untestable":0,"readyToVerify":0,"journeysBlocked":0,"journeysPassing":0,"maturity":{"productReady":0,"partial":0,"blocked":0,"stale":0}},"journeyGates":[{"gateId":"vibeful.browser-task.new-task","project":"vibeful","journey":"Browser Task New Task","productOutcome":"A user can create and start an installed Browser Task from the desktop app without security prompts or empty-task artifacts.","status":"untestable","owner":"vibeful agents","claimRef":"","claimAge":"","evidenceRefs":[],"acceptanceCriteria":[{"criterion":"Installed app opens the New Task modal from the user-facing entry points.","met":false,"evidence":"Project not registered or COLLAB not found"},{"criterion":"Goal is required and empty/title-only creation is rejected.","met":false,"evidence":"Project not registered or COLLAB not found"},{"criterion":"Create and start launches Chrome for Testing without Keychain or profile prompts.","met":false,"evidence":"Project not registered or COLLAB not found"},{"criterion":"Task reaches a terminal status with visible output.","met":false,"evidence":"Project not registered or COLLAB not found"},{"criterion":"Browser sessions and task-profile processes clean up after completion.","met":false,"evidence":"Project not registered or COLLAB not found"}],"untestableReason":"Project vibeful not found in registered projects","boardConflict":"","nextVerificationAction":"Register vibeful and ensure COLLAB.md exists","relatedFindings":[],"pendingVerify":0,"verified":0,"total":5},{"gateId":"vibeful.browser-task.parallel-isolation","project":"vibeful","journey":"Browser Task Parallel Isolation","productOutcome":"A user can run three App-created browser tasks concurrently without sidepanel, tool, or profile cross-contamination.","status":"untestable","owner":"vibeful agents","claimRef":"","claimAge":"","evidenceRefs":[],"acceptanceCriteria":[{"criterion":"Three tasks are created from the installed App UI, not only local dev tooling.","met":false,"evidence":"Project not registered or COLLAB not found"},{"criterion":"Each task launches a distinct browser window/profile and binds to the correct sidepanel task.","met":false,"evidence":"Project not registered or COLLAB not found"},{"criterion":"Agent tool calls for one task do not affect the other tasks' browser state.","met":false,"evidence":"Project not registered or COLLAB not found"},{"criterion":"All three tasks complete with outputs.","met":false,"evidence":"Project not registered or COLLAB not found"},{"criterion":"Sessions return to empty and no orphan Chrome-for-Testing task-profile process remains.","met":false,"evidence":"Project not registered or COLLAB not found"}],"untestableReason":"Project vibeful not found in registered projects","boardConflict":"","nextVerificationAction":"Register vibeful and ensure COLLAB.md exists","relatedFindings":[],"pendingVerify":0,"verified":0,"total":5},{"gateId":"vibeful.browser-task.report-quality","project":"vibeful","journey":"Browser Task Report Quality","productOutcome":"A realistic long research task produces a usable sourced report without premature wrap-up language.","status":"untestable","owner":"vibeful agents","claimRef":"","claimAge":"","evidenceRefs":[],"acceptanceCriteria":[{"criterion":"Task is realistic enough to require multiple browser actions and synthesis.","met":false,"evidence":"Project not registered or COLLAB not found"},{"criterion":"Report includes useful structure, source references, and actionable findings.","met":false,"evidence":"Project not registered or COLLAB not found"},{"criterion":"No budget or wrap-up copy degrades output quality before the task is actually complete.","met":false,"evidence":"Project not registered or COLLAB not found"},{"criterion":"Final task status, plan progress, and output state agree.","met":false,"evidence":"Project not registered or COLLAB not found"}],"untestableReason":"Project vibeful not found in registered projects","boardConflict":"","nextVerificationAction":"Register vibeful and ensure COLLAB.md exists","relatedFindings":[],"pendingVerify":0,"verified":0,"total":4},{"gateId":"vibeful.browser-task.session-cleanup","project":"vibeful","journey":"Browser Task Session Cleanup","productOutcome":"Task completion, deletion, resume, and browser close leave the runtime reusable for the next task.","status":"untestable","owner":"vibeful agents","claimRef":"","claimAge":"","evidenceRefs":[],"acceptanceCriteria":[{"criterion":"Completed tasks do not leave live browser sessions.","met":false,"evidence":"Project not registered or COLLAB not found"},{"criterion":"Deleted active tasks terminate MCP sessions and browser processes.","met":false,"evidence":"Project not registered or COLLAB not found"},{"criterion":"Resume does not attach to stale locked profiles.","met":false,"evidence":"Project not registered or COLLAB not found"},{"criterion":"Post-completion browser state does not show crash pages caused by forced process teardown.","met":false,"evidence":"Project not registered or COLLAB not found"}],"untestableReason":"Project vibeful not found in registered projects","boardConflict":"","nextVerificationAction":"Register vibeful and ensure COLLAB.md exists","relatedFindings":[],"pendingVerify":0,"verified":0,"total":4},{"gateId":"vibeful.desktop.update-ux","project":"vibeful","journey":"Desktop Update UX","productOutcome":"Installed users see accurate update state and actionable updater phases.","status":"untestable","owner":"vibeful agents","claimRef":"","claimAge":"","evidenceRefs":[],"acceptanceCriteria":[{"criterion":"Installed version, latest release, and updater latest.json do not produce stale downgrade banners.","met":false,"evidence":"Project not registered or COLLAB not found"},{"criterion":"Available update points to an installable non-draft release.","met":false,"evidence":"Project not registered or COLLAB not found"},{"criterion":"Updater download/install phases are visible.","met":false,"evidence":"Project not registered or COLLAB not found"},{"criterion":"Stalled download becomes an actionable retry/error state.","met":false,"evidence":"Project not registered or COLLAB not found"}],"untestableReason":"Project vibeful not found in registered projects","boardConflict":"","nextVerificationAction":"Register vibeful and ensure COLLAB.md exists","relatedFindings":[],"pendingVerify":0,"verified":0,"total":4},{"gateId":"beefit.agentic-audit.verifier-ledger","project":"beefit","journey":"Agentic Audit Verifier Ledger","productOutcome":"Operators can see why LLM verifier claims are trusted or rejected for a task.","status":"untestable","owner":"beefit agents","claimRef":"","claimAge":"","evidenceRefs":[],"acceptanceCriteria":[{"criterion":"Task-level verifier summary is visible and fresh.","met":false,"evidence":"Project not registered or COLLAB not found"},{"criterion":"Mapping-review exposes per-field llm_verdict and llm_reason where claimed.","met":false,"evidence":"Project not registered or COLLAB not found"},{"criterion":"Verifier evidence is tied to task id and run timestamp.","met":false,"evidence":"Project not registered or COLLAB not found"},{"criterion":"Timeout or missing verifier output is represented as incomplete, not trusted.","met":false,"evidence":"Project not registered or COLLAB not found"}],"untestableReason":"Project beefit not found in registered projects","boardConflict":"","nextVerificationAction":"Register beefit and ensure COLLAB.md exists","relatedFindings":[],"pendingVerify":0,"verified":0,"total":4},{"gateId":"beefit.agentic-audit.action-safety","project":"beefit","journey":"Agentic Audit Action Safety","productOutcome":"AI can explain and propose audit actions without silently mutating production state.","status":"untestable","owner":"beefit agents","claimRef":"","claimAge":"","evidenceRefs":[],"acceptanceCriteria":[{"criterion":"Fresh chat receives current anomaly context.","met":false,"evidence":"Project not registered or COLLAB not found"},{"criterion":"AI explains the correct unresolved anomalies.","met":false,"evidence":"Project not registered or COLLAB not found"},{"criterion":"AI actions are proposal-first and role-safe.","met":false,"evidence":"Project not registered or COLLAB not found"},{"criterion":"A user-accepted safe action persists the expected cell/status mutation.","met":false,"evidence":"Project not registered or COLLAB not found"},{"criterion":"Rejected or unauthorized actions do not mutate task state.","met":false,"evidence":"Project not registered or COLLAB not found"}],"untestableReason":"Project beefit not found in registered projects","boardConflict":"","nextVerificationAction":"Register beefit and ensure COLLAB.md exists","relatedFindings":[],"pendingVerify":0,"verified":0,"total":5},{"gateId":"beefit.audit.progress-contract","project":"beefit","journey":"Audit Progress Contract","productOutcome":"Progress, current stage, and unresolved work tell ordinary operators what to do next.","status":"untestable","owner":"beefit agents","claimRef":"","claimAge":"","evidenceRefs":[],"acceptanceCriteria":[{"criterion":"Ready tasks with unresolved work do not show 100% complete.","met":false,"evidence":"Project not registered or COLLAB not found"},{"criterion":"Submitted/review/approved states use distinct progress and copy.","met":false,"evidence":"Project not registered or COLLAB not found"},{"criterion":"Current stage and next action match unresolved work.","met":false,"evidence":"Project not registered or COLLAB not found"},{"criterion":"Task page and progress API agree.","met":false,"evidence":"Project not registered or COLLAB not found"}],"untestableReason":"Project beefit not found in registered projects","boardConflict":"","nextVerificationAction":"Register beefit and ensure COLLAB.md exists","relatedFindings":[],"pendingVerify":0,"verified":0,"total":4},{"gateId":"beefit.mapping.prescan-semantics","project":"beefit","journey":"Mapping Prescan Semantics","productOutcome":"Prescan and mapping review pick the correct business columns in repeated-section Excel sheets.","status":"untestable","owner":"beefit agents","claimRef":"","claimAge":"","evidenceRefs":[],"acceptanceCriteria":[{"criterion":"Repeated sections such as production-material blocks are disambiguated by headers and samples.","met":false,"evidence":"Project not registered or COLLAB not found"},{"criterion":"LLM-provided column indexes are validated against headers before use.","met":false,"evidence":"Project not registered or COLLAB not found"},{"criterion":"Core aluminum costing fields map to the business columns, not adjacent context columns.","met":false,"evidence":"Project not registered or COLLAB not found"},{"criterion":"A second sample beyond the original failing task passes the same semantic checks.","met":false,"evidence":"Project not registered or COLLAB not found"}],"untestableReason":"Project beefit not found in registered projects","boardConflict":"","nextVerificationAction":"Register beefit and ensure COLLAB.md exists","relatedFindings":[],"pendingVerify":0,"verified":0,"total":4},{"gateId":"beefit.mapping.column-ref","project":"beefit","journey":"Mapping ColumnRef Contract","productOutcome":"Engine, API, LLM prompts/actions, and UI use one user-facing Excel-letter plus header contract beyond Z.","status":"untestable","owner":"beefit agents","claimRef":"","claimAge":"","evidenceRefs":[],"acceptanceCriteria":[{"criterion":"API returns Excel letters for mapped fields, including AA/AB beyond Z.","met":false,"evidence":"Project not registered or COLLAB not found"},{"criterion":"UI displays Excel letters plus headers consistently.","met":false,"evidence":"Project not registered or COLLAB not found"},{"criterion":"LLM action schema accepts the same ColumnRef format.","met":false,"evidence":"Project not registered or COLLAB not found"},{"criterion":"Conflicting numeric/letter references are rejected before mutation.","met":false,"evidence":"Project not registered or COLLAB not found"},{"criterion":"Valid AB remap works on a disposable or restorable task.","met":false,"evidence":"Project not registered or COLLAB not found"}],"untestableReason":"Project beefit not found in registered projects","boardConflict":"","nextVerificationAction":"Register beefit and ensure COLLAB.md exists","relatedFindings":[],"pendingVerify":0,"verified":0,"total":5}],"staleClaims":[],"missingEvidence":[],"boardConflicts":[],"untestable":[],"readyToVerify":[]},"boardReconciliation":{"critical":0,"drive":0,"watch":0,"items":[]},"staleOwnership":{"drive":0,"watch":0,"items":[]},"humanInvolvement":{"trueBlockers":1,"items":[{"id":"R-006","project":"mission-control","request":"GitHub annotation on Vibeful wrapper jobs 26017933766 and 26015833613: The job was not started becau","blocking":"Vibeful GitHub Actions budget / private repo wrapper CI red"}]},"ciReleaseHealth":[],"recentDecisions":[{"date":"2026-05-20","decision":"Typed actor collaboration templates defined","context":"User corrected the framework: builder/verifier/planner are roles, while Cursor/Codex/Claude Code are runtimes; humans are actors too, with natural-language input adapted into required protocol fields. Codex added `docs/collaboration-templates-v1.md` and aligned SaaS/onboarding/control-plane docs around deterministic workflows, role/runtime separation, and human input validation.","by":"jiansen + codex"},{"date":"2026-05-20","decision":"Elegant Actor Workflow v1 implementation slice defined","context":"User asked whether the comprehensive design was over-designed and whether Cursor needed a spec. Codex narrowed the next implementation to three visible actor kinds, four message categories, one Software Product Delivery template, `/command` as category-based message creation, actor registry role/runtime separation, and required-field validation.","by":"jiansen + codex"},{"date":"2026-05-19","decision":"R-008 upgrade control plane phase 2 landed","context":"Codex added `/upgrades` as the SaaS version-drift surface: target Cloud/protocol/rules/adapter/gate versions, project upgrade matrix, runtime proof risk, and explicit local `collab` commands. This moves the next gap from \"show version drift\" to \"hosted auth/pairing/project-agent registration/event sync\".","by":"codex"},{"date":"2026-05-19","decision":"R-008 registration/enrollment API contracts landed","context":"Codex added `/api/projects/register` and `/api/agents/enroll` as local-adapter-safe contracts. They expose required fields, policy defaults, latest protocol versions, and validated POST behavior without implying hosted MC can silently mutate local repos. Next cloud gap is pairing tokens, event ingestion, machine freshness, and hosted storage/auth.","by":"codex"},{"date":"2026-05-19","decision":"R-008 event ingestion and machine freshness landed","context":"Codex added `/api/events`, a transparent local-dev `docs/cloud-events.json` ledger, and an `/upgrades` Machine Pairing And Sync Freshness section. This models cloud/local adapter pairing and token-scope freshness without adding a runner, scheduler, or filesystem authority assumption. Next gap is hosted token issuance/revocation, event signatures/replay protection, and durable workspace storage.","by":"codex"},{"date":"2026-05-19","decision":"R-008 pairing token contract landed","context":"Codex added `/api/pairing-tokens`, local-dev `docs/pairing-tokens.json`, and an `/upgrades` Pairing Tokens section. Issue returns the raw token once, the ledger stores only SHA-256 hashes plus safe prefixes, DELETE revokes tokens, and the public summary hides token hashes. Next gap is hosted auth/storage plus event-ingestion enforcement for expired/revoked tokens, signatures, and replay protection.","by":"codex"},{"date":"2026-05-19","decision":"R-008 event token enforcement landed","context":"Codex wired `/api/events` to validate active pairing tokens before event writes. Missing tokens return 401, revoked/expired/scope/context mismatches are rejected, successful events store only token id/prefix/status, and `/upgrades` shows token proof for machine freshness. Next gap is durable hosted storage, event signatures, replay windows, and audit logging.","by":"codex"},{"date":"2026-05-19","decision":"R-008 signed event replay protection landed","context":"`/api/events` now requires `eventNonce`, `signedAt`, and HMAC-SHA256 signature over the event envelope. Unsigned events return 401, signatures outside the 5-minute window are rejected, reused token+nonce pairs are rejected as replay, and stored events keep only token id/prefix/status plus signature prefix/status.","by":"codex"},{"date":"2026-05-19","decision":"R-008 rejected-event trust audit landed","context":"`/api/events` now records safe audit metadata for rejected local-adapter events such as missing tokens, revoked/expired tokens, scope/context mismatch, stale signatures, invalid signatures, and replay attempts. `/upgrades` renders the Event Trust Audit so operators can see why a machine is not trusted without exposing raw tokens or full signatures.","by":"codex"},{"date":"2026-05-19","decision":"R-008 workspace storage seam landed","context":"Codex added `src/lib/workspace-store.ts` and moved pairing/event/audit ledgers behind it. `/upgrades` now shows that the active backing store is local-dev repo JSON and that production SaaS still requires authenticated, tenant-scoped durable workspace storage.","by":"codex"}],"focus":[{"project":"mission-control","nextOwner":"jiansen","focus":"Product/access decisions only","note":"No stale MC design blocker. User has corrected direction: 24h Operations Console and continuous project management, with Command Center as action surface."},{"project":"mission-control","nextOwner":"codex","focus":"MC product/control-plane QA","note":"Codex patrol is conservative on empty queue: if no self-block is present, wait for next heartbeat/re-read before initiating a new high-ROI task, unless board drift/security/authorized verification is obvious."},{"project":"mission-control","nextOwner":"cursor","focus":"R-009 done, patrol continues","note":"Cursor patrol is aggressive on empty queue: after task completion and re-read, handle self-blocks immediately; if none, start a highest-ROI initiative task in the same long-running request/session. R-009 shipped; next: ..."},{"project":"mission-control","nextOwner":"child projects","focus":"Vibeful/Beefit self-iteration","note":"Subproject findings should be owned by their own agents. MC may sample evidence and write routing/Requests, but should not make subproject E2E execution its primary work unless needed to validate MC tooling itself."}],"requests":[{"project":"mission-control","id":"R-006","from":"codex","to":"jiansen","status":"open","request":"GitHub annotation on Vibeful wrapper jobs 26017933766 and 26015833613: The job was not started because an Actions budget is preventing further use. The real release builds in Jiansen/vibeful-releases are separate: v0.2.46 real run 26015835891 succeeded and v0...","blocking":"Vibeful GitHub Actions budget / private repo wrapper CI red"}],"routingTargets":{"projects":[],"agents":["cursor","codex"],"humans":["jiansen"],"types":["task","decision","note-to-self","product-direction","blocked","verification"]},"actorModel":{"visibleKinds":["human","agent","integration"],"roles":["product_owner","planner","architect","builder","verifier","reviewer","release_manager","coordinator","decision_owner"],"runtimes":["Cursor","Codex","Claude Code","GitHub Actions","collab adapter","browser UI","internal service","other"]},"messageModel":{"categories":["request","report","decision","evidence"],"requestTypes":["task","verification","decision_needed","handoff","escalation","upgrade_action"],"reportTypes":["runtime","gate_result","review_finding","system_event","upgrade_status"],"decisionTypes":["product_direction","architecture","release","access","billing","acceptance"],"evidenceTypes":["screenshot","commit","run","release","url","log","note"],"workflowStates":["Intake","Plan","Build","Verify","Release","Learn"]},"actors":[{"id":"jiansen","name":"Jiansen","kind":"human","runtime":"browser UI","roles":["product_owner","decision_owner"],"project":"mission-control","proof":"proven"},{"id":"codex@mission-control","name":"codex@mission-control","kind":"agent","runtime":"Codex","roles":["verifier","reviewer"],"project":"mission-control","proof":"not_configured","lastSeen":"2026-05-19T08:26:44+08:00"},{"id":"cursor@mission-control","name":"cursor@mission-control","kind":"agent","runtime":"Cursor","roles":["builder","architect"],"project":"mission-control","proof":"not_configured","lastSeen":"2026-05-19T07:57:00+08:00"}],"patrolSession":{"rounds":40,"totalCommits":33,"remainingDays":6.73,"targetEnd":"2026-05-26T07:02:00+08:00"},"projects":[{"name":"mission-control","readiness":"🟢 多项目 COLLAB.md 聚合（vibeful + beefit） Command Center summary（needs-you / agent proof / project pulse / recent change / MC next action；legacy `/morning` route remains an alias only） Decision Queue + inline reply（写入 COLLA...","readinessTone":"green","updatedAge":"1d ago","activeFindings":0,"workQueues":4,"dirtyCount":0,"commits24h":0,"releaseHandoff":null}]}