Skip to content
Merged
Show file tree
Hide file tree
Changes from 100 commits
Commits
Show all changes
127 commits
Select commit Hold shift + click to select a range
b773dd1
Expose evaluated project assembly name to resource snapshots
Aug 6, 2026
a4038f1
Preserve project reference metadata for assembly names
Aug 7, 2026
8fced48
Use prepared references for project assembly names
Aug 7, 2026
09b3f8e
Address review findings on the assembly name probe
Aug 7, 2026
8a1856f
Cover the strict probe path and skip it for the CLI server project
Aug 7, 2026
14f5ade
Remove the stale assembly name when the project no longer supplies one
Aug 7, 2026
35356e9
Accept the generated metadata snapshot for the new assembly name prop…
Aug 7, 2026
0ab785c
Keep project paths containing an apostrophe out of MSBuild property f…
Aug 7, 2026
dd4c41c
Move attach debugger config behind debugger extension
Aug 7, 2026
4bffbf8
Merge microsoft/main into attach debugger branch
Aug 7, 2026
b41c378
Rename project metadata assembly name to target name
Aug 8, 2026
0ecf63b
Pin Azure Functions Core Tools in test workflow
Aug 8, 2026
3146493
Revert Azure Functions Core Tools workflow pin
adamint Aug 8, 2026
96873cd
Fail closed for stale workspace resource commands
Aug 8, 2026
80cd3d5
Avoid guessed target names for multitargeted refs
Aug 8, 2026
d9007fa
Add UNC dashboard telemetry redaction coverage
Aug 8, 2026
13fe431
Make project target name probe tests non-vacuous
adamint Aug 9, 2026
eb0766d
Let the project target-name probe degrade instead of aborting metadat…
adamint Aug 9, 2026
0a1dc3d
Pin the fatal probe contract and record what the attach fallback cann…
adamint Aug 9, 2026
2a757e7
Explain an AppHost build failure caused by the target name probe
adamint Aug 9, 2026
3ad7738
Take the debugger target name from the reference build instead of pro…
adamint Aug 10, 2026
7179a6d
Take the debugger target name from the reference build instead of pro…
adamint Aug 10, 2026
6488463
Probe per-reference when project resources mix output routing
adamint Aug 10, 2026
5b4b76f
Cover a project resource reached through a symbolic link
adamint Aug 10, 2026
303e288
Keep debugger target-name collection inside what the build already asked
Aug 10, 2026
3eadb11
Redact host-only forward-slash UNC values in dashboard telemetry
Aug 10, 2026
db2c0db
Pin the private-location and credential forms telemetry must clean
Aug 10, 2026
830c8f2
Do not offer attach for an Executable launch profile
adamint Aug 10, 2026
f84aa82
Use the launch profile the AppHost reported, not the file default
adamint Aug 10, 2026
ae70e33
Fail closed when the reported launch profile cannot be read
adamint Aug 10, 2026
ddf77ee
Record why the probe follows reference metadata and skips parented pr…
adamint Aug 10, 2026
e06646a
Record why app host path lookup does not re-resolve
adamint Aug 10, 2026
9b8a4e1
Fix stale AppHost path resource actions
Aug 10, 2026
9eeb2e5
Fix resolved AppHost target path TFM probe
Aug 10, 2026
b05e5c6
Revert AppHost target probe change
Aug 10, 2026
27914c1
Merge branch 'main' into adamint/issue18538-vscode-debug-shortcut
adamint Aug 10, 2026
6f72f5b
Attach to the resource process directly
Aug 10, 2026
099175f
Fix attach target process selection
Aug 10, 2026
f5d05a0
Scope resource attach refresh to its AppHost
Aug 10, 2026
d6fee98
Merge upstream/main into attach debugger branch
Aug 14, 2026
17ec4de
Surface explicit launch metadata for debugger attach
Aug 14, 2026
a69ed2b
Cover debugger attach package surface
Aug 14, 2026
6177728
Use launched configuration for debugger attach
Aug 14, 2026
80253ab
Reject ambiguous framework-dependent debugger attach
Aug 14, 2026
b06d0d4
feat(extension): add resource debug core
Aug 15, 2026
51efe08
fix(extension): harden resource debugger attach
Aug 15, 2026
d574d2b
fix(extension): complete resource debugger hardening
Aug 15, 2026
c307bf5
fix(extension): resolve resource debugger blockers
Aug 15, 2026
bf3e42f
feat(extension): attach debugger to Go resources
Aug 15, 2026
83bbecb
fix: resolve debugger child processes
Aug 15, 2026
207ec7f
fix(extension): harden resource debugger child discovery
Aug 15, 2026
8008578
Merge microsoft/main into copilot/pr-18602-resource-debug
Aug 15, 2026
5705d18
test(extension): cover process discovery command runner
Aug 15, 2026
7540c14
test(extension): cover spaced apphost identity
Aug 15, 2026
1b7de08
fix(extension): harden child process discovery
Aug 15, 2026
fed2a2f
fix(extension): read Linux child details from procfs
Aug 15, 2026
ee0336e
fix(extension): normalize Linux procfs apphost identity
Aug 15, 2026
5c64971
fix(extension): resolve deleted apphost identity
Aug 15, 2026
068bebe
feat(extension): add resource debug telemetry
Aug 15, 2026
6da3832
fix(extension): harden resource debug telemetry
Aug 15, 2026
7fb83e3
Merge remote-tracking branch 'upstream/main' into copilot/pr-18602-re…
Aug 15, 2026
afbe05a
fix(extension): finalize resource debugger tree action
Aug 15, 2026
67fee7a
fix(extension): scope resource tree IDs to AppHost process
Aug 15, 2026
fd3a6de
feat(extension): add resource debug language model tool
Aug 15, 2026
2fcb730
fix(extension): harden resource debug tool
Aug 15, 2026
fb2c709
fix(extension): address resource debug review findings
Aug 15, 2026
5347999
Merge upstream/main into copilot/pr-18602-resource-debug
Aug 15, 2026
07c0d58
fix(extension): document resource debug telemetry strategies
Aug 15, 2026
98abae3
test(extension): cover resource debug LM tool E2E
Aug 15, 2026
7ea01d0
test(extension): accept resource debug cancellation confirmation
Aug 15, 2026
2285e3e
fix(extension): harden resource debug attachment
Aug 15, 2026
03c927b
Fix extension E2E error reporting
Aug 15, 2026
ce3cc0b
Add safe dotnet launch metadata
Aug 15, 2026
d981a6f
Strengthen launch metadata tests
Aug 15, 2026
deb220c
Harden dotnet resource attach identity
Aug 15, 2026
9388495
Fix dotnet attach identity edge cases
Aug 15, 2026
4e83ee1
Reduce resource attach process queries
Aug 15, 2026
c7495cd
Fix process identity verification gaps
Aug 15, 2026
6100410
Fix resource debug compatibility boundaries
Aug 15, 2026
db5ac04
Merge latest main into resource debugging branch
Aug 15, 2026
88e17a5
Simplify listed process identity tracking
Aug 15, 2026
9931b98
Document name-only process identity trust
Aug 15, 2026
754126c
Consolidate resource debug regression tests
Aug 15, 2026
0d80082
Tighten consolidated dotnet tests
Aug 15, 2026
517879b
Fix resource debug cancellation E2E race
Aug 15, 2026
a0cba5f
Merge microsoft/main into issue18538-vscode-debug-shortcut
adamint Aug 19, 2026
c761ec3
Forward already-redacted runAspireCli diagnostics through the E2E bridge
adamint Aug 19, 2026
456b321
Merge upstream main into issue18538-vscode-debug-shortcut
adamint Aug 31, 2026
ba603c1
Address resource debugger review findings
adamint Sep 1, 2026
a300ea2
Isolate packaged resource attach coverage
adamint Sep 1, 2026
c445020
Skip negative debugger cases before setup
adamint Sep 1, 2026
7433b9b
Merge upstream/main into issue18538-vscode-debug-shortcut
adamint Sep 1, 2026
413c554
Harden resource debugger metadata and E2E coverage
adamint Sep 1, 2026
76a1af1
Enable packaged Go attach in Linux E2E
adamint Sep 2, 2026
18ee65a
Build Go E2E fixture for debugger attach
adamint Sep 2, 2026
c0ba847
Update Delve for Go 1.26 E2E
adamint Sep 2, 2026
711ff24
Trigger CI for Delve compatibility fix
adamint Sep 2, 2026
eafd227
Merge current main into issue18538-vscode-debug-shortcut
adamint Sep 2, 2026
a5567bb
Improve packaged attach E2E diagnostics
adamint Sep 2, 2026
29ce733
Merge current main into issue18538-vscode-debug-shortcut
adamint Sep 2, 2026
adf031f
Run Go attach E2E with debug symbols
adamint Sep 2, 2026
5214f37
Fix resource attach safety regressions
adamint Sep 2, 2026
b2e339b
Merge main into VS Code resource debugging
ellahathaway Oct 13, 2026
d4889af
Fix resource debugging review findings
ellahathaway Oct 14, 2026
1fbee1e
Preserve Go linker settings and enable Windows resource debug coverage
ellahathaway Oct 14, 2026
b23c845
Merge main and reconcile debugger E2E prerequisites
ellahathaway Oct 14, 2026
a8e805c
Address follow-up resource debugging review comments
ellahathaway Oct 14, 2026
c658dec
Honor configured Go command when probing build flags
ellahathaway Oct 15, 2026
8fec0ff
Fix attaching to .NET resources run without debugging
ellahathaway Oct 15, 2026
22a7abe
Avoid gopls installation during offline debugger E2Es
ellahathaway Oct 15, 2026
e5188ee
Preserve secret GOFLAGS assigned through resource builders
ellahathaway Oct 16, 2026
a3afc4c
Fix colon-delimited .NET launch options
ellahathaway Oct 16, 2026
f659441
Fix Windows resource debug E2E path comparison
ellahathaway Oct 16, 2026
704edf6
Preserve mixed-quote GOFLAGS during startup
ellahathaway Oct 19, 2026
afc08ef
Merge main into VS Code resource debugging
ellahathaway Oct 21, 2026
332b261
Merge main and reconcile resource debugging activation
ellahathaway Oct 21, 2026
f272526
Fix Go run debug-flag recovery and linker precedence
ellahathaway Oct 21, 2026
89826c4
Use go run for non-debug Go resource launches
ellahathaway Oct 21, 2026
d9b0154
Compare conflicting Go linker flags with native DWARF output
ellahathaway Oct 22, 2026
d46d5e8
Fail closed for ambiguous dotnet watch separators
ellahathaway Oct 22, 2026
1c428af
Remove resource-debug changelog edits
ellahathaway Oct 22, 2026
9b3fccf
Fix browser E2E diagnostic assertions
ellahathaway Oct 22, 2026
6cd15f3
Merge main into resource debugging branch
ellahathaway Oct 26, 2026
8e44f7e
Preserve inherited GOFLAGS when the settings probe fails
ellahathaway Oct 26, 2026
7a3f25f
Merge main and reconcile resource debugging tests
ellahathaway Oct 29, 2026
f27a804
Simplify resolver test backchannel lifetime
ellahathaway Oct 29, 2026
38f2a8b
Merge latest main and preserve Go test imports
ellahathaway Oct 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 60 additions & 0 deletions .github/workflows/extension-e2e-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -282,6 +282,15 @@ jobs:
archivePattern: aspire-cli-win-x64*.zip
cliBinary: aspire.exe
useXvfb: false
- name: Linux
shardName: resource-debug-tools
spec: out/test-e2e/test-e2e/resourceDebugTools.e2e.test.js
runner: ubuntu-latest
rid: linux-x64
archivePattern: aspire-cli-linux-x64*.tar.gz
cliBinary: aspire
useXvfb: true
installResourceDebug: true
- name: Linux
shardName: java-apphost
spec: out/test-e2e/test-e2e/javaAppHost.e2e.test.js
Expand Down Expand Up @@ -346,6 +355,14 @@ jobs:
archivePattern: aspire-cli-linux-x64*.tar.gz
cliBinary: aspire
useXvfb: true
- name: Windows
Comment thread
Copilot marked this conversation as resolved.
Resolved
shardName: resource-debug-tools
spec: out/test-e2e/test-e2e/resourceDebugTools.e2e.test.js
runner: windows-latest
rid: win-x64
archivePattern: aspire-cli-win-x64*.zip
cliBinary: aspire.exe
useXvfb: false
- name: Windows
shardName: cli-path-rejection
spec: out/test-e2e/test-e2e/cliPathRejectionNotification.e2e.test.js
Expand Down Expand Up @@ -554,6 +571,49 @@ jobs:
echo 'FUNCTIONS_CORE_TOOLS_TELEMETRY_OPTOUT=1'
} >> "$GITHUB_ENV"

