[release/13.5] Move progress prompt title to options - #19424
[release/13.5] Move progress prompt title to options#19424Jose Perez Rodriguez (joperezr) merged 7 commits into
Conversation
The progress dialog title now reaches the interaction through two hand-written mappings that nothing asserted: CommandProgressOptions.Title -> ProgressInteractionOptions.Title in ResourceCommandService, and InteractionProgressOptions.Title -> ProgressInteractionOptions.Title in the ATS export. Either could be dropped without failing a test, silently losing the title for command progress dialogs and for every polyglot AppHost. Both tests were verified to fail when the corresponding mapping is removed. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
|
🚀 Dogfood this PR with:
curl -fsSL https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 19424Or
iex "& { $(irm https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 19424" |
There was a problem hiding this comment.
Pull request overview
Note
Copilot could not run the full agentic suite for this review because it was automatically requested on a bot-authored pull request. Request a review from Copilot under Reviewers to retry with the full agentic suite. Improved support for bot-authored pull requests is coming soon.
Moves the progress dialog title from a standalone promptProgress/PromptProgressAsync parameter into the progress options payload so polyglot SDKs share a single options shape and title is mapped consistently.
Changes:
- Updates
PromptProgressAsync(C#) and polyglotpromptProgressbindings to remove thetitleparameter and useOptions.Titleinstead. - Propagates the new
Titlefield through ATS DTOs/codegen snapshots and sample apphosts (TS/Python/Java/Go). - Adds/updates tests to validate title mapping and interaction metadata.
Reviewed changes
Copilot reviewed 21 out of 21 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/Shared/TestInteractionService.cs | Adjusts test stub signature and interaction creation to the new options-based title. |
| tests/PolyglotAppHosts/Aspire.Hosting/TypeScript/apphost.mts | Updates TS apphost usage to pass title via options object. |
| tests/PolyglotAppHosts/Aspire.Hosting/Python/apphost.py | Updates Python apphost usage to pass title via options dict. |
| tests/PolyglotAppHosts/Aspire.Hosting/Java/AppHost.java | Updates Java apphost usage to set title on InteractionProgressOptions. |
| tests/PolyglotAppHosts/Aspire.Hosting/Go/apphost.go | Updates Go apphost usage to set title within InteractionProgressOptions. |
| tests/Aspire.Hosting.Tests/ResourceCommandServiceTests.cs | Extends test to assert interaction title for command progress. |
| tests/Aspire.Hosting.Tests/InteractionServiceTests.cs | Updates tests for new signature and adds assertions around title/message. |
| tests/Aspire.Hosting.Tests/AtsInteractionExportsTests.cs | Adds tests verifying title mapping into ProgressInteractionOptions. |
| tests/Aspire.Hosting.CodeGeneration..Tests/Snapshots/ | Updates generated SDK snapshots to reflect new API surface. |
| src/Aspire.Hosting/api/Aspire.Hosting.tscompat.suppression.txt | Suppresses compatibility check for experimental parameter removal. |
| src/Aspire.Hosting/InteractionService.cs | Updates implementation to read title from options.Title. |
| src/Aspire.Hosting/IInteractionService.cs | Updates interface signature and adds Title to ProgressInteractionOptions. |
| src/Aspire.Hosting/CompatibilitySuppressions.xml | Updates suppression target signature for PromptProgressAsync. |
| src/Aspire.Hosting/Ats/InteractionExports.cs | Removes title argument from export and maps Title through DTO->options. |
| src/Aspire.Hosting/ApplicationModel/ResourceCommandService.cs | Maps command progress title into ProgressInteractionOptions.Title. |
| playground/TypeScriptAppHost/apphost.mts | Updates playground TS apphost usage to new options shape. |
| playground/Stress/Stress.AppHost/InteractionCommands.cs | Updates stress apphost usage to set Title via options. |
💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.
Tests selector (audit mode)The full test matrix and all jobs still run in audit mode. The tests and jobs below are what selective CI would run under enforcement. 48 / 100 test projects · 4 jobs, from 21 changed files. Selected test projects (48 / 100)
Selected jobs (4)
How these were chosen — grouped by what changed
🔧 show 34
🧪 🧪 📦 affected project 📄 📄 🧪 🧪 🧪 🧪 🧪 🧪 🧪 Job reasons
Selection computed for commit |
Jose Perez Rodriguez (joperezr)
left a comment
There was a problem hiding this comment.
Low risk and important to get before shipping the API. Approved.
e076d8e
into
release/13.5
|
✅ No documentation update needed. Step 5 branch taken: This PR is a backport (of #19382 to
No docs PR drafted per Step 5's exclusion branch (checked before the recommendation/allowlist logic). |
Backport of #19382 to release/13.5
/cc James Newton-King (@JamesNK)
Customer Impact
This needs to land in 13.5 because the progress prompt API is new. Shipping 13.5 with the previous API shape and correcting it later would require breaking changes for customers. This change keeps the C# and generated polyglot APIs consistent before they ship.
Testing
Validated in #19382 with an Aspire.Hosting build, all seven
PromptProgressAsync_*tests, two-pass code-generation snapshot tests for TypeScript, Python, Java, Go, and Rust, TypeScript API compatibility validation, compilation of the TypeScript, Go, and Python validation AppHosts, Java snapshot generation, and a Stress AppHost build.Risk
Low. The change updates the C# API and generated polyglot API shape, but those APIs are new and unshipped, and the affected builds, tests, and generated snapshots were validated in the source PR.
Regression?
No. This is a pre-release API correction needed before 13.5 ships.