fix: dev-v4 to main branch downmerge - #1098
Closed
Dhruvkumar-Microsoft wants to merge 27 commits into
Closed
Conversation
fix: Dev v4 to main PR
chore: delete Create-Release workflow due to codfish security incident
fix: remove sensitive cookie data from sample user configuration
…e data after image build and push
… JSON templates. - Updated deployment capacity defaults for GPT models. - Added private endpoint configurations for Azure Container Registry based on networking settings. - Adjusted scripts for building and pushing images to temporarily relax ACR restrictions during WAF deployments. - Enhanced WebSocket handling in the frontend to coalesce streaming messages for improved UI performance. - Updated backend configuration to reflect changes in reasoning model naming and supported models. - Improved agent handling logic in the orchestration layer to prevent infinite loops during approval processes.
…emove premature satisfaction guard logging in human_approval_manager.py
feat: upgrade to GPT-5.4 models, add default teams with per-user isolation, and ACR image build scripts
chore: Update Owners ID for Vinay and Prajwal
Dhruvkumar-Microsoft
requested review from
Avijit-Microsoft,
Fr4nc3,
Roopan-Microsoft and
aniaroramsft
as code owners
July 17, 2026 04:32
Dhruvkumar-Microsoft
requested review from
dgp10801,
nchandhi and
toherman-msft
as code owners
July 17, 2026 04:32
Contributor
There was a problem hiding this comment.
Pull request overview
This pull request downmerges dev-v4 into main, primarily updating the accelerator’s default model configuration to GPT-5.4 (and related naming/capacity settings), while also improving post-deploy guidance and aligning infra/workflows/scripts with the new deployment model and container build flow.
Changes:
- Update default model/deployment names (GPT-5.4 / GPT-5.4-mini) across backend config, agent team configs, docs, and quota/deploy workflows.
- Adjust Cosmos DB team visibility and database factory behavior (default teams + per-request user scoping), plus related tests.
- Improve deployment experience and infra: add ACR provisioning + post-provision image build/push scripts; update Dockerfiles to build without BuildKit mounts; optimize frontend streaming UI handling.
Reviewed changes
Copilot reviewed 44 out of 46 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| TRANSPARENCY_FAQS.md | Updates Responsible AI FAQ to reflect GPT-5.4 default LLM messaging. |
| src/tests/backend/common/database/test_database_factory.py | Updates tests for shared-connection + per-request DB factory semantics. |
| src/tests/backend/common/database/test_cosmosdb.py | Updates tests for new team query filters and delete semantics. |
| src/tests/agents/test_foundry_integration.py | Updates test model deployment name to GPT-5.4. |
| src/tests/agents/interactive_test_harness/foundry_agent_interactive.py | Updates interactive harness default model deployment name to GPT-5.4. |
| src/backend/v4/orchestration/human_approval_manager.py | Adds bounded “premature satisfaction” guard and normalizes agent-name matching. |
| src/backend/v4/common/services/team_service.py | Parses/persists is_default for team configs. |
| src/backend/Dockerfile | Removes BuildKit-only mounts; improves layer caching; ensures classic builder compatibility. |
| src/backend/common/models/messages_af.py | Adds is_default field to TeamConfiguration. |
| src/backend/common/database/database_factory.py | Switches to shared Cosmos connection + per-request user-scoped client instances. |
| src/backend/common/database/cosmosdb.py | Filters teams by (user_id OR is_default); prevents deletion of default teams; fixes delete return semantics. |
| src/backend/common/config/app_config.py | Updates default deployment/model names for GPT-5.4(-mini) and reasoning model defaults. |
| src/backend/auth/sample_user.py | Removes sample Cookie header value. |
| src/backend/.env.sample | Updates sample env defaults for GPT-5.4 naming and supported models list. |
| src/App/src/hooks/usePlanWebSocket.tsx | Coalesces streaming tokens via requestAnimationFrame; ensures spinners clear on terminal statuses. |
| src/App/Dockerfile | Removes BuildKit-only mounts to support classic builders (e.g., az acr build). |
| infra/scripts/quota_check_params.sh | Updates default model/capacity pairs to GPT-5.4 / GPT-5.4-mini. |
| infra/scripts/checkquota.sh | Renames quota env vars and checks GPT-5.4 / GPT-5.4-mini capacities. |
| infra/scripts/Build-And-Push-Images.ps1 | Adds PowerShell post-provision build/push/update script for backend/frontend/MCP images. |
| infra/scripts/build_and_push_images.sh | Adds Bash post-provision build/push/update script for backend/frontend/MCP images. |
| infra/main.waf.parameters.json | Renames/reshapes GPT model parameters to GPT-5.4 naming (incl. deployment alias). |
| infra/main.parameters.json | Renames/reshapes GPT model parameters to GPT-5.4 naming (incl. deployment alias). |
| infra/main.bicep | Updates model deployments/params, adds ACR + private DNS zone, uses placeholder images and MI-based pulls, updates outputs. |
| infra/main_custom.bicep | Mirrors GPT-5.4 deployment parameter/model changes for the custom template variant. |
| docs/TroubleShootingSteps.md | Simplifies guidance for immutable VM properties redeploy scenario. |
| docs/quota_check.md | Updates quota docs/examples for GPT-5.4 naming and capacities. |
| docs/ManualAzureDeployment.md | Updates manual deployment env example to GPT-5.4-mini deployment name. |
| docs/DeploymentGuide.md | Expands post-deploy steps (explicit image build/push + configuration) and updates quota/model guidance. |
| docs/CustomizingAzdParameters.md | Updates documented azd parameters for GPT-5.4 models and deployment aliases. |
| docs/AzureGPTQuotaSettings.md | Updates quota UI guidance to GPT-5.4 / GPT-5.4-mini. |
| docs/ACRBuildAndPushGuide.md | Updates build/push Dockerfile paths and clarifies post-azd up image workflow. |
| data/agent_teams/rfp_analysis_team.json | Updates default deployment_name to gpt-5.4-mini and marks as default team. |
| data/agent_teams/retail.json | Updates deployment_name to gpt-5.4-mini; marks as default team; aligns reasoning agent model. |
| data/agent_teams/marketing.json | Updates deployment_name to gpt-5.4-mini and marks as default team. |
| data/agent_teams/hr.json | Updates deployment_name to gpt-5.4-mini and marks as default team. |
| data/agent_teams/contract_compliance_team.json | Updates deployment_name to gpt-5.4-mini and marks as default team. |
| azure.yaml | Enhances postdeploy output with explicit build/push instructions for Bash and PowerShell. |
| .github/workflows/job-send-notification.yml | Renames quota env var(s) to GPT-5.4 naming. |
| .github/workflows/job-deploy.yml | Renames quota env var(s) and wires them into quota-check step. |
| .github/workflows/deploy.yml | Renames quota env var(s) and updates deploy parameters (capacity default). |
| .github/workflows/deploy-waf.yml | Renames quota env var(s) and updates WAF deploy parameter names. |
| .github/workflows/create-release.yml | Removes semantic-release-based create-release workflow. |
| .github/workflows/azure-dev.yml | Updates validation env vars to GPT-5.4 naming. |
| .github/workflows/azd-template-validation.yml | Updates validation env vars to GPT-5.4 naming. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| ## What operational factors and settings allow for effective and responsible use of Multi Agent: Custom Automation Engine – Solution Accelerator? | ||
| Effective and responsible use of the Multi Agent: Custom Automation Engine – Solution Accelerator depends on several operational factors and settings. The system is designed to perform reliably and safely across a range of business tasks that it was evaluated for. Users can customize certain settings, such as the planning language model used by the system, the types of tasks that agents are assigned, and the specific actions that agents can take (e.g., sending emails or scheduling orientation sessions for new employees). However, it's important to note that these choices may impact the system's behavior in real-world scenarios. | ||
| For example, selecting a planning language model that is not well-suited to the complexity of the tasks may result in lower accuracy and performance. Similarly, assigning tasks that are outside the system's intended scope may lead to errors or incomplete results. Users can choose the LLM that is optimized for responsible use. The default LLM is GPT-4o which inherits the existing RAI mechanisms and filters from the LLM provider. Caching is enabled by default to increase reliability and control cost. We encourage developers to review [OpenAI’s Usage policies](https://openai.com/policies/usage-policies/) and [Azure OpenAI’s Code of Conduct](https://learn.microsoft.com/en-us/legal/cognitive-services/openai/code-of-conduct) when using GPT-40. To ensure effective and responsible use of the accelerator, users should carefully consider their choices and use the system within its intended scope. No newline at end of file | ||
| For example, selecting a planning language model that is not well-suited to the complexity of the tasks may result in lower accuracy and performance. Similarly, assigning tasks that are outside the system's intended scope may lead to errors or incomplete results. Users can choose the LLM that is optimized for responsible use. The default LLM is GPT-5.4 which inherits the existing RAI mechanisms and filters from the LLM provider. Caching is enabled by default to increase reliability and control cost. We encourage developers to review [OpenAI’s Usage policies](https://openai.com/policies/usage-policies/) and [Azure OpenAI’s Code of Conduct](https://learn.microsoft.com/en-us/legal/cognitive-services/openai/code-of-conduct) when using GPT-5.4. To ensure effective and responsible use of the accelerator, users should carefully consider their choices and use the system within its intended scope. No newline at end of file |
Comment on lines
+46
to
50
| # Ensure the shared connection infrastructure is initialized | ||
| if force_new or DatabaseFactory._shared_instance is None: | ||
| shared = CosmosDBClient( | ||
| endpoint=config.COSMOSDB_ENDPOINT, | ||
| credential=config.get_azure_credentials(), |
| // ========== Search Service ========== // | ||
|
|
||
| var searchServiceName = 'srch-${solutionSuffix}' | ||
| var aiSearchIndexName = 'sample-dataset-index' |
Comment on lines
+1255
to
+1256
| //image: '${backendContainerRegistryHostname}/${backendContainerImageName}:${backendContainerImageTag}' | ||
| image: 'mcr.microsoft.com/azuredocs/containerapps-helloworld:latest' |
…ment-macae fix: remove local deployment related files
Roopan-Microsoft
requested review from
Prajwal-Microsoft and
Vinay-Microsoft
as code owners
July 20, 2026 06:52
Contributor
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 47 out of 49 changed files in this pull request and generated 3 comments.
Comments suppressed due to low confidence (1)
infra/main.bicep:1257
- Operational:
infra/main.bicepnow hard-codes placeholdercontainerapps-helloworldimages for both backend and MCP. This makes deployments non-functional unless a separate post-step updates the images, and it also means the existing image parameters (backendContainer*,MCPContainer*, etc.) no longer affect the deployed services. Consider adding a parameterized switch (e.g.,usePlaceholderImages) so CI/prod can deploy real images while first-timeazd upcan still succeed without prebuilt images.
name: 'backend'
//image: '${backendContainerRegistryHostname}/${backendContainerImageName}:${backendContainerImageTag}'
image: 'mcr.microsoft.com/azuredocs/containerapps-helloworld:latest'
resources: {
Comment on lines
112
to
116
| plan=json_data.get("plan", ""), | ||
| starting_tasks=starting_tasks, | ||
| user_id=user_id, | ||
| is_default=json_data.get("is_default", False), | ||
| ) |
Comment on lines
150
to
+154
| gptModelVersion="2025-04-14" \ | ||
| backendContainerImageTag="${IMAGE_TAG}" \ | ||
| frontendContainerImageTag="${IMAGE_TAG}" \ | ||
| azureAiServiceLocation='${{ env.AZURE_LOCATION }}' \ | ||
| gptDeploymentCapacity=50 \ | ||
| gptDeploymentCapacity=100 \ |
Comment on lines
+158
to
+167
| if ($deploymentType -eq 'WAF') { | ||
| Write-Section 'WAF deployment detected - temporarily relaxing ACR restrictions' | ||
| & az acr update --name $acrName --resource-group $resourceGroup --allow-exports true --output none | ||
| if ($LASTEXITCODE -ne 0) { throw "Failed to enable ACR exports." } | ||
| & az acr update --name $acrName --resource-group $resourceGroup --public-network-enabled true --output none | ||
| if ($LASTEXITCODE -ne 0) { throw "Failed to enable ACR public network access." } | ||
| & az acr update --name $acrName --resource-group $resourceGroup --default-action Allow --output none | ||
| if ($LASTEXITCODE -ne 0) { throw "Failed to set ACR default action to Allow." } | ||
| Write-Host 'ACR restrictions temporarily relaxed.' | ||
| } |
Roopan-Microsoft
had a problem deploying
to
production
July 23, 2026 02:17 — with
GitHub Actions
Failure
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Purpose
This pull request updates the platform to use the new GPT-5.4 model as the default language model across deployment, configuration, and documentation. It also updates related workflow environment variables, quota checks, and deployment settings to align with the new model naming. Additionally, it provides improved post-deployment instructions in the developer experience scripts.
Model upgrade and configuration changes:
gpt-4.1-miniare replaced withgpt-5.4-minias the default deployment name in agent team configuration files (e.g.,contract_compliance_team.json,hr.json), and"is_default": trueis set for the new model. [1] [2] [3] [4] [5]GPT_MIN_CAPACITY,O4_MINI_MIN_CAPACITY, andGPT41_MINI_MIN_CAPACITYtoGPT_5_4_MINI_MIN_CAPACITYandGPT_5_4_MIN_CAPACITYthroughout all relevant GitHub Actions workflows, with corresponding capacity values updated. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]Documentation and developer experience:
azure.yamlare clarified and expanded for both PowerShell and Bash, guiding users to build and push container images. [1] [2] [3]Workflow cleanup:
.github/workflows/create-release.ymlworkflow is removed, indicating a possible change in release automation strategy.Does this introduce a breaking change?
How to Test
What to Check
Verify that the following are valid
Other Information