Technical enablement
Release notes
What has changed in {{product.name}} and this enablement portal. Newest first. Entries are grouped by theme and month from the product repository's history, and are written so anyone on the team can follow them. Breaking changes and migration notes are called out explicitly.
Versions. The product does not carry release version numbers; every commit to main deploys. Entries are therefore
dated themes rather than versions. Proposed: tag a release at the end of each month so notes can cite it; until then the image tag, which is the short commit SHA, identifies a running build.
October 2026: enablement portal and a second cloud in preparation 2026-10-22
This portal was written from the repository, and groundwork began for running a second instance on AWS. The Azure instance is unchanged.
Added
- Technical enablement portal. Architecture, components, feature reference, deployment, integrations, operations and implementation flow, grounded in the repository's runbook and ADRs.
- Tokenomics point of view linked from the home page.
Changed
- The build and deploy make targets gained an option to target AWS, and a networking request for that instance was drafted.
Fixed
- A typecheck failure caused by an orphaned UI component was removed.
Still in progress
- The AWS instance is not live; a networking request for it has been drafted. Nothing in this portal describes it as available.
September 2026: two rounds of user feedback 2026-09-14
Twelve fixes and twenty-one features answered two rounds of feedback from user acceptance testing, focused on making checkpoints and calibration harder to use wrongly.
Added
- Caveats on decisions. Choosing "accept with caveats" now requires the caveats to be written and keeps them on the decision record.
- Prepare a calibration before it decides anything, and archive superseded parameter sets.
- Savings provenance. A recommendation records the window its estimate covers, and notes can be added to it.
- Create gateway keys in the app for applications that have none. This was committed on 2026-09-14 on a working branch and ships when that branch is merged to
main; check the live app before relying on it.
Changed
- A checkpoint can no longer be started if it skips the gates before it.
- The health probe is reachable without a session, and no longer promises a timeout that did not exist.
Fixed
- Several pages returned errors until three additive database migrations were applied. They are now documented under migrations, with the rule that an additive migration leads the deploy.
Late August 2026: the gateway, shared scopes and the optimisation loop 2026-08-28
Gateway traffic became a first-class input. The platform now says whose spend is whose, divides shared billing scopes between applications, and closes the loop from finding to measured saving.
Added
- Continuous integration and deployment. Pull requests run typecheck, tests and a build; commits to
maindeploy to Azure through GitHub Actions with OIDC sign-in and no stored client secret. - Observed usage per workload, and apportionment of a shared billing scope by what the gateway observed.
- Manage workloads in the app, offer a new workload's identifier at creation, and let a key the app never provisioned be given a workload.
- Optimisation loop: raise, authorise, execute and measure.
- Oversight value model, computed at the bounds of its calibrated range, with parameters held per tier.
- Pricing rates read from Azure rather than typed in, and extra Foundry deployments priced as the model they are.
- Gap view showing how much of each scope's invoice the instrumented applications account for.
Changed
- A scope's cost is now the sum of the applications in it, and the unit rate is built only from cost that came with a quantity.
- Each section of the product was given one question to answer, and one answer to "whose spend is this".
- A year of traffic is no longer reported as one run, and demonstrations no longer ask what one outcome is worth.
- Unattributed spend is no longer named as a workload in findings.
Fixed
- One gateway key carrying a workload identifier that no longer existed used to discard every event in its batch. Events are now stored one at a time and the unknown identifier is treated as none.
- The real-time cost estimate is recorded in cents, not hundredths of a cent.
Mid August 2026: real provider connections and the checkpoint sequence 2026-08-21
Connections moved from seeded props to real billing data on Azure, AWS and Google Cloud, with credentials entered in the app and a scheduled job to keep them fresh.
Added
- Billing adapters for Azure OpenAI, AWS Bedrock and Google Vertex AI, alongside OpenAI and Anthropic, with named connections and a Test connection button.
- Credentials entered in the app, encrypted at rest, and scopes entered as labelled fields.
- Scheduled billing jobs on a Container Apps Job, running sync, reconcile and recompute.
- Estimated cost for Vertex from list prices, clearly marked, until a billing export exists.
- The recompute engine, AYCI snapshots recorded only when the index changes, and baselines so net advantage can be computed.
- Spend breakdowns by resource group, model family and workload, and a trend viewable by day, week or month.
- Checkpoint sequence. An engagement shows its position in G1 to G7, checkpoints can actually be started, internal staff can open and decide any tenant's checkpoint, and the console filters by status, gate and engagement.
- Workloads and outcome definitions authored in the product.
Changed
- Billing-API throttles are no longer reported as broken connections; connections in error are retried on the next scheduled run.
- Retry budgets were fitted inside the 240-second ingress deadline, and connections a run has no time for are deferred to the next run.
- Cached share is measured against all input, and reconciliation looks at whole days and corrects rather than accumulates.
Fixed
- Tokens and models hidden by multi-meter cost rows are now counted once, across Azure, Bedrock and marketplace-billed models.
- Scheduled job routes were being redirected to sign-in; they now authenticate with a shared secret instead of a session.
- An uninstrumented engagement was told its traffic was evading control; it is now told it has no gateway traffic.
Early August 2026: the initial build and first deployment 2026-08-14
The platform was built in phases against the build brief and first deployed on 10 August 2026.
Added
- Attribute: the CPVO engine and outcome attribution.
- Agentic: Gate A pre-dispatch authorisation and Component 8 live monitoring.
- Checkpoint console: G1 to G7, AMBER decisions and the escalation operating model.
- Optimise and control plane: the AYCI snapshot engine, the recommendation pipeline and the G6 authorisation gate.
- Authentication and navigation with Microsoft Entra ID, and the Azure Container Apps deployment stack.
- Administrators can manage provider connections, then edit and delete engagements and workloads. Demo tenants, in-app help and the runbook followed.
Changed
- The local development authentication bypass was removed, then reinstated as an opt-in tool that is off by default.
Fixed
- The container build now installs all dependencies in the builder stage, because Tailwind needs development dependencies.