2024821d67
The SSH renderer previously declared 'provisionalPendingPreview: "collapsed"', which only opted the COLLAPSED pending shape out of the transcript's stable-prefix ratchet. Once the user expanded an in-flight SSH preview (ctrl+o) and the framed block outgrew the viewport, the pending rows became ratchet-eligible and committed to native scrollback before the result render inserted the 'Output' section. The settled render then re-anchored the frame, producing two distinct stranded shapes in history: - a stale 'pending SSH: [host]' header pinned above the final '<- SSH: [host]' frame (header variant), and - the pending bottom border row reused in-place as the new 'Output' separator, with a fresh '...' footer pushed below it (footer variant). Flip 'provisionalPendingPreview' to 'true' so every pending shape — collapsed or expanded — is treated as provisional and stays out of native scrollback until the result render commits a settled frame. The 'collapsed'-only opt-out remains correct for renderers (bash, eval) whose expanded pending preview is top-anchored and survives the result render without re-anchoring. Added two contract tests asserting expanded pending SSH is commit-unstable and that bash/eval expanded pending preview is still commit-stable — keeping the opt-in renderer-scoped. Fixes #3714