Fix Update tooltip keyboard navigation - #330176
Merged
Dmitriy Vasyura (dmitrivMS) merged 2 commits intoAug 11, 2026
Merged
Conversation
Dmitriy Vasyura (dmitrivMS)
enabled auto-merge (squash)
August 11, 2026 06:00
Copilot started reviewing on behalf of
Dmitriy Vasyura (dmitrivMS)
August 11, 2026 06:00
View session
Contributor
There was a problem hiding this comment.
Pull request overview
Adds keyboard navigation to the Update title-bar tooltip.
Changes:
- Opens and focuses tooltip actions with Tab or Down Arrow.
- Enables focus trapping for keyboard-opened tooltips.
- Adds browser tests for forward and reverse navigation.
Show a summary per file
| File | Description |
|---|---|
updateTitleBarEntry.ts |
Handles keyboard navigation and focus trapping. |
updateTooltip.ts |
Exposes first-visible-action focusing. |
updateTitleBarEntry.test.ts |
Tests Tab, Down Arrow, and Shift+Tab. |
Review details
Tip
Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Suppressed comments (1)
src/vs/workbench/contrib/update/browser/updateTitleBarEntry.ts:308
clear()disposes the current hover, andHoverWidget.dispose()invokes this entry's targetdisposecallback. That callback treats the replacement as a user dismissal; forDisabledand errorIdlestates it clearsUPDATE_TITLE_BAR_CONTEXT, so the Update entry is removed while this method is trying to reopen/focus it. Tab/Down therefore fails whenever one of those automatically shown tooltips is active. Suppress the dismissal callback during this programmatic replacement (and cover it with a non-no-op dismissal callback in the test).
this.visibleTooltip.clear();
- Files reviewed: 3/3 changed files
- Comments generated: 1
- Review effort level: Balanced
Dmitriy Vasyura (dmitrivMS)
force-pushed
the
dev/dmitriv/update-widget-focus
branch
from
August 11, 2026 06:19
bff286d to
d294e35
Compare
Dmitriy Vasyura (dmitrivMS)
marked this pull request as draft
August 11, 2026 06:20
auto-merge was automatically disabled
August 11, 2026 06:20
Pull request was converted to draft
Dmitriy Vasyura (dmitrivMS)
marked this pull request as ready for review
August 11, 2026 06:23
Dmitriy Vasyura (dmitrivMS)
enabled auto-merge (squash)
August 11, 2026 06:23
Don Jayamanne (DonJayamanne)
previously approved these changes
Aug 11, 2026
Dmitriy Vasyura (dmitrivMS)
marked this pull request as draft
August 11, 2026 06:30
auto-merge was automatically disabled
August 11, 2026 06:30
Pull request was converted to draft
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Dmitriy Vasyura (dmitrivMS)
force-pushed
the
dev/dmitriv/update-widget-focus
branch
from
August 11, 2026 08:26
0552f87 to
5c0d2f6
Compare
Dmitriy Vasyura (dmitrivMS)
marked this pull request as ready for review
August 11, 2026 08:26
Dmitriy Vasyura (dmitrivMS)
enabled auto-merge (squash)
August 11, 2026 08:27
Dmitriy Vasyura (dmitrivMS)
marked this pull request as draft
August 11, 2026 08:27
auto-merge was automatically disabled
August 11, 2026 08:27
Pull request was converted to draft
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Dmitriy Vasyura (dmitrivMS)
marked this pull request as ready for review
August 11, 2026 08:40
Dmitriy Vasyura (dmitrivMS)
enabled auto-merge (squash)
August 11, 2026 08:41
Benjamin Christopher Simmonds (benibenj)
approved these changes
Aug 11, 2026
Dmitriy Vasyura (dmitrivMS)
deleted the
dev/dmitriv/update-widget-focus
branch
August 11, 2026 08:59
Abdullah Atrash (abdullahatrash)
added a commit
to abdullahatrash/flowleap-agent-v2
that referenced
this pull request
Aug 21, 2026
…ures (PRD 0013) (#282) Executes docs/prd/0013-upstream-port-1.127-to-1.135.md end to end: 183 commits cherry-picking/adapting the fork-relevant subset of the 3,672-commit upstream delta (microsoft/vscode b0b6062..07c20d9, 1.127.0→1.135.0), in four waves. ## Waves (issues #249–#280) - **Wave 1 — security (#249–#255):** upstream security rollup microsoft#330308 (env-var hardening incl. DYLD_INSERT_LIBRARIES, URL-handler trust ordering, domain-matcher bypass + fail-open fix), loopback OAuth XSS, MSRC web-worker iframe parentOrigin, trusted-domain backslash bypass, stale-secrets purge, chat-import path traversal, fetch-tool approval bypasses, skill-name prompt-injection escaping, Electron 42.3.0→42.8.1 (six Chromium security trains, download checksum-verified), markdown-it 12→14. - **Wave 2 — live product bugs (#256–#261):** cache_control sentinel no longer leaked to non-aware BYOK providers (vendor allow-list incl. flowleap-trial, fail-closed), session cap 50→400, darwin updater late-error guard, disposed-frame crash guards, duplicate file-ops from scoped editor services, sessions quartet (Changes spinner, picker close, grouping leak, archived-terminal disposal), worktree branch/path collision race (our code, regression-proven tests). - **Wave 3 — mechanical batch (#264–#269):** ~95 upstream commits: terminal/workbench/chat/base leak sweeps, disposal crash guards, base correctness primitives with tests, streaming-markdown repair, :has() CSS perf fix, ListView/toolbar batching, MCP robustness + plugin-marketplace TTL refresh, gallery hardening. - **Wave 4 — UX features (#270–#280):** chat Ctrl+F find widget, update-service rewrite (update.mode live, metered deferral; ADR-0008 invariants verified), model-selection robustness (fixes live Trial-provider remembered-model loss), sessions QoL (rename/reopen/middle-click/mouse-nav/OS notifications), turn timestamps, token-stats consumer, PromptsStorage.builtIn seam (45 bundled skills verified at runtime), clipboard architecture (rich HTML + Markdown copy), response disclosure + thinking/streaming UX, save-dirty/confirm-discard/image+vision fixes, go-to-symbol, scroll persistence, cache-break hint, sticky scroll. ## Validation - Full unit suite at tip: **21,811 passing / 0 failing** (389 pending); valid-layers-check, core + extension typechecks clean. - Rebased onto latest main (zero conflicts, zero file overlap with the base move). - Electron 42.8.1 download validates against ported checksums; smoke-tested live (find widget, updater disabled-in-dev invariant, gallery 404 grace). - Known flake: McpStdioStateHandler stdin test can fail under full-suite machine load; passes deterministically in isolation. ## Notes for reviewers - Deliberate skips (Modern UI, single-pane layout, dictation, Automations, asar re-pack, tsgo→tsc) are documented in the PRD with evidence per issue report. - Follow-ups filed in issue reports: token-stats producer wiring, closed-chat state on session eviction, views.css :has() selector, microsoft#330176 tooltip keyboard nav. Closes #249, closes #250, closes #251, closes #252, closes #253, closes #254, closes #255, closes #256, closes #257, closes #258, closes #259, closes #260, closes #261, closes #264, closes #265, closes #266, closes #267, closes #268, closes #269, closes #270, closes #271, closes #272, closes #273, closes #274, closes #275, closes #276, closes #277, closes #278, closes #279, closes #280 https://claude.ai/code/session_01RWkt8yKCBKXjTN7bdqaK9o
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.
Fixes #330046
This keeps normal title-bar Tab navigation unchanged and makes the existing Show or Focus Hover command (Ctrl+K Ctrl+I / Cmd+K Cmd+I) focus the Update tooltip when Update is focused. Once focused, Tab traverses the tooltip controls and Escape restores focus to Update.
The Release Notes action now uses the secondary-button border token so its passive state is not visually confused with keyboard focus.
Validation: