Repository navigation
fix: hidden pane memory and new pane spawn size - #4873
Conversation
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (1)
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review. 📝 WalkthroughWalkthroughPane dimensions now come from the requested placement or final tile layout across workspace, tab, split, plugin, and command creation paths. Layout application passes ordered sizes through recursive pane creation. Pane resize uses shared minimum dimensions. Terminal render-state initialization is deferred until rendering, with tests for panes resized before their first draw. Priority: ➖ Normal Merge Risk: ⚪ Minimal · up to No actionable regression is established by the supplied review context; the described change is suitable to merge subject to normal checks. Security Architecture ReviewSecurity architecture risk: 🔵 Low · up to The change affects pane startup sizing and deferred screen preparation. No new access or privilege expansion was established, and existing validation and failure cleanup remain in the reviewed paths. Incomplete verification of interrupted launches and concurrent requests limits confidence. Retained concerns Security review detailsSecurity Blast Radius
Trust Boundaries and Controls
Resilience and Maintainability Implications
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@coderabbitai review |
✅ Action performedReview finished.
|
|
aa811e1 to
7daad6c
Compare
|
@coderabbitai review |
✅ Action performedReview finished.
|
* fix: stop hidden panes keeping a full-size screen copy from creation * fix: start new panes at their laid-out size refs herdrdev#4419
Hidden panes cost much more memory than visible ones, and new panes start at the wrong size.
Memory. Each pane built a full screen copy at creation just to read its starting colors. Hidden panes never refresh it, so it stays in memory. With 100 panes, a hidden workspace went from 27 to 101 MiB, while the same panes visible used 47 MiB. The starting colors of a fresh terminal are always the same defaults, so we now read them without building the copy. 100 hidden panes now cost 44 MiB, the same as visible.
Size. New panes borrowed the size of whatever pane was first on screen. In a hidden workspace or a headless server, that could be a 1-row pane (#4419), or the whole window. Each pane now starts at the size its own tab layout will give it: full size for a new tab or workspace, its share for a split, the zoomed size for overlays, and the final size of every pane for layout apply. On a live 100-pane run, 99 of 99 split panes started at their final size. On master, all 99 were resized right after creation. Headless #4419: a new workspace next to a tiny first pane now starts at 40x119, where it used to start at 2x120.
Tests cover:
The new spawn-size and layout tests fail on the old code.
refs #4419