Skip to content

Release Notes: 0.1.0

The first versioned release. It fixes the nine security findings of the September 2026 independent assessment, adds versioned, signed container images alongside the VPS tarball, and makes every service report its version.

Summary

  • Authorization. A person never grants more authority than they hold at that scope. Role assignments, Team membership sources, directory mappings and custom role definitions all require the granter's own permissions. The one exception: a Team's member managers may give its presets to other people when a preset goes beyond their own permissions only by content reading. See Roles and permissions.
  • Enterprise sign-in. While enterprise sign-in is configured, directory-provisioned accounts sign in only through the identity provider. Magic links, GitHub, and GitHub accounts linked earlier no longer sign them in. They also stay within their own Organization: they cannot use another Organization's invitations, and SCIM cannot change the address of an account that belongs to another Organization.
  • Stored credentials. The Console keeps no GitHub OAuth token; the database clears one written by any path. Any other provider token is encrypted at rest. Suspending or deactivating a person also deletes their own Connector OAuth tokens, grants and header values.
  • Audit. Management and legacy audit events are append-only in the database. Management audit events form a hash chain per Organization, export as NDJSON through GET /management/v1/audit-events, and verify with audit:verify. Trace exports and audit exports are audited.
  • Configuration secrets. Organization YAML env/NAME references cannot name platform settings, cloud SDK identity variables or platform namespaces. See Names Organization YAML cannot reference.
  • Regular expressions. Tool-rule patterns, the built-in secret and PII shapes and model guardrails match in RE2, in linear time, within fixed per-decision limits that fail closed. Evaluation assertion patterns run in a separate RE2 instance. See Regular expressions.
  • Telemetry. An Organization with standard OTLP disabled no longer causes other Organizations' gateway spans in the same export batch to be dropped.
  • Versions and images. Services report their version. Releases publish signed images with SBOMs; see Container images and Versions and compatibility.

Migrations

Migration Effect
0003_discard_github_oauth_tokens Clears the GitHub OAuth tokens earlier releases stored.
0004_append_only_audit_events Refuses update, delete and truncate of audit events; removing an Organization still cascades.
0005_end_directory_local_sessions Ends every Console session of a directory-provisioned account, once.
0006_keep_no_github_tokens Clears GitHub tokens on every account write, and removes GitHub accounts linked to directory-provisioned people.
0007_chain_management_audit Adds a hash chain to management audit events, chaining existing events once in seq order per Organization. New events draw seq after the chain lock, so seq values skip one per event.

All five are additive in the sense of Versions and compatibility: the previous release runs against the migrated database, so a code-only rollback stays available.

Upgrade steps

  1. Back up the database (Backup and restore).
  2. From the new release's platform/, in the gateway's environment, run pnpm --filter @mission-control/gateway config:check against your configuration. Fix what it refuses:
    • a tool-rule regex that uses look-around, backreferences or a pattern too large for RE2 fails with Rule <id> has an invalid regex; rewrite it;
    • an env/NAME reference to a reserved name fails with Secret reference names a reserved platform environment variable; move the value to an Organization-owned variable.
  3. Upgrade as usual (Upgrade and rollback).
  4. Tell directory-provisioned people that they will sign in again, through the identity provider.

Deprecations

None.

Breaking changes

  • Tool-rule regex patterns are RE2 expressions, not JavaScript ones: look-around and backreferences are refused, and \d, \w, \s and \b match ASCII characters only.
  • On text longer than one search window, a custom regex with an unbounded repetition (*, +, {n,}) counts as matching unless a window finds a match: block blocks and redact replaces the rest of the text. Bound the repetition, for example {1,64}, to keep large texts searchable.
  • Directory-provisioned accounts can no longer use magic links or GitHub while enterprise sign-in is configured.
  • Organization YAML can no longer reference platform environment variables.

Verification

After the upgrade:

curl --fail http://127.0.0.1:4001/readyz

Expected result: HTTP 200 with "version":"0.1.0", and each component in componentVersions reporting 0.1.0 except the Collector, which reports unknown. Verify published images as described in Verify an image.