EREngineering Runtime

CONTROL PLANE RELEASES

Release notes

A read-only copy of the canonical coordinated Control Plane release history.

# Engineering Runtime Control Plane release notes

This is the canonical human-readable release history for the coordinated
Control Plane product: app-api, app-ui, demo-ui, api-docs and their deployed
configuration. Component repositories retain their own commits and build
identity; this file records the one customer-visible Control Plane release that
those exact revisions form together.

After `engineering-runtime-api-docs` is bootstrapped, its static
`/releases/` page publishes a verified read-only copy of these notes. The public
site is not the source of truth and must never describe an unreleased entry as
available.

Runtime binary releases remain independent. A Control Plane entry records its
minimum compatible Runtime version and links to the Runtime release notes; it
does not reuse or replace the Runtime version number.

## Unreleased — Control Plane v0.1.0 release candidate

**Theme:** static API reference, controlled Enterprise demo and portable
Enterprise app-ui distribution.

**Status:** Runtime `v0.9.8` is released, the execution-only app-api candidate
is deployed on Cloud Run, and `api.engineeringruntime.com` is now the
verified static Cloudflare Pages reference. Cloudflare Access now protects
`app.engineeringruntime.com`: an anonymous request receives the Access
challenge, and the product owner confirmed the authenticated browser flow
reaches the separate Enterprise portal login and works. app-ui is configured
against the native backend and Cloud Run public invocation is open at min zero /
max one for the active demo, while app-api still independently authenticates
every operational route. The coordinated Control Plane release remains
withheld only for final evidence/checklist reconciliation.

### Planned customer-visible changes

- `api.engineeringruntime.com` becomes a static, read-only API contract and
  Control Plane release-notes site with no live request execution.
- `app.engineeringruntime.com` becomes the Access-protected Enterprise UI and
  independently logs in to the execution-only app-api.
- The same app-ui source preserves that static Cloudflare Pages deployment and
  additionally produces a separately versioned unprivileged OCI candidate for
  customer OpenShift, GKE and Kubernetes deployments. app-ui and app-api remain
  separate images and scaling units. The first candidate records Control Plane
  `v0.1.0`, its source SHA and immutable digest; `latest` is not its sole
  identity.
- The public demo becomes static and makes no app-api request.
- Every Enterprise Runtime receives its own show-once Portal key, registers
  once, authenticates heartbeat/manual sync and verifies signed atomic
  policy/config generations.
- The native Cloud Run service becomes a controlled implementation detail and
  all operational routes authenticate independently.

### Compatibility and operator action

- Minimum compatible Runtime: `v0.9.8`. Runtime v0.9.7 can register and sync a
  signed generation, but cannot project that managed policy into the first
  governed operation's audit evidence; upgrade Enterprise agents before use.
- `/api/public`, embedded Swagger/portal execution and direct Runtime audit
  ingest are removed from the target Control Plane.
- Existing Community/local Runtime behavior remains available when Portal is
  disabled.
- Existing controlled-demo state is disposable. An enrolled Runtime may recover
  after an app-api SQLite reset only when a newly issued key returns the same
  pinned organization and policy/config signing key; otherwise use a fresh
  disposable Runtime Home.
- Customer image publication is not yet selected. Until registry, signing,
  SBOM/provenance, vulnerability and pull verification are approved and
  completed, release evidence must label the OCI digest `candidate, not
  distributed`.

### Release evidence

Release-candidate evidence is being recorded in the owning workspace proposal.
Runtime v0.9.8 has completed its separate public release, public CI, four-platform
Homebrew and private evidence gates. App-api tests, route/OpenAPI parity and the
live registration, signed sync, governed denial, replacement-key and
last-known-good paths pass against the closed Cloud Run candidate. The static
API reference is live from api-docs commit
`335938961995b0bcb6b1ebd540a85a174d84d6f3`, Cloudflare Pages deployment
`2736409d-3e8f-4f71-87ec-ddbcb33a5a10`: 23 paths, zero configured servers,
no request-execution controls or native Cloud Run URL, and the former Cloud Run
domain mapping is absent. App-ui commit
`7b8d3d3f898b2a3948aeff0acffaff103b0200e9` is live from Pages deployment
`20126b0f-d5d2-48b2-ad6f-809e88353c39` with the configured native backend:
public health returns 200, an operational request without a JWT returns 401,
the configured admin login and authenticated dashboard return 200, and CORS
allows only `https://app.engineeringruntime.com`. Cloudflare Access and an
authenticated browser smoke now pass: anonymous `app.` receives `302` to the
Access login and the product owner confirmed Access login followed by the
independent portal login. At release, this section will name the remaining
exact component identities, OCI candidate identity and known limitations. It
will never record passwords, tokens, API keys or secret values.