fix(app): remember review pane width across sessions, default to smallest#10
Open
stroopc-owner wants to merge 1 commit into
Open
fix(app): remember review pane width across sessions, default to smallest#10stroopc-owner wants to merge 1 commit into
stroopc-owner wants to merge 1 commit into
Conversation
…lest The review pane is flex-1, so its width is whatever the chat panel leaves. The chat width lived in the per-server layout store, so every server (each Forge task connects to its own) started at the 600px default -- the review pane grabbed the rest of a wide monitor -- and a width set in one task never carried to another. Persist the chat/review split width in the shared global scope instead, and default an unset width to the widest allowed chat panel (the review pane's smallest state) so it starts minimized. Terminal-tab isolation stays per-server.
|
This PR doesn't fully meet our contributing guidelines and PR template. What needs to be fixed:
Please edit this PR description to address the above within 2 hours, or it will be automatically closed. If you believe this was flagged incorrectly, please let a maintainer know. |
|
Thanks for your contribution! This PR doesn't have a linked issue. All PRs must reference an existing issue. Please:
See CONTRIBUTING.md for details. |
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.
Issue for this PR
Closes #
Type of change
What does this PR do?
The review pane (the changed-files / diff panel) is
flex-1, so its width is simply whatever the chat panel leaves. The chat panel's width (layout.session.width) was persisted in the per-server layout store. In embeddings where each session connects to its own server (e.g. Owner's Forge UI, where every task is a separate server), that meant each session started fresh at the 600px default — so on a wide monitor the review pane grabbed nearly the whole remainder — and a width set in one session never carried over to another.This moves the chat/review split width into the shared global persist scope (
Persist.global), so one width is remembered across every session and server. An unset width now resolves to the widest the chat panel is allowed to be (window.innerWidth * 0.45, mirroring the resize-handlemaxclamp) — i.e. the review pane's smallest state — so it starts minimized on first open instead of maxed out. Terminal-tab isolation stays per-server (unchanged).Old per-server layout stores that still carry a
session.widthfield are simply ignored now (harmless dead data); the migrate function is untouched.How did you verify your code works?
resolveSessionWidthunit tests covering both states (never-set → smallest-review default, and a remembered width) inpackages/app/src/context/layout.test.ts.Screenshots / recordings
UI change; review pane now opens minimized and keeps a consistent width across sessions.
Checklist