Metadata
| Status | done |
|---|---|
| Created | 2026-07-31T08:35:54.682269835+00:00 |
| Started | 2026-07-31T11:34:07.060454883+00:00 |
| Completed | 2026-08-03T09:42:52.611678067+00:00 |
| Tags | draft, daemon, lifecycle, recovery, design |
| Tokens | 5861465 in / 17510 out |
Description
Reconcile the existing published-but-blocked impl-supervisor-hard-agent design with the newly approved simpler model: the existing wg service daemon owns a deterministic, durable convergence loop; it is not a graph task or LLM persona. Do not implement or publish this draft until an operator explicitly chooses how it supersedes or edits the older supervisor/controller tasks.
The reconciler persists each nonterminal task's goal/stage, next wake, exponential backoff, blocker, and last authoritative progress. It wakes on events, deadlines, restart, and a safety sweep; takes one fenced/idempotent next step toward Land/Deliver/Report; wakes the original goal task when reasoning/source repair is required; and creates a new graph task only for genuinely new goal-bearing work. Transient infrastructure sleeps with jittered exponential falloff rather than exhausting into task failure. Route-level outages use one breaker/probe and never cross-model fallback. Semantic failures change the next action rather than blindly repeat. Needs-human conditions continue event-driven/slow probing.
Review and either retire, edit, or explicitly supersede impl-supervisor-hard-agent, impl-adaptive-parallelism-controller, and impl-supervisor-controller-composition; do not leave two controllers with overlapping authority.
Validation
- Durable next-wake/backoff survives daemon restart and resets only on authoritative progress.
- Dead owner, overdue retry, satisfied wait, pending evaluation, accepted-not-finished, merge-receipt cleanup, and provider outage each converge through the correct existing task/stage.
- Provider-wide outage produces one probe and staggered wakes, with no cross-route fallback or retry storm.
- Semantic rejection returns to the same source goal; deterministic reconciliation never invents source edits.
- No
.daemon-*graph task, no controller LLM dependency, and no duplicate authority with reaper/sweep/finalization. - Credential-free restart and long-falloff smokes prove the goal remains live rather than becoming generic Failed.
Depends on
Required by
Log
- 2026-07-31T08:35:54.648098667+00:00 Task paused
- 2026-07-31T11:34:04.519088169+00:00 Task published
- 2026-07-31T11:34:07.344356463+00:00 Spawned by coordinator --executor pi --model openai-codex:gpt-5.6-sol --isolation required-worktree
- 2026-07-31T11:34:23.188090275+00:00 Starting design reconciliation. I will first audit the three older supervisor/controller tasks and current lifecycle/reaper/finalization seams; because the task explicitly forbids implementation/publication before an operator chooses the supersession path, I will keep the result as a non-implementing decision draft and surface the required operator gate.
- 2026-07-31T11:37:33.244076468+00:00 Audit complete: the old supervisor assumes a fourth persona/reset authority, while current main now has lifecycle CAS/idempotency, task-owned finish receipts, route-key provider health, event-driven graph wakes, and existing dead-owner/wait/evaluation/cleanup owners. I am drafting a single daemon reconciler that schedules those existing owners without duplicating their mutations, plus an explicit operator decision packet for retiring or narrowing the three old tasks. No implementation task will be added or published and the old task graph will not be mutated before that choice.
- 2026-07-31T11:40:21.479644773+00:00 Drafted docs/design-deterministic-convergence-reconciler.md with the durable state schema, authoritative-progress/backoff rules, one-step fenced scheduler, existing-owner boundary, full case matrix, route breaker/probe semantics, restart/long-falloff smoke plan, and three mutually exclusive operator migration choices. Paused the three published old tasks only as a reversible no-dispatch interlock; did not retire/edit/supersede them, add an implementation task, or publish any draft.
- 2026-07-31T11:43:48.564533544+00:00 Validated decision draft against every task criterion: persistent next-wake/backoff + authoritative progress reset; seven-case same-goal/stage matrix; one route-key probe + deterministic staggering + no fallback; semantic rejection/source repair boundary; no daemon/controller graph task or LLM; credential-free restart/long-falloff smoke plan. Verified referenced source files/symbols exist, old three tasks are paused/non-dispatchable, no implementation task or smoke owner was added, and no old task was retired/edited/superseded without operator choice. cargo fmt/check and git diff --check PASS; prescribed cargo clippy PASS with pre-existing warnings. An exploratory all-features clippy hit a matrix-sdk dependency recursion-depth overflow and is not the CI invocation.
- 2026-07-31T11:44:16.528225916+00:00 Committed: 1e3da4c6 — pushed to remote