[auto-review] _send_ticket_to_tmux_runtime adopts a live runtime for every exception
**Severity:** high **Location:** mc_pickup.py:2015 **Flagged by:** codex **Issue:** _send_ticket_to_tmux_runtime adopts a live runtime for every exception from runtime/send, no...
StateDoneNext ActionClosedOwnerLuciRuntimeClosedAge14d ago
Ticket is done; runtime is closed.·profile control-room-codex-nosandbox · cwd /home/lucienne/workspace/state/control-room-worktrees/mc-4428-4429 · uptime 14d 4h · last activity 14d 2h ago
Description
MC-4429
**Severity:** high
**Location:** mc_pickup.py:2015
**Flagged by:** codex
**Issue:**
_send_ticket_to_tmux_runtime adopts a live runtime for every exception from runtime/send, not just the 409 RuntimeBusyError case. 401/403 auth failures, 5xx server errors, timeouts, or post-send connection errors will be reported as self-healed, queue messages are put back to pending, and the dispatcher will not surface the real failure.
**Suggested fix:**
Only run _normalize_ticket_to_live_runtime for an HTTP 409/busy RuntimeBusyError response. For all other exceptions, keep the existing error path so queue state, ticket status, and failure notification reflect the real send failure.
---
Found by mc-auto-review on 2026-05-30 06:01 SAST.
Repos reviewed: workspace, mission-control.
auto-review-hash: 7b6e0124e810
Activity
done
INTERACTIVE
Luci is working...
Details —
Done
· High
· Luci
▼
SState
Done
Closed
PPeople
TTiming / Details▼
mc-auto-review (scheduled)
Mission Control
14d ago
14d ago
Advanced / Operator evidence
RRouting owner
ROperator console
Ticket is done; runtime is closed.controller_gate_passed_landed_6d3b8612profile control-room-codex-nosandbox · cwd /home/lucienne/workspace/state/control-room-worktrees/mc-4428-4429 · uptime 14d 4h · last activity 14d 2h agoMC is visibility-only. Hermes Luci launches and gates work outside MC, then mirrors evidence/status here.Raw console: luci · codex/openai/gpt-5.5
WWorkflow
Start Dev Review + QA ▾
Select phases to include:
Agents
Review Gates
Decision
WAT routing: choose an agent, review gate, or decision. Buttons use the live runtime when one is attached.
Control Room picked this up. Plan: one direct Codex builder in isolated worktree `/home/lucienne/workspace/state/control-room-worktrees/mc-4428-4429` will implement MC-4428 + MC-4429 together because both touch `mc_pickup.py` runtime row-drift/send-adopt logic. Gate before close: narrow regression tests for needs_input non-normalization, todo row-drift preservation, and non-409 send failures not self-healing; controller will verify commit/tests before closing. Expected check-in: 2026-05-30T06:44:46.877149+02:00.
Luci Control Room14d ago
Builder startup recovery: first Codex run could not execute shell commands because the workspace sandbox failed at bwrap loopback setup before touching files. Restarting Codex directly in the same isolated worktree; controller will still gate tests/commit before close.
Luci Control Room14d ago
Controller gate passed and landed.
Evidence:
- Builder commit: d122e0a431468f805c2ed9f09e54723162ad14b2 in isolated worktree.
- Independent review: PASS for MC-4428/MC-4429 logic.
- Landed on master as 6d3b8612 and verified pushed to origin/master.
- Narrow gate on live checkout: `python3 -m pytest tests/test_mc_pickup_regressions.py::RuntimeRowDriftRegressionTests tests/test_mc_pickup_regressions.py::ReviewerSeverityRubricTests::test_tmux_runtime_send_busy_409_adopts_live_runtime tests/test_mc_pickup_regressions.py::ReviewerSeverityRubricTests::test_tmux_runtime_send_non_busy_failures_return_ticket_to_todo tests/test_mc_pickup_regressions.py::ReviewerSeverityRubricTests::test_tmux_runtime_send_failure_returns_ticket_to_todo tests/test_mc4236_pickup_recovery.py -q` -> 8 passed.
- `python3 -m py_compile mc_pickup.py` -> passed; `git diff --check` -> passed.
Closing: fix is landed; no human action required.