Prove visible terminal size convergence#7006
Open
brennanb2025 wants to merge 1 commit into
Open
Conversation
Co-authored-by: Orca <help@stably.ai>
|
Ready to review this PR? Stage has broken it down into 2 individual chapters for you:
Chapters generated by Stage for commit 9344a04 on Jul 1, 2026 8:23am UTC. |
This was referenced Jul 1, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
ELI5
A terminal needs to agree on its size in several places: what the UI thinks, what the terminal renderer thinks, what the PTY thinks, and what the shell sees. When those disagree, users get blank panes, wrapped text, or broken splits. This PR adds a deterministic test for the size-recovery logic so visible terminals keep trying in bounded steps until the important sizes line up.
Why We Need This
This covers the visible terminal-size convergence class. Blank panes, broken wrapping, and split-layout failures can happen when xterm, fit/proposed size, provider-applied PTY size, and the visible layout disagree, especially after 0x0 measurements or hidden-to-visible transitions.
Product Code vs Gate Coverage
This PR is gate coverage, not terminal sizing restructuring. It adds deterministic renderer-unit tests for the existing post-spawn PTY size reconciliation layer and records the remaining live-shell/provider-contract gaps in the manifest. The gate proves convergence attempts are bounded and do not rely on blind sleeps.
Merge Order
Requires #7001 first because this PR updates the reliability gate manifest introduced there.
After #7001 lands, this PR can merge independently of #7004, #7005, #7007, and #7008. No other child PR must merge before this one. Later child PRs may need a normal manifest rebase if this one lands first.
Why These Tests Stay Useful
stty/echo-wrap test remains a follow-up provider-contract or Electron gate.experimentaluntil soak history, runtime evidence, and provider/Electron follow-up coverage justify promotion.Validation
Residual risks
Performance note
Made with Orca 🐋
Post-PR Stabilization