You're offline — showing cached data

Luci · Ticket = code change. Dev-loop mandatory. First explo

runtime not set · chat:559:session · failed
×
Luci
Ticket = code change. Dev-loop mandatory. First explore persist→inject→harvest mechanism + runtime_sessions schema.
Luci
Note: existing `tests/test_message_delivery_state.py` already present in a worktree. Check canonical mission-control dir + whether delivery_state partly exists.
Luci
delivery_state already referenced across many files. Maybe partly/fully built. Read current state of canonical files.
Luci
Let me read the key files directly to understand intended contract and current schema.
Luci
This is already built under MC-3367 — `delivery_state` lives on `ticket_messages` (correct unit), with reconciler. Verify functions exist + run tests.
Luci
rtk garbling grep. Run the actual test as ground-truth evidence.
Luci
All 11 pass. Feature already shipped (MC-3367). Confirm reconciler function + periodic loop wired in app.py.
Luci
Fully implemented. Let me grab reconciler interval + loop wiring for precise evidence.
Luci
Confirmed: `_delivery_reconciler_loop()` runs periodically (`_DELIVERY_RECONCILER_INTERVAL_SECONDS`) calling the reconciler + a runtime-session reaper. MC-4452 fully covered by shipped MC-3367. Post REVIEW via mc-coord.
Luci
REVIEW: MC-4452 already fixed by shipped MC-3367 — no code change needed. **Finding closed.** Persist→inject→harvest silent-drop risk fully covered: - `delivery_state` column lives on `ticket_messages` (correct unit — the message is what gets persisted→injected→harvested, not the session) + `delivery_state_updated_at`, `delivery_failure_reason`, index - States: `persisted | injected | harvested | failed_to_inject` — `failed_to_inject` = dead-letter - Reconciler `app._reconcile_stuck_runtime_messages_once()` runs via `_delivery_reconciler_loop()` every `_DELIVERY_RECONCILER_INTERVAL_SECONDS`; flips age-stuck `persisted` → `failed_to_inject` + posts operator comment - B1 guard: never flips healthy `injected` rows. B2 guard: stamps legacy DBs with columns before user_version=14 **Evidence:** `tests/test_message_delivery_state.py` → 11/11 pass. Models fns + app reconciler verified live. **Recommend:** close MC-4452 as duplicate of MC-3367. Only deviation from literal ticket text — column on `ticket_messages` not `runtime_sessions`, which is the architecturally correct location. {"mc_signal":"REVIEW","ticket":"MC-4452","nonce":"MC_TICKET_TURN:4456:1780142782753:3f5fd72a","payload":"MC-4452 already resolved by MC-3367; delivery_state+reconciler shipped, 11/11 tests pass — close as duplicate"}
Luci
REVIEW: No change since last turn — MC-4452 already resolved by MC-3367. Re-dispatch, no rework done. Status unchanged: `delivery_state` column + 4 states (`persisted|injected|harvested|failed_to_inject` dead-letter) + reconciler loop all shipped on `ticket_messages`. Evidence stands: `tests/test_message_delivery_state.py` 11/11 pass. **Awaiting controller action:** close MC-4452 as duplicate of MC-3367. Nothing to build. {"mc_signal":"REVIEW","ticket":"MC-4452","nonce":"MC_TICKET_TURN:4456:1780142885096:515c6709","payload":"No rework — MC-4452 already resolved by MC-3367 (11/11 tests pass); close as duplicate"}
Default runtime
Help