Skip to content

[AppService] az appservice plan create: Fix Windows defaults for App Service managed instance plans - #34110

Open
Andrew Westgarth (apwestgarth) wants to merge 3 commits into
Azure:devfrom
apwestgarth:linuxdefault-managedinstancefix
Open

Andrew Westgarth (apwestgarth) wants to merge 3 commits into
Azure:devfrom
apwestgarth:linuxdefault-managedinstancefix

Conversation

@apwestgarth

@apwestgarth Andrew Westgarth (apwestgarth) commented Sep 21, 2026 •

Copy link
Copy Markdown
Member

🤖 PR Validation — ️✔️ All clear

Breaking Changes Tests
️✔️ None ️✔️ 130/130

Default App Service plans to Windows when --is-managed-instance is specified without --is-linux.

Reject unsupported argument combinations:

  • --is-managed-instance with --is-linux true
  • --hyper-v with --is-managed-instance

Update parameter help and add unit tests covering the managed instance Windows default and mutual-exclusion validation.

Related command

az appservice plan create

Description

Recent change in July changed default OS on App Service Plan creation from Windows to Linux. Original change handled situations where user specified --hyper-v to signify the plan was for Windows Containers and therefore must default to Windows. However this change did not handle Managed Instance on Azure App Service (--is-managed-instance) which is only available on Windows OS. Equally added change to ensure that neither --hyper-v or --is-managed-instance can be accepted when --is-linux but also added check to ensure the --hyper-v cannot be set on --is-managed-instance as Windows Containers are not supported in Managed Instance on Azure App Service

Testing Guide

App Service Plan for Windows Containers should default to Windows(--is-linux false)
az appservice plan create -n -l ---sku P1v4 --hyper-v

Managed Instance on Azure App Service Plan should default to Windows (--is-linux false)
az appservice plan create -n -l --sku P1v4 --is-managed-instance

Managed Instance on Azure App Service does not support Windows Containers so the following command should error
az appservice plan create -n -l --sku P1v4 --is-managed-instance --hyper-v

Error Message: --hyper-v and --is-managed-instance cannot be used together because Windows Containers are not supported in Managed Instance on Azure App Service.

Windows Containers cannot be hosted in a Linux App Service plan so the following command should error
az appservice plan create -n -l --sku P1v4 --hyper-v --is-linux true

Error Message: --hyper-v creates a Windows plan and cannot be combined with --is-linux true. Omit --is-linux or use "--is-linux false".

Managed Instance does not support Linux so the following command should error
az appservice plan create -n -l --sku P1v4 --is-managed-instance --is-linux true

Error Message: --is-managed-instance creates a Windows plan and cannot be combined with --is-linux true. Omit --is-linux or use "--is-linux false".

History Notes


This checklist is used to make sure that common guidelines for a pull request are followed.

Default App Service plans to Windows when --is-managed-instance is
specified without --is-linux.

Reject unsupported argument combinations:
- --is-managed-instance with --is-linux true
- --hyper-v with --is-managed-instance

Update parameter help and add unit tests covering the managed instance
Windows default and mutual-exclusion validation.
Copilot AI lite review requested due to automatic review settings September 21, 2026 18:40
@azure-client-tools-bot-prd

Copy link
Copy Markdown

Hi Andrew Westgarth (@apwestgarth),
Since the current milestone time is less than 7 days, this pr will be reviewed in the next milestone.

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
There may be pipelines that require an authorized user to comment /azp run to run.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

The registered validator still overrides the managed-instance default and emits the existing conflict message; current tests bypass that command path.

Get a fresh assessment by requesting another Copilot review.

Review effort: Lite
Findings: 1 High severity

Open (1)
What changed in this PR

Updates az appservice plan create to support Windows defaults for managed-instance plans and reject unsupported option combinations.

Changes:

  • Adds managed-instance defaulting and validation.
  • Updates parameter help text.
  • Adds focused unit tests.
File Summary
src/​azure-cli/​azure/​cli/​command_modules/​appservice/​tests/​latest/​test_webapp_commands_thru_mock.py Adds tests for defaults and validation.
src/​azure-cli/​azure/​cli/​command_modules/​appservice/​custom.py Adds managed-instance handling and conflict checks.
src/​azure-cli/​azure/​cli/​command_modules/​appservice/​_params.py Updates parameter guidance.

💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread src/azure-cli/azure/cli/command_modules/appservice/custom.py
@a0x1ab

