fix(desktop): hide hover close buttons on Sessions and Bots tabs - #89551
Closed
calvinnwq wants to merge 1 commit into
Closed
fix(desktop): hide hover close buttons on Sessions and Bots tabs#89551calvinnwq wants to merge 1 commit into
calvinnwq wants to merge 1 commit into
Conversation
Add a pane-level opt-out for the hover close button and apply it to the persistent Sessions and Bots navigation panes. Keep their existing close handlers and other tab behavior intact.\n\nFixes NousResearch#89546
teknium1
added a commit
that referenced
this pull request
Aug 19, 2026
…tures, right-click + Cmd-K toggles Builds on #89551 (@calvinnwq, cherry-picked): his showCloseButton flag hid the hover X; this completes the model so standing chrome can never be closed at all, only shown/hidden (#89546). - hideOnly pane chrome (sessions + Bots): no hover X, no middle/meta click close, no Close verbs in the tab menu, excluded from close-others/right/all sweeps - zone right-click menu gains Show/Hide rows for the strip's chrome tabs (Hide bots / Show sessions, localized in 6 locales) - Cmd-K palette: auto-registered "Toggle <tab> tab" rows for every hideOnly pane, on-screen truth semantics, plugin panes included via registry subscription - hides persist across launches (survive the enforced dock re-adopt); reveal intent and Layout reset clear them - last-visible-tab guard: hiding the zone's last shown tab is refused with a toast, so the strip can never become an empty dead zone
Contributor
|
Merged via #89572 — your commit was cherry-picked as the base of that PR, so your authorship is preserved in main's history (a807d18, rebase-merged). Thanks @calvinnwq! On top of your ✕ suppression, #89572 also removed the remaining close gestures on Sessions/Bots (middle-click/⌘-click and the tab-menu Close verbs) and added the show/hide replacement surface: right-click Show/Hide rows on the zone menu, ⌘K "Toggle sessions/bots tab" rows, persistence across launches, and a last-visible-tab guard. Closing this one since it's fully contained in the merged PR. |
lisajlau
pushed a commit
to lisajlau/hermes-agent
that referenced
this pull request
Aug 20, 2026
…tures, right-click + Cmd-K toggles Builds on NousResearch#89551 (@calvinnwq, cherry-picked): his showCloseButton flag hid the hover X; this completes the model so standing chrome can never be closed at all, only shown/hidden (NousResearch#89546). - hideOnly pane chrome (sessions + Bots): no hover X, no middle/meta click close, no Close verbs in the tab menu, excluded from close-others/right/all sweeps - zone right-click menu gains Show/Hide rows for the strip's chrome tabs (Hide bots / Show sessions, localized in 6 locales) - Cmd-K palette: auto-registered "Toggle <tab> tab" rows for every hideOnly pane, on-screen truth semantics, plugin panes included via registry subscription - hides persist across launches (survive the enforced dock re-adopt); reveal intent and Layout reset clear them - last-visible-tab guard: hiding the zone's last shown tab is refused with a toast, so the strip can never become an empty dead zone
19 tasks
prmartinow
pushed a commit
to prmartinow/hermes-agent
that referenced
this pull request
Aug 26, 2026
…tures, right-click + Cmd-K toggles Builds on NousResearch#89551 (@calvinnwq, cherry-picked): his showCloseButton flag hid the hover X; this completes the model so standing chrome can never be closed at all, only shown/hidden (NousResearch#89546). - hideOnly pane chrome (sessions + Bots): no hover X, no middle/meta click close, no Close verbs in the tab menu, excluded from close-others/right/all sweeps - zone right-click menu gains Show/Hide rows for the strip's chrome tabs (Hide bots / Show sessions, localized in 6 locales) - Cmd-K palette: auto-registered "Toggle <tab> tab" rows for every hideOnly pane, on-screen truth semantics, plugin panes included via registry subscription - hides persist across launches (survive the enforced dock re-adopt); reveal intent and Layout reset clear them - last-visible-tab guard: hiding the zone's last shown tab is refused with a toast, so the strip can never become an empty dead zone
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.
Summary
×close affordance on the persistentSESSIONS | BOTSnavigation tabs.Fixes #89546.
Root cause
PR #89428 introduced the hover close button in the shared
PaneTabprimitive for every closeable horizontal pane tab:Sessions and Bots were already modeled as closeable horizontal panes, so they inherited the button. The original PR changed only the shared primitive and did not define a distinction between disposable content tabs and persistent navigation panes.
Related earlier implementations are #69392 and #89243.
Approach
Add an explicit
showCloseButtonpane policy:PaneTab.showCloseButtondefaults totrue.PaneTab.showCloseButton: false.onClosehandler remains attached, so this PR changes only the visible hover affordance rather than silently changing close routing.This avoids hard-coding pane IDs in the shared renderer and preserves the generic behavior for ordinary content tabs.
Tests
NODE_ENV=test npx vitest run src/components/ui/pane-tab.test.tsx— 10 passed.NODE_ENV=test npm run test:ui— 526 files / 4,879 tests passed.npm run check:lint— typecheck passed; lint passed with existing warnings only.npx prettier --checkon affected TypeScript files — passed.node --check apps/desktop/src/plugins/hermes-bots/plugin.js— passed.Scope and risk
Low-risk UI-only change. No layout persistence, pane-close routing, or session state behavior is changed. The unrelated explicit close/recovery paths remain available.