Skip to content

[release/13.4] Make npm package README TypeScript-only and document standalone dashboard#18221

Merged
joperezr merged 2 commits into
microsoft:release/13.4from
adamint:adamint/npm-readme-ts-dashboard-13.4
Jun 16, 2026
Merged

[release/13.4] Make npm package README TypeScript-only and document standalone dashboard#18221
joperezr merged 2 commits into
microsoft:release/13.4from
adamint:adamint/npm-readme-ts-dashboard-13.4

Conversation

@adamint

@adamint adamint commented Jun 15, 2026

Copy link
Copy Markdown
Member

Description

Port of #18220 to release/13.4.

Updates the Aspire CLI npm package README (eng/scripts/pack-cli-npm-package.pointer.README.md) to be TypeScript-only and to document the standalone dashboard.

Changes

  • Remove the C# AppHost example. The npm package targets the TypeScript/JavaScript AppHost workflow, so the README now shows only TypeScript.
  • Refresh the TypeScript example. The 13.4 README example was stale — it referenced apphost.ts and ./.aspire/modules/aspire.js, but the actual 13.4 ts-starter template already uses apphost.mts importing ./.aspire/modules/aspire.mjs. This change brings the README in line with the template (matching main).
  • Add a backing-services example (Postgres + Redis) with a note that addPostgres/addRedis become available after aspire add postgresql and aspire add redis.
  • Document the standalone dashboard with the one-line aspire dashboard run command and its OTLP endpoints/options.
  • Update NpmCliPackageTests to assert the TypeScript-only README content.

Verification

  • The TypeScript examples were proven to compile against the real Aspire TypeScript codegen (AtsCapabilityScanner + AtsTypeScriptCodeGenerator) and tsc --noEmit (strict NodeNext) on the same release line; example 1 is byte-identical to the 13.4 ts-starter template.
  • aspire dashboard run is provided by DashboardRunCommand on 13.4 with the documented options/defaults.
  • NpmCliPackageTests.PackScriptGeneratesPointerPackageMetadataMapAndReadme passes locally.

Draft until CI is green.

…oard

Port of microsoft#18220 to release/13.4.

- Remove the C# AppHost example so the npm README is TypeScript-only.
- Refresh the TypeScript example to the current ts-starter template
  (apphost.mts importing ./.aspire/modules/aspire.mjs), fixing the stale
  apphost.ts / aspire.js references that no longer match the template.
- Add a Postgres + Redis backing-services example with an `aspire add`
  note for the postgresql and redis integrations.
- Add a Standalone dashboard section documenting `aspire dashboard run`.
- Update NpmCliPackageTests to assert the TypeScript-only README content.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings June 15, 2026 21:38
@github-actions

github-actions Bot commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

🚀 Dogfood this PR with:

⚠️ WARNING: Do not do this without first carefully reviewing the code of this PR to satisfy yourself it is safe.

curl -fsSL https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 18221

Or

  • Run remotely in PowerShell:
iex "& { $(irm https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 18221"

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This is a backport of PR #18220 to release/13.4. It rewrites the Aspire CLI npm package README to be TypeScript-only (removing the C# AppHost example), refreshes the TypeScript example to match the actual ts-starter template (apphost.mts importing .mjs), adds a backing-services example and standalone dashboard documentation, and updates tests to assert the new content.

Changes:

  • Replace the dual C#/TypeScript README example with a single TypeScript example matching the ts-starter template, plus a second example showing Postgres/Redis backing services.
  • Add a "Standalone dashboard" section documenting aspire dashboard run and its options.
  • Update NpmCliPackageTests with assertions confirming TypeScript-only content and absence of C#/stale references.
Show a summary per file
File Description
eng/scripts/pack-cli-npm-package.pointer.README.md Rewrites README to TypeScript-only examples, adds backing-services and standalone dashboard sections
tests/Infrastructure.Tests/Pipelines/NpmCliPackageTests.cs Adds positive and negative assertions for new README content

Copilot's findings

  • Files reviewed: 2/2 changed files
  • Comments generated: 1

Comment on lines +69 to 71
`addPostgres` and `addRedis` become available once the matching integrations are installed with `aspire add postgresql` and `aspire add redis`.

This package requires Node.js 20 or later.
Code review found the install instructions were orphaned under the
'Add backing services' subsection after the C# example removal. Restore
the '## Install' heading so install steps render as their own section.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions

Copy link
Copy Markdown
Contributor

Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt.

@github-actions

Copy link
Copy Markdown
Contributor

Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt.

@github-actions

Copy link
Copy Markdown
Contributor

Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt.

@adamint adamint marked this pull request as ready for review June 16, 2026 14:59
Copilot AI review requested due to automatic review settings June 16, 2026 14:59

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot's findings

  • Files reviewed: 2/2 changed files
  • Comments generated: 0 new

