Skip to content

fix(session): port resize-storm coalescing and owner-pane gating from main (0046 M3.3) - #411

Merged
yicheng47 merged 2 commits into
gpui-nightlyfrom
feat/0046-m3-resize-storms
Aug 18, 2026
Merged

fix(session): port resize-storm coalescing and owner-pane gating from main (0046 M3.3)#411
yicheng47 merged 2 commits into
gpui-nightlyfrom
feat/0046-m3-resize-storms

Conversation

@yicheng47

Copy link
Copy Markdown
Owner

0046 M3.3 — third task of the M3 session-hardening slice. Ports main's 38af26c (coalesce resize storms, gate size pushes to the owning pane, #373) and e78718f (emit the resize clear in-band at settle, freeze non-owner grids); port guide is main's impl 0039 at its post-e78718f state.

What ported

  • Backend width storms trailing-debounce at 175ms and settle under the session-state lock, preserving prompt DB geometry; rows-only and shell resizes stay synchronous; a real width change settles to a single in-band clear sequenced before the SIGWINCH repaint bytes (consumer seq gate closes the broadcast-ordering hole — comment at the emit site updated per review).
  • Native GPUI half: prepaint geometry passes a zero/unplaced gate; each grouped session has exactly one owner pane — non-owners neither refit nor push sizes (terminal_resize.rs + pane-layout owner logic, with main's helper tests translated to Rust).
  • main's manager tests ported (resize + settle suites); new native geometry/owner tests.

Explicit deferrals (no native counterpart)

React-only hidden PersistentSurfaces resize, resizeDisabled, and frontend telemetry — recorded with reasons in the impl-log entry.

Also in this PR

  • docs: decision 7 revised — crate renames (runner-apprunner-backend, runner-nativerunner-app) move from Phase 6 cutover to right after M3.4, so M4's UI code is written under the final crate layout.

Verification

  • make verify green: 439 runner-app tests, all native tests, clippy -D warnings, fmt-check, 10/10 terminal fixtures.
  • Codex-peer review clean; reviewer re-ran the gates independently and traced the debounce state machine through the kill/settle/prune interleavings.

🤖 Generated with Claude Code

@yicheng47
yicheng47 merged commit d159298 into gpui-nightly Aug 18, 2026
1 check passed
@yicheng47
yicheng47 deleted the feat/0046-m3-resize-storms branch August 18, 2026 05:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant