Repository navigation
Make right-click navigation immediate and keep its target clear - #1287
Merged
Merged
Conversation
Prevent accidental navigation-label selection while preserving readable content. Keep sidebar source highlights through context-menu dismissal, with instant shared context entrances and unchanged dropdown/submenu motion. Co-authored-by: goose <goose@users.noreply.github.com> Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
kalvinnchau
approved these changes
Oct 16, 2026
kalvinnchau
left a comment
Contributor
There was a problem hiding this comment.
🤖 Approved. No actionable defects found. Targeted tests, browser checks, and TypeScript checks passed. Required live staging UI validation remains unverified because startup requires Keychain access.
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.
What this does
Right-click navigation without accidentally selecting its label. Context menus now appear immediately, and channel and Solo chat sidebar rows keep their hover highlight until their menu finishes closing—without changing the conversation being viewed.
Messages, inline links, and editors remain selectable. Ordinary dropdowns, popovers, and submenus retain their existing entrance animation, including dropdowns nested inside a right-click target. The existing channel-tab selection protection is unchanged.
Why it matters
Opening a menu previously highlighted words in navigation labels and removed the row's hover fill before the menu appeared. Together with the fade, slide, and blur entrance, this made a quick navigation action feel hesitant and disconnected from its target.
Navigation labels are controls rather than selectable document text. The shared menu now distinguishes context actions from button-opened menus, while keeping normal reading and editing behavior intact.
How it works
Verification
Checked commit
7b6780515c1a21f2e6b18570bcf0d35ef4c7b644, based on014898f4484b062efd5793fa885a7433641fc2e6, with the refreshed Vitest 5 runner:BUZZ_TEST_WORKERS=2setting, without changing timeouts or skipping checks.Two browser cases were added, with no cases removed. Their browser-only contracts are native text selection and first-render/closing paint plus real portal focus. Scenario data stays minimal. Existing menu-dismiss assertions are unchanged; their exit barrier moved into a shared test helper. Submenu classification and canceled opens are tested with mounted React rather than browser journeys.
Morgan tried the desktop interaction during iteration. Full light/dark, narrow/enlarged-text, and touch acceptance are not claimed; hosted CI remains required. Open navigation work in #1273 and menu API work in #1266 overlap these owners and must preserve this behavior when integrated.