- name: Install resource debug E2E prerequisites
if: ${{ matrix.installResourceDebug }}
shell: bash
run: |
set -euo pipefail

# Ubuntu's Yama default allows ptrace only when the debugger is an ancestor of the target.
# DCP launches the Go resource independently from Delve, so packaged attach needs this test-only policy.
sudo sysctl --write kernel.yama.ptrace_scope=0
test "$(cat /proc/sys/kernel/yama/ptrace_scope)" = "0"

debugger_bin="$RUNNER_TEMP/resource-debug-bin"
mkdir -p "$debugger_bin"
GOBIN="$debugger_bin" GOTOOLCHAIN=local go install github.com/go-delve/delve/cmd/dlv@v1.25.2
echo "$debugger_bin" >> "$GITHUB_PATH"
export PATH="$debugger_bin:$PATH"
dlv version

dotnet_runtime_vsix="$RUNNER_TEMP/vscode-dotnet-runtime-3.1.0.vsix"
curl --fail --location --compressed --retry 3 --retry-all-errors \
--output "$dotnet_runtime_vsix" \
'https://marketplace.visualstudio.com/_apis/public/gallery/publishers/ms-dotnettools/vsextensions/vscode-dotnet-runtime/3.1.0/vspackage'
echo '8e675ffe5f3674430d63e28d2dc05ab40f36c8494e9549e79d3995d721b13f5a '"$dotnet_runtime_vsix" | sha256sum --check -

csharp_vsix="$RUNNER_TEMP/vscode-csharp-2.148.23-linux-x64.vsix"
curl --fail --location --compressed --retry 3 --retry-all-errors \
--output "$csharp_vsix" \
'https://marketplace.visualstudio.com/_apis/public/gallery/publishers/ms-dotnettools/vsextensions/csharp/2.148.23/vspackage?targetPlatform=linux-x64'
echo '18b503e614a979212762683b35a4fa1806688ba773d5fe93bf62c9f9346db23f '"$csharp_vsix" | sha256sum --check -

go_vsix="$RUNNER_TEMP/vscode-go-0.56.0.vsix"
curl --fail --location --compressed --retry 3 --retry-all-errors \
--output "$go_vsix" \
'https://marketplace.visualstudio.com/_apis/public/gallery/publishers/golang/vsextensions/Go/0.56.0/vspackage'
echo '9f5959fb17ba0a8dbd804387ddda50975fcaa9dd5267aa33eaaa89912072aacb '"$go_vsix" | sha256sum --check -

{
echo 'ASPIRE_EXTENSION_E2E_ENABLE_RESOURCE_DEBUG=true'
echo "ASPIRE_EXTENSION_E2E_DOTNET_RUNTIME_VSIX=$dotnet_runtime_vsix"
echo "ASPIRE_EXTENSION_E2E_CSHARP_VSIX=$csharp_vsix"
echo "ASPIRE_EXTENSION_E2E_GO_VSIX=$go_vsix"
} >> "$GITHUB_ENV"

- name: Set up the JDK for the Java E2E specs
if: ${{ matrix.installJava }}
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5.7.0
Expand Down
2 changes: 1 addition & 1 deletion docs/specs/cli-output-formats.md
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,7 @@ If discovery finds no AppHost candidates, the stream emits no lines. The stream
| `relationships` | Related resources as `{ "type": "...", "resourceName": "..." }`. |
| `urls` | Endpoint objects with `name`, `displayName`, `url`, and `isInternal`. |
| `volumes` | Volume objects with `source`, `target`, `mountType`, and `isReadOnly`. |
| `properties` | Resource properties keyed by property name. |
| `properties` | Resource properties keyed by property name. Common debug-related keys include `project.path`, `project.launchProfile`, `project.launchCommand`, `project.configuration`, `project.targetFramework`, and `resource.launchConfigurationType`. For current AppHosts, `project.launchCommand` is `run`, `watch`, or `null` when a dotnet project launch command cannot be classified. |
| `environment` | Environment variables keyed by variable name. |
| `healthReports` | Health report objects keyed by report name. |
| `commands` | Resource command metadata keyed by command name. |
Expand Down
4 changes: 4 additions & 0 deletions extension/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@

<!-- aspire-ext-changelog-done from=689b3c3226482b5d84d80e6d8c7ea8408c704c1f to=1410c1a7fc2e0dce9539f234e2464ca3e20cd9bf base=1.20.0 -->

### Features

- Add an **Attach debugger** action for running .NET and Go resources in the Aspire pane, including installation guidance when the required C# or Go debugger extension is missing ([#18602](https://github.com/microsoft/aspire/pull/18602)).
Comment thread
ellahathaway marked this conversation as resolved.
Resolved

### Fixes

- Prevent the Aspire view from stealing sidebar focus and reappearing in the Activity Bar when the window is reloaded ([#19746](https://github.com/microsoft/aspire/issues/19746), [#19754](https://github.com/microsoft/aspire/pull/19754)).
Expand Down
5 changes: 5 additions & 0 deletions extension/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ An **AppHost** defines your app in code: services, containers, databases, front

- **Run your apps:** Start, debug, and stop an Aspire application, or use the available start, stop, and restart actions for individual resources, from the Aspire view.
- **Debug across your stack:** Aspire debug sessions support C#, JavaScript, Python, Go, Java, and Rust application resources when the corresponding debugger is available. Java and Rust debugging require Aspire 13.6 or later.
- **Attach to running resources:** Attach to .NET and Go resources from the Aspire view. The action remains available when a required debugger extension is missing so VS Code can show installation guidance.
- **See live health and analytics:** Open the Aspire dashboard for resource health, endpoints, console logs, structured logs, distributed traces, and metrics.
- **Monitor without leaving VS Code:** See resource health summaries and quick actions beside resource definitions in your AppHost.
- **Move toward production.** Deploy, publish artifacts, and run pipeline steps using the Aspire view.
Expand All @@ -28,6 +29,10 @@ An **AppHost** defines your app in code: services, containers, databases, front

Aspire can bring together C#, TypeScript and JavaScript, Python, Go, Java, containers, databases, cloud resources, and more. Browse the [integration gallery](https://aspire.dev/integrations/gallery/) to find the pieces your app needs.

## Chat tools for agents

The extension contributes `aspire_apphost_start`, `aspire_apphost_stop`, and `aspire_resource_debug` language model tools. They only accept AppHosts and resources already discovered in a trusted workspace, reject arbitrary or absolute paths, and ask the user to confirm before acting. Resource debugging attaches to a running resource; it does not start or restart one.

## Learn more

- [Aspire extension for Visual Studio Code](https://aspire.dev/get-started/aspire-vscode-extension/)
Expand Down
66 changes: 66 additions & 0 deletions extension/loc/xlf/aspire-vscode.xlf

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading