Header was disappearing in tmux at narrow widths under Logs/Utilities
panels because Yoga's flex-column placed the panel body at y=0 instead
of y=1, overdrawing the header. Synthetic tests at every width show the
layout as correct, but real-tmux log-update tracking drifts over many
state updates and the header gets scrolled off.
- Paint header as an ANSI overlay after every Ink frame write (DECSC/
DECRC cursor save/restore) — guaranteed at terminal row 1 regardless
of any layout drift. Skipped during splash so the loading screen is
uncluttered.
- StatusModeGrid: full-width System on top (4-row pinned, chips wrap if
needed) + Logs filling the middle + Stats/Utilities/Settings as
equal-width bottom row. Stats now shows just Process/System rows.
- StatusModeSingle: 1-row spacer only at cols<68 (Yoga edge case at
very narrow widths shifts content up); 68+ has no spacer per UX.
- Panel/LogsPanel/UtilitiesPanel inner content boxes pinned with
flexShrink=1 + overflow=hidden so panel intrinsic height can't push
the frame past terminal rows.
- Each Logs entry wrapped in height={1} Box (when wrap is off) — Yoga
was sometimes measuring nested Text as taller than 1 row at narrow
widths.
- Tab "Explorer" → "Files" with shortcut "e" → "f" (preserves
filter-cycle on Logs panel; switches to Files view elsewhere).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>