Skip to content

[preview] repo-pulse + commit-digest mock — 2026-05-03 → 2026-05-06 #51

@radical

Description

@radical

> 🤖 Auto-generated by .github/workflows/repo-pulse.md — do not edit.
> Your manual edits will be overwritten on the next run.
>
> - Generated: 2026-05-06 16:30 UTC
> - Covers: activity from the last 3 days (since 2026-05-03T16:30:13Z)
> - Run: workflow run

📦 Themes — last 3 days on origin/main

28 PRs landed on origin/main · 1 dependency auto-update collapsed (#16751 DCP 0.23.4) · plus 12 release/13.3 backports (listed at the bottom of the next section).

  1. CLI command-surface tightening — 8 PRs (@JamesNK, @mitchdenny, @eerhardt, @maddymontaquila)

    A sustained run of aspire init/new/update/run/destroy polish — fixing rough edges that bit users in non-default configurations.

    Show 8 PRs
    • aspire new empty-AppHost language picker collapsed to one interactive entry (#16666)
    • CLI init output spacing cleanup before agent-init handoff (#16718)
    • aspire update honors the channel saved via aspire config set (#16716)
    • aspire init's C# single-file skeleton emits apphost.run.json so dotnet run apphost.cs actually starts (#16812)
    • aspire new derives default output dir from template name + auto-increments (#16772)
    • aspire run no longer fails with DashboardFailure when DisableDashboard = true (#16773)
    • aspire destroy --non-interactive now refuses without --yes (#16805)
    • ReparsePointTests cleanup on Windows without Developer Mode (#16814)
  2. TypeScript / polyglot AppHost toolchain — 3 PRs (@sebastienros, @eerhardt)

    Pre-launch validation and toolchain selectivity for non-C# AppHosts.

    Show 3 PRs
    • tsc --noEmit -p tsconfig.apphost.json runs before aspire run/start so type errors surface as a clean Spectre-formatted error (#16689)
    • Yarn Classic is rejected for TypeScript AppHosts (forwarding semantics differ from supported managers) (#16620)
    • Explicit DcpPublisher:CliPath/DashboardPath config wins over polyglot bundle discovery (#16734)
  3. Container tunnel hardening — 3 PRs (@danegsta, @karolz-ms, @copilot-swe-agent)

    Three independent improvements to the DCP container tunnel surface.

    Show 3 PRs
    • HostUrl resolution under the tunnel — endpoints were read before allocation, treated as a dependency now (#16684)
    • DCP failure information surfaces in detail to the user (#16537)
    • Reserved-name validation rejects collisions with the tunnel name aspire (#16748)
  4. VS Code extension launch & debug output — 3 PRs (@adamint)

    Extension AppHost debug-console output and pre-launch failure handling cleaned up across the C# + Python + TS paths.

    Show 3 PRs
    • Run Without Debugging triple-fix: build restored, SupportedLaunchConfigurations honored for "project", dead NoExtensionLaunch flag removed (#16794)
    • Debugger noise filtered from parent console, guest AppHost pre-launch failures surfaced, line-buffered UTF-8 stdout/stderr (#16795)
    • Python debug working directory aligned with CLI for IDE runs (#16668)
  5. Hosting.Kubernetes API consolidation — 3 PRs (@mitchdenny, @eerhardt)

    Kubernetes/Helm API surface tightening.

    Show 3 PRs
    • Helm chart name/version/description options consolidated onto a single WithHelm(...) overload (#16759)
    • AddIngress/AddGateway/WithRoute/WithTls/WithHostname moved from Aspire.Hosting.Kubernetes to Aspire.Hosting (#16588)
    • API review feedback: AKS APIs refactored to Aspire.Hosting.Azure.Kubernetes, JS experimental ID renamed to ASPIREJAVASCRIPT001 (#16673)
  6. Milestone changelog workflow — 3 PRs (@JamesNK)

    The agentic milestone-changelog workflow gained backport handling, parameterization, and docs-PR tracking.

    Show 3 PRs
    • Backport PRs are no longer silently excluded as bot-authored (#16712)
    • Prompt values parameterized so the workflow isn't hard-coded to one repo (#16715)
    • Docs PRs from microsoft/aspire.dev matched to changelog entries (#16777)

Plus standalone landings: Foundry hosted-agent endpoint resolution under aspire deploy (#16797), AtsJsonCodeWriter collapsed to internal shared helper (#16677), Ubuntu apt-mirror override for CLI E2E images (#16753), ConfigurationSchemaGenerator added to Aspire-Core.slnf (#16711).

🔥 Merged PRs by category — last 3 days

🐛 Fixes (9)

Show all 9 fixes
  • aspire new empty-AppHost language picker#16666 by @maddymontaquila · fixes #16661, #16662

    Empty-AppHost creation now has a single interactive top-level entry (Empty AppHost (Choose language…)) with the language follow-up nested underneath, instead of duplicating language entries at the top level. Adds direct shortcut template IDs for Python and Rust empty AppHosts.

  • HostUrl under the container tunnel#16684 by @danegsta · fixes #16641, #16642

    Containers referencing app-model host ports were hitting FailToStart because the endpoint was read before allocation. Now treated as a dependency and resolved via the endpoint's async port property.

  • Python debug working directory in VS Code#16668 by @adamint · fixes #16575

    Extension Python debug now sets working_directory on Python project launches so IDE-run resources see the same cwd that aspire run uses on the CLI.

  • Extension Run Without Debugging — three fixes#16794 by @adamint

    • Restored the build (the watch expression wrongly skipped it for extension hosts without --start-debug-session).
    • Honored the IDE's SupportedLaunchConfigurations for "project", so VS Code without the C# extension falls back to ExecutionType.Process.
    • Removed the always-no-op NoExtensionLaunch flag.
  • apphost.run.json from aspire init single-file skeleton#16812 by @mitchdenny · fixes #15986

    After aspire init, dotnet run apphost.cs was crashing because dashboard / OTLP / resource-service env vars only get applied via apphost.run.json (the .NET 10 file-based runner doesn't read aspire.config.json's profiles). Init now drops both files with matching ports. Regression entered with Fix config discovery to search from apphost directory and add aspire.config.json to .NET templates microsoft/aspire#15423.

  • Foundry hosted agent endpoint resolution under aspire deploy#16797 by @eerhardt · fixes #16608

    PublishAsHostedAgent(...) was resolving target env vars through context-free value providers, which could wait forever on endpoint allocation snapshots when a hosted agent referenced an Azure Container Apps endpoint. Resolution is now publish-aware via a new IComputeEnvironmentResource.GetEndpointPropertyExpression(...) with ACA + App Service overrides; referenced internal endpoints fail fast with an actionable exception instead of hanging.

  • aspire run when DisableDashboard = true#16773 by @JamesNK · fixes #16619

    aspire run returned DashboardFailure while aspire start succeeded for the same AppHost. AppHostRpcTarget now returns DashboardUrlsState { DashboardHealthy = false } instead of throwing, and RunCommand treats an unhealthy dashboard as a warning so the AppHost continues running with N/A in the dashboard URL summary.

  • --yes required with --non-interactive on aspire destroy#16805 by @eerhardt · fixes #16623

    aspire destroy --non-interactive previously skipped the confirmation prompt entirely. The command now rejects that combination with a localized error unless --yes is also passed, preventing accidental teardown from automation that forgot the flag.

  • ReparsePointTests cleanup on Windows without Developer Mode#16814 by @JamesNK

    CreateOrReplace_CreatesReparsePointToTargetDirectory and CreateOrReplace_ReplacesExistingReparsePoint were leaving reparse points (junctions) in their temp directories, causing the next test's directory cleanup to fail intermittently on Windows hosts without Developer Mode enabled. Wrapped the bodies in try/finally so junctions are removed before each test exits.

✨ New (7)

Show all 7 new features
  • TypeScript AppHost type-check before startup#16689 by @sebastienros · fixes #16645

    TS AppHosts run through tsx, which transpiles without type validation. A new PreExecute runtime hook now runs tsc --noEmit -p tsconfig.apphost.json before aspire run/start, so type errors surface as a single Spectre-formatted Aspire error instead of silently running broken code.

  • Yarn Classic rejected for TypeScript AppHosts#16620 by @eerhardt · fixes #16616

    Yarn Classic's command and argument-forwarding semantics differ enough from npm/pnpm/Yarn Berry that TS AppHosts running through it produce inconsistent behavior. The toolchain resolver now detects Yarn Classic and rejects it with an actionable error.

  • Polyglot AppHost DCP config priority#16734 by @sebastienros

    Explicit DcpPublisher:CliPath / DcpPublisher:DashboardPath settings now win over polyglot bundle discovery defaults, so power users can override DCP and dashboard paths without fighting bundle discovery.

  • Backport-PR support in milestone changelog workflow#16712 by @JamesNK

    Backport PRs were silently excluded as bot-authored. The changelog agentic workflow now treats backports as in-scope and links them back to the originating product PR.

  • Reserved container-tunnel name validation#16748 by @copilot-swe-agent

    When the container tunnel is enabled, DCP container preparation fails AppHost startup if any container resource is named aspire — the name reserved for the tunnel itself.

  • aspire update honors configured channel#16716 by @mitchdenny · fixes #16650

    aspire update previously only consulted --channel/--quality from the command line; resolution now centralizes in UpdateCommand.ExecuteAsync and consults configuration first.

  • Docs PR tracking in milestone changelog workflow#16777 by @JamesNK

    Workflow now also fetches merged PRs from microsoft/aspire.dev and matches them to changelog entries, recording included/excluded status alongside the product PR tracker.

🔧 Improvements (4)

Show all 4 improvements
  • CLI init output spacing#16718 by @JamesNK

    Cleans up spacing around prompts and markdown rendering in the init/new flows before chaining into agent-init.

  • Container tunnel error reporting#16537 by @karolz-ms · fixes #13892

    Latest DCP versions report richer detail on container-tunnel failures. The Aspire side now surfaces that detail to the user instead of swallowing it inside generic DCP errors.

  • aspire new output path handling#16772 by @JamesNK

    Default output directory now derives from the template name (e.g. ./aspire-starter) with auto-incrementing -2/-3 suffixes when occupied. Paths are validated for invalid chars before Path.GetFullPath, and explicit --output paths pointing at non-empty existing dirs are rejected with a clear error.

  • AppHost debug console output for TypeScript and C##16795 by @adamint

    • Filter trce/dbug debugger noise from the parent debug console while keeping fail/crit, uncaught exceptions on stderr.
    • Surface guest AppHost pre-launch failures (e.g. tsc --noEmit errors) before the backchannel wait, instead of leaving the extension stuck at Connecting to AppHost….
    • Line-buffer CLI stdout/stderr and decode UTF-8 so output isn't split mid-emoji.
    • aspire describe --follow no longer restarts forever when it exits before producing data.

🧹 Refactors (4)

Show all 4 refactors
  • API Review feedback — AKS / EF / JS experimental ID#16673 by @eerhardt

    Renames ASPIREEXTENSION001ASPIREJAVASCRIPT001 for JavaScript experimental APIs. Refactors AKS resource APIs into Aspire.Hosting.Azure.Kubernetes and tightens the EF resource API shape.

  • AtsJsonCodeWriter moved to internal shared helper#16677 by @eerhardt

    Was only used by the CLI and polyglot code-generation projects, so exposing it as public API on Aspire.TypeSystem was unnecessary surface area. Collapsed to internal shared helper.

  • Helm chart options consolidated on WithHelm(...)#16759 by @mitchdenny

    Two parallel APIs (annotation-based WithHelm(h => h.WithChartVersion(...)) and property-based env.WithProperties(k => k.HelmChartName = ...)) collapse onto a single WithHelm(...) overload on KubernetesEnvironmentResource.

  • AddIngress / AddGateway extensions in Aspire.Hosting namespace#16588 by @mitchdenny

    Extension methods moved from Aspire.Hosting.Kubernetes to Aspire.Hosting, so AddGateway, AddIngress, etc. are reachable from the default AppHost using set without an extra using Aspire.Hosting.Kubernetes;.

🏗️ Infrastructure (3)

Show all 3 infrastructure changes
  • ConfigurationSchemaGenerator in Aspire-Core.slnf#16711 by @JamesNK

    Adds the ConfigurationSchemaGenerator project to the Aspire-Core.slnf solution filter for easier development access.

  • Milestone changelog prompt parameterization#16715 by @JamesNK

    The agentic milestone-changelog workflow's prompt now reads repo-specific values from inputs/env instead of hard-coded strings, so the workflow isn't pinned to the current Aspire repo.

  • Ubuntu apt-mirror override for CLI E2E images#16753 by @danegsta

    Adds UBUNTU_APT_MIRROR build arg and ASPIRE_E2E_UBUNTU_APT_MIRROR env wiring to the CLI E2E Dockerfiles, letting CI swap to a faster/closer apt mirror when the default is slow.

🍒 Release-branch backports (12)

Show 12 backports to release/13.3
# Title Author
#16822 [release/13.3] Drop nuget.config alongside single-file apphost.cs in 'aspire init' @mitchdenny
#16802 [release/13.3] Consolidate Helm chart options on WithHelm(...) @mitchdenny
#16806 [release/13.3] Require --yes with --non-interactive for destroy cmd @aspire-repo-bot
#16809 [release/13.3] Fix Foundry hosted agent endpoint resolution @aspire-repo-bot
#16786 [release/13.3] Fix HostUrl with container tunnel @aspire-repo-bot
#16792 [release/13.3] Reject Yarn Classic for TypeScript AppHosts @aspire-repo-bot
#16776 [release/13.3] Fix Aspire new empty AppHost language picker @sebastienros
#16779 [release/13.3] Fix Python debug working directory in VS Code @aspire-repo-bot
#16763 [release/13.3] Fix notification action closure over scoped services @JamesNK
#16761 [release/13.3] Fix dashboard error in .NET 11 preview 4 @JamesNK
#16680 [release/13.3] Avoid AppHost discovery when config path is valid @adamint
#16757 [release/13.3] [main] Update dependencies from microsoft/dcp @aspire-repo-bot

See all 46 PRs merged in the last 3 days (across all branches).

🚧 Recently Opened PRs

# Title Author Opened Status
#16829 Add --yes validation to UpdateCommand and share validation logic @JamesNK 8h ago open
#16828 Fix microsoft#16725: aspire run honours dev.localhost URLs from aspire.config.json @mitchdenny 9h ago open
#16824 Add repo-internal Aspire.Internal.Analyzers (ASPIREINT001) @mitchdenny 11h ago draft
#16821 [release/13.3] Fix microsoft#15986: emit apphost.run.json from aspire init single-file skeleton @mitchdenny 11h ago open
#16820 feat(cli): channel binding — bake AspireCliChannel into assembly metadata @radical 11h ago draft
#16818 Fix browser token auth over HTTP @adamint 12h ago draft
#16817 feat(cli): route identity primitives — sidecar, resolver, packaging @radical 12h ago draft
#16816 [release/13.3] Backport CLI AppHost debug console output fixes @adamint 12h ago open
#16811 Add AppHost CLI bundle opt-in @DamianEdwards 16h ago draft
#16808 [release/13.3] Honor configured channel in 'aspire update' @aspire-repo-bot 17h ago open
#16803 [release/13.3] Use plain dotnet run for extension Run Without Debugging @aspire-repo-bot 17h ago open
#16796 Preserve console log timestamps and normalize carriage-return output @Copilot 20h ago open
#16793 [release/13.3] Add Ubuntu apt mirror override for CLI E2E images @danegsta 22h ago open
#16787 Prebuild CLI E2E Docker image @sebastienros 23h ago open
#16784 Enable RestoreUseStaticGraphEvaluation for faster restore @crutkas 23h ago open
#16781 Update Yarn usage to Yarn 4 @adamint 24h ago draft
#16778 Add release-driven support.mdx workflow + pr-docs-check fixes @IEvangelist 25h ago open
#16775 Add Aspire startup OTEL profiling harness @davidfowl 25h ago draft
#16760 WithTerminal(): per-replica interactive terminal sessions (Aspire side, draft) @mitchdenny 37h ago draft
#16747 Fix misleading "no longer running" state detail when container fails to start @Copilot 46h ago open
#16746 Remove Aspire docs update section from PR template @IEvangelist 46h ago open
#16736 Add Foundry project role assignments @sebastienros 46h ago open
#16733 Surface silent integration-assembly load failures (microsoft#16729) @IEvangelist 48h ago draft
#16723 Update references to 'Microsoft Learn' to 'aspire.dev' @afscrome 51h ago open
#16719 Document aspire export zip archive contents in monitoring.md @Copilot 52h ago open

Showing 25 of 29 — see all.

🐛 Recently Filed Issues

# Title Author Opened Labels
#16832 WithRemoteImageName and WithRemoteImageTag methods not applied to published manifest 2h ago area-deployment
#16831 YARP Uvicorn service discovery broken 3h ago area-integrations, python
#16827 aspire cli - wait multiple resources 9h ago area-cli
#16826 ASPIRE_EXTRA_ARGS env var 9h ago area-cli
#16825 CI: consolidate 'Verify Docker is running' step into a composite action 10h ago area-engineering-systems
#16823 [Deployment E2E] Nightly test failure - 2026-05-06 11h ago area-testing, deployment-e2e
#16815 Add VSCode commands to open the dashboard 13h ago area-extension
#16813 [Acquisition PR 1] Channel binding (assembly metadata + readers + writers) 15h ago area-acquisition
#16810 [Extension] Panel and CodeLens don't work in workspace mode with multi-root... 17h ago area-extension
#16807 aspire update: friendly staging-unavailable error not surfaced in self-update 17h ago area-cli
#16804 Local hive channel does not surface its packages directory as a NuGet feed 17h ago area-engineering-systems
#16791 aspire init/add/restore can hang silently when stdin is a TTY (macOS) 22h ago area-cli
#16790 WithBuildScript doesn't build workspace dependencies in pnpm/yarn monorepos 22h ago area-app-model
#16789 Typescript Apphost - "arguments" cannot be used in strict mode 22h ago area-polyglot
#16788 Use quotes when referencing a full file path 23h ago area-cli
#16785 [13.3] Changelog feedback 23h ago changelog
#16783 CreateLayout: TarWriter on Unix loses unix file permissions, breaking layout 24h ago area-engineering-systems
#16782 CreateLayout on macOS produces tar archives that .NET TarReader cannot extract 24h ago area-engineering-systems
#16774 'aspire wait (resource) --project x.csproj' reports 'no running apphost' 29h ago area-cli
#16771 TypeScript AppHost lacks a supported 'updateState' callback surface 32h ago area-polyglot
#16770 TypeScript AppHost: expose 'ResourceCommandService.ExecuteCommandAsync' 32h ago area-polyglot
#16769 TypeScript AppHost: 'UpdateCommandStateContext' is missing 'ResourceSnapshot' 32h ago area-polyglot
#16768 [Daily Smoke] CLI smoke test failure - 2026-05-05 33h ago area-cli, failing-test
#16767 [Acquisition PR 5] New commands + cleanup (schema + toolchain prune) 34h ago area-acquisition, area-cli
#16766 [Acquisition PR 4] Lifecycle plumbing (locks + GC) 34h ago area-acquisition, area-cli

Showing 25 of 55 — see all.

👀 PRs Awaiting Review

# Title Author Age
#12076 Add Java debugger support @marshalhayes 202d
#13086 Add Poetry package manager support for Python @Copilot 166d
#13090 Add Schema Registry option to the Kafka hosting package. @TheRubble 166d
#13131 Use DevCert for SQL Server @afscrome 164d
#13200 Add new event for finalizing resource annotations and use to configure... @danegsta 161d
#13774 Concurrency pwd generation issue @icyca 119d
#13930 Refactor serverReadyAction handling @dkattan 111d
#13938 Improve Console Logs download discoverability and reduce destructive... @Copilot 110d
#14001 Add support to enable regional DNL for Azure App Service @ShilpiRach 107d
#14128 Add container registry mirror support for image builds @bbartels 100d
#14254 Fix WithReference to only use IResourceWithEndpoints @Falco20019 96d
#14331 [release/13.1] Make HTTPS developer certificate opt-in for Redis @github-actions 91d
#14378 Add port availability check to aspire doctor @davidfowl 88d
#14668 Entra ID integration API proposal for discussion @jmprieur 70d
#14882 Add FileChooser InputType to the Interaction Service @mcumming 64d
#15070 [Automated] Update dependencies @github-actions 57d
#15215 [Automated] Update ATS API Surface Area @github-actions 54d
#15233 Refactor backmerge-release.yml to allow specifying source and target branches @tmat 53d
#15246 add more copilot instructions for verify @SimonCropp 53d
#15256 Add support for PackageExecutable resources @YandyZaldivar 52d
#15441 [Automated] Update Playground Manifests @github-actions 46d
#15633 Rename "packages" to "integrations" in aspire.config.json with backward compat @Copilot 40d
#15634 Ensure the typescript app host trusts the dev cert @danegsta 40d
#15671 Emit otel from Cosmos Db Preview Emulator @afscrome 39d
#15691 Add Aspire.Hosting.Blazor integration for Blazor WebAssembly apps @javiercn 38d

Showing 25 of 77 — see all.

💬 Activity Highlights

# Title Type Author Comments Updated
#16802 [release/13.3] Consolidate Helm chart options on WithHelm(...) PR @mitchdenny 9 2026-05-06
#16806 [release/13.3] Require --yes with --non-interactive for destroy cmd PR @aspire-repo-bot 7 2026-05-06
#16822 [release/13.3] Drop nuget.config alongside single-file apphost.cs in 'aspire init' PR @mitchdenny 4 2026-05-06
#16818 Fix browser token auth over HTTP PR @adamint 5 2026-05-06
#16793 [release/13.3] Add Ubuntu apt mirror override for CLI E2E images PR @danegsta 3 2026-05-06
#15472 VS Code extension shouldn't offer to open non HTTP resources Issue @afscrome 7 2026-05-06
#16805 Require --yes with --non-interactive for destroy cmd PR @eerhardt 6 2026-05-06
#16820 feat(cli): channel binding — bake AspireCliChannel into assembly metadata PR @radical 3 2026-05-06
#16773 Fix aspire run failing when DisableDashboard is true PR @JamesNK 4 2026-05-06
#16717 Refuse synthesized 'staging' channel on daily CLI builds PR @mitchdenny 3 2026-05-06
#16679 [release/13.3] Show AppHost SDK version in aspire ps PR @aspire-repo-bot 5 2026-05-06
#16817 feat(cli): route identity primitives — sidecar, resolver, packaging PR @radical 4 2026-05-06
#16797 Fix Foundry hosted agent endpoint resolution PR @eerhardt 8 2026-05-06
#16588 Move Ingress and Gateway extensions to Aspire.Hosting namespace PR @mitchdenny 12 2026-05-06
#8813 [tests] Quarantined tests dashboard Issue @radical 3 2026-05-06
#9725 Failing test: Aspire.Hosting.Tests.WithHttpCommandTests.WithHttp... Issue @radical 3 2026-05-06
#9860 Failing test: Aspire.Hosting.Azure.Tests.AzureSignalREmulator... Issue @radical 5 2026-05-06
#12155 Failing test: Aspire.Hosting.Tests.Dcp.DcpExecutorTests.Plain... Issue @radical 4 2026-05-06
#13300 Failing test: Aspire.Hosting.Azure.Tests.AzureDeployerTests... Issue @radical 7 2026-05-06
#13854 Failing test: Aspire.Cli.Tests.Commands.ExecCommandTests.Exec... Issue @radical 3 2026-05-06
#14823 Flaky test: AzureEventHubsExtensionsTests.VerifyAzureEventHub... Issue @davidfowl 3 2026-05-06
#16829 Add --yes validation to UpdateCommand and share validation logic PR @JamesNK 2 2026-05-06
#16828 Fix microsoft#16725: aspire run honours dev.localhost URLs from aspire.config.json PR @mitchdenny 2 2026-05-06
#16821 [release/13.3] Fix microsoft#15986: emit apphost.run.json from aspire init single-file skeleton PR @mitchdenny 2 2026-05-06
#16787 Prebuild CLI E2E Docker image PR @sebastienros 2 2026-05-06

Showing 25 of 273 — see all.

> Generated by Repo Pulse — Daily Report · ● 675.1K ·

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions