PR 12844 by Abdulaziz Albahar · source e2476b0c22b · tag alv2
The full-height surface retains Ghostty render insets for continuous background behind the toolbar. Logical grid changes wait for keyboard, rotation, and composer transitions to finish. The connected app then redraws through the existing resize protocol; network latency still applies. No Mac client or Ghostty fork change is needed.
20 cases verified in the real paired app on an isolated iPhone 17 Simulator (iOS 26.3.1). Each uncut, normal-speed recording performs 14 major actions: scroll both directions in portrait, show the keyboard and scroll, rotate to landscape and scroll, hide the keyboard and scroll, show it again, return to portrait, and hide it. Maximum action gap across this matrix: 4.58 seconds.
| App | Content | Preference | Length | Largest action gap | Evidence |
|---|---|---|---|---|---|
| Vim | short | off | 27.8s | 2.22s | Watch · actions · resize log |
| Vim | long | off | 27.1s | 2.30s | Watch · actions · resize log |
| Vim | short | on | 26.1s | 2.21s | Watch · actions · resize log |
| Vim | long | on | 26.9s | 2.35s | Watch · actions · resize log |
| Shell | short | off | 34.1s | 3.34s | Watch · actions · resize log |
| Shell | long | off | 41.3s | 4.58s | Watch · actions · resize log |
| Shell | short | on | 35.4s | 4.15s | Watch · actions · resize log |
| Shell | long | on | 42.1s | 4.26s | Watch · actions · resize log |
| less | short | off | 28.6s | 3.87s | Watch · actions · resize log |
| less | long | off | 27.1s | 2.13s | Watch · actions · resize log |
| less | short | on | 26.9s | 2.53s | Watch · actions · resize log |
| less | long | on | 28.0s | 2.74s | Watch · actions · resize log |
| Codex transcript | short | off | 26.3s | 2.14s | Watch · actions · resize log |
| Codex transcript | long | off | 26.8s | 2.17s | Watch · actions · resize log |
| Codex transcript | short | on | 28.0s | 3.09s | Watch · actions · resize log |
| Codex transcript | long | on | 27.0s | 2.56s | Watch · actions · resize log |
| OpenCode | short | off | 26.1s | 2.15s | Watch · actions · resize log |
| OpenCode | long | off | 26.2s | 2.09s | Watch · actions · resize log |
| OpenCode | short | on | 26.4s | 2.20s | Watch · actions · resize log |
| OpenCode | long | on | 29.1s | 2.88s | Watch · actions · resize log |
Short fixtures fit the portrait viewport before keyboard presentation. Shell short cases use a fresh terminal without the earlier long scrollback. Codex normal chat uses the primary screen; these matrix cases explicitly open its alternate-screen transcript. Short Codex recordings use the installed development build, and the 120-line recordings use installed Codex 0.146.0. The short transcript includes a pre-existing optional Computer Use startup warning; no model tools or file edits were used.
Settings switch recording · Keyboard transition frames, 10 fps · Rotation frames, 10 fps · Machine-readable matrix
Extra layout recording: rotate with the keyboard hidden, open and close the composer, and scroll after each change. 13 major actions; maximum gap 2.45 seconds.
GhosttySurfaceWorkQueueTests.swift (Swift 6 concurrency), and MobileWhatsNewReplayTests.swift (macro expansion). This is not a claim that the entire suite passed.Recordings are downscaled without cuts or speed changes. Original simulator recordings are retained on the verification host until the PR closes. The durable local evidence directory contains all normal-speed proof videos, action timestamps, frame sheets, test logs, and an archive receipt with original-file checksums.