Skip to content

fix(desktop): in-app browser kept squishing the chat and jamming its resize sash - #83115

Merged
OutThisLife merged 4 commits into
mainfrom
bb/browser-pane-resize
Aug 10, 2026
Merged

fix(desktop): in-app browser kept squishing the chat and jamming its resize sash#83115
OutThisLife merged 4 commits into
mainfrom
bb/browser-pane-resize

Conversation

@OutThisLife

Copy link
Copy Markdown
Collaborator

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

  • New guardGuestPointers() makes webview/iframe guests 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 gains blur/lostpointercapture teardown like the console sash already had.
  • sizingFor now 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.
  • A tile pane that leaves the tree alone in its zone records the share it held against its seam neighbor (hermes.desktop.paneShare.v1); adoption and dockPaneBeside re-insert with that share instead of an even split.

Test plan

  • npx vitest run src/components/pane-shell — 103 tests, including new pane-share-memory.test.ts (first open splits evenly, reopen restores the recorded share, stacked tabs record nothing)
  • tsc --noEmit clean
  • In the app: drag the browser's left seam rightward across the page — it tracks the pointer the whole way
  • Shrink the browser, close the tab, have the agent open a URL — the browser comes back at the size it was closed at
  • With two session tabs open, confirm the chat column can't be dragged below its min width

@github-actions

github-actions Bot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

૮ >ﻌ< ა ci review

running on 33ac4bc — fix(desktop): satisfy eslint on pane-share-memory test

waiting for jobs to start…

@OutThisLife
OutThisLife enabled auto-merge August 10, 2026 09:54
@alt-glitch alt-glitch added type/bug Something isn't working comp/desktop Electron desktop app (apps/desktop/*) P3 Low — cosmetic, nice to have labels Aug 10, 2026
@OutThisLife
OutThisLife merged commit 5a3920b into main Aug 10, 2026
39 checks passed
@OutThisLife
OutThisLife deleted the bb/browser-pane-resize branch August 10, 2026 10:07
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/desktop Electron desktop app (apps/desktop/*) P3 Low — cosmetic, nice to have type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants