Conversation
There was a problem hiding this comment.
Pull request overview
Deprecates the GitHub.copilot extension (as configured via productService.defaultChatAgent.extensionId) by marking it as non-installable and defining an auto-migration target, and adjusts uninstall behavior to avoid cascading uninstalls via extension packs.
Changes:
- Adds a hard-coded deprecation entry for the default chat agent “completions” extension, pointing to
defaultChatAgent.chatExtensionIdas the replacement. - Disallows install of the deprecated extension and enables auto-migration behavior.
- Skips uninstalling extension-pack contents when uninstalling the deprecated
defaultChatAgent.extensionIdextension.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
| src/vs/platform/extensionManagement/common/extensionGalleryService.ts | Injects a deprecation + migration mapping for defaultChatAgent.extensionId to defaultChatAgent.chatExtensionId. |
| src/vs/platform/extensionManagement/common/abstractExtensionManagementService.ts | Prevents uninstall from including packed extensions when uninstalling defaultChatAgent.extensionId. |
| deprecated[this.productService.defaultChatAgent.extensionId.toLowerCase()] = { | ||
| disallowInstall: true, | ||
| extension: { | ||
| id: this.productService.defaultChatAgent.chatExtensionId, | ||
| displayName: 'GitHub Copilot Chat', | ||
| autoMigrate: { storage: false }, | ||
| preRelease: this.productService.quality !== 'stable' |
There was a problem hiding this comment.
Setting autoMigrate here will trigger migrateUnsupportedExtensions to uninstall the deprecated extension and install the replacement, but that migration currently calls installFromGallery(..., { installPreReleaseVersion: true, ... }) unconditionally. As a result, even on stable this replacement can be marked/treated as a pre-release install (affecting update channel/metadata) regardless of the preRelease flag set here. Either adjust the migration logic to respect deprecated.extension.preRelease, or avoid using the auto-migrate path if the intent is to install the release channel on stable.
| deprecated[this.productService.defaultChatAgent.extensionId.toLowerCase()] = { | |
| disallowInstall: true, | |
| extension: { | |
| id: this.productService.defaultChatAgent.chatExtensionId, | |
| displayName: 'GitHub Copilot Chat', | |
| autoMigrate: { storage: false }, | |
| preRelease: this.productService.quality !== 'stable' | |
| const isPreReleaseDefaultChatAgent = this.productService.quality !== 'stable'; | |
| deprecated[this.productService.defaultChatAgent.extensionId.toLowerCase()] = { | |
| disallowInstall: true, | |
| extension: { | |
| id: this.productService.defaultChatAgent.chatExtensionId, | |
| displayName: 'GitHub Copilot Chat', | |
| ...(isPreReleaseDefaultChatAgent ? { autoMigrate: { storage: false }, preRelease: true } : {}) |
deprecate github.copilot extension and uninstall it automatically