Home-screen text spacing
On non-Indicator companions, a visible Bluetooth PIN or connection status owns a separate bottom-aligned block. It replaces the ordinary inbox instruction, clock and WiFi rows while displayed. The PIN stays below the inbox title; the label and value use measured font heights, including the MeshPocket's larger e-paper font. An unusually short viewport may omit the label, never overlap the title or clip the PIN. Indicator's dedicated pairing layout is unchanged.
The repeater home page also stacks measured font-height rows instead of fixed ten-pixel offsets. Long names and status lines are ellipsized horizontally.
Run python3 -m unittest discover -s test -p test_home_text_spacing.py -v on a
host with a C++ compiler. This renders the actual companion and repeater home
branches, recording every text rectangle and rejecting overlaps or clipping.
It covers 128x64 OLED, 160x80 T096, 250x122 MeshPocket and larger viewports,
PIN/connected/disabled/prompt states, WiFi variants, long strings and a sweep
of font heights. It also checks the static reader hint. The separate native
display and T096 tests exercise the driver drawing/measurement methods.
Hardware acceptance: check that the full six-digit PIN is near the bottom, with no text over it; connect/disconnect Bluetooth and verify no stale digits; then check the repeater's five rows and the V4's non-blinking reader footer.