Copy link
Copy Markdown
Member

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 3 pipeline(s).

Default App Service plans to Windows when --is-managed-instance is
specified without --is-linux.

Update both the command validator and create handler to reject unsupported
argument combinations:
- --is-managed-instance with --is-linux true
- --hyper-v with --is-managed-instance
- --hyper-v with --is-linux true

Update parameter help and add focused validator and handler unit tests for
the Windows defaults and mutual-exclusion rules.
@apwestgarth

Copy link
Copy Markdown
Member Author

Shi1810 requested review in light of your original changes in #33395

@a0x1ab

Copy link
Copy Markdown
Member

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 3 pipeline(s).

@yonzhan

Copy link
Copy Markdown
Collaborator

appservice

@a0x1ab Aditya Pujara (a0x1ab) added the Request X Engineering Agent Ask the agent to triage this issue or review this PR label Sep 22, 2026
@x-engineering-agent x-engineering-agent Bot changed the title [App Service]] az appservice plan create - Fix Windows defaults for App Service managed instance plans [AppService] az appservice plan create: ] - Fix Windows defaults for App Service managed instance plans Sep 22, 2026
@x-engineering-agent x-engineering-agent Bot changed the title [AppService] az appservice plan create: ] - Fix Windows defaults for App Service managed instance plans [AppService] az appservice plan create: Fix Windows defaults for App Service managed instance plans Sep 22, 2026
x-engineering-agent[bot]

This comment was marked as resolved.

@x-engineering-agent x-engineering-agent Bot added the X Engineering Agent Reviewed Agent reviewed this PR label Sep 22, 2026
x-engineering-agent[bot]

This comment was marked as resolved.

x-engineering-agent[bot]

This comment was marked as resolved.

x-engineering-agent[bot]

This comment was marked as resolved.

@a0x1ab Aditya Pujara (a0x1ab) added the Request X Engineering Agent Live Test Ask the agent to run live tests and review this PR label Oct 14, 2026
@x-engineering-agent

Copy link
Copy Markdown
Contributor

Live test results — azdev test --live --series (changed test files only)

✅ PASS

Selectors: appservice.test_appservice_validators_thru_mock appservice.test_webapp_commands_thru_mock (module)
PR head ref: linuxdefault-managedinstancefix
PR head sha: 4a15ce0c4a26f9c8f96c15831b0fb4b8672d4ea3
PR base ref: dev
New test files in PR: false

Changed test files run
src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_appservice_validators_thru_mock.py
src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py

Workflow run: https://github.com/Azure/issue-sentinel/actions/runs/38508200775

