feat: Disable Duo button when LS fails to start

Description

Follow-up to !3212 (merged).

When the Language Server fails to start, the Duo status bar item was still showing the enabled icon, giving the impression that everything was working. This MR makes it switch to an error state with a red background when LS startup fails.

References #2282 (closed)

How has this been tested?

In the LS, delay the initialize handler by more than 30 seconds:

await new Promise((resolve) => setTimeout(resolve, 35000));

Link the updated LS in the extension running bun run watch -- --editor=vscode.

After 30s, observe the Duo status bar item switches to the error icon with a red background.

After reload you can remove the delay in the LS and once LS is rebuilt and copied to the VSCode assets, next "Reload extension" will enable Duo statu bar item.

  • If src/browser or src/common has been modified, please consider interoperability with the Web IDE. See Running the Extension in WebIDE.
  • Consider an end-to-end test for significant new features that aren't covered by integration tests.

Screenshots (if appropriate)

2026-05-25_23.28.20

What CHANGELOG entry will this MR create?

  • fix: Bug fix fixes - a user-facing issue in production - included in changelog
  • feature: New feature - a user-facing change which adds functionality - included in changelog
  • BREAKING CHANGE: (fix or feature that would cause existing functionality to change) - should bump major version, mentioned in the changelog
  • None - other non-user-facing changes
Edited by Olena Horal-Koretska

Merge request reports

Loading
Loading