Repository navigation
fix(desktop): stop empty mispositioned tooltip on terminal rail hover - #63029
Merged
Merged
Conversation
A block-level label child (e.g. `flex`) collapses TooltipContent's inline `box-decoration-clone` wrapper, so Radix measures a zero-size chip and parks an empty black rectangle in the panel corner instead of by the trigger (#62022). The terminal rail's hotkey labels and the preview row's two-line label both hit this. Harden the shared wrapper (`[&>*]:!inline-flex`) so any call site's direct child renders inline-flex, add a reusable `TipHintLabel` for the common text+hotkey label, and keep the preview row's label explicitly inline-flex. Salvages #62139 (shared-component hardening + TipHintLabel) and #62073 (inline-flex call-site fixes + rail/preview coverage). Co-authored-by: alelpoan <alelpoan@proton.me> Co-authored-by: zapabob <1920071390@campus.ouj.ac.jp>
This was referenced Jul 12, 2026
santhreal
pushed a commit
to santhreal/hermes-agent
that referenced
this pull request
Jul 13, 2026
…022-tooltip fix(desktop): stop empty mispositioned tooltip on terminal rail hover
shelizi
pushed a commit
to shelizi/hermes-agent
that referenced
this pull request
Jul 14, 2026
…022-tooltip fix(desktop): stop empty mispositioned tooltip on terminal rail hover
Gravezzz
pushed a commit
to Gravezzz/hermes-agent
that referenced
this pull request
Jul 21, 2026
…022-tooltip fix(desktop): stop empty mispositioned tooltip on terminal rail hover
leewenjie
pushed a commit
to leewenjie/hermes-agent
that referenced
this pull request
Aug 7, 2026
…022-tooltip fix(desktop): stop empty mispositioned tooltip on terminal rail hover
randlee
pushed a commit
to randlee/hermes-agent
that referenced
this pull request
Aug 11, 2026
…022-tooltip fix(desktop): stop empty mispositioned tooltip on terminal rail hover
melon-xf
added a commit
to melon-xf/hermes-agent
that referenced
this pull request
Sep 3, 2026
…022-tooltip fix(desktop): stop empty mispositioned tooltip on terminal rail hover
2 of 4 tasks
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
Hovering a terminal rail tab or the "+" button showed an empty black rectangle parked in the panel corner instead of a labeled tooltip by the cursor (#62022).
Root cause:
TooltipContentwraps its label in aninlinebox-decoration-clonespan so the chip hugs each wrapped line. A block-level label child (flex/flex-col) collapses that inline wrapper's intrinsic geometry, so Radix measures a zero-size chip and positions an empty rectangle at the origin. The terminal rail'stext + hotkeylabels and the preview row's two-line label both passed block children.Fix (both layers):
[&>*]:!inline-flexso any call site's direct child renders inline-flex — defends every current and futureTipusage.TipHintLabel(text+ optionalhint) and use it in the rail, replacing the bespokeflexspan.inline-flex(intent at the call site, not just the global guard).Salvages #62139 (shared-component hardening +
TipHintLabel, by @alelpoan) and #62073 (inline-flex call-site fixes + rail/preview coverage, by @zapabob) into one — the shared guard fixes the whole bug class, the call-site changes keep intent explicit, and the tests from both are consolidated.Fixes #62022
Test plan
npx vitest run --environment jsdomontooltip.test.tsx,rail.test.tsx,preview-row.test.tsx(6 passed)npm run typecheck(app + electron tsconfigs)eslinton all changed files (0 errors)