Conversation
Co-authored-by: JeffreyCA <9157833+JeffreyCA@users.noreply.github.com>
Co-authored-by: JeffreyCA <9157833+JeffreyCA@users.noreply.github.com>
Co-authored-by: JeffreyCA <9157833+JeffreyCA@users.noreply.github.com>
azd ext list
There was a problem hiding this comment.
Pull request overview
This PR improves the user experience of azd ext list by clarifying version information and adding visual indicators for available updates, addressing issue #6582.
Changes:
- Renamed "Version" column to "Latest Version" for clarity on what version is shown
- Added
*indicator next to installed versions when an update is available - Added
UpdateAvailablefield to JSON output for programmatic detection of updates - Fixed incorrect documentation paths in AGENTS.md and added CI build note
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| cli/azd/cmd/extension.go | Implements version comparison logic, adds UpdateAvailable field to output, renames column header, and adds asterisk indicator for updates |
| cli/azd/AGENTS.md | Corrects documentation paths to reflect current structure and adds helpful note about pre-building azd in CI environments |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
@copilot apply changes based on the comments in this thread |
Co-authored-by: JeffreyCA <9157833+JeffreyCA@users.noreply.github.com>
Co-authored-by: JeffreyCA <9157833+JeffreyCA@users.noreply.github.com>
Co-authored-by: JeffreyCA <9157833+JeffreyCA@users.noreply.github.com>
Co-authored-by: JeffreyCA <9157833+JeffreyCA@users.noreply.github.com>
|
@copilot please revert changes under cli/azd/extensions/ |
Reverted the changes under cli/azd/extensions by restoring the extension dependency files to commit 81120a3. Commit: 0b4107e. Screenshot: https://github.com/user-attachments/assets/5f8a4e53-14d3-4fde-894f-8199533e69c4 Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
0b4107e to
ce6d409
Compare
azd ext list|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azp run azure-dev - cli |
|
Azure Pipelines successfully started running 1 pipeline(s). |
Azure Dev CLI Install InstructionsInstall scriptsMacOS/Linux
bash: pwsh: WindowsPowerShell install MSI install Standalone Binary
MSI
Documentationlearn.microsoft.com documentationtitle: Azure Developer CLI reference
|
wbreza
left a comment
There was a problem hiding this comment.
Looks good - just one question.
* Clarify extension list latest version column * Add update availability JSON property and show asterisk besides outdated extensions * Add upgrade hints to extension list output * Fix cooldown logic and shallow copy * Update AGENTS.md --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: JeffreyCA <9157833+JeffreyCA@users.noreply.github.com>
* Clarify extension list latest version column * Add update availability JSON property and show asterisk besides outdated extensions * Add upgrade hints to extension list output * Fix cooldown logic and shallow copy * Update AGENTS.md --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: JeffreyCA <9157833+JeffreyCA@users.noreply.github.com>
* fix security issue with playwright/test 1.49.1 (#6592) * Checkpoint from VS Code for cloud agent session * Update parameter popup border color to cyan in concurX extension Co-authored-by: vhvb1989 <24213737+vhvb1989@users.noreply.github.com> * Complete concurX parameter popup color update Co-authored-by: vhvb1989 <24213737+vhvb1989@users.noreply.github.com> * cspell * Remove unintended changes to azure.ai.finetune extension Co-authored-by: vhvb1989 <24213737+vhvb1989@users.noreply.github.com> * azure.ai.agents - Set `CGO_ENABLED=0` for x64 Linux build (#6611) * Set CGO_ENABLED=0 for x64 Linux build * Bump version * Bump version to 0.1.8-preview (#6613) * Extension update fixes/enhancements (#6604) * Clarify extension list latest version column * Add update availability JSON property and show asterisk besides outdated extensions * Add upgrade hints to extension list output * Fix cooldown logic and shallow copy * Update AGENTS.md --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: JeffreyCA <9157833+JeffreyCA@users.noreply.github.com> * Fix bicep CLI uninitialized path in container app deployments (#6610) * fix security issue with playwright/test 1.49.1 (#6592) * Checkpoint from VS Code for cloud agent session * Fix bicep CLI initialization by restoring EnsureInstalled calls - Restore public EnsureInstalled() method in bicep.go - Remove automatic installation from Build() and BuildBicepParam() - Add explicit EnsureInstalled() calls in service_target_containerapp.go and bicep_provider.go - Update all test files to use public EnsureInstalled() method - Reverts incorrect changes from previous checkpoint commit This fix follows the same pattern as PR #6593 for GitHub CLI. Co-authored-by: vhvb1989 <24213737+vhvb1989@users.noreply.github.com> * Checkpoint from VS Code for cloud agent session --------- Co-authored-by: Victor Vazquez <vhvb1989@gmail.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: vhvb1989 <24213737+vhvb1989@users.noreply.github.com> * Add azure.ai.agent 0.1.8-preview to registry (#6615) * Release 1.23.2 (#6616) * Initial plan * Release 1.23.2 Co-authored-by: vhvb1989 <24213737+vhvb1989@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: vhvb1989 <24213737+vhvb1989@users.noreply.github.com> * Increment CLI version after release (#6617) * Migrate to use new shared eng package (#6600) * Fix VS Code extension commands failing with undefined fsPath in virtual file systems (#6601) * Initial plan * Add defensive checks for undefined fsPath in VS Code extension commands This fixes the issue where provision and other commands would fail with "The 'path' argument must be of type string. Received undefined" when used with virtual file systems or certain VS Code contexts. Changes: - Added validation for selectedFile.fsPath before calling getWorkingFolder - Provides clear error messages that include URI scheme and selectedItem type - Suppresses automatic issue reporting since this is a user error - Applied fix to all affected commands: provision, deploy, up, down, restore, monitor, packageCli, and pipelineConfig - Added unit tests for the new validation logic Co-authored-by: vhvb1989 <24213737+vhvb1989@users.noreply.github.com> * Simplify provision.test.ts based on code review feedback Removed unused stub functions that weren't actually being used. Simplified tests to focus on the core validation logic. Co-authored-by: vhvb1989 <24213737+vhvb1989@users.noreply.github.com> * Refactor validation logic into shared utility function Based on code review feedback: - Extracted duplicated validation logic to validateFileSystemUri() in cmdUtil.ts - Updated all 8 command files to use the shared function - Simplified test assertions - Improved code maintainability by reducing duplication Co-authored-by: vhvb1989 <24213737+vhvb1989@users.noreply.github.com> * Fix validation to use strict equality check for undefined Changed condition from `!selectedFile.fsPath` to `selectedFile.fsPath === undefined` to avoid incorrectly rejecting empty string paths which are valid for root directories. Co-authored-by: vhvb1989 <24213737+vhvb1989@users.noreply.github.com> * Fix l10n.t() to use single string literal instead of concatenation The first argument to vscode.l10n.t() should be a single string literal for proper localization tooling compatibility. Removed string concatenation and used a single multi-line string literal instead. Co-authored-by: vhvb1989 <24213737+vhvb1989@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: vhvb1989 <24213737+vhvb1989@users.noreply.github.com> * Add missing keys to `azd config options` (#6619) * Add missing config options --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: JeffreyCA <9157833+JeffreyCA@users.noreply.github.com> * Raising for missing method type (#6628) * adding project-endpoint to init command * adding 12 preview release * fixig default customization method & adding training type * correct version * RFT grader fixes (#6629) * adding project-endpoint to init command * adding 12 preview release * fixig default customization method & adding training type * correct version * adding grader to cloning code * adding missing grader functionality * merging master * including .14-preview to main registry (#6630) * Add a naive attempt at downloading manifest (#6631) * Add a naive attempt at downloading * Address PR comments Signed-off-by: trangevi <trangevi@microsoft.com> * Update download directory as well Signed-off-by: trangevi <trangevi@microsoft.com> * Use net/url parsing in parseGitHubUrlNaive to handle fragments and query params (#6634) * Initial plan * Use net/url parsing to handle query params and fragments in parseGitHubUrlNaive Co-authored-by: trangevi <26490000+trangevi@users.noreply.github.com> * Final review completed Co-authored-by: trangevi <26490000+trangevi@users.noreply.github.com> * Revert unintended changes to other extensions Co-authored-by: trangevi <26490000+trangevi@users.noreply.github.com> * Address PR comments Signed-off-by: trangevi <trangevi@microsoft.com> * Update download directory as well Signed-off-by: trangevi <trangevi@microsoft.com> * Initial plan * Rebased on latest base branch --------- Signed-off-by: trangevi <trangevi@microsoft.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: trangevi <26490000+trangevi@users.noreply.github.com> Co-authored-by: trangevi <trangevi@microsoft.com> --------- Signed-off-by: trangevi <trangevi@microsoft.com> Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: trangevi <26490000+trangevi@users.noreply.github.com> * Dev container feature - allow installing extensions (#6460) * Add extensions option to the azd devcontainer feature to allow specifying extensions to install * Review updates * Revert whitespace changes * Address feedback on shell script. Add multiple extensions to the test config to validate * Enable full figspec generation for extensions with metadata capability (#6620) * Fix indentation * Add metadata capability checks and improve error handling * Support dynamic suggestions for `azd config` commands * Exclude global persistent flags --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: JeffreyCA <9157833+JeffreyCA@users.noreply.github.com> * Add concurX binary to gitignore Co-authored-by: vhvb1989 <24213737+vhvb1989@users.noreply.github.com> * lint * Update TestAskerConsoleExternalPrompt to use new external prompt mechanism Co-authored-by: vhvb1989 <24213737+vhvb1989@users.noreply.github.com> --------- Signed-off-by: trangevi <trangevi@microsoft.com> Co-authored-by: Victor Vazquez <vhvb1989@gmail.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: vhvb1989 <24213737+vhvb1989@users.noreply.github.com> Co-authored-by: JeffreyCA <jeffreychen@microsoft.com> Co-authored-by: JeffreyCA <9157833+JeffreyCA@users.noreply.github.com> Co-authored-by: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Co-authored-by: Brandon Waterloo [MSFT] <36966225+bwateratmsft@users.noreply.github.com> Co-authored-by: Amit Chauhan <70937115+achauhan-scc@users.noreply.github.com> Co-authored-by: Travis Angevine <trangevi@microsoft.com> Co-authored-by: trangevi <26490000+trangevi@users.noreply.github.com> Co-authored-by: Stuart Leeks <stuartle@microsoft.com>
Fixes #6608
Fixes #6582
This PR fixes some bugs in the extension update warning feature and improves the
azd ext listoutput.Bug Fixes
1. Extension Data Corruption After Update Warning
Problem: After displaying an update notification, the next invocation of the extension command would fail - azd would behave as if the extension wasn't installed.
Root Cause: The update check goroutine created a shallow copy of the extension with only a subset of fields (
Id,Namespace,DisplayName,Description,Version,Source,LastUpdateWarning). WhenUpdateInstalled()saved this partial extension toconfig.json, critical fields likeCapabilitiesandPathwere lost. On the next CLI invocation, the extension couldn't be bound as a command becauseHasCapability(CustomCommandCapability)returned false.Fix: The goroutine now only copies the minimal fields needed for the update check. When saving the cooldown timestamp, it re-fetches the full extension from config before updating, ensuring no data loss.
2. Cooldown Recorded Even When Warning Not Displayed
Problem: If the extension command completed before the async update check finished, the warning wouldn't be shown (by design - zero latency impact), but the 24-hour cooldown was still recorded. This meant users might never see the update notification.
Root Cause: The cooldown timestamp was saved inside the async goroutine, before sending the result to the channel. If the main thread's non-blocking read hit the
defaultcase, the warning wasn't displayed but the cooldown was already persisted.Fix: Moved cooldown recording to the defer block that displays the warning. The timestamp is now only saved when the warning is actually shown to the user.
Improvements
Enhanced
azd ext listOutput*marker next to outdated installed versionsupdateAvailablebool JSON property in--output json