Design changes: 8a, 8b, 14 — see agreed-design-v3.md §4 Required changes.
Tracker: #16737
"Change N" numbers below refer to entries in the design doc's §4 table, not GitHub issues.
Scope
Change 8a — stop writing global identity-channel
get-aspire-cli.{sh,ps1}#save_global_settings no longer writes ~/.aspire/aspire.config.json#channel.
UpdateCommand --self no longer writes it.
The legacy globalsettings.json migration in Program.cs:156-182 drops channel on import.
Per delivery-plan §1 item 4, schema field stays one release for compat.
Change 8b — reseed project-channel default
Scaffolding (ScaffoldingService.cs:64-66, :199), starter template factories (CliTemplateFactory.{Go,Python,TypeScript}StarterTemplate.cs), and GuestAppHostProject use baked AspireCliChannel from PR-1 ([v3.1 PR-1] Bake AspireCliChannel into binary + ChannelReader + build-side verification #16738 ) as the default seed instead of the global config or a free-form prompt.
The 7 project-channel readers (AddCommand.cs:110-111, PrebuiltAppHostServer.cs:343-344, DotNetBasedAppHostServerProject.cs:327-328, etc.) do not move .
Change 14 — cleanup
Acceptance
~/.aspire/aspire.config.json#channel is no longer written by any code path.
A fresh project scaffolded by a daily CLI defaults to the daily channel without prompting.
aspire add continues to honor a project's aspire.config.json#channel if explicitly set.
No [ActiveIssue] gates remain in Aspire.Acquisition.Tests for v3.1 stub-replaced tests.
Risk
Low — but call out the scaffolding UX change in release notes. The prior prompt was already fragile.
Open decisions blocking
Split fallback
If review burden demands: PR-7a (Changes 8a + 8b deprecation/reseed) → PR-7b (Change 14 stub cleanup).
Dependencies
Design changes: 8a, 8b, 14 — see
agreed-design-v3.md§4 Required changes.Tracker: #16737
Scope
Change 8a — stop writing global identity-channel
get-aspire-cli.{sh,ps1}#save_global_settingsno longer writes~/.aspire/aspire.config.json#channel.UpdateCommand --selfno longer writes it.globalsettings.jsonmigration inProgram.cs:156-182dropschannelon import.Change 8b — reseed project-channel default
ScaffoldingService.cs:64-66, :199), starter template factories (CliTemplateFactory.{Go,Python,TypeScript}StarterTemplate.cs), andGuestAppHostProjectuse bakedAspireCliChannelfrom PR-1 ([v3.1 PR-1] Bake AspireCliChannel into binary + ChannelReader + build-side verification #16738) as the default seed instead of the global config or a free-form prompt.AddCommand.cs:110-111,PrebuiltAppHostServer.cs:343-344,DotNetBasedAppHostServerProject.cs:327-328, etc.) do not move.Change 14 — cleanup
src/Aspire.Cli/Acquisition/*.csstubs (IdentityChannelReader,IdentityManifest.Channel, etc.).[ActiveIssue]gates as the corresponding tests inAspire.Acquisition.Tests(Add comprehensive test coverage for CLI acquisition scripts #15995, merged) are rewritten.Acceptance
~/.aspire/aspire.config.json#channelis no longer written by any code path.aspire addcontinues to honor a project'saspire.config.json#channelif explicitly set.[ActiveIssue]gates remain inAspire.Acquisition.Testsfor v3.1 stub-replaced tests.Risk
Low — but call out the scaffolding UX change in release notes. The prior prompt was already fragile.
Open decisions blocking
Split fallback
If review burden demands: PR-7a (Changes 8a + 8b deprecation/reseed) → PR-7b (Change 14 stub cleanup).
Dependencies
--selfno longer writes global