Skip to content

feat(vscode-desktop): pre-install remote extensions - #1094

Merged
DevelopmentCats merged 1 commit into
coder:mainfrom
Edd88-pixel:eddy/vscode-desktop-extensions-207
Sep 3, 2026
Merged

feat(vscode-desktop): pre-install remote extensions#1094
DevelopmentCats merged 1 commit into
coder:mainfrom
Edd88-pixel:eddy/vscode-desktop-extensions-207

Conversation

@Edd88-pixel

@Edd88-pixel Edd88-pixel commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Why

The VS Code Desktop wrapper could not pre-install remote extensions before the first desktop connection . This advances the extension pre-installation portion of #207 by bootstrapping the official stable remote server and delegating installation to vscode-desktop-core.

Changes

  • add an optional validated extensions input while preserving the existing empty default
  • adopt vscode-desktop-core v1.2.0 and pass the remote CLI, config, and extension paths
  • download and validate the official stable VS Code Server only when its CLI is absent
  • block ordinary workspace login while configured extensions are installed
  • document extension configuration and bump the module version to v1.3.0
  • cover defaults, validation, rendered configuration, and server reuse

Validation

  • bun test registry/coder/modules/vscode-desktop/main.test.ts — 9 passed, 0 failed
  • terraform validate -no-color — passed
  • `terraform fmt -check for the changed Terraform files — passed
  • real E2E with Coder v2.33.11

Description

Adds opt-in remote extension pre-installation to the VS Code Desktop module.

Type of Change

  • New module
  • New template
  • Bug fix
  • Feature/enhancement
  • Documentation
  • Other

Module Information

Path: registry/coder/modules/vscode-desktop
New version: v1.3.0
Breaking change: [ ] Yes [x] No

Testing & Validation

  • Tests pass (bun test)
  • Code formatted (bun fmt)
  • Changes tested locally

Related Issues

Related to #207

@Edd88-pixel
Edd88-pixel marked this pull request as ready for review September 3, 2026 14:02

@DevelopmentCats DevelopmentCats left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are a couple things regarding the scorecard that can be addressed in a later PR but otherwiser this looks and works well

@DevelopmentCats
DevelopmentCats merged commit 95853a3 into coder:main Sep 3, 2026
5 checks passed
@matifali

matifali commented Sep 4, 2026

Copy link
Copy Markdown
Member

How do we ensure we are not installing an incompatible extension, since a user may be connecting from an older VS Code release that would download its own server?
AFAIK, VS Code downloads a matching server, not the latest.

It's still a good workaround, though. Let's add this to https://github.com/coder/coder/tree/main/dogfood/coder for dogfooding

@matifali

matifali commented Sep 4, 2026

Copy link
Copy Markdown
Member

Also @Edd88-pixel should #208 now be closed?

@Edd88-pixel

Copy link
Copy Markdown
Contributor Author

@matifali Do you mean #207? #208 is already closed.

For #207, this PR covers the extension pre-installation part, but the settings input/application is still outstanding, so I'd keep it open unless we want to track that separately.

@Edd88-pixel

Copy link
Copy Markdown
Contributor Author

Good point. The bootstrap server is isolated, so an older VS Code client can still install its own matching server. The part we don't currently guarantee is extension compatibility, since extensions are initially resolved using the stable bootstrap server.

Dogfooding this makes sense. We can follow up on that and test the behavior with older VS Code versions.

@matifali

matifali commented Sep 4, 2026

Copy link
Copy Markdown
Member

@matifali Do you mean #207? #208 is already closed.

For #207, this PR covers the extension pre-installation part, but the settings input/application is still outstanding, so I'd keep it open unless we want to track that separately.

Yes I mean #207

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.

3 participants