Problem
The OverBudget message says middle=119,296 across 3,200 chunks. Those are picker-chunks (fine-grained render units); they are easily read as L1 chunk records. On Rhys (2026-08-08) the same store measured:
- picker-chunks in the failing plan: ~3,200
- authored chunk records / L1 summaries: 202
Every reader of the incident thread (including the diagnosing agent) initially took 3,200 as "chunks of history" and reasoned about pyramid capacity from a number ~16× too large. A solve-probe histogram on the same store rendered 3,057 of 3,373 picker-chunks at L2 via only 33 L2 summaries — ~93 leaves per summary — which is what finally exposed the unit mismatch.
Proposal
- Rename/label the diagnostic field (
pickerChunks or across N render units).
- Where cheap, append authored inventory:
pyramid: L1=202 L2=33 L3=5 L4=0 (the strategy holds this.summaries; a count-by-level is O(n)).
Together with #59 (deepest available vs planned level), the exhaustion line would then carry enough to triage solver-vs-production-vs-geometry without a store probe.
Problem
The OverBudget message says
middle=119,296 across 3,200 chunks. Those are picker-chunks (fine-grained render units); they are easily read as L1 chunk records. On Rhys (2026-08-08) the same store measured:Every reader of the incident thread (including the diagnosing agent) initially took 3,200 as "chunks of history" and reasoned about pyramid capacity from a number ~16× too large. A solve-probe histogram on the same store rendered 3,057 of 3,373 picker-chunks at L2 via only 33 L2 summaries — ~93 leaves per summary — which is what finally exposed the unit mismatch.
Proposal
pickerChunksoracross N render units).pyramid: L1=202 L2=33 L3=5 L4=0(the strategy holdsthis.summaries; a count-by-level is O(n)).Together with #59 (deepest available vs planned level), the exhaustion line would then carry enough to triage solver-vs-production-vs-geometry without a store probe.