Last 80 lines of azdev output
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeployTag::test_webapp_deploy_ignores_tag_for_windows_webapp PASSED [ 58%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestCreateAppServicePlanDefaults::test_default_sku_is_p0v3_when_not_specified PASSED [ 58%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestCreateAppServicePlanDefaults::test_is_linux_false_creates_windows_plan PASSED [ 59%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestCreateAppServicePlanDefaults::test_is_linux_none_defaults_to_linux PASSED [ 59%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestCreateAppServicePlanDefaults::test_managed_instance_defaults_to_windows PASSED [ 60%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestCreateAppServicePlanDefaults::test_managed_instance_rejects_hyper_v PASSED [ 60%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestCreateAppServicePlanDefaults::test_managed_instance_rejects_linux PASSED [ 61%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestCreateAppServicePlanDefaults::test_update_to_isolated_v4_sku_on_ase PASSED [ 62%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestCreateAppServicePlanDefaults::test_update_to_isolated_v4_sku_requires_ase PASSED [ 62%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeployScmCache::test_check_zip_deployment_status_falls_back_when_no_cache PASSED [ 63%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeployScmCache::test_check_zip_deployment_status_refreshes_on_401 PASSED [ 63%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeployScmCache::test_check_zip_deployment_status_reuses_cached_headers PASSED [ 64%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeployScmCache::test_check_zip_deployment_status_reuses_cached_headers_basic_auth PASSED [ 64%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeployScmCache::test_get_or_fetch_scm_url_derives_from_cached_site PASSED [ 65%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeployScmCache::test_get_or_fetch_scm_url_falls_back_when_no_cached_site PASSED [ 65%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeployScmCache::test_get_scm_site_headers_calls_is_flex_when_no_hint PASSED [ 66%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeployScmCache::test_get_scm_site_headers_skips_is_flex_when_hint_provided PASSED [ 67%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeployScmCache::test_known_is_flex_hint_function_app PASSED [ 67%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeployScmCache::test_known_is_flex_hint_unknown PASSED [ 68%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeployScmCache::test_known_is_flex_hint_web_app PASSED [ 68%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeployScmCache::test_one_deploy_params_repr_does_not_leak_credentials PASSED [ 69%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeployScmCache::test_perform_onedeploy_internal_clears_cache_on_exception PASSED [ 69%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeployScmCache::test_perform_onedeploy_internal_clears_cache_on_success PASSED [ 70%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeployScmCache::test_populate_cached_scm_headers_aad_capitalized_key PASSED [ 70%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeployScmCache::test_populate_cached_scm_headers_basic_auth_lowercase_key PASSED [ 71%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeployScmCache::test_populate_cached_scm_headers_noop_without_authorization PASSED [ 71%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeploySiteCache::test_get_or_fetch_is_linux_webapp_lazy_fetch_for_functionapp PASSED [ 72%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeploySiteCache::test_get_or_fetch_is_linux_webapp_uses_cached_value PASSED [ 73%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeploySiteCache::test_get_or_fetch_site_caches_result PASSED [ 73%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeploySiteCache::test_get_or_fetch_site_uses_slot_when_set PASSED [ 74%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeploySiteCache::test_get_visit_url_falls_back_when_no_cache PASSED [ 74%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeploySiteCache::test_get_visit_url_uses_cached_site PASSED [ 75%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeploySiteCache::test_get_visit_url_uses_cached_slot_site PASSED [ 75%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeploySiteCache::test_url_from_site_picks_http_when_no_ssl PASSED [ 76%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeploySiteCache::test_url_from_site_picks_https_when_ssl_enabled PASSED [ 76%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_extract_runtime_error_handles_missing_properties PASSED [ 77%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_extract_runtime_error_handles_single_dict_properties PASSED [ 78%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_extract_runtime_error_picks_latest_timestamp PASSED [ 78%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_extract_runtime_error_returns_none_when_all_started PASSED [ 79%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_extract_runtime_error_returns_none_when_requested_instance_has_no_error PASSED [ 79%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_extract_runtime_error_uses_requested_instance PASSED [ 80%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_report_omits_empty_snapshot_metadata PASSED [ 80%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_report_uses_instance_id_when_machine_name_and_filter_are_missing PASSED [ 81%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_report_uses_requested_machine_when_response_omits_machine_name PASSED [ 81%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_runtime_error_is_recent_rejects_future_timestamp PASSED [ 82%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_table_output_includes_config_written_time_in_details_header PASSED [ 82%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_table_output_uses_details_header_when_written_time_is_missing PASSED [ 83%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_troubleshoot_config_filters_by_requested_instance PASSED [ 84%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_troubleshoot_config_instance_filter_does_not_fall_back_to_another_worker PASSED [ 84%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_troubleshoot_config_instance_filter_maps_worker_when_snapshot_is_missing PASSED [ 85%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_troubleshoot_config_no_runtime_error PASSED [ 85%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_troubleshoot_config_raises_on_windows PASSED [ 86%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_troubleshoot_config_report_does_not_use_generic_details_for_last_error PASSED [ 86%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_troubleshoot_config_report_prints_and_returns_none PASSED [ 87%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_troubleshoot_config_report_shows_404_response_message PASSED [ 87%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_troubleshoot_config_report_shows_feature_unavailable_on_404 PASSED [ 88%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_troubleshoot_config_report_shows_runtime_when_config_check_failed PASSED [ 89%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_troubleshoot_config_report_shows_runtime_when_error_is_fresh PASSED [ 89%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_troubleshoot_config_report_suppresses_runtime_when_config_check_failed_and_error_is_stale PASSED [ 90%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_troubleshoot_config_report_suppresses_stale_runtime_error PASSED [ 90%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_troubleshoot_config_retries_across_instances_on_404 PASSED [ 91%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_troubleshoot_config_scm_404_returns_empty_settings PASSED [ 91%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_troubleshoot_config_scm_persistent_5xx_gives_up_after_max_attempts PASSED [ 92%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_troubleshoot_config_scm_transient_5xx_retries_then_succeeds PASSED [ 92%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_troubleshoot_config_structured_output_suppresses_stale_runtime_error PASSED [ 93%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_troubleshoot_config_success PASSED [ 93%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_troubleshoot_config_suppresses_arm_error_response_body PASSED [ 94%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestStackRuntimeNodeStandardization::test_node_26_transition_identifiers_are_deduplicated PASSED [ 95%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestStackRuntimeNodeStandardization::test_node_26_uses_standard_identifier_on_both_platforms PASSED [ 95%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestStackRuntimeNodeStandardization::test_older_node_identifiers_remain_unchanged PASSED [ 96%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestStackRuntimeJavaSELinux::test_aggregate_javaNNRuntime_keys PASSED [ 96%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestStackRuntimeJavaSELinux::test_aggregate_not_first_selected_by_auto_update PASSED [ 97%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestStackRuntimeJavaSELinux::test_aggregate_runtimes_array_complete PASSED [ 97%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestStackRuntimeJavaSELinux::test_get_container_settings_data_reads_mapping PASSED [ 98%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestStackRuntimeJavaSELinux::test_get_java_runtimes_from_container_settings_reads_mapping PASSED [ 98%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestStackRuntimeJavaSELinux::test_runtimes_array_entries_flagged_auto_update PASSED [ 99%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestStackRuntimeJavaSELinux::test_typed_attrs_only_expose_java_8_11_but_mapping_has_all PASSED [100%]

- generated xml file: /home/runner/work/issue-sentinel/issue-sentinel/test-output/results.xml -
============================= 182 passed in 17.11s =============================

Posted by the X Engineering Agent live-test workflow.

@x-engineering-agent x-engineering-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Andrew Westgarth (@apwestgarth)

Review

The App Service managed-instance Windows default and incompatible-argument checks are consistent across validation and creation. Upstream CI is now 50/51 passed: 0 PR-related failures, 1 unrelated failure, 0 uncertain failures. The previously identified regression-test weakness remains on this unchanged head.

Upstream CI

azdev-style

  • Result: failure
  • Relevance: Not PR-related
  • Evidence: acs/custom.py:1070:11: W0718: Catching too general exception Exception (also lines 2442 and 2460); acs/azurecontainerstorage/_validators.py:361:19: R0916: Too many boolean expressions in if statement (6/5); sql/custom.py:1779:0: W0613: Unused argument 'kwargs'; azure-cli-core/.../commands/arm.py:178:76: W0622: Redefining built-in 'type'. The task reports Pylint: FAILED; none of these paths is among this PR's five changed AppService files.
  • Suggested fix: Re-run the azdev-style workflow. If these diagnostics recur, escalate to the affected component/check owners; do not modify unrelated source in this AppService PR.
  • Verify: Confirm the replacement azdev-style run passes on this head; no unrelated source change is requested.

Test validation

  • Live test: Passed. Workflow run
  • Regression coverage: For appservice: 2 focused test file(s) changed. Scenario coverage is unverified; review the issue's required conditions, test setup, and assertions before approval. No linked issue was found in the PR timeline; inspect the source issue and its required scenario manually.

Test semantic strength

In test_managed_instance_defaults_to_windows, lines 1781-1788, except Exception: pass lets the success-path test pass when creation fails after constructing the model. The textual reserved=False check does not establish that the creation client was invoked successfully.

Configure the client mocks for normal completion, remove the blanket exception catch, and assert reserved=False directly in the constructor kwargs plus the creation-client call. Re-run the two changed appservice mock-test files and confirm an injected unexpected creation exception fails this test. These are deterministic unit-test scenarios; no recording was changed or supplied to establish service-level coverage. The seven repository review tools reported no additional deterministic policy findings.

Risk assessment

17/100 · Low · High confidence

The Low rating is driven by public CLI behavior.

  • Change scope: 5 changed files, 117 changed lines (+105 / -12), including 3 production files.
  • Affected components: appservice
  • Risk drivers: public CLI behavior (+18)
  • Regression evidence: Changed regression tests are included, reducing risk.
  • Confidence: High because changed-line patches were available for every production file.
  • Required review: Owning-squad review is recommended for appservice before merge.

Posted by x-engineering-agent (Reviewer)

Remove blanket exception suppression and use real SDK models.
Mock AAZ execution and verify Windows and managed-instance arguments
reach the creation command, then assert the handler returns its result.

Validation:
- Webapp mock-test module: 150 passed
- azdev style appservice: pylint and flake8 passed

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: ba9a26c8-d8d4-465b-877e-b5aac1abe29f
@x-engineering-agent

x-engineering-agent Bot commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

X Engineering Agent Report

Live test — Passed (182/182)

PASS

Selectors: appservice.test_appservice_validators_thru_mock appservice.test_webapp_commands_thru_mock (module)
PR head ref: linuxdefault-managedinstancefix
PR head sha: ea63208ed61bc73d6116e59d8303d472372a55e7
PR base ref: dev
New test files in PR: false

Changed test files run
src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_appservice_validators_thru_mock.py
src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py

Workflow run: https://github.com/Azure/issue-sentinel/actions/runs/38657514698

Last 80 lines of azdev output
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeployTag::test_webapp_deploy_ignores_tag_for_windows_webapp PASSED [ 58%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestCreateAppServicePlanDefaults::test_default_sku_is_p0v3_when_not_specified PASSED [ 58%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestCreateAppServicePlanDefaults::test_is_linux_false_creates_windows_plan PASSED [ 59%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestCreateAppServicePlanDefaults::test_is_linux_none_defaults_to_linux PASSED [ 59%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestCreateAppServicePlanDefaults::test_managed_instance_defaults_to_windows PASSED [ 60%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestCreateAppServicePlanDefaults::test_managed_instance_rejects_hyper_v PASSED [ 60%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestCreateAppServicePlanDefaults::test_managed_instance_rejects_linux PASSED [ 61%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestCreateAppServicePlanDefaults::test_update_to_isolated_v4_sku_on_ase PASSED [ 62%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestCreateAppServicePlanDefaults::test_update_to_isolated_v4_sku_requires_ase PASSED [ 62%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeployScmCache::test_check_zip_deployment_status_falls_back_when_no_cache PASSED [ 63%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeployScmCache::test_check_zip_deployment_status_refreshes_on_401 PASSED [ 63%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeployScmCache::test_check_zip_deployment_status_reuses_cached_headers PASSED [ 64%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeployScmCache::test_check_zip_deployment_status_reuses_cached_headers_basic_auth PASSED [ 64%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeployScmCache::test_get_or_fetch_scm_url_derives_from_cached_site PASSED [ 65%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeployScmCache::test_get_or_fetch_scm_url_falls_back_when_no_cached_site PASSED [ 65%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeployScmCache::test_get_scm_site_headers_calls_is_flex_when_no_hint PASSED [ 66%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeployScmCache::test_get_scm_site_headers_skips_is_flex_when_hint_provided PASSED [ 67%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeployScmCache::test_known_is_flex_hint_function_app PASSED [ 67%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeployScmCache::test_known_is_flex_hint_unknown PASSED [ 68%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeployScmCache::test_known_is_flex_hint_web_app PASSED [ 68%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeployScmCache::test_one_deploy_params_repr_does_not_leak_credentials PASSED [ 69%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeployScmCache::test_perform_onedeploy_internal_clears_cache_on_exception PASSED [ 69%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeployScmCache::test_perform_onedeploy_internal_clears_cache_on_success PASSED [ 70%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeployScmCache::test_populate_cached_scm_headers_aad_capitalized_key PASSED [ 70%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeployScmCache::test_populate_cached_scm_headers_basic_auth_lowercase_key PASSED [ 71%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeployScmCache::test_populate_cached_scm_headers_noop_without_authorization PASSED [ 71%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeploySiteCache::test_get_or_fetch_is_linux_webapp_lazy_fetch_for_functionapp PASSED [ 72%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeploySiteCache::test_get_or_fetch_is_linux_webapp_uses_cached_value PASSED [ 73%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeploySiteCache::test_get_or_fetch_site_caches_result PASSED [ 73%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeploySiteCache::test_get_or_fetch_site_uses_slot_when_set PASSED [ 74%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeploySiteCache::test_get_visit_url_falls_back_when_no_cache PASSED [ 74%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeploySiteCache::test_get_visit_url_uses_cached_site PASSED [ 75%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeploySiteCache::test_get_visit_url_uses_cached_slot_site PASSED [ 75%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeploySiteCache::test_url_from_site_picks_http_when_no_ssl PASSED [ 76%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestOneDeploySiteCache::test_url_from_site_picks_https_when_ssl_enabled PASSED [ 76%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_extract_runtime_error_handles_missing_properties PASSED [ 77%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_extract_runtime_error_handles_single_dict_properties PASSED [ 78%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_extract_runtime_error_picks_latest_timestamp PASSED [ 78%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_extract_runtime_error_returns_none_when_all_started PASSED [ 79%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_extract_runtime_error_returns_none_when_requested_instance_has_no_error PASSED [ 79%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_extract_runtime_error_uses_requested_instance PASSED [ 80%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_report_omits_empty_snapshot_metadata PASSED [ 80%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_report_uses_instance_id_when_machine_name_and_filter_are_missing PASSED [ 81%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_report_uses_requested_machine_when_response_omits_machine_name PASSED [ 81%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_runtime_error_is_recent_rejects_future_timestamp PASSED [ 82%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_table_output_includes_config_written_time_in_details_header PASSED [ 82%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_table_output_uses_details_header_when_written_time_is_missing PASSED [ 83%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_troubleshoot_config_filters_by_requested_instance PASSED [ 84%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_troubleshoot_config_instance_filter_does_not_fall_back_to_another_worker PASSED [ 84%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_troubleshoot_config_instance_filter_maps_worker_when_snapshot_is_missing PASSED [ 85%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_troubleshoot_config_no_runtime_error PASSED [ 85%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_troubleshoot_config_raises_on_windows PASSED [ 86%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_troubleshoot_config_report_does_not_use_generic_details_for_last_error PASSED [ 86%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_troubleshoot_config_report_prints_and_returns_none PASSED [ 87%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_troubleshoot_config_report_shows_404_response_message PASSED [ 87%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_troubleshoot_config_report_shows_feature_unavailable_on_404 PASSED [ 88%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_troubleshoot_config_report_shows_runtime_when_config_check_failed PASSED [ 89%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_troubleshoot_config_report_shows_runtime_when_error_is_fresh PASSED [ 89%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_troubleshoot_config_report_suppresses_runtime_when_config_check_failed_and_error_is_stale PASSED [ 90%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_troubleshoot_config_report_suppresses_stale_runtime_error PASSED [ 90%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_troubleshoot_config_retries_across_instances_on_404 PASSED [ 91%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_troubleshoot_config_scm_404_returns_empty_settings PASSED [ 91%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_troubleshoot_config_scm_persistent_5xx_gives_up_after_max_attempts PASSED [ 92%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_troubleshoot_config_scm_transient_5xx_retries_then_succeeds PASSED [ 92%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_troubleshoot_config_structured_output_suppresses_stale_runtime_error PASSED [ 93%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_troubleshoot_config_success PASSED [ 93%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestTroubleshootConfigMocked::test_troubleshoot_config_suppresses_arm_error_response_body PASSED [ 94%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestStackRuntimeNodeStandardization::test_node_26_transition_identifiers_are_deduplicated PASSED [ 95%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestStackRuntimeNodeStandardization::test_node_26_uses_standard_identifier_on_both_platforms PASSED [ 95%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestStackRuntimeNodeStandardization::test_older_node_identifiers_remain_unchanged PASSED [ 96%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestStackRuntimeJavaSELinux::test_aggregate_javaNNRuntime_keys PASSED [ 96%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestStackRuntimeJavaSELinux::test_aggregate_not_first_selected_by_auto_update PASSED [ 97%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestStackRuntimeJavaSELinux::test_aggregate_runtimes_array_complete PASSED [ 97%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestStackRuntimeJavaSELinux::test_get_container_settings_data_reads_mapping PASSED [ 98%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestStackRuntimeJavaSELinux::test_get_java_runtimes_from_container_settings_reads_mapping PASSED [ 98%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestStackRuntimeJavaSELinux::test_runtimes_array_entries_flagged_auto_update PASSED [ 99%]
azure-cli/src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_webapp_commands_thru_mock.py::TestStackRuntimeJavaSELinux::test_typed_attrs_only_expose_java_8_11_but_mapping_has_all PASSED [100%]

- generated xml file: /home/runner/work/issue-sentinel/issue-sentinel/test-output/results.xml -
============================= 182 passed in 17.32s =============================

Workflow run

Posted by x-engineering-agent (Tester)

@a0x1ab

Copy link
Copy Markdown
Member

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 3 pipeline(s).

@a0x1ab Aditya Pujara (a0x1ab) removed the Request X Engineering Agent Ask the agent to triage this issue or review this PR label Oct 19, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Request X Engineering Agent Live Test Ask the agent to run live tests and review this PR X Engineering Agent Reviewed Agent reviewed this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants