Changelog
This page summarizes the main product changes in APEX by month, newest first. Each entry links to the pull request that made the change, where one exists. For the complete list of changes, see the repository histories:
The site’s generated reference data uses the revision recorded in
apex-source.json.
It does not automatically describe the newest product commit.
October 2026
Section titled “October 2026”-
The development container moved from Ubuntu to the Azure Linux 4 preview image, pinned by digest. This is a breaking change for custom container steps. Azure CLI runs in an isolated environment; GitHub CLI, Terraform, Bicep and
azdare checksum-verified standalone binaries;dos2unixand the preinstalled Az PowerShell module bundle were removed. CI builds the image natively on amd64 and arm64 on GitHub-hosted Linux runners. The project owner has also manually tested and validated Docker Desktop dev containers on x86-64 and ARM64, including Windows with WSL2. Linux hosts are supported. Codespaces has not been separately validated (#793). Projects created from the Accelerator receive it through the upstream sync pull request. See dev container setup. -
Dev container package sources now default to the public registries. Microsoft maintainers opt in to the Microsoft proxy, and anyone can use their own registry, through host variables. The container prints each source at start and warns on a partial Microsoft opt-in. A migration guide covers customized Ubuntu containers (#797, #798). Hosted CI has no authenticated package feed and none is planned; that gap is a standing exception recorded in #794, closed as not planned. See package sources.
-
The dev container base validation guide now describes the Azure Linux 4 candidate, the workflow’s real dispatch inputs, and that the workflow does not create pull requests.
-
Workspace MCP configuration moved from deprecated Local-harness
.vscode/mcp.json(servers) to portable workspace-root.mcp.json(mcpServerswithtools: ["*"]) so the VS Code Copilot harness loads the workspace servers directly without prompting the Agent Customizations migration banner (#791). -
On October 19, the owner approved adapting the existing
challenger-review-subagentinto one shared read-only structured JSON leaf for automatic producers, authorized Orchestrator calls, and optional manual10-Challengerreviews. The interactive owner captures metadata, invokes an actual synchronous nativeAPEX_REVIEWtask, records the attributed output centrally throughrecord-review.mjs, and validates schema, freshness, and provenance. New receipts identify the actual leaf and hash its definition and the shared one-shot contract. Built-inrubber-duckremains a critic-prose reviewer, not a mandatory JSON producer or automatic fallback. Historical file-output receipts and readers remain compatible without rewriting evidence or resetting attempts. Review budgets, lenses, gates, security, and approvals are unchanged. After reloading the VS Code window so updated agent definitions attached from disk (7735cb43-97f0-4d6e-9a31-8edd63dcc75b), the owner-authorizedcp-harness-01end-to-end run completedSteps 1 → 2 → 3.5 → 4 → 5 → 6 → 7 → Post-Lessonswith five synchronouschallenger-review-subagentdispatches, strictrecord-review.mjsand--verify-cachevalidation, live Azure deployment torg-cp-harness-01-dev(swedencentral, 32 resources), Step 7 as-built documentation ($127.69/month,0.00%drift), and09-lessons-learned.{json,md}(LL-001–LL-004applied). See the review contract. -
Owner-authorized migration execution on October 18 in #779 supersedes the earlier
PLAN_THEN_APPROVEhold and permits evidence-based packet progression. It does not accept the proposed lead, skills, source implementation, or runtime pilot. The earliera315279candidate is historical, not an approved or shipped contract. Main reverted the earlier #767 cutover. Real-Azure deployment and E2E are authorized in principle only. The exact tenant, subscription, resource boundary, budget, and action scope are not established, so cloud execution remains blocked. Cleanup is not authorized. No merge or site publication is authorized by this documentation update.- The owner intentionally deleted APEX
.github/hooks/runtime hooks. No runtime hooks are currently provided in the migration checkout. Do not restore or replace them. The old regex command guard and other hook protections are gone; native tool restrictions are not proven equivalent. Native permission boundaries must be verified. Git Lefthook, pre-commit checks, secret scanning, CI, and azd lifecycle hooks are separate and remain outside this retirement. - The target supports only the Copilot session target, Copilot SDK/Agent Host, inside VS Code. Other product runtimes are out of scope; historical archives and readers remain available.
- The proposed shape is an optional short APEX engineering lead or native Agent, on-demand domain skills, a native bounded independent reviewer, and a separately permissioned deploy operator with Bicep and Terraform adapters. The existing roster is not a mandatory target.
- Native Autopilot would handle routine engineering, tests, bounded repair,
approved feature-branch commits and pushes, PR and issue updates, and scoped
review fixes without repeated confirmations. It may answer blocking questions.
Successful
ask_useror form responses andAPEX_UNATTENDED=1are not genuine human approval or proof of native Autopilot selection. Consequential changes and deployment approval need an independent owner boundary. - The owner subsequently reported migration of all current main and leaf bodies in the source worktree. That work was not committed when this docs update began, and source validation and runtime certification were incomplete. The body migration retains names, direct main-agent selection, native questions, and domain outputs. It does not implement the whole proposed role consolidation.
- Directly selected Requirements, Architect, Design, and Governance retain
their own material questions. Delegated main workers return structured
USER_INPUT_REQUIREDrequests to the interactive parent; leaves never ask users or delegate. - Active bodies and shared caller guidance no longer require worker-ready
handshakes, nonce exchanges,
WORKER_EXECUTE, mandatory verifiers, or log preflight. Old readers remain diagnostic and historical. Independent production review receipts,record-reviewattribution, and freshness checks remain unchanged. - The migration omits active UI
handoffs:metadata. Native task results or explicit selection carry the workflow forward;00-handoff.mdremains durable evidence. In the owner’s October 18 Copilot-target probe, the explicitly selected Probe Source returnedSOURCE_READY_20261018with no handoff controls. Read/search also appeared despitetools: [], so native restriction enforcement is not established. This was not a fleet handoff certification. - Tested Azure security, live governance, SKU and AVM contracts, cost provenance, durable decisions, atomic writes, and historical compatibility remain required. One independent technical review path is proposed; the owner must decide any change to the currently separate architecture cost-feasibility review. Deep review remains opt-in. Review history and unresolved findings stay intact.
- Telemetry is optional and contextual. Missing usage is
UNKNOWN, not zero. There are no established token, cost, or latency savings. Source and documentation checks are not native runtime end-to-end acceptance. - Prior READY evidence, including synthetic shutdown and leading approval prompts, is withdrawn. No runtime pilot or deployment acceptance is established. See the planning section for the PRD, backlog, roadmap, and delivery gates.
- The owner intentionally deleted APEX
-
Lessons from the nordic-foods run changed the session tooling and several validators (#764, open at the time of writing). Five changes can break existing projects:
- Reopening a step marks later steps stale.
start-step --forcesets dependent steps to the newstalestatus andplan_statustoSUPERSEDED. Treat unknown statuses as unfinished, complete each stale step again in order, and get a new Plan approval. See Reopen a completed step. - Step 2 cannot complete with leftovers.
complete-stepandtransition --completeexit 2 (step2_residue) while a*.tmp.mdfile or aFAILEDcost estimate is in the project folder. Move failed or superseded cost files to_meta/, delete scratch files, and rerun. - Reviews cannot freeze mutable files.
sku-manifest.json,00-handoff.md,README.md, recall state and*-decisions.jsonare rejected as supporting inputs, and existing reviews that declare them fail. Generate a new review without them and quote what you read, such as the manifest revision, in the review text. - A
phaseparameter may not have a default. Remove the default and pass the phase explicitly, then refresh the contract hashes. - Raw resources need an exceptions row. When the plan has a
### Raw Resource Exceptionssection, add one row per resource without an AVM module, then refresh the contract hashes.
New and changed commands and checks:
review-audit --attempt-input,validate:iac-contract --stagewithblocks, contract fieldsphase,consumesandtarget, policystatus, andsync:draft-contract-hashes. See the validation reference. - Reopening a step marks later steps stale.
-
The cost-estimate subagent now prices only through the Azure MCP
pricing_gettool and no longer uses any Azure Resource Manager MCP tool; its deployed-cost mode is removed. The ARM MCP server keeps only theCostManagementtoolset for the cost-optimization skill. The Architect prices candidate comparisons one decision per call, with exact meter hints, after a bundled call exhausted the 20-request budget in a live run. The public Retail Prices API fallback acceptspricing_getempty results (#764, open at the time of writing). Estimates priced earlier through ARM MCP need a refresh to carry the new source label. -
Azure MCP moves from 2.0.5 to 3.0.0 (#759, open at the time of writing). Version 3.0.0 rejects unknown tool parameters, so three skill examples were corrected. It lists
extension_azqronly when azqr 3.0.0 or later is installed, so the dev container now installs a pinned, checksum-verified azqr. References to an Azure MCPazdtool, which never existed, were removed. -
Terraform planning and CodeGen use the Azure MCP
azureterraformcommands for module versions, READMEs and provider docs, with the Registry API as fallback (#760, open at the time of writing). -
The committed governance baseline is now an offline-generated ALZ Corp default instead of a tenant snapshot, and Governance offers it as clearly labelled assumed governance next to live discovery (#762, open at the time of writing). Policy discovery also evaluates the diagnostic-settings initiatives’ conditional effects.
-
The Azure deprecation fetcher moved to the live Azure Updates feed, and the AVM index was refreshed (#761, open at the time of writing).
-
Requirements, Architecture, IaC Planner, Challenger and Context Optimizer moved from GPT-6.1 Sol to Claude Sonnet 5.5, still at high effort. Their bodies now follow the Claude body contract. The utility prompts and the Luna subagents keep their models (#758, open at the time of writing).
-
Explicit signed risk acceptance for non-production lab Plans was merged on October 10 (#747, #748, #750); this site’s pinned source predates it. Original findings and review verdicts remain unchanged. Kit permission can permit Plan approval and CodeGen; deployment needs separate adopter authority and human approval. Runtime completion, resume and downstream entry fail closed when evidence is missing, expired, revoked or changed; CI only warns. Step order is now checked, with a logged human override. See explicit lab risk acceptance.
-
Four workflow bugs were fixed (#743, open at the time of writing):
- Windows clones now keep
.bicepparamfiles with LF line endings, so the IaC handoff tree hash matches the dev container. - A confirmation review after several revisions can use any unused pass number, not just 1 to 3. Earlier review files stay in place.
- App Service apps that pull images from Azure Container Registry with a managed identity now get a registry that accepts ARM audience tokens. Deploy also checks this setting.
- The SKU manifest renderer reads
actual_skuas the schema defines it, by environment and then region, so As-Built no longer reports false drift.
- Windows clones now keep
September 2026
Section titled “September 2026”- The documentation site moved to the apex-docs repository. APEX retired its copy of the site after the cutover was verified (#701) and then removed the site tooling (#704).
- Governance, IaC check and maintenance workflows for adopting repositories became inactive templates that APEX no longer runs itself. Governance runs only after an explicit opt-in (#699).
- The Azure skills were aligned with upstream azure-skills v1.2.51 (#709) and then refreshed to v1.2.70 (#712). A weekly report now lists upstream skill changes for manual review (#710).
- Agent model assignments moved to the GPT-6 models (#706). The GPT agents were then aligned with vendor prompting guidance (#718), and the instruction files were deduplicated and corrected (#719).
- Agent frontmatter now uses the
GPT-6 Sol (copilot)andGPT-6 Luna (copilot)picker labels and setsreasoning-effortdirectly. Luna agents usemaxand all other agents usedefault(#720, open at the time of writing). - The step agents moved to Claude models. Claude Opus 5.5 (high effort) now runs requirements, architecture, IaC planning, challenger review and context optimization. Claude Sonnet 5.5 (medium effort) runs design, governance, code generation, deployment, as-built documentation and diagnostics. The Orchestrator and subagents keep their models. Claude agents now follow a body contract, which the validator enforces (#726, open at the time of writing).
August 2026
Section titled “August 2026”- The orchestrator moved to a newer MAI Code Flash model (#658).
- Agent authoring guidance moved from an always-loaded instruction file into an on-demand skill, and the governance policy baseline is now stored compressed (#659).
- Microsoft’s hosted Azure Resource Manager MCP server replaced the in-repository Azure Pricing MCP server for cost estimates. The Draw.io and Terraform MCP servers were retired, and the dev container now installs standalone Azure MCP (#670).
- A read-only scan classifies every tracked file before anything is archived, and archiving still needs human approval (#672). Redundant content was archived with checksums (#671).
July 2026
Section titled “July 2026”- Agents moved to the 2026 model successors. Claude Opus 5 took over architecture and IaC planning. GPT-5.6 Luna took over governance, deployment, review and cost estimation, and GPT-5.6 Terra took over diagnostics (#635).
- The dev container was validated on an Ubuntu 26.04 base (#529) and moved to Go 1.26 and TFLint 0.63.1.
June 2026
Section titled “June 2026”- The project was renamed from azure-agentic-infraops to APEX, with the apexops.pro domain (#458).
- Agents that used Claude Sonnet 4.6 moved to Claude Sonnet 5 (#515).
- A four-layer assessment harness now scores agent definitions (#463).
- CI enforces the per-step context budget (#466), and the model validators were merged into one script (#471). Orphaned scripts were removed and shared helpers were extracted.
- Agent hooks were reduced to the two with the most useful signal (#478). The tfsec scanner was removed, and gitleaks now runs only as a pre-commit hook.
- The documentation site was upgraded to Astro 7 and Starlight 0.41 (#506).
May 2026
Section titled “May 2026”- Workflow hardening added
apex-recall transitionfor single-write step changes, a deploy approval block in the Bicep and Terraform deploy agents, a three-attempt retry limit, and a fixed prompt shape for execution subagents (#431). - Skills no longer have tiers, and the Azure defaults live in one place (#385).
- GitHub operations use the
ghCLI first and fall back to MCP (#354). - The Azure Pricing MCP server became an independent fork at v5.0 to v5.4 (#356).
- Handoffs between workflow agents gained validation (#374), and Dependabot now covers the dev container, actions, npm and pip (#361).
- The Requirements agent moved to GPT-5.5 (#388).
April 2026
Section titled “April 2026”apex-recallreplaced the session-resume skill for saving and restoring workflow state (#328).- A deterministic skill replaced the governance discovery subagent (#318).
- Scripts, tests, schemas, registries and MCP servers moved under
tools/(#332, #334, #329). - Azure Developer CLI projects can live side by side in one repository, and the security baseline was expanded (#303).
- The Architecture Explorer was rebuilt on Cytoscape.js (#311).
- Model assignments were realigned to Claude Opus 4.6, Claude Sonnet 4.6 and GPT-5.4 (#307).
- Workflows require Node.js 24 (#344).
March 2026
Section titled “March 2026”- A context optimization program ran in three milestones (#200, #202, #203). It shortened agent bodies, moved long skill and instruction content into references, added CI validators and introduced the shared IaC skill.
- The Azure skills integration added a security baseline and stricter governance checks (#257).
- A documentation site was published with MkDocs Material (#208) and then migrated to Astro Starlight with the Nordic Fresh Foods demo (#267).
- CI was consolidated from eight workflows to five (#248).
- Agents that used GPT-5.4 moved to Claude Sonnet 4.6.
February 2026
Section titled “February 2026”- A full Terraform track joined the Bicep track in the main workflow (#183).
- The Challenger agent was added for adversarial review of workflow artifacts (#165).
- Requirements discovery became interactive, with questions asked through the chat UI (#100).
- The Context Optimizer agent and the golden principles skill were added (#188).
- Artifact templates moved into the
azure-artifactsskill (#108), and agent files gained numeric prefixes that follow the workflow order (#159). - The GitHub and Microsoft Learn remote MCP servers were added (#170), and the Azure Pricing MCP server was upgraded to v3.1.0 (#62).
- After release 8.2.0, the project was re-versioned to 0.9.0 to mark it as pre-production (#127).
January 2026
Section titled “January 2026”- The Deploy agent was activated and added to the workflow.
- The Requirements agent was added for Step 1.
- The Azure Resource Health Diagnostician agent was added.
- Artifact templates were introduced in two waves, with validation for template compliance.
- Versioning was automated and branch protection was added.
- Lefthook replaced Husky for Git hooks, and the dev container switched to uv for Python packages.
- The first Terraform support was removed. A full Terraform track returned in February.
- Releases 3.8.0 through 7.4.0 shipped during the month.
December 2025
Section titled “December 2025”- Release 2.0.0 on December 1 restructured the repository around the agent workflow. It added the first custom agents, the Azure Pricing MCP server and the dev container.
- The project was rebranded as Agentic InfraOps in release 3.0.0, and the current GitHub repository was created on December 4.
- The workflow was standardized at seven steps, with
-desand-absuffixes for design and as-built artifacts. - Presenter and workshop materials and a glossary were added.
- Releases 3.1.0 through 3.7.8 followed during the month.
May to November 2025
Section titled “May to November 2025”The project started in May 2025 as azure-agentic-infraops. Its first release provided the initial repository structure, basic Bicep templates, PowerShell deployment scripts and a GitHub Copilot instructions file. The detailed history for this period is not in the current repository.