You're offline — showing cached data

MC-4198

Prevent stale campaign blockers from parking next MC visual slices
2026-06-13 08:51:30 SAST
Home Board MC-4198

Prevent stale campaign blockers from parking next MC visual slices

Problem observed on MC-4126 after MC-4125 completed: the next slice did not start because stale dependency metadata remained (`pending_state=blocked_by_dependency`, `failure_rea...
State Done Next Action Closed Owner Luci Runtime Closed Age 18d ago
MC-4198
Ticket is done; runtime is closed. · profile codex · cwd /home/lucienne/workspace/mission-control · uptime 18d 13h · last activity 18d 11h ago

Description

MC-4198
Problem observed on MC-4126 after MC-4125 completed: the next slice did not start because stale dependency metadata remained (`pending_state=blocked_by_dependency`, `failure_reason=blocked_by:MC-4122,MC-4125,MC-4183,MC-4184,MC-4185`) and `campaign_owner=lucienne` caused runnable_policy to classify the ticket as `policy_skip:controller_parked` even after it was moved to `todo`. Implement a durable fix so this cannot recur in managed MC campaigns. Acceptance criteria: 1. When a controller/supervisor releases a parked child slice whose blockers are all `done`, it atomically clears `pending_state`, `failure_reason`, and stale `campaign_owner`, sets the executor (`assigned_to`) and intended `runtime_profile`, and records a release comment. 2. A deterministic sweep/policy check detects tickets in `todo` where all `blocked_by:*` dependencies are done but stale blocker fields or `campaign_owner` still prevent pickup, and either fixes them or creates a clear controller incident. 3. `mc_pickup.py --dry-run` or equivalent logs the explicit policy-skip reason for campaign children, not just “No tickets”. 4. Add regression tests covering MC-4126-like state: all blockers done + stale `campaign_owner` + stale `blocked_by_dependency` must become runnable or visibly flagged. 5. Update the MC-4119 visual supervisor prompt/policy docs so controller releases never leave runnable child tickets controller-parked. 6. Verify with a synthetic ticket or fixture that pickup sees the released child as runnable and launches the intended runtime profile. Scope notes: - This is control-plane/process hardening, not visual design work. - Do not change current live campaign tickets except as needed for a safe fixture/test. - Keep MC as source of truth; do not hide this in Telegram-only process memory. <!-- visual-policy:safety-v1 --> Controller safety guardrail: no live deploy, luci-dashboard restart, direct copy into main/live tree, or production runtime mutation without explicit Elmar approval. Work in a feature branch/worktree; leave deploy/restart approval to the controller/Elmar.

Activity

done
Luci is working...
Live
No activity yet
Help