Pin the prompt to the bottom of the screen master
The inline viewport used to anchor wherever the shell's cursor sat at launch and drift down as narration streamed in, so a fresh terminal showed the prompt floating mid-screen with dead space under it. terminal.rs now moves the cursor to the pinned bottom row before the terminal is built, scrolling existing shell output up first if it already reaches that far down, the same as a program whose output ran past the last row. CrosstermViewport::resize anchors the same way on every resize: growing scrolls the transcript above out of the way, shrinking clears the rows it gives back, and the viewport's bottom row never leaves the screen's last row. The row arithmetic lives as pure, unit-tested functions in viewport.rs; terminal.rs stays real-terminal glue, excluded from coverage. Verified against the ratatui 0.30 and crossterm 0.29 sources in ~/.cargo/registry: Viewport::Inline's compute_inline_size reads the cursor row, reserves height-1 more rows below it via append_lines, and only shifts the computed top up when that overruns the screen, which is why parking the cursor at the pinned top beforehand lands the viewport there with zero further scroll. insert_before's own already-at-bottom branch already scrolls the transcript up past a viewport pinned there, so no change was needed to get that half of the pinning for free. Task 8 of plan 0008, a sandbox addendum greenlit by Chris after the test drive. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012zSZW6bFzUQTWG37wErsH6