docs(handoff): mark the 2026-08-05 list-handler run complete
All three brief tasks and the nine-child Usage Monitor unit are merged and main verified green. Correct section 5: "exited with code 1 and no result" is a catch-all, not a CLI crash — max_turns (sonnet presets default to 30 because app_settings.model_presets is NULL) and the account session limit both surface through the same message.
This commit is contained in:
@@ -1,7 +1,68 @@
|
|||||||
# Handoff — List-handler run on list "Claude do", 2026-08-05
|
# Handoff — List-handler run on list "Claude do", 2026-08-05
|
||||||
|
|
||||||
|
> **✅ COMPLETED 2026-08-05 (follow-up session).** Everything in §1 and §2 is merged and `main`
|
||||||
|
> verified green. Read §0 below before §1–§8 — §5's diagnosis turned out to be **wrong** and the
|
||||||
|
> rest is now history. Still nothing pushed.
|
||||||
|
|
||||||
Repo: `C:\Private\ClaudeDo` · List id: `5f973815-050a-4136-94f0-1506a5d4560a` · Branch: `main` (nothing pushed)
|
Repo: `C:\Private\ClaudeDo` · List id: `5f973815-050a-4136-94f0-1506a5d4560a` · Branch: `main` (nothing pushed)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 0. What the follow-up session did (and what §5 got wrong)
|
||||||
|
|
||||||
|
**All merged, `main` green after every step** (Worker 811/811, Data 143/143, Ui 292/292,
|
||||||
|
Localization 16/16, builds 0 new warnings):
|
||||||
|
|
||||||
|
| Merged | Task | Merge commit |
|
||||||
|
|---|---|---|
|
||||||
|
| §1 #1 | `9e307199` revert_merge + merge-SHA persistence | `3e7126b` |
|
||||||
|
| §1 #2 | `0b2fbb48` post-merge verification gate | (conflict-resolved) |
|
||||||
|
| §1 #3 | `8c1c2130` roadblock reply box | `519ea5a` |
|
||||||
|
| §2 #42 | `c1df5b9a` Hub surface for usage | `6e2158d` |
|
||||||
|
| §2 #43 | `f74b44d9` Usage pill | `7661129` |
|
||||||
|
| §2 #45 | `06068810` gate thresholds in settings | `5115cfc` |
|
||||||
|
| §2 #44 | `82488d2a` Usage Monitor modal | `338fc39` |
|
||||||
|
| §2 #46 | `9c8cffe0` docs | `5872666` |
|
||||||
|
| parent | `439a4daf` Usage Monitor unit | approved → Done (empty unit merge; all children already `Merged`) |
|
||||||
|
|
||||||
|
Plus one hand-fix on `main`: `677a4c1` — `UsagePillViewModelTests` never set `Loc.Current`
|
||||||
|
(defaults to a key-echo localizer) and only passed because another test class happened to
|
||||||
|
install a real `Localizer` first; #44's new tests changed the ordering and broke it on `main`.
|
||||||
|
Classic "both branches green, `main` red".
|
||||||
|
|
||||||
|
### §5 is wrong — `"exited with code 1 and no result"` is NOT (only) a CLI crash
|
||||||
|
|
||||||
|
It is a **catch-all** hiding at least three causes. The truth is in the run log's last NDJSON
|
||||||
|
line (`{"type":"result", …}` → `terminal_reason` / `errors` / `result`):
|
||||||
|
|
||||||
|
- **`max_turns`** — what actually killed #40 and #42. `app_settings.model_presets` is `NULL`, so
|
||||||
|
`ModelPresets.Parse` falls back to the shipping defaults, and **sonnet's default is 30 turns**.
|
||||||
|
`AppSettings.DefaultMaxTurns` (100) is only the fallback for an *unrecognized* alias, so it
|
||||||
|
never applies. Every task without an explicit `maxTurns` override got 30 turns.
|
||||||
|
→ Fix used here: `set_task_config(taskId, model="sonnet", maxTurns=200)` before queueing.
|
||||||
|
- **`api_error`** + `"You've hit your session limit · resets 1pm (Europe/Berlin)"` — the account's
|
||||||
|
5-hour limit, which took out #43's first attempt. Nothing to fix; wait for the reset, re-queue.
|
||||||
|
- Genuine process death — the case §5 describes.
|
||||||
|
|
||||||
|
§5's *operational* advice still holds and is what saved #42: **never `reset_failed_task`** on one
|
||||||
|
of these; check the worktree, build/test it, then set the task `Queued` so the agent resumes its
|
||||||
|
own session and commits. #42's worktree held a complete green implementation (773/773).
|
||||||
|
|
||||||
|
Follow-up tasks: `ca6e55c0` (surface the real failure reason) is new; the turn-budget/presets side
|
||||||
|
is already covered by the Idle task `2de2f008` (`b0317ec7` fixed only the unknown-alias half).
|
||||||
|
|
||||||
|
### Still open
|
||||||
|
|
||||||
|
- **Visual passes** (nobody has looked at these in a running app): usage pill in the footer *and*
|
||||||
|
the Mission Control header; Usage Monitor modal (gauges, tables, stale/blocked bands, dark/light);
|
||||||
|
the roadblock reply box; the verify-command field in the List Settings modal. See `docs/open.md`.
|
||||||
|
- **`~/.todo-app/prompts/planning.md` still shadows the compiled default** (§7.1) — unchanged.
|
||||||
|
- **`wait_for_task_change` is merged but not in the running Worker**, so it isn't callable over MCP
|
||||||
|
until the Worker is restarted. §3's sqlite poll was used instead.
|
||||||
|
- One rough edge in the verify gate: if the verify command fails, the worktree has already been
|
||||||
|
removed and its state set `Merged` while the task stays `WaitingForReview` — re-approving is then
|
||||||
|
refused. Recovery is `update_task_status(..., "Done")` once `main` is fixed.
|
||||||
|
|
||||||
Predecessor session ran the five-phase list handler over 11 briefed tasks and, along the way,
|
Predecessor session ran the five-phase list handler over 11 briefed tasks and, along the way,
|
||||||
absorbed the 9-child "Usage Monitor" unit. **Phases 0–3 are complete for the brief.** What is
|
absorbed the 9-child "Usage Monitor" unit. **Phases 0–3 are complete for the brief.** What is
|
||||||
left is Phase 4 (review + merge) for three tasks, plus the Usage chain.
|
left is Phase 4 (review + merge) for three tasks, plus the Usage chain.
|
||||||
|
|||||||
Reference in New Issue
Block a user