[auto-review] The change introduces and tests for chat_threads.runtime_session_key,
**Severity:** high **Location:** migrate.py **Flagged by:** codex **Issue:** The change introduces and tests for chat_threads.runtime_session_key, but the diff contains no data...
StateDoneNext ActionClosedOwnerLuciRuntimeClosedAge16d ago
Ticket is done; runtime is closed.·profile claude_opus_1m_medium · cwd /home/lucienne/workspace/mission-control · uptime 16d 4h · last activity 16d 1h ago
Description
MC-4348
**Severity:** high
**Location:** migrate.py
**Flagged by:** codex
**Issue:**
The change introduces and tests for chat_threads.runtime_session_key, but the diff contains no database migration or PRAGMA user_version bump. Existing Mission Control databases will not have the column, causing runtime/session creation paths to fail with schema errors.
**Suggested fix:**
Add an idempotent migration that adds chat_threads.runtime_session_key, creates/backfills runtime_sessions for isolated chat threads where needed, and bumps PRAGMA user_version consistently with the schema check.
---
Found by mc-auto-review on 2026-05-28 06:08 SAST.
Repos reviewed: mission-control.
auto-review-hash: a0fb563abe43
Activity
done
INTERACTIVE
Luci is working...
Details —
Done
· High
· Luci
▼
SState
Done
Closed
PPeople
TTiming / Details▼
mc-auto-review (scheduled)
Mission Control
16d ago
16d ago
Advanced / Operator evidence
RRouting owner
ROperator console
Ticket is done; runtime is closed.terminal_state_reapprofile claude_opus_1m_medium · cwd /home/lucienne/workspace/mission-control · uptime 16d 4h · last activity 16d 1h agoMC is visibility-only. Hermes Luci launches and gates work outside MC, then mirrors evidence/status here.Raw console: luci · claude/anthropic/opus[1m]
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.
Worker died unexpectedly.
**Worker PID:** unknown
**OOM kill:** unknown
**Exit signal / dmesg:** unknown
**Last tool_use:** none
**tmux target:** none recorded
**Last pane output:**
```
[no pane output captured]
```
Reset to Todo to retry, or provide additional context.
luci16d ago
Luci picking up this ticket (background worker).
luci16d ago
Ticket picked up by Luci via MC dispatcher.
MC-4348: [auto-review] The change introduces and tests for chat_threads.runtime_session_key,
Work this ticket in the live tmux runtime. Use DONE:, REVIEW:, or QUESTION: when you need MC to reflect the next state.
luci16d ago
[failed_to_inject] runtime_busy: Ticket runtime is not ready for input (status=running). Wait for the current turn to finish, or explicitly interrupt/restart the runtime before sending more terminal input. This message
Ticket picked up by Luci via MC dispatcher.
MC-4348: [auto-review] The change introduces and tests for chat_threads.runtime_session_key,
Work this ticket in the live tmux runtime. Use DONE:, REVIEW:, or QUESTION: when you need MC to reflect the next state.
luci16d ago
[failed_to_inject] runtime_busy: Ticket runtime is not ready for input (status=running). Wait for the current turn to finish, or explicitly interrupt/restart the runtime before sending more terminal input. This message
Ticket picked up by Luci via MC dispatcher.
MC-4348: [auto-review] The change introduces and tests for chat_threads.runtime_session_key,
Work this ticket in the live tmux runtime. Use DONE:, REVIEW:, or QUESTION: when you need MC to reflect the next state.
luci16d ago
Ticket runtime send failed while dispatching.
root_cause: HTTP Error 409: CONFLICT
safe_retry: returned to `todo` for a fresh runtime retry.
human_input_required: no
system16d ago
RUNTIME TERMINAL STATE (MC-3482 contract)
status: warning
summary: Ticket runtime send failed; parked for automatic recovery.
root_cause: send failed while injecting into ticket runtime: Ticket runtime is not ready for input (status=running). Wait for the current turn to finish, or explicitly interrupt/restart the runtime before sending more terminal input. This message was not sent.
safe_retry: Queued message was returned to pending and the ticket was returned to todo for a fresh runtime retry; no human input is needed.
stop_condition: After the configured retry limit, leave the ticket blocked for operator inspection instead of looping.
human_input_required: no
next_actions:
- Pickup will retry the pending message in a fresh runtime.
- Inspect runtime/send only if the retry fails again.
artifacts:
- ticket:MC-4348
luci16d ago
Luci picking up this ticket (background worker).
luci16d ago
Ticket runtime send failed while dispatching.
root_cause: HTTP Error 409: CONFLICT
safe_retry: returned to `todo` for a fresh runtime retry.
human_input_required: no
system16d ago
RUNTIME TERMINAL STATE (MC-3482 contract)
status: error
summary: Ticket runtime send failed; parked for automatic recovery.
root_cause: send failed while injecting into ticket runtime: Ticket runtime is not ready for input (status=running). Wait for the current turn to finish, or explicitly interrupt/restart the runtime before sending more terminal input. This message was not sent.
safe_retry: Retry limit reached; operator/human inspection is required before another automatic runtime dispatch.
stop_condition: After the configured retry limit, leave the ticket blocked for operator inspection instead of looping.
human_input_required: yes
next_actions:
- Pickup will retry the pending message in a fresh runtime.
- Inspect runtime/send only if the retry fails again.
artifacts:
- ticket:MC-4348
luci16d ago
Luci picking up this ticket (background worker).
luci16d ago
[system]: Ticket moved to Todo: [auto-review] The change introduces and tests for chat_threads.runtime_session_key,
[system]: Ticket moved to Todo: [auto-review] The change introduces and tests for chat_threads.runtime_session_key,
luci16d ago
Ticket runtime send failed while dispatching.
root_cause: HTTP Error 409: CONFLICT
safe_retry: returned to `todo` for a fresh runtime retry.
human_input_required: no
system16d ago
RUNTIME TERMINAL STATE (MC-3482 contract)
status: error
summary: Ticket runtime send failed; parked for automatic recovery.
root_cause: send failed while injecting into ticket runtime: Ticket runtime is not ready for input (status=running). Wait for the current turn to finish, or explicitly interrupt/restart the runtime before sending more terminal input. This message was not sent.
safe_retry: Retry limit reached; operator/human inspection is required before another automatic runtime dispatch.
stop_condition: After the configured retry limit, leave the ticket blocked for operator inspection instead of looping.
human_input_required: yes
next_actions:
- Pickup will retry the pending message in a fresh runtime.
- Inspect runtime/send only if the retry fails again.
artifacts:
- ticket:MC-4348
luci16d ago
Luci picking up this ticket (background worker).
luci16d ago
[failed_to_inject] runtime_busy: Ticket runtime is not ready for input (status=running). Wait for the current turn to finish, or explicitly interrupt/restart the runtime before sending more terminal input. This message
[system]: Ticket moved to Todo: [auto-review] The change introduces and tests for chat_threads.runtime_session_key,
[system]: Ticket moved to Todo: [auto-review] The change introduces and tests for chat_threads.runtime_session_key,
[system]: Ticket moved to Todo: [auto-review] The change introduces and tests for chat_threads.runtime_session_key,
luci16d ago
[failed_to_inject] runtime_busy: Ticket runtime is not ready for input (status=running). Wait for the current turn to finish, or explicitly interrupt/restart the runtime before sending more terminal input. This message
[system]: Ticket moved to Todo: [auto-review] The change introduces and tests for chat_threads.runtime_session_key,
[system]: Ticket moved to Todo: [auto-review] The change introduces and tests for chat_threads.runtime_session_key,
[system]: Ticket moved to Todo: [auto-review] The change introduces and tests for chat_threads.runtime_session_key,
luci16d ago
Ticket runtime send failed while dispatching.
root_cause: HTTP Error 409: CONFLICT
safe_retry: returned to `todo` for a fresh runtime retry.
human_input_required: no
system16d ago
RUNTIME TERMINAL STATE (MC-3482 contract)
status: error
summary: Ticket runtime send failed; parked for automatic recovery.
root_cause: send failed while injecting into ticket runtime: Ticket runtime is not ready for input (status=running). Wait for the current turn to finish, or explicitly interrupt/restart the runtime before sending more terminal input. This message was not sent.
safe_retry: Retry limit reached; operator/human inspection is required before another automatic runtime dispatch.
stop_condition: After the configured retry limit, leave the ticket blocked for operator inspection instead of looping.
human_input_required: yes
next_actions:
- Pickup will retry the pending message in a fresh runtime.
- Inspect runtime/send only if the retry fails again.
artifacts:
- ticket:MC-4348
luci16d ago
Luci picking up this ticket (background worker).
luci16d ago
Ticket moved to Todo: [auto-review] The change introduces and tests for chat_threads.runtime_session_key,
luci16d ago
Ticket runtime send failed while dispatching.
root_cause: HTTP Error 409: CONFLICT
safe_retry: returned to `todo` for a fresh runtime retry.
human_input_required: no
system16d ago
RUNTIME TERMINAL STATE (MC-3482 contract)
status: error
summary: Ticket runtime send failed; parked for automatic recovery.
root_cause: send failed while injecting into ticket runtime: Ticket runtime is not ready for input (status=running). Wait for the current turn to finish, or explicitly interrupt/restart the runtime before sending more terminal input. This message was not sent.
safe_retry: Retry limit reached; operator/human inspection is required before another automatic runtime dispatch.
stop_condition: After the configured retry limit, leave the ticket blocked for operator inspection instead of looping.
human_input_required: yes
next_actions:
- Pickup will retry the pending message in a fresh runtime.
- Inspect runtime/send only if the retry fails again.
artifacts:
- ticket:MC-4348
luci16d ago
Luci picking up this ticket (background worker).
luci16d ago
[failed_to_inject] runtime_busy: Ticket runtime is not ready for input (status=running). Wait for the current turn to finish, or explicitly interrupt/restart the runtime before sending more terminal input. This message
Ticket moved to Todo: [auto-review] The change introduces and tests for chat_threads.runtime_session_key,
luci16d ago
[failed_to_inject] runtime_busy: Ticket runtime is not ready for input (status=running). Wait for the current turn to finish, or explicitly interrupt/restart the runtime before sending more terminal input. This message
Ticket moved to Todo: [auto-review] The change introduces and tests for chat_threads.runtime_session_key,
luci16d ago
Ticket runtime send failed while dispatching.
root_cause: HTTP Error 409: CONFLICT
safe_retry: returned to `todo` for a fresh runtime retry.
human_input_required: no
system16d ago
RUNTIME TERMINAL STATE (MC-3482 contract)
status: error
summary: Ticket runtime send failed; parked for automatic recovery.
root_cause: send failed while injecting into ticket runtime: Ticket runtime is not ready for input (status=running). Wait for the current turn to finish, or explicitly interrupt/restart the runtime before sending more terminal input. This message was not sent.
safe_retry: Retry limit reached; operator/human inspection is required before another automatic runtime dispatch.
stop_condition: After the configured retry limit, leave the ticket blocked for operator inspection instead of looping.
human_input_required: yes
next_actions:
- Pickup will retry the pending message in a fresh runtime.
- Inspect runtime/send only if the retry fails again.
artifacts:
- ticket:MC-4348
Luci16d ago
Added migration 020 + EXPECTED_SCHEMA_VERSION 19->20 closing the runtime_session_key schema-honesty gap; idempotent column+index+runtime_sessions backfill, 4-case regression, all 52 schema tests pass. Pushed 36b1d4b. DEPLOY: run migrations/020 against live mc.db before restarting on EXPECTED=20 code.
luci16d ago
Workflow action `review_ready` applied. Work ready for review.
api16d ago
Gate (orchestrator): work SOUND + deploy step DONE. Migration 020 + EXPECTED_SCHEMA_VERSION 19->20 + test_migration_020 (worker reports 52 schema tests, 4-case regression pass). I ran migrations/020 against the LIVE mc.db: user_version now 20, integrity ok, runtime_session_key present (column was already materialized by the startup additive — 020 closes the version-honesty gap as designed). Idempotent.
NOT closing to done yet: 36b1d4b lives on slot2/mc-MC-4327, not master. Same merge dependency as MC-4350 — closes when the holistic slot2 -> master merge lands. CRITICAL: master is now behind the live db's schema version (master=19, db=20); see MC-4357 — the repo must NOT be returned to master until 36b1d4b lands there. Keeping in_review.
luci-shepherd16d ago
Gate PASS — closing after slot2/live verification. Evidence: migration commit 36b1d4b is on the live origin/slot2 branch; focused schema tests passed (`test_migration_020.py` + `test_mc4207_phase3_evidence.py`: 28 passed); live mc.db is at PRAGMA user_version=20, `chat_threads.runtime_session_key` and `idx_chat_threads_runtime_session` exist, and integrity_check=ok. MC-4357/slot2 live branch is now the running target, so the prior merge hold is cleared. Human input required: no.
luci-operator16d ago
Luci Operator: promoted this assigned `inbox` ticket to `todo` so pickup can run it.
luci-operator16d ago
Luci Operator corrected this ticket: `blocked` carried a runtime/worker failure with no unanswered worker `QUESTION:`, so it is back in `todo` for Luci/Larry/Tessa to handle.
luci-operator16d ago
Luci Operator corrected this ticket: `blocked` carried a runtime/worker failure with no unanswered worker `QUESTION:`, so it is back in `todo` for Luci/Larry/Tessa to handle.
luci-operator16d ago
Luci Operator corrected this ticket: `blocked` carried a runtime/worker failure with no unanswered worker `QUESTION:`, so it is back in `todo` for Luci/Larry/Tessa to handle.
luci-operator16d ago
Luci Operator corrected this ticket: `blocked` carried a runtime/worker failure with no unanswered worker `QUESTION:`, so it is back in `todo` for Luci/Larry/Tessa to handle.
luci16d ago
Controller repair: moved from in_review to explicit waiting state. Gate already passed; final close is blocked only by the slot2/schema-20 master merge tracked in MC-4357.
luci-shepherd16d ago
Controller dependency normalization: MC-4357 is now done; keeping this ticket intentionally waiting behind active blocker MC-4343 per current priority order. No human input required.
luci-shepherd16d ago
Controller dependency update: MC-4343 is verified done. This remains intentionally waiting behind MC-4326, the live mobile visual gate for the slot2 UI bundle. Human input required: no.