homemaker-layout/tests
Bruno Postle 929be5b144 homemaker-py-iio: fix stale leaf-share leak in collapse_global's probe valuation
_collapse_value and _usage_quality temporarily overwrite leaf.type to probe a
hypothetical candidate code, but graph.leaf_share reads that overwritten type
against leaf.share_type -- so a stale share (left over from a code the leaf
was since retyped away from) spuriously reactivates whenever the probed
candidate happens to equal the old share_type, skewing the Hungarian
assignment's cell value for that (leaf, code) pair. dom.dump/dom.load drops
such stale metadata on reload (dom._emit only serialises share when
share_type==type), so a live search tree carrying it and its dump/reload
round trip fed different values into the same collapse_global call and
landed on different optimal matchings.

Fix: neutralise share_type during the probe whenever the candidate differs
from the leaf's real current type, restoring it in the finally block. The
leaf's own current type still legitimately carries a live share.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01R8agJBT2ZpmF3ErW7wi2wY
2026-08-01 21:08:32 +01:00
..
test_collapse_global.py homemaker-py-iio: fix stale leaf-share leak in collapse_global's probe valuation 2026-08-01 21:08:32 +01:00
test_collapse_insearch.py qpk: in-search global collapse — run collapse_global per-eval during search 2026-07-19 20:35:18 +01:00
test_conn_grade.py qi6: graded circulation-connectivity signal (§18) 2026-07-18 18:44:24 +01:00
test_dom_corpus.py Rename package: homemaker → homemaker-layout 2026-06-14 08:18:06 +01:00
test_driver.py 8sh: insert/relocate-circulation repair operator (qi6 mechanism (a)) 2026-07-24 19:48:13 +01:00
test_evolve_cli.py x3b/§13.10: productionise leaf-sharing — per-code share grain + CLI wiring 2026-06-28 22:04:35 +01:00
test_fitness.py x3b/§13.10: productionise leaf-sharing — per-code share grain + CLI wiring 2026-06-28 22:04:35 +01:00
test_genome.py Phase 6 §11.5: structural niching + restarts — negative result (c4c.5) 2026-06-18 23:42:39 +01:00
test_geometry.py Rename package: homemaker → homemaker-layout 2026-06-14 08:18:06 +01:00
test_graph.py Rename package: homemaker → homemaker-layout 2026-06-14 08:18:06 +01:00
test_innerloop.py Swap inner loop default from CMA-ES to Nelder-Mead (homemaker-py-d6d) 2026-06-14 08:51:22 +01:00
test_multi_use.py homemaker-py-1s3: land precision-weighted shape combination for multi-use leaves 2026-07-31 10:20:49 +01:00
test_operators.py c94: beam/best-first search over adjacency-aware room placement (null) 2026-07-28 00:00:51 +01:00
test_oracle.py Rename package: homemaker → homemaker-layout 2026-06-14 08:18:06 +01:00
test_staging.py Phase 6 §11.3: staged per-floor search (c4c.3) 2026-06-18 06:05:53 +01:00
test_superposition.py b3v: interchange:false veto hatch for interchange-class derivation 2026-07-17 16:53:20 +01:00