Skip to content

Fix hintTimer disposal leak and restore tooltip live-update during active display#304891

Draft
Copilot wants to merge 2 commits intoeli/update-stylingfrom
copilot/fix-github-actions-workflow-5c324b52-5fba-4a39-8eb0-aefef34423db
Draft

Fix hintTimer disposal leak and restore tooltip live-update during active display#304891
Copilot wants to merge 2 commits intoeli/update-stylingfrom
copilot/fix-github-actions-workflow-5c324b52-5fba-4a39-8eb0-aefef34423db

Conversation

Copy link
Contributor

Copilot AI commented Mar 25, 2026

Three issues in updateTitleBarEntry.ts introduced by the styling rework:

  • Memory leak: hintTimer (a setTimeout handle) was never cleared on disposal. Added a toDisposable registration in the constructor to clear it.

  • Unsafe non-null assertion: this.content! in the flashHintOnce async callback could be stale by the time the timer fires. Captured content as a local variable before scheduling.

  • Tooltip staleness regression: onStateChange was refactored to combine early-return conditions, inadvertently dropping the this.tooltip.renderState(this.state) call for the tooltipVisible / no-focus path. This broke live updates (e.g., download progress) while the tooltip is open. Restored the original behavior.

// Before — tooltip silently stale when visible:
if (this.mode === 'none' || this.tooltipVisible || !await this.hostService.hadLastFocus()) {
    return;
}

// After — tooltip kept current even while shown:
if (this.mode === 'none') { return; }
if (this.tooltipVisible || !await this.hostService.hadLastFocus()) {
    this.tooltip.renderState(this.state);
    return;
}

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • https://api.github.com/graphql
    • Triggering command: /usr/bin/gh gh run view 23560432186 --json jobs --jq .jobs[] | select(.conclusion == "failure") | {name: .name, id: .databaseId} : if 'hygiene' in l.lower() or 'lint' in l.lower(): print(f'{i}: {l}') (http block)
  • https://api.github.com/repos/microsoft/vscode/actions/jobs/68598610598/logs
    • Triggering command: /usr/bin/gh gh api repos/microsoft/vscode/actions/jobs/68598610598/logs (http block)

If you need me to access, download, or install something from one of these locations, you can either:

Original prompt

Fix the failing GitHub Actions workflow "Code OSS / Linux / Electron (pull_request)".
Analyze the workflow logs, identify the root cause of the failure, and implement a fix.
Job ID: 68598610688
Job URL: /microsoft/vscode/actions/runs/23560432186/job/68598610688?pr=304877


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

… update when visible

Agent-Logs-Url: https://github.com/microsoft/vscode/sessions/80e0945f-2ac9-4439-bbf6-21f3e0bf00ff

Co-authored-by: eli-w-king <201316543+eli-w-king@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix failing GitHub Actions workflow for Code OSS Fix hintTimer disposal leak and restore tooltip live-update during active display Mar 25, 2026
Copilot AI requested a review from eli-w-king March 25, 2026 20:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants