5.3 KiB
Independent review of the conditional placement transfer correction
2026-09-25. Reviewed exact 4dd764fa6cfc6920350383e523ba5a597412ddf4→2426d286483ab0445663221cd6010a3dadb89a97 diff. Only the example importer, its three new regression tests, and the experiment plan addendum change. condensed.rs, production model/projection/routing and SCC placement policy remain unchanged. No compiler, tests, router, candidate or GUI execution by this reviewer.
Verdict: no material source blocker or accidental acceptance weakening found. The correction implements the bounded predicate proposed in the run01 diagnosis and retains exact final-projection rejection. It is a faithful-transfer fix, not a new layout choice. Run01 and its source review/diagnosis remain valid records of the original failure. Gate24 and the unchanged-policy run02 are parent-owned pending evidence; this review does not claim they pass.
At crates/oa-core/examples/auto_layout_probe.rs:975–1015, the importer first requires the complete original visible identity set with no duplicate count. An already exact node is untouched. Every mismatching node must have exactly the intended position, be noncollapsed, retain an intended size equal to its original projected size, and have no first-projected dimension larger than intended. Because exact sizes were already skipped, a qualifying finite size has at least one strictly smaller dimension. Any other mismatch rejects before any restoration is applied.
All qualified minima are then written simultaneously to the private clone, followed by model validation and one additional projection. The existing exact comparison of all intended node positions/sizes remains the final gate; there is no retry loop, tolerance, clipping, or substitution of whatever projection happened to return. An invalid nested enclosure or additional port-capacity expansion still fails that comparison. Failure does not mutate the input Project.
The first projection already matches for a true identity transfer or a rigid family translation whose enclosure is unchanged, so those cases retain the old authored sizes. Inward child movement can instead remove a formerly derived minimum: writing the requested unchanged projected size as an explicit authored minimum is exactly the storage change needed to preserve the intended visible footprint. This can write both dimensions of the qualified node's Size, even when only one projected dimension shrank; the new conservation audit must allow exactly this declared intended Size on qualified nodes, not silently ignore every size difference.
Restoring multiple nested minima can make a final parent exceed its intended enclosure; the final exact check refuses rather than iterating. Restoring stored sizes can also alter automatic port side/slot choice. Those choices are derived from the returned Project and must be observed by the final port/lead/full-route checks; they are not fixed by this importer and do not authorize an anchor edit. condensed::candidate still performs its final actual-projection lead check after this transfer. A source-correct transfer still need not route successfully or improve readability.
Route reset eligibility remains captured from the original view. Original-to-final positional deltas, hidden descendant translations, route entry/order/attachments and other views are untouched by the correction. Since restoration changes only node sizes and requires exact positions, it does not require recomputing positional route translation. Eligible overrides remain cleared once by the existing policy; retained pins are not repurposed as generated layout constraints.
The three tests are meaningful and suitably bounded:
unchanged_effective_container_size_survives_inward_child_movementat1054 moves the lower child in each parent inward20 units, constructs a full expected Project clone with precisely those positions and requested parent minima, and checks exact output plus all original effective dimensions. It distinguishes this bug from a normal new requested size.identity_keeps_authored_expanded_and_folded_sizesat1095 checks complete Project equality for both expanded and folded identity transfers, including hidden placements. The fixture has no authored routes; this is not a new hidden-pin lifecycle test.inconsistent_smaller_container_plan_still_rejectsat1122 moves a child1000 units beyond its planned enclosure and requires rejection, exercising the larger-derived-size boundary rather than accepting arbitrary reprojection.
These do not exhaust position/ID/automatic-side/nested-restoration cases, but source predicates retain those guards and the fixed corpus rerun provides the next integration evidence. No broader fixture expansion or policy change is required before that run.
The plan addendum accurately preserves run01 and predeclares repeating the same frozen corpus with unchanged SCC ordering, gaps, packing, router and criteria. Do not pool a corrected transfer with a tuned layout or mark the first failure passed retroactively.
Reviewed importer SHA256: 13057d1961ab2b574d202538b11fe7d3173aa7ea288ab380c4e1fcc81b6d6e7d.
Related unchanged run01 diagnosis: .local/scc-failure-diagnosis-20260925.md, SHA256 7a866902303fb83d14a673e1cede028c5a15517499e8e5f284fced4212f9a536. No native adoption, whole-layout acceptance or remote publication claim.