- Project- and appliance-bound credentials
- Runner tokens are stored as digests and bound to the organization, project, runner identity, appliance fingerprint, and request-signing public key. Production rejects an unregistered or mismatched runner.
- Proof of possession and replay refusal
- Runner requests are signed with an Ed25519 key held by the runner. The control plane verifies the method, exact path, bounded body, timestamp, and nonce before issuing project context, and consumes each nonce once.
- Fenced legacy job lifecycle
- Claims, heartbeats, completion, and failure are bound to the job, attempt, and lease. Stale or mismatched lifecycle requests fail rather than settling another attempt.
- Release-bound Runner v2 verification
- The approved verify-only release has an exact source-controlled manifest, package digest, executable-bundle digest, root-owned prelauncher and service unit, and a retained install receipt before token use.
- Immutable verify-only outcome
- A successful or refused verification is recorded as an append-only terminal event. The worker uses a durable replay ledger and cannot convert the verification receipt into execution authority.
- Legacy CMS UI-001 refusal
- Generic queue routes, the legacy worker, workflow wrappers, and the collector entrypoint refuse selectors resolving CMS EDE UI-001. Its scope intent and activation remain held and nonclaimable.
- Separate artifact promotion
- A runner completion does not make an artifact releasable. Custody, scanning, redaction, human review, and package authorization remain independent gates.