Releases: Azure/azure-dev
Releases · Azure/azure-dev
azure-dev-cli_1.25.1
1.25.1 (2026-05-15)
Features Added
- [#8047] Expose ARM deployment IDs via
AZD_DEPLOYMENT_ID_FILEenvironment variable during provision, written in NDJSON format for programmatic consumption. - [#8059] Add actionable suggestions and links to preflight warnings with multi-line formatting for better readability.
- [#8083] Add tenant picker before subscription prompt for multi-tenant users, scoping the subscription list to the selected tenant.
- [#8144] Upgrade 7 CLI list commands (
azd ext source list,azd tool list,azd tool check,azd template list,azd template source list,azd copilot consent list,azd config options) to responsive table output with full, compact, and card layouts based on terminal width.
Bugs Fixed
- [#8114] Fix
azd initCopilot Preview silently falling back to an older model by upgrading the bundled Copilot SDK to v0.3.0 and CLI to v1.0.36-0. - [#8136] Fix
azd provisioncrash when infrastructure layers use Terraform or other non-Bicep providers. - [#8195] Fix parallel
dotnet publishrace condition in Aspire deploys by isolating build artifacts per service.
Other Changes
- [#8148] Update bundled Bicep CLI from v0.42.1 to v0.43.8.
azd-ext-azure-ai-models_0.0.7-preview
0.0.7-preview (Unreleased)
Features
- Added LoRA adapter support to
createcommand with--lora-rank,--lora-alpha,--lora-target-modules, and--lora-dropoutflags for registering LoRA adapters (--weight-type LoRA) showcommand now displays LoRA Configuration section (rank, alpha, target modules, dropout) for LoRA adapterslistcommand now shows Weight Type column to distinguish FullWeight and LoRA models
azd-ext-azure-ai-models_0.0.6-preview
0.0.6-preview (Unreleased)
Features
- Added top-level
azd ai models create,list,show,deletecommands as the preferred surface; thecustomsubgroup is now deprecated - Added
--weight-typeflag tocreatecommand (default:FullWeight) - Added
--source-job-idfilter tolistcommand for querying models by training job lineage - Added
azd ai models updatecommand for updating model description and tags (JSON Merge Patch) showcommand now displays weight type, provisioning state, source lineage, and artifact profile when available--publisherflag is now optional (previously defaulted toFireworks); only sent when explicitly provided
Breaking Changes
- Removed
-eshorthand for--project-endpoint; use--project-endpointinstead. This resolves a collision with the azd global-e/--environmentflag.
Improvements
startPendingUploadrequest now sendspendingUploadType: "TemporaryBlobReference"for explicit upload type declaration- Model response now supports new fields:
weightType,baseModel,source,artifactProfile,provisioningState
Deprecations
azd ai models custom <command>is deprecated; useazd ai models <command>directly instead
azure-dev-cli_1.25.0
1.25.0 (2026-05-08)
Features Added
- [#7450] Add
azd toolcommand group for discovering, installing, checking, and upgrading Azure development tools, including first-run tooling guidance in core workflows. - [#7982] Add
Secretprompt option in core azd and extension gRPC prompts so sensitive values are masked during input. - [#8071]
azd show -o jsonnow includes the deployed ingress URL for each service. The value is emitted under bothingresUrl(preserved for back-compat with existing consumers) andingressUrl(correctly spelled, preferred going forward). Both keys are omitted when no ingress URL is available (e.g. for Container App Jobs). - [#8085] Improve
azd tool checkto detect update availability by querying package managers, extension registries, and the VS Code Marketplace instead of relying only on cached values. - [#7776] Layer dependency analysis for
infra.layersis now safe-by-default: when the static analyzer encounters a syntax pattern it cannot resolve to a literal env-var name (non-literalreadEnvironmentVariable(varName)in.bicepparam, ARM template expressions like[parameters('foo')]in.parameters.json, orparam x = readEnvironmentVariable('Y')defaults inside.bicep), the consuming layer is forced to depend on all earlier layers. This trades parallelism for correctness on under-analyzed inputs. - [#7776] New
infra.layers[].dependsOnfield inazure.yamllets authors declare hook-mediated edges (for example, when a postprovision hook in another layer writes an env var that this layer's bicepparam reads at provision time) that no static analyzer can infer from.bicep/.bicepparam/.parameters.jsoncontents alone. Explicit edges union with detected edges and are validated for unknown layer names, self-references, and cycles. - [#7776] Add
provision.layer.*telemetry attributes (count,max_parallel,safe_fallback_count,explicit_dependson_count) on the ambient command span for multi-layerazd provision/azd upruns so the team can measure adoption and detect when the safe-by-default detector fallback engages on real templates.
Bugs Fixed
- [#7998] Add a safeguard prompt before
azd downdeletes a resource group that was not created by azd;--no-promptnow fails closed for this scenario unless--forceis supplied. - [#8074] Fix
azd uprendering an empty deploy progress summary when provisioning fails before deploy starts. - [#8084] Fix first-run tool checks recursively re-invoking
azd extension listand leaking ANSI output into JSON command output. - [#8086] Fix
azd toolCopilot metadata to use the current VS Code extension and up-to-date Copilot CLI install documentation links. - [#7776] Fix
concurrent map writespanics when runningazd uporazd deployagainst multi-service projects:*environment.Environmentnow serializes alldotenvmap access with an internalsync.RWMutex, the environment manager serializesSave/Reloadcalls, the singletonkubectl.Cliandkustomize.Cliare concurrency-safe, and AKS service publish/deploy updates toSERVICE_<name>_IMAGE_NAME/ENDPOINT_URLare wrapped in a package-level mutex (mirroring the Container Apps pattern). - [#7776] Restore intra-phase progress detail (e.g.
"Pushing image","Updating container app") in the per-service progress tracker duringazd deployandazd up. The graph-driven engine previously dropped sub-phaseServiceProgress.Messageupdates, leaving the tracker's "Detail" column blank between phase transitions. - [#7776] Make
x-ms-client-request-idunique per HTTP request (previously derived from the shared OpenTelemetry trace id, which duplicated the header across every call in a singleazdinvocation). The Azure ARM common-types spec requires this header to be unique per request so Azure services can use it as a deduplication / idempotency / log-correlation key for individual calls — a shared value broke that contract and could cause collisions in parallel deploy / provision scheduling. Microsoft Graph'sclient-request-idheader now uses the same per-request UUID for the same reason. - [#7776] Fix cross-service image contamination when publishing multiple Container Apps in parallel via ACR remote build (
docker.remoteBuild: true). ACR'sGetBuildSourceUploadURLderives the relative blob path it hands back (tasks-source/<yyyymmdd>/<correlationId>.tar.gz) from the caller'sx-ms-correlation-request-idheader, and azd was sending the same correlation id — the root OpenTelemetry trace id shared across every request in a command — on every parallel upload. Each upload overwrote the previous service's source tarball before either build consumed it, so every Container App ended up running the last-uploaded service's image content under its own repository name. ACR source uploads now overridex-ms-correlation-request-idwith a freshly generated UUID per HTTP request so each parallel upload lands in a distinct blob.
Other Changes
- [#8050] Add per-phase timing breakdown to the
azd upsuccess output and sanitize deploy progress service names to prevent terminal escape-sequence injection in rendered output. - [#8087] Improve error telemetry classification by including wrapped error-chain type metadata and using a shared classifier path for diagnostics.
- [#8091] Improve
azd ext listreadability with responsive table/card layouts and clearer status indicators across terminal widths. - [#7776] Security: environment
.envfiles are now persisted with mode0600(owner read/write only) on Unix-like systems. Previously they inherited the process umask (typically0644). The change tightens default permissions for files that may contain subscription IDs and values written viaazd env set. - [#7776]
azd upnow emits a single"Provisioning and deploying (azd up)"title and consolidated final message instead of the legacy"Packaging services (azd package)"/"Provisioning Azure resources (azd provision)"/"Deploying services (azd deploy)"banners and the"Your up workflow to provision and deploy to Azure completed in …"footer. CI/automation that grep-matches the legacy strings on stdout will need to update its expected output. - [#7776]
azd uphonorsAZD_DEPLOY_CONCURRENCYas a fallback whenAZD_UP_CONCURRENCYis unset, so existing deploy-tuning configurations carry over to the unified up workflow. - [#7776]
FailFastsemantics in the parallel scheduler: when a step fails, the scheduler cancels the run context to interrupt in-flight work, but steps that don't honor context cancellation (e.g., long-running ARM operations) will run to completion before the run returns. This is a behavior change versus the previous strictly-sequentialazd up, which never started a later step after a prior failure.
azd-ext-azure-ai-agents_0.1.31-preview
azd-ext-azure-ai-agents_0.1.30-preview
0.1.30-preview (2026-05-06)
- [#8028] Add
--agent-endpointflag toazd ai agent invoketo invoke a deployed agent from any directory without needing an azd project or environment. Thanks @antriksh30 for the contribution! - [#7999] Add A2A endpoint protocol and agent card metadata support for agent deployments. Thanks @adamra-msft for the contribution!
- [#8027] Add playground URL and per-protocol endpoint URLs to
azd ai agent showoutput. Thanks @Nathandrake229 for the contribution! - [#8034] Move session and conversation ID tracking to the global azd user config, enabling session state to persist across directories and project relocations.
- [#7947] Fix
flag redefinedpanics onazd ai agent show,azd ai agent files list, andazd ai agent files statcaused by duplicate--output/-oflag registration. - [#7968] Fix agent templates URL used by
azd ai agent initto use the correctaka.msredirect after release.
Breaking Changes
- [#8040] Remove prompt agent and
azureml://registry support; prompt agent configurations inazure.yamlare no longer recognized.
azure-dev-cli_1.24.3
1.24.3 (2026-05-01)
Features Added
- [#7795] Add interactive cancel prompt when Ctrl+C is pressed during
azd provision/azd upwith Bicep; choose to leave the Azure deployment running or cancel it via the ARM Cancel API with status feedback; non-interactive mode defaults to leaving the deployment running. - [#7852] Improve
azd extension upgrade --allwith continue-on-error batch orchestration: per-extension status display (Upgraded/Skipped/Promoted/Failed) with before→after version, a batch summary line, and--output jsonfor machine-readable CI output. - [#7826] Add
RegisterFlagOptionsto the extension SDK for declaring per-subcommand allowed values, defaults, and validation for inherited persistent flags; drives help text, shell completion, and parse-time validation automatically. - [#7837] Add extension registry schema versioning: extension registries now carry a
schemaVersionfield and azd shows a clear upgrade-required message when an incompatible registry schema version is encountered.
Bugs Fixed
- [#7705] Fix
azd pipeline configalways using the default OIDC subject format when creating GitHub federated credentials, causingAADSTS700213mismatches for organizations with customized OIDC subject claims; azd now queries the GitHub OIDC customization API and constructs the correct subject string. - [#7773] Fix
azd deploypolling indefinitely when deploying to a stopped Linux web app; after 3 consecutive polls with zero running instances, the deployment is treated as complete. - [#7922] Fix GitHub URL resolution surfacing a misleading "could not find a valid branch" error for SAML SSO blocks, rate limiting, private repos, and server errors; azd now identifies the actual failure mode and shows actionable suggestions with relevant documentation links.
- [#7948] Fix
-ojson/-otable(short-oflag with attached value) being rejected with a confusing error; fix pre-cobra parse errors showing nothing on stderr. - [#7997] Fix
buildArgsandbuildEnvinazure.yamlbeing silently dropped whendocker.remoteBuild: true; build arguments are now forwarded to the ACR remote build task. - [#8004] Fix
azd auth status(and provisioning commands) reporting "not logged in" whenAZD_AUTH_ENDPOINT/AZD_AUTH_KEYexternal auth is active butazd auth logoutwas previously run.
Other Changes
- [#7853] Improve
azd extension upgradeedge case handling: delisted extensions report "no longer available" and continue the batch; network failures show actionable retry guidance; extension config writes are now atomic to prevent corruption if interrupted. - [#7919] Improve extension SDK gRPC error transport: host-returned errors now carry structured suggestion and link data via
ActionableErrorDetail, so extensions can surface the full error-suggestion UX to users. - [#7946] Update bundled GitHub CLI to v2.92.0.
azd-ext-azure-ai-agents_0.1.29-preview
0.1.29-preview (2026-04-30)
- [#7984] Fix
postdeployHandlerto skip post-deploy processing when the project has no hosted agent services, preventing errors on non-agent projects. - [#7974] Update post-deploy output to display the agent invocation endpoint URL.
- [#7966] Update the
aka.msredirect URL used to fetch the agent templates list. - [#7921] Update
azd ai agent initto load agent templates from the unified awesome-azdtemplates.jsonmanifest, filtered by theextension.ai.agenttype discriminator.
azd-ext-azure-ai-agents_0.1.28-preview
0.1.28-preview (2026-04-28)
- [#7930] Fetch the hosted-agent supported regions list at runtime from a remote JSON manifest with an embedded fallback, replacing the hardcoded list; region data can now be updated without cutting an extension release.
azure-dev-cli_1.24.2
1.24.2 (2026-04-24)
Features Added
- [#7482] Add custom provisioning provider support to the extension framework; extension authors can register alternative infrastructure providers via
WithProvisioningProvider("name", factory)on theExtensionHost, and users setinfra: { provider: name }inazure.yamlto use them. - [#7841] Improve
azd extension upgradewith intelligent registry source resolution: extensions upgrade from their installed source by default, are auto-promoted from a dev registry to the main registry when a newer version is available there, and--allor--no-promptbatch upgrades proceed non-interactively without prompts. - [#7825] Standardize
--no-promptbehavior to consistently fail with a structured error when required input (subscription, location, or resource group) cannot be resolved automatically, enabling reliable non-interactive use in CI pipelines and AI agents.
Bugs Fixed
- [#7797] Fix error handling for
AADSTS530084token protection errors to display clear guidance and documentation links instead of an opaque authentication failure message. - [#7819] Fix local Bicep preflight reserved-name check to skip ARM-allow-listed resource types (e.g., Private Link DNS zones, resource groups, role assignments) that accept reserved names server-side, and fix compound child resource names generating duplicate warnings.
- [#7723] Fix service names containing spaces in
azure.yamlgenerating invalid environment variable names (e.g.,SERVICE_API AND FRONTEND_IMAGE_NAME→SERVICE_API_AND_FRONTEND_IMAGE_NAME). Thanks @spboyer for the contribution!
Other Changes
- [#7767] Update the "update available" banner to a shorter, more actionable format that includes a link to release notes (stable channel) or recent changes (daily channel).