a73x

5f608210

test: the restored wall does not move after it paints

a73x   2026-08-30 16:55

Commit message
test: the restored wall does not move after it paints

One rail column in the whole of run 2's capture — matched as the full
rail glyph (CUP, reverse video, one space, reset), because a label bar
starts with the same CUP+SGR at its pane's own left column and the
looser rail_cols prefix reads the right pane's bar as a rail.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

test/e2e_12_panes.sh
Old New
@@ -665,6 +665,18 @@ _max_rail=$(rail_cols "$OUT.lprcap2" | tail -1)
665 [ "$_max_rail" -ge 43 ] || { 665 [ "$_max_rail" -ge 43 ] || {
666 echo "e2e FAIL: layout-restore: rail column $_max_rail < 43 (resize did not survive)" 666 echo "e2e FAIL: layout-restore: rail column $_max_rail < 43 (resize did not survive)"
667 cat "$OUT.lprcap2"; exit 1; } 667 cat "$OUT.lprcap2"; exit 1; }
668 # The seed's whole point: the restored wall paints its saved cut FIRST
669 # and never moves. Run 2 does no resizing, so a second rail column in
670 # its capture is a re-cut the user watched (the old restore painted the
671 # default cut at ~40, then healed to 43+ two seconds in). The glyph is
672 # matched whole — CUP, reverse video, ONE space, reset — because a label
673 # bar starts with the same CUP+SGR at its pane's own left column, and
674 # `rail_cols`' looser prefix reads the right pane's bar as a rail.
675 _rail_count=$(grep -aoE $'\x1b\[[0-9]+;[0-9]+H\x1b\[7m \x1b\[0m' "$OUT.lprcap2" |
676 sed -E 's/.*;([0-9]+)H.*/\1/' | sort -n | uniq | wc -l)
677 [ "$_rail_count" -eq 1 ] || {
678 echo "e2e FAIL: layout-restore: $_rail_count rail columns in run 2 — the restored wall moved after it painted:"
679 rail_cols "$OUT.lprcap2"; cat "$OUT.lprpc2"; exit 1; }
668 # The marker typed into the restored wall landed in session b — the 680 # The marker typed into the restored wall landed in session b — the
669 # focus was saved on pane b and restore put it back there, not tile 0. 681 # focus was saved on pane b and restore put it back there, not tile 0.
670 timeout 20 "$MUX" a capture --sock "$SOCK59" --session b > "$OUT.lprfb" 2>&1 682 timeout 20 "$MUX" a capture --sock "$SOCK59" --session b > "$OUT.lprfb" 2>&1