Update extension issue label references#18176
Open
adamint wants to merge 34 commits into
Open
Conversation
…oft#17766) * [release/13.4] Add Aspire CLI npm package release integration Backport of microsoft#17297 to release/13.4. Adds npm packaging and release-pipeline publishing for the Aspire CLI: pack/sign/verify of the @microsoft/aspire-cli pointer package and its seven RID packages, npm install validation steps, npm publish + registry validation stages in release-publish-nuget.yml, npm pipeline variables, and CLI npm-install detection/update messaging. The docs/release-process.md changes from the source PR are intentionally omitted: on main they are interleaved with VS Code extension / Marketplace release documentation that does not apply to release/13.4 (the VS Code extension is not released from this branch). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Fix Aspire CLI npm signing scope (microsoft#17770) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…json (microsoft#17820) The embedded CLI template src/Aspire.Cli/Templating/Templates/empty-apphost/aspire.config.json shipped a profiles block that duplicated apphost.run.json. The canonical template in src/Aspire.ProjectTemplates/templates/aspire-apphost-singlefile/aspire.config.json intentionally has no profiles (per Damian's design): aspire run / dotnet run apphost.cs honor apphost.run.json when present, so aspire.config.json for the C# Empty template should only carry { "appHost": { "path": "apphost.cs" } }. Updated NewCommandTests to: - assert that aspire.config.json has no profiles block and pins appHost.path = apphost.cs - assert that apphost.run.json carries the launch URLs (plain localhost and dev.localhost variants) - drop the now-unused AssertHttpsApplicationUrlMatches helper Fixes microsoft#17660 Co-authored-by: Mitch Denny <midenn@microsoft.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Defer explicit-start DCP registration Avoid evaluating execution configuration callbacks for session-scoped explicit-start resources until they are manually started. Persistent explicit-start resources are still registered eagerly, but manual start now patches the existing DCP object instead of recreating it. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Refine explicit-start DCP lifecycle Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: David Negstad <David.Negstad@microsoft.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…#17859) * Add proxyless endpoint on-demand allocation Allow dynamic proxyless container endpoints to allocate a target-port fallback when an endpoint reference requires an allocated endpoint before container creation. Disable the on-demand allocator once container ports are built so later resolution continues to use DCP service updates. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Log proxyless endpoint fallback allocation Log when a dynamic proxyless container endpoint is resolved before container creation and Aspire assigns the public port to match the target port. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Use atomic proxyless allocator cutoff Replace the endpoint allocation cutoff lock with an atomic exchange so BuildContainerPorts remains the point where on-demand proxyless endpoint allocation stops. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Remove proxyless allocator clear helper Use the atomic OnDemandAllocatedEndpointProvider setter directly at the BuildContainerPorts cutoff instead of a dedicated clear wrapper. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Simplify proxyless allocator provider storage Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Move proxyless allocator cutoff into port build Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Move on-demand endpoint allocation ownership to resource Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Clarify on-demand endpoint allocation lifecycle Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Simplify resource-owned endpoint allocation Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Move proxyless allocation cutoff after configuration Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: David Negstad <David.Negstad@microsoft.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Fix Redis persistent lifetime startup Use Redis endpoint target ports for TLS startup arguments so container command-line evaluation does not wait for allocated public ports before the container exists. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Bound Redis argument evaluation test Use a bounded wait around the Redis argument evaluation regression test so the test fails promptly if endpoint resolution deadlocks again. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: David Negstad <David.Negstad@microsoft.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Add per-integration persistence tests Co-authored-by: danegsta <50252651+danegsta@users.noreply.github.com> * Add CLI persistent container E2E test Co-authored-by: danegsta <50252651+danegsta@users.noreply.github.com> * Fix persistence test compilation Co-authored-by: danegsta <50252651+danegsta@users.noreply.github.com> * Address persistence test review feedback Co-authored-by: danegsta <50252651+danegsta@users.noreply.github.com> * Add Azure emulator mode coverage Co-authored-by: danegsta <50252651+danegsta@users.noreply.github.com> * Address emulator mode test review feedback Co-authored-by: danegsta <50252651+danegsta@users.noreply.github.com> * Stabilize persistent container tests Use an isolated user-secrets store for persistent container test runs so integration defaults can persist generated parameters across AppHost restarts. Avoid the CI container registry override for Azurite because the mirrored tag is unavailable. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Stop forcing test container registry in persistent helper Let persistent container tests use the same container registry configuration path as normal TestDistributedApplicationBuilder usage instead of forcing the test mirror from the helper. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Use start waits in persistent container E2E Avoid blocking the test server on dependency health checks in the CLI E2E scenario. The endpoint verification already retries real Redis, PostgreSQL, and Azure Storage operations after the resources have started. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Compare Docker container IDs in persistent tests Assert persistent container tests observe container.lifetime=Persistent and compare the actual container.id across AppHost runs instead of the stable DCP resource ID. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Read synthetic user secrets in persistent tests Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Allow persistent tests to opt into test registry Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Make persistent test secrets cleanup best effort Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Fix persistent container E2E networking Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Propagate CLI E2E start timeout Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: danegsta <50252651+danegsta@users.noreply.github.com> Co-authored-by: David Negstad <David.Negstad@microsoft.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The release pipeline consumes npm validation summaries from source builds that published them as build/container artifacts. Download them with DownloadBuildArtifacts instead of the pipeline artifact shortcut so existing source builds can be released without re-spinning.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
… update manifest tags (microsoft#17958) * fix(winget): unblock WinGet Manifest job on locked-down 1ES agents The `🟣Install winget CLI` step on the WinGet Manifest job fails on the 1ES `1es-windows-2022` pool with: An attempt was made to access a socket in a way forbidden by its access permissions. (cdn.winget.microsoft.com:443) The step ran `Repair-WinGetPackageManager -Latest -Force -AllUsers` to (re)install the winget CLI, which downloads the Microsoft.DesktopAppInstaller MSIX from cdn.winget.microsoft.com. That CDN is not reachable from the locked-down 1ES pool, so the PowerShell step exits 1, `🟣Prepare WinGet manifests` is skipped, and `🔒 🟣Publish WinGet manifests` then fails because the manifest directory was never produced. The whole job aborts before any manifests reach the artifact share. This is the failure on release/13.4 builds 2989641, 2989822, 2990382, 2990509, 2990688. Replace the install/repair step with a probe-only step that records whether winget happens to be pre-installed on the image, and hardcode the downstream `prepare-manifest-artifact.ps1` call to `Offline` ValidationMode. The script tolerates a missing winget in Offline mode (logs a warning, still produces the manifest artifact) but hard-fails in Full mode — and Full mode is unreachable on this pool because winget cannot be installed. Drop the `skipUrlValidation` template parameter, the only callers (azure-pipelines.yml, azure-pipelines-unofficial.yml), and the `_PackagesPublished` variable composed only to feed it. Manifest validation is intentionally delegated to upstream `microsoft/winget-pkgs` CI — see the new "Validation model" section in eng/winget/README.md for what upstream checks (schema, binary AV scan, URL + SmartScreen, SHA256, install/uninstall in a clean VM). This matches the pattern used by every other Microsoft repo publishing to WinGet (PowerToys, terminal, winget-create itself, which also runs on the same 1ES `windows-2022` pool and likewise does not invoke winget in CI). End-to-end probe + prepare + publish path validated on internal build 2990922 (a sibling branch that exercised the WinGet Manifest job via a stage-condition override). Real-prod validation occurs when this lands on release/13.4 and the stage condition naturally includes it. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Update WinGet manifest tags The WinGet package template still categorized the Aspire CLI with the `dotnet` tag. Replace that tag with `csharp` and `typescript` so the package metadata better matches supported Aspire application languages. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * docs(winget): note GH Actions install + smoke-test path The 'Validation model' section originally implied the Aspire side does only generation + opportunistic `winget validate`. In fact `.github/workflows/prepare-installer-artifacts.yml` also runs `dogfood.ps1 -Force` (real `winget install --manifest` from the freshly built archive) plus a smoke test (`aspire new` + restore) against the installed shim on every PR. Document that. Clarify that the install-only path catches issues `winget validate` does not (SHA mismatch, broken `InstallerSwitches`, missing `Commands`), while the full install/uninstall round-trip remains an upstream-CI responsibility. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Ankit Jain <radical@gmail.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Fix persistent container endpoint allocation Default persistent container endpoints to proxied unless proxy support is disabled, and remove delayed proxyless container endpoint allocation in favor of target-port public port defaults. Preserve endpoint and connection string event timing from release/13.3 and add coverage for the KeyVault emulator-style health check path.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Restore health check URI binding timing Set HTTP health check URIs during BeforeResourceStartedEvent again so surrogate resource builders that forward startup events continue to initialize their health checks. Add DCP coverage for the KeyVault-emulator-style surrogate pattern.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Bump Aspire patch version to 13.4.3 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Preserve blocking endpoint allocation dispatch Keep ResourceEndpointsAllocatedEvent dispatch aligned with release/13.4 so subscriber exceptions propagate and endpoint allocation callbacks complete before startup proceeds.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Stabilize Kafka persistent reuse test port Use a fixed public Kafka port for the persistent reuse test and let the shared persistent-container helper disable DCP test port randomization when a test needs explicit ports to remain stable.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Extract npm package READMEs into separate template files and render them via a shared Expand-Template helper instead of inline here-strings. - Move the npm ESRP alias validation into eng/scripts/validate-npm-release-aliases.ps1 (dot-sourceable) with executable unit tests covering empty/whitespace owners, multiple approvers, missing required owner, owner/approver overlap, non-Microsoft email rejection, @microsoft.com stripping, and effective-set emission. The release job runs with checkout: none, so the helpers stay mirrored inline and a test keeps the two copies in sync. - Forward NpmPublishOwners/NpmPublishApprovers to the validation step via env: so operator-supplied values are treated as data, not interpolated into the inline script. - Give NpmPublishOwners/NpmPublishApprovers/NpmRegistryPropagationDelayMinutes working defaults and mark them [Advanced] so an unattended queue submission passes validation. - Replace pack-script source-text assertions with tests that run the script across all supported RIDs and assert the generated package.json, package map, and READMEs. - Clarify the local-hive vs --prerelease comment in KubernetesDeployTestHelpers. - Update the npm-cli-package spec to describe the new parameter defaults and validation script. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Reject unsafe alias values before emitting Azure Pipelines logging commands and keep the inline release-pipeline validation body covered by the script sync test. Also clarify npm self-update README wording. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Quote queue-time npm release alias parameters when forwarding them through the validation step environment so Azure Pipelines treats the values as strings during release-job expansion. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Compute installer-only logging inside PowerShell instead of embedding a template function result in the inline script scalar, which Azure Pipelines reports as an Object-to-String conversion error at powershell: |. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Remove the unsupported templateContext.mb.publish.feedSource object from ReleaseJob; dnceng release-job expansion reports it as an Object-to-String conversion failure at the first powershell step. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Avoid passing current-pipeline artifact objects through ReleaseJob templateContext.inputs; download the prepared artifacts explicitly at the start of ReleaseJob to bypass dnceng release-job object conversion during YAML expansion. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Remove the literal ${{ parameters.* }} text from an inline PowerShell comment because Azure Pipelines expands template expressions inside block scalars and treats the wildcard as the parameters object.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
|
🚀 Dogfood this PR with:
curl -fsSL https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 18176Or
iex "& { $(irm https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 18176" |
Contributor
There was a problem hiding this comment.
Pull request overview
This PR's description claims it only updates VS Code extension feedback links to use the renamed area-vscode-extension label, but the actual changes are vast and span multiple major areas of the Aspire codebase. The label update in extension/README.md is a trivial portion of the PR.
Changes:
- DCP/Hosting infrastructure overhaul: Removes the "dynamic proxyless container endpoint" concept, simplifying how proxyless container endpoints are allocated (they now always use TargetPort as the host port). Adds deferred DCP object creation for explicit-start non-persistent resources, and a new patch-only start path for persistent explicit-start resources.
- npm CLI package distribution: Introduces a complete npm distribution pipeline for
@microsoft/aspire-cliwith a Node.js launcher (aspire.js), RID-specific native binary packages, pack/verify/stage scripts, signing infrastructure, CI validation jobs, and runtime npm-install detection in the CLI for update notifications. - Persistent container functional tests: Adds a shared
PersistentContainerTestHelpersutility and newWithPersistentLifetimereuse tests across ~14 hosting integrations (Redis, PostgreSQL, SQL Server, MongoDB, Kafka, etc.), plus an E2E test that verifies data persists across AppHost runs.
Show a summary per file
| File | Description |
|---|---|
| extension/README.md | Updates issue label references from area-extension to area-vscode-extension |
| src/Aspire.Hosting/Dcp/DcpExecutor.cs | Refactors endpoint allocation (separates executable/container paths), adds persistent explicit-start handling, moves ForgetCachedCallbackResults into EnsureResourceDeletedAsync |
| src/Aspire.Hosting/Dcp/DcpModelUtilities.cs | Adds ShouldDeferCreateForExplicitStart, simplifies ApplyServiceAddressToEndpoint (removes dynamic proxyless tracking), removes IsDynamicProxylessContainerEndpoint |
| src/Aspire.Hosting/Dcp/ContainerCreator.cs | Moves port building after configuration callbacks, uses ea.Port instead of ea.SpecifiedPort, defers creation for explicit-start non-persistent containers |
| src/Aspire.Hosting/Dcp/ExecutableCreator.cs | Defers creation for explicit-start non-persistent executables |
| src/Aspire.Hosting/Dcp/DcpResourceWatcher.cs | Removes publishEndpointsAllocatedEventAsync callback, simplifies service change processing |
| src/Aspire.Hosting/ResourceBuilderExtensions.cs | Splits health check endpoint validation and URI construction into separate lifecycle events |
| src/Aspire.Hosting/ApplicationModel/EndpointAnnotation.cs | Removes SpecifiedPort, adds TryGetAllocatedEndpoint helper |
| src/Aspire.Hosting/ApplicationModel/EndpointReference.cs | Simplifies endpoint resolution using new TryGetAllocatedEndpoint |
| src/Aspire.Hosting.Redis/RedisBuilderExtensions.cs | Uses TargetPort instead of Port for container-internal Redis TLS args |
| src/Aspire.Cli/Utils/NpmInstallDetection.cs | New class detecting npm-launched CLI via environment variables |
| src/Aspire.Cli/Commands/UpdateCommand.cs | Routes --self update and CLI-newer-than-project prompts through npm when detected |
| src/Aspire.Cli/Utils/CliUpdateNotifier.cs | Adds npm update command to version status notification chain |
| src/Aspire.Cli/Templating/Templates/empty-apphost/aspire.config.json | Removes profiles block (moved to apphost.run.json per #17660) |
| eng/clipack/npm/aspire.js | New Node.js launcher for npm-installed Aspire CLI |
| eng/clipack/Common.projitems | Adds PackNpmPackage target to build |
| eng/scripts/pack-cli-npm-package.ps1 | New script producing npm pointer and RID tarballs |
| eng/scripts/verify-cli-npm-package.ps1 | New script verifying npm packages match native archives |
| eng/scripts/validate-npm-release-aliases.ps1 | New ESRP alias validation for npm release pipeline |
| eng/scripts/stage-native-cli-tool-packages.ps1 | Extended to stage npm tarballs alongside nupkgs |
| eng/Signing.props | Adds npm .tgz signing rules |
| eng/Publishing.props | Adds npm package validation and blob feed publishing |
| eng/pipelines/azure-pipelines.yml | Adds npm validation jobs, removes _PackagesPublished, updates staging |
| eng/pipelines/templates/* | New npm install validation template, winget simplification |
| eng/Versions.props | Version bump 13.4.0 → 13.4.3 |
| tests/Aspire.Hosting.Tests/Utils/PersistentContainerTestHelpers.cs | New shared helper asserting container reuse across AppHost runs |
| tests/Aspire.Hosting.Tests/Utils/TestDistributedApplicationBuilder.cs | Adds args parameter to CreateWithTestContainerRegistry |
| tests/Aspire.Hosting.Tests/DistributedApplicationTests.cs | Updates proxyless port assertions (runtime-assigned → target-port-defaulted) |
| tests/Aspire.Hosting.Tests/Dcp/TestKubernetesService.cs | Removes simulated proxyless port allocation, adds Spec.Start patch handling |
| tests/Aspire.Hosting.*.Tests/*FunctionalTests.cs | Adds WithPersistentLifetime container reuse tests across ~14 integrations |
| tests/Aspire.Hosting.Redis.Tests/AddRedisTests.cs | Tests Redis TLS args use target ports |
| tests/Aspire.Hosting.Azure.Tests/AzureRunAsEmulatorModeTests.cs | Tests RunAsEmulator behavior in Run vs Publish mode |
| tests/Aspire.Cli.Tests/Utils/NpmInstallDetectionTests.cs | Tests for npm detection logic |
| tests/Aspire.Cli.Tests/Npm/AspireJsLauncherTests.cs | Tests for the npm Node.js launcher |
| tests/Aspire.Cli.Tests/Commands/UpdateCommandTests.cs | Tests npm update path in update command |
| tests/Aspire.Cli.Tests/Commands/NewCommandTests.cs | Updates assertions for aspire.config.json profile removal |
| tests/Aspire.Cli.EndToEnd.Tests/PersistentContainerEndToEndTests.cs | Full E2E test verifying data persistence across runs |
| tests/Infrastructure.Tests/PowerShellScripts/* | Tests for npm release alias validation and staging scripts |
| tests/Shared/CliInstallStrategy.cs | New GetDotnetAddPackageCommand using local hive packages |
| docs/specs/npm-cli-package.md | Design spec for npm distribution |
| eng/winget/* | Validation model docs, tag updates, manifest template changes |
| .github/workflows/build-cli-native-archives.yml | Adds Node.js setup and npm package verification |
| playground/Stress/Stress.AppHost/AppHost.cs | Adds explicit-start + environment interaction test resources |
| .gitignore | Adds extension test artifact directories |
| src/Aspire.Cli/Resources/* | Adds NpmSelfUpdateMessage resource string and XLF translations |
Copilot's findings
Files not reviewed (1)
- src/Aspire.Cli/Resources/UpdateCommandStrings.Designer.cs: Generated file
- Files reviewed: 91/93 changed files
- Comments generated: 2
Comment on lines
+214
to
+215
| - [Report a bug](https://github.com/microsoft/aspire/issues/new?template=10_bug_report.yml&labels=area-vscode-extension) | ||
| - [Request a feature](https://github.com/microsoft/aspire/issues/new?template=20_feature-request.yml&labels=area-vscode-extension) |
|
|
||
| await app.StopAsync(); | ||
| } | ||
| [Fact] |
Contributor
|
Looks like something went very wrong with this PR creation 😆 |
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.
Description
Updates the VS Code extension feedback links to use the renamed
area-vscode-extensionlabel.This follows the GitHub label migration where issues/PRs previously using
area-vscode-extensionwere moved througharea-extension, the old label was deleted, andarea-extensionwas renamed toarea-vscode-extension.Rollback log:
/Users/adamratzman/.copilot/session-state/bd376fcf-cdf3-4522-8bed-1e134fd60890/files/area-label-migration-20260612T210403Z.jsonlFixes # (issue)
Checklist
<remarks />and<code />elements on your triple slash comments?