fix(desktop): in-app browser kept squishing the chat and jamming its resize sash - #83115
Merged
Conversation
Contributor
૮ >ﻌ< ა ci reviewrunning on 33ac4bc — fix(desktop): satisfy eslint on pane-share-memory test waiting for jobs to start… |
OutThisLife
enabled auto-merge
August 10, 2026 09:54
33hodl
pushed a commit
to 33hodl/hermes-agent
that referenced
this pull request
Aug 12, 2026
…ne-resize fix(desktop): in-app browser kept squishing the chat and jamming its resize sash
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.
Reported on Discord: with the built-in browser open, the conversation column keeps getting crushed ("my chat ends up 3 characters wide") and dragging the browser's left edge only moves a little per attempt.
Three bugs in the pane shell lined up to produce that. The browser is an Electron
<webview>, which hit-tests in its own process — a sash drag went silent as soon as the pointer crossed into the page, so shrinking the browser barely worked while growing it worked fine. A multi-tab flex zone lost its panes' min-width floors, so a chat zone with session tabs stacked in could be dragged down to the generic 80px floor and persisted there. And every close/reopen of the browser re-split the chat zone[1, 1], taking half the conversation again no matter what size the user had left it at.Summary
guardGuestPointers()makeswebview/iframeguests transparent to hit-testing for the life of a drag (sash resize, preview console resize, tab drag), so the gesture follows the pointer across the browser; the tree sash also gainsblur/lostpointercaptureteardown like the console sash already had.sizingFornow aggregates min floors for flex stacks too (largest-tenant, same rule as fixed stacks); caps still apply only where they speak for the whole zone.hermes.desktop.paneShare.v1); adoption anddockPaneBesidere-insert with that share instead of an even split.Test plan
npx vitest run src/components/pane-shell— 103 tests, including newpane-share-memory.test.ts(first open splits evenly, reopen restores the recorded share, stacked tabs record nothing)tsc --noEmitclean