7114bb7658
The ? help and S stats modals rendered at fixed height; compositeOverlay drops any rows past the screen, so on a 24-30 row terminal their bottom sections — including the close hint — vanished with no way to reach them (and the backdrop border corrupted). Recent help additions worsened it. - Add a shared scrollable-modal renderer: helpBody()/statsBody() produce discrete lines, renderScrollModal() windows them by m.modalScroll (clamped to the viewport via modalBodyRows/scrollableModalMax) and pins the hint, so the box never exceeds the screen. A "(off-end/total)" indicator shows in the title when scrolled. Keys: ↑↓/jk line, PgUp/PgDn page, ^u/^d half, g/G ends; any other key still dismisses help. modal_scroll_test.go (2): clamp + no-op. - Page the artifacts viewer (v) too: PgUp/PgDn were one line at a time — now a full body, with ^u/^d half and g/G ends via scrollArtifact(). Verified via cmd/preview: help/stats close hints now survive at h=20-28 (were clipped below ~32/40) and show the scroll indicator; full at tall heights. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>