sizes.py merged every owned tree's rows and let the last one win, so a stale reflect tree — last built before the window constants moved — reported the atmega8's old stock size over the fresh build and failed the README check with yesterday's number. Generated and reflect must answer with the same bytes (the identity invariant), so the same target measuring two sizes is a stale tree or an identity breach; collect() refuses now, naming both trees. The stale reflect trees are removed — the reflect sweep rebuilds them. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
8.1 KiB
Executable File
8.1 KiB
Executable File