# Claude Builder Durable Runner Triage

# Claude Builder Durable Runner Triage

Date: 2026-05-19  
MC: #101542

## Verdict

`durable-runner.db` is healthy. The 2,945 failed rows were not durable-runner failures; they were historical `mission-control.db.queue_entries` records from the old `claude-builder` queue mechanism. Failed rows were archived and removed from the live table. Remaining cleanup is tracked separately in MC #101545.

## Corrected counts

### durable-runner.db

Path: `/Users/makinja/system/databases/durable-runner.db`

- `steps` total: 297
- `completed`: 295
- `failed`: 1
- `pending`: 1
- Status: healthy, not modified

### mission-control.db queue_entries

Path: `/Users/makinja/system/databases/mission-control.db`

Before archive:

- `failed`: 2,945
- `waiting`: 15
- `completed`: 3
- total: 2,963
- date range: 2026-02-22 to 2026-03-19

After archive:

- `failed`: 0
- `waiting`: 15
- `completed`: 3
- total: 18

Archive path:

`/Users/makinja/system/databases/_archive/queue-entries-claude-builder-historical-20260519.sql`

Archive SHA-256:

`f1433d402f96c26d5a479c14f7523ca93fee6454795927d2883df757c6a486dd`

## Task status cross-check

Joining the archived failed rows back to live `tasks` gives:

- `done`: 2,938
- `blocked`: 7
- missing task rows: 0

This corrects the earlier inconsistent evidence text that said `2937/2944`.

## Root cause

`queue_entries` was populated by the old `mc.js queue/enqueue` dispatch path during Feb-Mar 2026. That mechanism was superseded by the pi-orchestrator `task_scheduling` path. There is no active consumer for `queue_entries`, and the failed rows were stale historical records, not active workflow failures.

## Actions taken

1. Confirmed `durable-runner.db` state and preserved it unchanged.
2. Archived historical `queue_entries` rows to `_archive`.
3. Deleted 2,945 `status='failed'` rows from live `queue_entries`.
4. Confirmed live `queue_entries` is now `failed=0`, `waiting=15`, `completed=3`.
5. Opened MC #101545 for decommission follow-up: 15 stale waiting rows plus obsolete table cleanup.

## Evidence

- `/tmp/alai/701de49c/evidence-101542/verification.json`
- `/tmp/alai/701de49c/evidence-101542/decision-rationale.md`
- `/tmp/alai/701de49c/evidence-101542/db-paths.txt`
- `/tmp/alai/701de49c/evidence-101542/table-schemas.txt`
- `/tmp/alai/701de49c/evidence-101542/queue-entries-full-dump.sql`
- `/tmp/alai/701de49c/evidence-101542/durable-runner-backup-20260519T222840.db`

## Non-scope / follow-up

- `queue_entries` table still exists with 18 rows. Full decommission belongs to MC #101545.
- `dead_letter_queue` has 22 pi-orchestrator rows and is separate from this triage.
- This MC should not be reported as schema cleanup complete; it is triage + failed-row archive only.