Polish the tool first-run experience and allow empty multi-select submissions#8487
Conversation
…ion in multi-select
There was a problem hiding this comment.
Pull request overview
This PR improves the azd tool first-run UX by clarifying the initial messaging, adding explicit feedback when there’s nothing to install, and enabling the recommended-tools multi-select prompt to be submitted with zero selections (opt-in) so the existing “no tools selected” path is reachable.
Changes:
- Add
AllowEmptySelectionto theMultiSelectUX component and gate the “at least one option” validation on it. - Update the tool first-run middleware to allow empty submissions for the recommended-tools prompt and to print a “you’re all set” message when all recommended tools are already installed.
- Bump CLI version to
1.25.4and record the fix in the changelog.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| cli/version.txt | Updates the CLI version to 1.25.4. |
| cli/azd/pkg/ux/multi_select.go | Introduces opt-in empty-selection submission for MultiSelect via AllowEmptySelection. |
| cli/azd/pkg/azdext/version.go | Syncs azdext SDK Version with cli/version.txt. |
| cli/azd/cmd/middleware/tool_first_run.go | Improves first-run banner wording, allows deselect-all in the recommended-tools prompt, and adds a message when nothing is missing. |
| cli/azd/CHANGELOG.md | Adds a 1.25.4 entry documenting the first-run prompt fix and wording updates. |
|
/check-enforcer override |
Azure Dev CLI Install InstructionsInstall scriptsMacOS/Linux
bash: pwsh: WindowsPowerShell install MSI install Standalone Binary
MSI
Documentationlearn.microsoft.com documentationtitle: Azure Developer CLI reference
|
Fixes #8491
This PR improves the clarity of the tool first-run experience and makes the underlying multi-select prompt more flexible by allowing users to proceed without selecting any options.
Motivation
Two rough edges in the tool first-run flow prompted these changes:
What changed
The
MultiSelectUX component now supports an opt-inAllowEmptySelectionoption. When enabled, the prompt permits submitting with zero selections instead of forcing at least one. The option defaults tofalse, so all existing callers retain their current behavior.The tool first-run middleware adopts this option for the "Select recommended tools to install" prompt, so users can now intentionally proceed without installing anything and land on the existing "No tools selected" message that points them to
azd tool install.The middleware also now gives explicit feedback when there is nothing to install: if all recommended tools are already present, it prints a grey "All recommended tools are installed. You're all set!" line rather than continuing silently.
Wording changes
Follow-up
Wiring
AllowEmptySelectionthrough the higher-level prompt layers (the shared prompt helpers and the gRPC prompt service used by extensions) is left for a follow-up change.