renebentes pushed a commit to renebentes/3054 that referenced this pull request Jun 25, 2026
Updated [Aspire.Hosting.AppHost](https://github.com/microsoft/aspire)
from 13.4.4 to 13.4.6.

<details>
<summary>Release notes</summary>

_Sourced from [Aspire.Hosting.AppHost's
releases](https://github.com/microsoft/aspire/releases)._

## 13.4.6

## What's New in Aspire 13.4.6

Patch release for Aspire 13.4 fixing polyglot AppHost code generation
binding when CLI and SDK versions diverge, resource service port
collision in `--isolated` mode, and a MongoDB.Driver dependency update.

### 🐛 Fixes

- 🔗 **Polyglot AppHost code generation silently failed when CLI and SDK
versions diverged** — `Aspire.TypeSystem` used a floating strong-name
`AssemblyVersion` that changed with every build. When the installed
Aspire CLI was built at a different version than the AppHost's SDK, the
CLR couldn't satisfy the strong-name bind and every code generator
(TypeScript, Python, Java, Go, Rust) was silently dropped, surfacing as
`No code generator found for language: <lang>`. The `AssemblyVersion` is
now frozen at a stable constant so any compatible CLI/SDK pair on 13.4
binds successfully. Relates to #​18110 and #​17910.
([#​18160](microsoft/aspire#18160),
`@​sebastienros`)

- 🔌 **Multiple AppHosts started with `--isolated` collided on the
resource service port** — Both instances tried to bind to the same fixed
port from `ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL`, causing an "address
already in use" error on the second instance. `DashboardServiceHost` now
binds to port 0 on loopback when `RandomizePorts` is true (set by
`--isolated`), letting the OS assign a unique port per instance.
([#​18341](microsoft/aspire#18341), `@​JamesNK`)

- 🍃 **MongoDB.Driver updated to 3.9.0** — Removes a wrongly pinned
`SharpCompress` transitive dependency and uses the corrected `Snappier`
transitive. Fixes #​17981.
([#​18279](microsoft/aspire#18279),
`@​Falco20019`)

### 🏷️ Housekeeping

- 🚀 Bumped branding to 13.4.6
([#​18343](microsoft/aspire#18343))

---

_Full Changelog:
[v13.4.5...v13.4.6](microsoft/aspire@v13.4.5...v13.4.6)_

_Full commit:
[87fe259e4fc244c599019a7b1304c85a1488f248](microsoft/aspire@87fe259e4fc244c599019a7b1304c85a1488f248)_

> Generated by [Generate release notes for a new stable Aspire
release](https://github.com/microsoft/aspire/actions/runs/27855270514) ·
131 AIC · ⌖ 13.5 AIC · ⊞ 37.4K

<!-- gh-aw-agentic-workflow: Generate release notes for a new stable
Aspire release, engine: copilot, version: 1.0.60, model:
claude-sonnet-4.6, id: 27855270514, workflow_id: release-notes-generate,
run: https://github.com/microsoft/aspire/actions/runs/27855270514 -->

## 13.4.5

## What's New in Aspire 13.4.5

Patch release for Aspire 13.4 clearing a transitive MessagePack security
advisory, tightening CLI validation for Playwright configuration, and
adding coding-agent detection to CLI telemetry.

### 🐛 Fixes

- 🛡️ **Bumped StreamJsonRpc to 2.25.29 to clear the MessagePack
GHSA-hv8m-jj95-wg3x (CVE-2026-48109) NU1903 advisory** — The transitive
MessagePack 2.5.192 dependency pulled in via StreamJsonRpc 2.22.23 fell
within the advisory's vulnerable LZ4 decompression range. Aspire does
not use `MessagePackFormatter` or LZ4 — all StreamJsonRpc calls use
`SystemTextJsonFormatter` over local Unix sockets — so the vulnerability
was not reachable in practice. The bump clears the NU1903 warning for
consumers of the `Aspire.Hosting` package.
([#​18204](microsoft/aspire#18204),
`@​mitchdenny`)
- 🎭 **`playwrightCliVersion` values that are not valid SemVer 2.0 now
fail fast with a clear diagnostic** — Previously an invalid override
(range expression, dist-tag like `latest`, or a `v`-prefixed string)
would surface as a generic npm resolution failure. The value is now
validated with strict SemVer parsing at startup; an error naming the
configuration key and the offending value is emitted immediately.
([#​18205](microsoft/aspire#18205),
`@​mitchdenny`)
- 🤖 **CLI telemetry now detects and reports the calling coding agent** —
When the Aspire CLI is invoked from inside a known coding agent
environment (GitHub Copilot CLI, VS Code Copilot agent, etc.) the agent
name is included in the main CLI telemetry event. GitHub Copilot CLI is
specifically identified as `copilot-cli`.
([#​18240](microsoft/aspire#18240),
`@​damianedwards`)

### 🏷️ Housekeeping

- 📄 Refreshed the `@​microsoft/aspire-cli` npm package README to be
TypeScript-only — updated examples to the current `ts-starter` template
(`apphost.mts` / `aspire.mjs`), added a backing-services snippet showing
`aspire add` for PostgreSQL and Redis, and documented `aspire dashboard
run` as a standalone dashboard option.
([#​18221](microsoft/aspire#18221), `@​adamint`)

---

_Full Changelog:
[v13.4.4...v13.4.5](microsoft/aspire@v13.4.4...v13.4.5)_

_Full commit:
[73114e86c64aeb9f3f3c7da8e37df1ae4281b27e](microsoft/aspire@73114e86c64aeb9f3f3c7da8e37df1ae4281b27e)_

> Generated by [Generate release notes for a new stable Aspire
release](https://github.com/microsoft/aspire/actions/runs/27667814104/agentic_workflow)
· ● 4.4M

<!-- gh-aw-agentic-workflow: Generate release notes for a new stable
Aspire release, engine: copilot, version: 1.0.40, model:
claude-sonnet-4.6, id: 27667814104, workflow_id: release-notes-generate,
run: https://github.com/microsoft/aspire/actions/runs/27667814104 -->

Commits viewable in [compare
view](microsoft/aspire@v13.4.4-release...v13.4.6).
</details>

[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=Aspire.Hosting.AppHost&package-manager=nuget&previous-version=13.4.4&new-version=13.4.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
renebentes pushed a commit to renebentes/3054 that referenced this pull request Jun 25, 2026
Updated [Aspire.Hosting.PostgreSQL](https://github.com/microsoft/aspire)
from 13.3.5 to 13.4.6.

<details>
<summary>Release notes</summary>

_Sourced from [Aspire.Hosting.PostgreSQL's
releases](https://github.com/microsoft/aspire/releases)._

## 13.4.6

## What's New in Aspire 13.4.6

Patch release for Aspire 13.4 fixing polyglot AppHost code generation
binding when CLI and SDK versions diverge, resource service port
collision in `--isolated` mode, and a MongoDB.Driver dependency update.

### 🐛 Fixes

- 🔗 **Polyglot AppHost code generation silently failed when CLI and SDK
versions diverged** — `Aspire.TypeSystem` used a floating strong-name
`AssemblyVersion` that changed with every build. When the installed
Aspire CLI was built at a different version than the AppHost's SDK, the
CLR couldn't satisfy the strong-name bind and every code generator
(TypeScript, Python, Java, Go, Rust) was silently dropped, surfacing as
`No code generator found for language: <lang>`. The `AssemblyVersion` is
now frozen at a stable constant so any compatible CLI/SDK pair on 13.4
binds successfully. Relates to #​18110 and #​17910.
([#​18160](microsoft/aspire#18160),
`@​sebastienros`)

- 🔌 **Multiple AppHosts started with `--isolated` collided on the
resource service port** — Both instances tried to bind to the same fixed
port from `ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL`, causing an "address
already in use" error on the second instance. `DashboardServiceHost` now
binds to port 0 on loopback when `RandomizePorts` is true (set by
`--isolated`), letting the OS assign a unique port per instance.
([#​18341](microsoft/aspire#18341), `@​JamesNK`)

- 🍃 **MongoDB.Driver updated to 3.9.0** — Removes a wrongly pinned
`SharpCompress` transitive dependency and uses the corrected `Snappier`
transitive. Fixes #​17981.
([#​18279](microsoft/aspire#18279),
`@​Falco20019`)

### 🏷️ Housekeeping

- 🚀 Bumped branding to 13.4.6
([#​18343](microsoft/aspire#18343))

---

_Full Changelog:
[v13.4.5...v13.4.6](microsoft/aspire@v13.4.5...v13.4.6)_

_Full commit:
[87fe259e4fc244c599019a7b1304c85a1488f248](microsoft/aspire@87fe259e4fc244c599019a7b1304c85a1488f248)_

> Generated by [Generate release notes for a new stable Aspire
release](https://github.com/microsoft/aspire/actions/runs/27855270514) ·
131 AIC · ⌖ 13.5 AIC · ⊞ 37.4K

<!-- gh-aw-agentic-workflow: Generate release notes for a new stable
Aspire release, engine: copilot, version: 1.0.60, model:
claude-sonnet-4.6, id: 27855270514, workflow_id: release-notes-generate,
run: https://github.com/microsoft/aspire/actions/runs/27855270514 -->

## 13.4.5

## What's New in Aspire 13.4.5

Patch release for Aspire 13.4 clearing a transitive MessagePack security
advisory, tightening CLI validation for Playwright configuration, and
adding coding-agent detection to CLI telemetry.

### 🐛 Fixes

- 🛡️ **Bumped StreamJsonRpc to 2.25.29 to clear the MessagePack
GHSA-hv8m-jj95-wg3x (CVE-2026-48109) NU1903 advisory** — The transitive
MessagePack 2.5.192 dependency pulled in via StreamJsonRpc 2.22.23 fell
within the advisory's vulnerable LZ4 decompression range. Aspire does
not use `MessagePackFormatter` or LZ4 — all StreamJsonRpc calls use
`SystemTextJsonFormatter` over local Unix sockets — so the vulnerability
was not reachable in practice. The bump clears the NU1903 warning for
consumers of the `Aspire.Hosting` package.
([#​18204](microsoft/aspire#18204),
`@​mitchdenny`)
- 🎭 **`playwrightCliVersion` values that are not valid SemVer 2.0 now
fail fast with a clear diagnostic** — Previously an invalid override
(range expression, dist-tag like `latest`, or a `v`-prefixed string)
would surface as a generic npm resolution failure. The value is now
validated with strict SemVer parsing at startup; an error naming the
configuration key and the offending value is emitted immediately.
([#​18205](microsoft/aspire#18205),
`@​mitchdenny`)
- 🤖 **CLI telemetry now detects and reports the calling coding agent** —
When the Aspire CLI is invoked from inside a known coding agent
environment (GitHub Copilot CLI, VS Code Copilot agent, etc.) the agent
name is included in the main CLI telemetry event. GitHub Copilot CLI is
specifically identified as `copilot-cli`.
([#​18240](microsoft/aspire#18240),
`@​damianedwards`)

### 🏷️ Housekeeping

- 📄 Refreshed the `@​microsoft/aspire-cli` npm package README to be
TypeScript-only — updated examples to the current `ts-starter` template
(`apphost.mts` / `aspire.mjs`), added a backing-services snippet showing
`aspire add` for PostgreSQL and Redis, and documented `aspire dashboard
run` as a standalone dashboard option.
([#​18221](microsoft/aspire#18221), `@​adamint`)

---

_Full Changelog:
[v13.4.4...v13.4.5](microsoft/aspire@v13.4.4...v13.4.5)_

_Full commit:
[73114e86c64aeb9f3f3c7da8e37df1ae4281b27e](microsoft/aspire@73114e86c64aeb9f3f3c7da8e37df1ae4281b27e)_

> Generated by [Generate release notes for a new stable Aspire
release](https://github.com/microsoft/aspire/actions/runs/27667814104/agentic_workflow)
· ● 4.4M

<!-- gh-aw-agentic-workflow: Generate release notes for a new stable
Aspire release, engine: copilot, version: 1.0.40, model:
claude-sonnet-4.6, id: 27667814104, workflow_id: release-notes-generate,
run: https://github.com/microsoft/aspire/actions/runs/27667814104 -->

## 13.4.4

## What's New in Aspire 13.4.4

Patch release for Aspire 13.4 with improved DCP connection reliability
during request execution and consistent `ExcludeFromMcp()` filtering
across all CLI MCP tools.

### 🐛 Fixes

* 🔌 **DCP requests could fail permanently when the connection dropped
mid-request** — If the underlying DCP channel closed while a request was
in flight, the error was surfaced directly instead of being retried.
Reconnection is now attempted as part of the DCP request retry path so
transient disconnections recover automatically without surfacing errors.
([#​18096](microsoft/aspire#18096),
`@​karolz-ms`)
* 🔍 **Resources marked with `ExcludeFromMcp()` were not consistently
filtered from CLI MCP tools** — Resources with the
`resource.excludeFromMcp` property were not excluded uniformly from all
CLI MCP tool results. `list_resources`, `list_console_logs`,
`execute_resource_command`, `list_structured_logs`, `list_traces`, and
`list_trace_structured_logs` all now honor the exclusion, preventing
excluded resources and their telemetry from appearing in agent context.
([#​18150](microsoft/aspire#18150), `@​JamesNK`)

### 🏷️ Housekeeping

* 📦 Improved npm CLI package metadata and hardened npm publish
validation in the release pipeline.
([#​18093](microsoft/aspire#18093),
`@​adamratzman`)

* * *

_Full Changelog:
[v13.4.3...v13.4.4](microsoft/aspire@v13.4.3...v13.4.4)_

_Full commit:
[ccc566c5ab3285c9beb8f38ede34734bb477c029](microsoft/aspire@ccc566c5ab3285c9beb8f38ede34734bb477c029)_


## 13.4.3

## What's New in Aspire 13.4.3

Patch release for Aspire 13.4 with a fix for persistent container
endpoint allocation regressions introduced in 13.4.

### 🐛 Fixes

- 🔌 **Persistent container endpoints had incorrect default behavior** —
Persistent containers were defaulting to proxyless endpoint behavior
instead of the proxied behavior used by normal containers. This caused
integrations that depend on endpoint allocation before resource startup
(such as the KeyVault emulator) to fail. Persistent containers now
default to proxied endpoints matching normal container behavior; opt out
with `isProxied: false` or `WithEndpointProxySupport(false)`. Proxyless
container endpoints with only a `targetPort` specified now also resolve
immediately to that port instead of waiting for delayed allocation.
(#​17960, `@​danegsta`)

### 🏷️ Housekeeping

- 🛠️ Unblocked WinGet manifest publishing on locked-down 1ES agents and
updated manifest tags (#​17958)

---
*Full Changelog:
microsoft/aspire@v13.4.2...v13.4.3*

*Full commit:
[4f218933552e18ff2874d1b6d5dc3fe671e3b6d9](microsoft/aspire@4f218933552e18ff2874d1b6d5dc3fe671e3b6d9)*

> Generated by [Generate release notes for a new stable Aspire
release](https://github.com/microsoft/aspire/actions/runs/27173824611/agentic_workflow)
· ● 4.7M

<!-- gh-aw-agentic-workflow: Generate release notes for a new stable
Aspire release, engine: copilot, version: 1.0.40, model:
claude-sonnet-4.6, id: 27173824611, workflow_id: release-notes-generate,
run: https://github.com/microsoft/aspire/actions/runs/27173824611 -->

## 13.4.2

## What's New in Aspire 13.4.2

Patch release for Aspire 13.4 with a fix for Redis persistent container
deadlock on startup when using TLS.

### 🐛 Fixes

- 🔴 **Redis with `WithLifetime(ContainerLifetime.Persistent)` could
deadlock on startup** — Redis TLS startup arguments used the
public/allocated host ports instead of the internal target ports. When
the public port differed from the target port (or was not yet allocated)
the container would listen on an unexpected port and become unreachable.
The TLS and non-TLS startup arguments now bind to target ports, matching
what Redis expects internally. Fixes #​17822. (#​17827, backported via
#​17850, `@​danegsta`)

### 🏷️ Housekeeping

- 🚀 Bumped branding to 13.4.2 (#​17876)

---
*Full Changelog:
microsoft/aspire@v13.4.1...v13.4.2*

*Full commit:
[d7d0b6759ce4b936c76bc4775814d27db560dd6d](microsoft/aspire@d7d0b6759ce4b936c76bc4775814d27db560dd6d)*

> Generated by [Generate release notes for a new stable Aspire
release](https://github.com/microsoft/aspire/actions/runs/26920328099/agentic_workflow)
· ● 5M

<!-- gh-aw-agentic-workflow: Generate release notes for a new stable
Aspire release, engine: copilot, version: 1.0.40, model:
claude-sonnet-4.6, id: 26920328099, workflow_id: release-notes-generate,
run: https://github.com/microsoft/aspire/actions/runs/26920328099 -->

## 13.4.1

## What's New in Aspire 13.4.1

Patch release for Aspire 13.4 with fixes for explicit-start resource
lifecycle callbacks, Redis persistent container startup, proxyless
endpoint allocation, and a duplicated `profiles` block in the empty C#
AppHost template.

### 🐛 Fixes

- ⏱️ **Explicit-start resources triggered lifecycle callbacks too
early** — Session-scoped resources marked with `WithExplicitStart()`
were having their execution configuration callbacks (environment
variables, arguments, certificates) evaluated at AppHost startup instead
of at manual start. This meant user-interaction callbacks such as
`WithEnvironment(ctx => PromptForValueAsync(...))` were called before
the user triggered the resource. DCP registration is now deferred until
the user manually starts the resource; persistent explicit-start
resources still register immediately but patch the existing DCP record
to `Start = true` rather than deleting and recreating it. Fixes #​17813.
(#​17825, backported via #​17826, `@​danegsta`)
- 🔴 **Redis with `WithLifetime(ContainerLifetime.Persistent)` could
deadlock on startup** — Redis TLS startup arguments used the
public/allocated host ports instead of the internal target ports. When
the public port differed from the target port (or was not yet allocated)
the container would listen on an unexpected port and become unreachable.
The TLS and non-TLS startup arguments now bind to target ports, matching
what Redis expects internally. Fixes #​17822. (#​17827, backported via
#​17850, `@​danegsta`)
- 🔌 **Proxyless container endpoint could hang when resolved before
container creation** — Referencing a proxyless container endpoint in an
environment variable callback (before the container port spec was
finalized) could deadlock. An on-demand allocation path now commits the
target port as the fallback host port in that case; once
`BuildContainerPorts` runs, normal DCP dynamic port assignment takes
over for any later resolution. (#​17851, backported via #​17859,
`@​danegsta`)
- 📄 **Empty C# AppHost template emitted duplicate `profiles` block** —
`aspire new aspire-empty` on 13.4 produced an `aspire.config.json` with
a `profiles` block that duplicated the content already present in
`apphost.run.json`, causing redundant launch configuration. The embedded
template now contains only the required `appHost.path` binding; profile
configuration lives exclusively in `apphost.run.json`. Fixes #​17660.
(#​17781, backported via #​17820, `@​mitchdenny`)

### 🏷️ Housekeeping

- 📦 Added Aspire CLI npm package to the release pipeline so the npm
distribution is published as part of stable releases. (#​17297,
backported via #​17766, `@​adamint`)
- 🚀 Bumped branding to 13.4.1 (#​17819)

---
*Full Changelog:
microsoft/aspire@v13.4.0...v13.4.1*

*Full commit:
[cf985fa817dd5863e7f62eb74fa1725ab5069ed2](microsoft/aspire@cf985fa817dd5863e7f62eb74fa1725ab5069ed2)*

> Generated by [Generate release notes for a new stable Aspire
release](https://github.com/microsoft/aspire/actions/runs/26909313891/agentic_workflow)
· ● 1.0.40

> Generated by [Generate release notes for a new stable Aspire
release](https://github.com/microsoft/aspire/actions/runs/26909313891/agentic_workflow)
· ● 3.9M

<!-- gh-aw-agentic-workflow: Generate release notes for a new stable
Aspire release, engine: copilot, version: 1.0.40, model:
claude-sonnet-4.6, id: 26909313891, workflow_id: release-notes-generate,
run: https://github.com/microsoft/aspire/actions/runs/26909313891 -->

## 13.4.0

# Aspire 13.4.0

Aspire 13.4 brings major improvements to Foundry hosted agents, the
Aspire skills system, CLI reliability, and TypeScript AppHost stability
— with cross-compute-environment deployment now working end-to-end and
**TypeScript AppHost support — Aspire's polyglot story — reaching
general availability (GA)**.

## Highlights

- 🎉 **TypeScript AppHost is now GA** — First introduced as a preview in
an earlier version of Aspire, the TypeScript AppHost — Aspire's polyglot
story — has reached the quality bar for general availability and is now
officially supported for production use alongside C#. As part of GA, the
experimental markers on the Azure TypeScript AppHost (ATS) APIs have
been removed and the ATS surface area is stable for 13.4.
- 🤖 **Foundry hosted agents** — Protocol selection (`responses` /
`invocations`) is now configurable from both C# and TypeScript AppHosts.
Cross-compute-environment deployments (e.g., a Foundry hosted agent + an
AKS consumer) now wire up correctly: endpoint resolution and the
required **Azure AI User** RBAC role assignment on the Foundry account
are generated automatically — no manual `az role assignment create`
steps needed.
- 🛠️ **Aspire skills catalog from bundle** — `aspire agent init` now
drives its installable skill catalog from the bundle manifest, surfacing
all six bundled skills (previously only three were visible). An embedded
snapshot means the full catalog is available even in airgapped /
disconnected environments.
- 🔧 **CLI reliability** — Multiple CLI fixes: implicit-channel discovery
restored, `aspire stop` no longer falsely reports failure on Unix,
`aspire ps` no longer includes raw resource data (use `aspire describe`
for detailed state), `aspire new` prefers the current CLI template
version, friendly error for `aspire do --list-steps` without a step
argument, and improved `--search` option description with documentation
link.
- ⌨️ **TypeScript AppHost** — Fixed a deadlock that occurred when lazy
options callbacks invoked async methods; dev-localhost resource service
URLs are now accepted for local development without extra configuration.
- 📊 **Dashboard** — Summary log formatting improved for readability,
`dotnet watch` dashboard auto-launch signal restored, and dynamic-port
handling fixed for `DistributedApplicationTestingBuilder`.
- ☸️ **Kubernetes** — The Helm CLI minimum version (≥ 4.2.0) is now
validated before a Kubernetes deploy, giving a clear error instead of a
cryptic failure.
- ⚠️ **`Aspire.Hosting.Blazor` ships as preview in 13.4** — A packaging
issue with the Blazor gateway scripts means the package is intentionally
marked preview for this release. Full stable support is targeted for
13.5.

## ⚠️ Notable changes

- `aspire ps` no longer includes raw resource data in its output. Use
`aspire describe <resource>` to inspect detailed resource state.
- Foundry hosted agent builder API shape updated — see
[#​17545](microsoft/aspire#17545) and
[#​17669](microsoft/aspire#17669) for the
updated C# and TypeScript signatures.
- `Aspire.Hosting.Blazor` is preview-versioned in 13.4
(`SuppressFinalPackageVersion=true`). A fix for the `addBlazorGateway`
gateway script resolution error in TypeScript AppHosts is tracked in
[#​17685](microsoft/aspire#17685).

## 📖 Learn more

For the full details on everything in this release, check out the
[What's new in Aspire 13.4](https://aspire.dev/whats-new/aspire-13-4/)
documentation.

Thank you to all the community contributors who helped make Aspire 13.4
possible! 💜

---
*Full Changelog:
microsoft/aspire@v13.3.5...v13.4.0*

*Full commit:
[becb48e2d61099e35ae336d527d3875e928d6594](microsoft/aspire@becb48e2d61099e35ae336d527d3875e928d6594)*

> Generated by [Generate release notes for a new stable Aspire
release](https://github.com/microsoft/aspire/actions/runs/26779980139/agentic_workflow)
· ● 6.5M

<!-- gh-aw-agentic-workflow: Generate release notes for a new stable
Aspire release, engine: copilot, version: 1.0.40, model:
claude-sonnet-4.6, id: 26779980139, workflow_id: release-notes-generate,
run: https://github.com/microsoft/aspire/actions/runs/26779980139 -->


Commits viewable in [compare
view](microsoft/aspire@v13.3.5...v13.4.6).
</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
renebentes pushed a commit to renebentes/3054 that referenced this pull request Jun 25, 2026
…to 13.4.6 (#208)

Updated
[Aspire.Npgsql.EntityFrameworkCore.PostgreSQL](https://github.com/microsoft/aspire)
from 13.3.5 to 13.4.6.

<details>
<summary>Release notes</summary>

_Sourced from [Aspire.Npgsql.EntityFrameworkCore.PostgreSQL's
releases](https://github.com/microsoft/aspire/releases)._

## 13.4.6

## What's New in Aspire 13.4.6

Patch release for Aspire 13.4 fixing polyglot AppHost code generation
binding when CLI and SDK versions diverge, resource service port
collision in `--isolated` mode, and a MongoDB.Driver dependency update.

### 🐛 Fixes

- 🔗 **Polyglot AppHost code generation silently failed when CLI and SDK
versions diverged** — `Aspire.TypeSystem` used a floating strong-name
`AssemblyVersion` that changed with every build. When the installed
Aspire CLI was built at a different version than the AppHost's SDK, the
CLR couldn't satisfy the strong-name bind and every code generator
(TypeScript, Python, Java, Go, Rust) was silently dropped, surfacing as
`No code generator found for language: <lang>`. The `AssemblyVersion` is
now frozen at a stable constant so any compatible CLI/SDK pair on 13.4
binds successfully. Relates to #​18110 and #​17910.
([#​18160](microsoft/aspire#18160),
`@​sebastienros`)

- 🔌 **Multiple AppHosts started with `--isolated` collided on the
resource service port** — Both instances tried to bind to the same fixed
port from `ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL`, causing an "address
already in use" error on the second instance. `DashboardServiceHost` now
binds to port 0 on loopback when `RandomizePorts` is true (set by
`--isolated`), letting the OS assign a unique port per instance.
([#​18341](microsoft/aspire#18341), `@​JamesNK`)

- 🍃 **MongoDB.Driver updated to 3.9.0** — Removes a wrongly pinned
`SharpCompress` transitive dependency and uses the corrected `Snappier`
transitive. Fixes #​17981.
([#​18279](microsoft/aspire#18279),
`@​Falco20019`)

### 🏷️ Housekeeping

- 🚀 Bumped branding to 13.4.6
([#​18343](microsoft/aspire#18343))

---

_Full Changelog:
[v13.4.5...v13.4.6](microsoft/aspire@v13.4.5...v13.4.6)_

_Full commit:
[87fe259e4fc244c599019a7b1304c85a1488f248](microsoft/aspire@87fe259e4fc244c599019a7b1304c85a1488f248)_

> Generated by [Generate release notes for a new stable Aspire
release](https://github.com/microsoft/aspire/actions/runs/27855270514) ·
131 AIC · ⌖ 13.5 AIC · ⊞ 37.4K

<!-- gh-aw-agentic-workflow: Generate release notes for a new stable
Aspire release, engine: copilot, version: 1.0.60, model:
claude-sonnet-4.6, id: 27855270514, workflow_id: release-notes-generate,
run: https://github.com/microsoft/aspire/actions/runs/27855270514 -->

## 13.4.5

## What's New in Aspire 13.4.5

Patch release for Aspire 13.4 clearing a transitive MessagePack security
advisory, tightening CLI validation for Playwright configuration, and
adding coding-agent detection to CLI telemetry.

### 🐛 Fixes

- 🛡️ **Bumped StreamJsonRpc to 2.25.29 to clear the MessagePack
GHSA-hv8m-jj95-wg3x (CVE-2026-48109) NU1903 advisory** — The transitive
MessagePack 2.5.192 dependency pulled in via StreamJsonRpc 2.22.23 fell
within the advisory's vulnerable LZ4 decompression range. Aspire does
not use `MessagePackFormatter` or LZ4 — all StreamJsonRpc calls use
`SystemTextJsonFormatter` over local Unix sockets — so the vulnerability
was not reachable in practice. The bump clears the NU1903 warning for
consumers of the `Aspire.Hosting` package.
([#​18204](microsoft/aspire#18204),
`@​mitchdenny`)
- 🎭 **`playwrightCliVersion` values that are not valid SemVer 2.0 now
fail fast with a clear diagnostic** — Previously an invalid override
(range expression, dist-tag like `latest`, or a `v`-prefixed string)
would surface as a generic npm resolution failure. The value is now
validated with strict SemVer parsing at startup; an error naming the
configuration key and the offending value is emitted immediately.
([#​18205](microsoft/aspire#18205),
`@​mitchdenny`)
- 🤖 **CLI telemetry now detects and reports the calling coding agent** —
When the Aspire CLI is invoked from inside a known coding agent
environment (GitHub Copilot CLI, VS Code Copilot agent, etc.) the agent
name is included in the main CLI telemetry event. GitHub Copilot CLI is
specifically identified as `copilot-cli`.
([#​18240](microsoft/aspire#18240),
`@​damianedwards`)

### 🏷️ Housekeeping

- 📄 Refreshed the `@​microsoft/aspire-cli` npm package README to be
TypeScript-only — updated examples to the current `ts-starter` template
(`apphost.mts` / `aspire.mjs`), added a backing-services snippet showing
`aspire add` for PostgreSQL and Redis, and documented `aspire dashboard
run` as a standalone dashboard option.
([#​18221](microsoft/aspire#18221), `@​adamint`)

---

_Full Changelog:
[v13.4.4...v13.4.5](microsoft/aspire@v13.4.4...v13.4.5)_

_Full commit:
[73114e86c64aeb9f3f3c7da8e37df1ae4281b27e](microsoft/aspire@73114e86c64aeb9f3f3c7da8e37df1ae4281b27e)_

> Generated by [Generate release notes for a new stable Aspire
release](https://github.com/microsoft/aspire/actions/runs/27667814104/agentic_workflow)
· ● 4.4M

<!-- gh-aw-agentic-workflow: Generate release notes for a new stable
Aspire release, engine: copilot, version: 1.0.40, model:
claude-sonnet-4.6, id: 27667814104, workflow_id: release-notes-generate,
run: https://github.com/microsoft/aspire/actions/runs/27667814104 -->

## 13.4.4

## What's New in Aspire 13.4.4

Patch release for Aspire 13.4 with improved DCP connection reliability
during request execution and consistent `ExcludeFromMcp()` filtering
across all CLI MCP tools.

### 🐛 Fixes

* 🔌 **DCP requests could fail permanently when the connection dropped
mid-request** — If the underlying DCP channel closed while a request was
in flight, the error was surfaced directly instead of being retried.
Reconnection is now attempted as part of the DCP request retry path so
transient disconnections recover automatically without surfacing errors.
([#​18096](microsoft/aspire#18096),
`@​karolz-ms`)
* 🔍 **Resources marked with `ExcludeFromMcp()` were not consistently
filtered from CLI MCP tools** — Resources with the
`resource.excludeFromMcp` property were not excluded uniformly from all
CLI MCP tool results. `list_resources`, `list_console_logs`,
`execute_resource_command`, `list_structured_logs`, `list_traces`, and
`list_trace_structured_logs` all now honor the exclusion, preventing
excluded resources and their telemetry from appearing in agent context.
([#​18150](microsoft/aspire#18150), `@​JamesNK`)

### 🏷️ Housekeeping

* 📦 Improved npm CLI package metadata and hardened npm publish
validation in the release pipeline.
([#​18093](microsoft/aspire#18093),
`@​adamratzman`)

* * *

_Full Changelog:
[v13.4.3...v13.4.4](microsoft/aspire@v13.4.3...v13.4.4)_

_Full commit:
[ccc566c5ab3285c9beb8f38ede34734bb477c029](microsoft/aspire@ccc566c5ab3285c9beb8f38ede34734bb477c029)_


## 13.4.3

## What's New in Aspire 13.4.3

Patch release for Aspire 13.4 with a fix for persistent container
endpoint allocation regressions introduced in 13.4.

### 🐛 Fixes

- 🔌 **Persistent container endpoints had incorrect default behavior** —
Persistent containers were defaulting to proxyless endpoint behavior
instead of the proxied behavior used by normal containers. This caused
integrations that depend on endpoint allocation before resource startup
(such as the KeyVault emulator) to fail. Persistent containers now
default to proxied endpoints matching normal container behavior; opt out
with `isProxied: false` or `WithEndpointProxySupport(false)`. Proxyless
container endpoints with only a `targetPort` specified now also resolve
immediately to that port instead of waiting for delayed allocation.
(#​17960, `@​danegsta`)

### 🏷️ Housekeeping

- 🛠️ Unblocked WinGet manifest publishing on locked-down 1ES agents and
updated manifest tags (#​17958)

---
*Full Changelog:
microsoft/aspire@v13.4.2...v13.4.3*

*Full commit:
[4f218933552e18ff2874d1b6d5dc3fe671e3b6d9](microsoft/aspire@4f218933552e18ff2874d1b6d5dc3fe671e3b6d9)*

> Generated by [Generate release notes for a new stable Aspire
release](https://github.com/microsoft/aspire/actions/runs/27173824611/agentic_workflow)
· ● 4.7M

<!-- gh-aw-agentic-workflow: Generate release notes for a new stable
Aspire release, engine: copilot, version: 1.0.40, model:
claude-sonnet-4.6, id: 27173824611, workflow_id: release-notes-generate,
run: https://github.com/microsoft/aspire/actions/runs/27173824611 -->

## 13.4.2

## What's New in Aspire 13.4.2

Patch release for Aspire 13.4 with a fix for Redis persistent container
deadlock on startup when using TLS.

### 🐛 Fixes

- 🔴 **Redis with `WithLifetime(ContainerLifetime.Persistent)` could
deadlock on startup** — Redis TLS startup arguments used the
public/allocated host ports instead of the internal target ports. When
the public port differed from the target port (or was not yet allocated)
the container would listen on an unexpected port and become unreachable.
The TLS and non-TLS startup arguments now bind to target ports, matching
what Redis expects internally. Fixes #​17822. (#​17827, backported via
#​17850, `@​danegsta`)

### 🏷️ Housekeeping

- 🚀 Bumped branding to 13.4.2 (#​17876)

---
*Full Changelog:
microsoft/aspire@v13.4.1...v13.4.2*

*Full commit:
[d7d0b6759ce4b936c76bc4775814d27db560dd6d](microsoft/aspire@d7d0b6759ce4b936c76bc4775814d27db560dd6d)*

> Generated by [Generate release notes for a new stable Aspire
release](https://github.com/microsoft/aspire/actions/runs/26920328099/agentic_workflow)
· ● 5M

<!-- gh-aw-agentic-workflow: Generate release notes for a new stable
Aspire release, engine: copilot, version: 1.0.40, model:
claude-sonnet-4.6, id: 26920328099, workflow_id: release-notes-generate,
run: https://github.com/microsoft/aspire/actions/runs/26920328099 -->

## 13.4.1

## What's New in Aspire 13.4.1

Patch release for Aspire 13.4 with fixes for explicit-start resource
lifecycle callbacks, Redis persistent container startup, proxyless
endpoint allocation, and a duplicated `profiles` block in the empty C#
AppHost template.

### 🐛 Fixes

- ⏱️ **Explicit-start resources triggered lifecycle callbacks too
early** — Session-scoped resources marked with `WithExplicitStart()`
were having their execution configuration callbacks (environment
variables, arguments, certificates) evaluated at AppHost startup instead
of at manual start. This meant user-interaction callbacks such as
`WithEnvironment(ctx => PromptForValueAsync(...))` were called before
the user triggered the resource. DCP registration is now deferred until
the user manually starts the resource; persistent explicit-start
resources still register immediately but patch the existing DCP record
to `Start = true` rather than deleting and recreating it. Fixes #​17813.
(#​17825, backported via #​17826, `@​danegsta`)
- 🔴 **Redis with `WithLifetime(ContainerLifetime.Persistent)` could
deadlock on startup** — Redis TLS startup arguments used the
public/allocated host ports instead of the internal target ports. When
the public port differed from the target port (or was not yet allocated)
the container would listen on an unexpected port and become unreachable.
The TLS and non-TLS startup arguments now bind to target ports, matching
what Redis expects internally. Fixes #​17822. (#​17827, backported via
#​17850, `@​danegsta`)
- 🔌 **Proxyless container endpoint could hang when resolved before
container creation** — Referencing a proxyless container endpoint in an
environment variable callback (before the container port spec was
finalized) could deadlock. An on-demand allocation path now commits the
target port as the fallback host port in that case; once
`BuildContainerPorts` runs, normal DCP dynamic port assignment takes
over for any later resolution. (#​17851, backported via #​17859,
`@​danegsta`)
- 📄 **Empty C# AppHost template emitted duplicate `profiles` block** —
`aspire new aspire-empty` on 13.4 produced an `aspire.config.json` with
a `profiles` block that duplicated the content already present in
`apphost.run.json`, causing redundant launch configuration. The embedded
template now contains only the required `appHost.path` binding; profile
configuration lives exclusively in `apphost.run.json`. Fixes #​17660.
(#​17781, backported via #​17820, `@​mitchdenny`)

### 🏷️ Housekeeping

- 📦 Added Aspire CLI npm package to the release pipeline so the npm
distribution is published as part of stable releases. (#​17297,
backported via #​17766, `@​adamint`)
- 🚀 Bumped branding to 13.4.1 (#​17819)

---
*Full Changelog:
microsoft/aspire@v13.4.0...v13.4.1*

*Full commit:
[cf985fa817dd5863e7f62eb74fa1725ab5069ed2](microsoft/aspire@cf985fa817dd5863e7f62eb74fa1725ab5069ed2)*

> Generated by [Generate release notes for a new stable Aspire
release](https://github.com/microsoft/aspire/actions/runs/26909313891/agentic_workflow)
· ● 1.0.40

> Generated by [Generate release notes for a new stable Aspire
release](https://github.com/microsoft/aspire/actions/runs/26909313891/agentic_workflow)
· ● 3.9M

<!-- gh-aw-agentic-workflow: Generate release notes for a new stable
Aspire release, engine: copilot, version: 1.0.40, model:
claude-sonnet-4.6, id: 26909313891, workflow_id: release-notes-generate,
run: https://github.com/microsoft/aspire/actions/runs/26909313891 -->

## 13.4.0

# Aspire 13.4.0

Aspire 13.4 brings major improvements to Foundry hosted agents, the
Aspire skills system, CLI reliability, and TypeScript AppHost stability
— with cross-compute-environment deployment now working end-to-end and
**TypeScript AppHost support — Aspire's polyglot story — reaching
general availability (GA)**.

## Highlights

- 🎉 **TypeScript AppHost is now GA** — First introduced as a preview in
an earlier version of Aspire, the TypeScript AppHost — Aspire's polyglot
story — has reached the quality bar for general availability and is now
officially supported for production use alongside C#. As part of GA, the
experimental markers on the Azure TypeScript AppHost (ATS) APIs have
been removed and the ATS surface area is stable for 13.4.
- 🤖 **Foundry hosted agents** — Protocol selection (`responses` /
`invocations`) is now configurable from both C# and TypeScript AppHosts.
Cross-compute-environment deployments (e.g., a Foundry hosted agent + an
AKS consumer) now wire up correctly: endpoint resolution and the
required **Azure AI User** RBAC role assignment on the Foundry account
are generated automatically — no manual `az role assignment create`
steps needed.
- 🛠️ **Aspire skills catalog from bundle** — `aspire agent init` now
drives its installable skill catalog from the bundle manifest, surfacing
all six bundled skills (previously only three were visible). An embedded
snapshot means the full catalog is available even in airgapped /
disconnected environments.
- 🔧 **CLI reliability** — Multiple CLI fixes: implicit-channel discovery
restored, `aspire stop` no longer falsely reports failure on Unix,
`aspire ps` no longer includes raw resource data (use `aspire describe`
for detailed state), `aspire new` prefers the current CLI template
version, friendly error for `aspire do --list-steps` without a step
argument, and improved `--search` option description with documentation
link.
- ⌨️ **TypeScript AppHost** — Fixed a deadlock that occurred when lazy
options callbacks invoked async methods; dev-localhost resource service
URLs are now accepted for local development without extra configuration.
- 📊 **Dashboard** — Summary log formatting improved for readability,
`dotnet watch` dashboard auto-launch signal restored, and dynamic-port
handling fixed for `DistributedApplicationTestingBuilder`.
- ☸️ **Kubernetes** — The Helm CLI minimum version (≥ 4.2.0) is now
validated before a Kubernetes deploy, giving a clear error instead of a
cryptic failure.
- ⚠️ **`Aspire.Hosting.Blazor` ships as preview in 13.4** — A packaging
issue with the Blazor gateway scripts means the package is intentionally
marked preview for this release. Full stable support is targeted for
13.5.

## ⚠️ Notable changes

- `aspire ps` no longer includes raw resource data in its output. Use
`aspire describe <resource>` to inspect detailed resource state.
- Foundry hosted agent builder API shape updated — see
[#​17545](microsoft/aspire#17545) and
[#​17669](microsoft/aspire#17669) for the
updated C# and TypeScript signatures.
- `Aspire.Hosting.Blazor` is preview-versioned in 13.4
(`SuppressFinalPackageVersion=true`). A fix for the `addBlazorGateway`
gateway script resolution error in TypeScript AppHosts is tracked in
[#​17685](microsoft/aspire#17685).

## 📖 Learn more

For the full details on everything in this release, check out the
[What's new in Aspire 13.4](https://aspire.dev/whats-new/aspire-13-4/)
documentation.

Thank you to all the community contributors who helped make Aspire 13.4
possible! 💜

---
*Full Changelog:
microsoft/aspire@v13.3.5...v13.4.0*

*Full commit:
[becb48e2d61099e35ae336d527d3875e928d6594](microsoft/aspire@becb48e2d61099e35ae336d527d3875e928d6594)*

> Generated by [Generate release notes for a new stable Aspire
release](https://github.com/microsoft/aspire/actions/runs/26779980139/agentic_workflow)
· ● 6.5M

<!-- gh-aw-agentic-workflow: Generate release notes for a new stable
Aspire release, engine: copilot, version: 1.0.40, model:
claude-sonnet-4.6, id: 26779980139, workflow_id: release-notes-generate,
run: https://github.com/microsoft/aspire/actions/runs/26779980139 -->


Commits viewable in [compare
view](microsoft/aspire@v13.3.5...v13.4.6).
</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This was referenced Jun 25, 2026
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