092bca554a
The per-task plan-extract fan-out re-primes a fresh context per task (~59k real tokens each; 244 dispatches / 14.4M in the 206-run corpus) to re-read the same plan. Small plans now extract in ONE plan-extract-all call, gated by per-task byte estimates the index reports (ceiling 20k bytes — on BYTES, never task count: the #22 truncation is output-byte-driven). The #22 protection is strengthened, not traded: the batched result must carry EXACTLY the expected id set (count match, every id present, no empty text) or it is discarded wholesale and the per-task fan-out runs instead — a prefix-truncated batch drops trailing tasks and fails the count-match closed. No single-shot retry; the fan-out is the retry. Estimates are a routing heuristic only, never load-bearing for correctness. refs #29, refs #22