mirror of
https://github.com/Matysh/houseplan-card
synced 2026-09-29 03:09:36 +00:00
The limits read `wall_segments`, so a document older than the catalogue reports no walls at all — and therefore no violations, whatever its geometry. Comparing that raw baseline against a candidate the card had already migrated counted every inherited violation as new, and a legacy plan could not take an unrelated edit at all: renaming a room was refused with junction_limit_angle. Spec §3 forbids exactly this, and the frontend had already learned the same lesson in 4758767e; the backend mirror simply never got the second half. validate_junction_limits now runs both documents through commit_wall_segment_model before counting. A document that cannot be migrated is not this validator's verdict — the wall-model barrier owns that error and reports it with its own code — so it degrades to "no baseline to inherit". The regression is pinned twice: a test that asserts the legacy baseline reads clean raw and carries the apex once migrated, and the mutant junction-limit-backend-raw-baseline. Both fixtures that exercise the barrier were rebuilt as real documents (rooms plus walls), because the previous ones put walls in wall_segments with no rooms and did not survive migration. Issue: #329 User-Visible: no