Idunn/docs/deploy-provenance-target.md
Eureka a20568ef70 Idunn: the deployment brake is a stop, not a per-deploy gate
Delete the signed release path (deployment_brake_release, the operator
enroll/export verbs, the anchor option and flag, the consumed-once scan,
the durable re-verification, DeploymentAuthorization::validate_shape).
src/brake.rs is the one reader and writer of the stop
(idunn.deployment_stop.v1: engaged|clear, by from the process uid, reason,
at, sequence). Absent or clear admits; a foreign, corrupt, symlinked,
other-runtime or foreign-owned store fails closed. advance_sealing stamps
deployment_admitted_at_unix_millis (key 38) for Deploy and Rollback alike,
so static releases and rollbacks use the same stop.

Control record v6: key 38 changes canonical bytes, so v5 gets a legacy
layout, a lift, boot migration and pinned bytes tests. Key 16 stays a
never-written legacy field so old terminal records decode.

idunn-provision: deployment-brake-engage|clear|status take --store,
--runtime-id, --reason only; status exits nonzero unless deployments admit.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 17:24:34 +00:00

3.5 KiB

Deployment provenance instead of an approval gate: target

Status: target, Self, 2026-10-19 (campaign idunn-deploy-provenance in Eureka's mind). It states the ends. The map will live in deploy-provenance-map.md.

Live as of cut brake-is-a-stop (2026-11-13): the deployment brake is the stop of invariant 3 and the signed per-deploy release is gone. src/brake.rs reads and writes it; idunn-provision deployment-brake-engage|clear|status take only --store, --runtime-id and --reason; the writer's login name and the verb's clock are recorded; an absent or clear store admits. The transaction stamps deployment_admitted_at_unix_millis (record v6). Still planned: the typed authority provenance on the transaction (invariant 2), and a steward-scoped store.

Why

Operator, 2026-10-19:

The rule about the deployment brake was instituted by a cautious agent, but it doesn't actually suit how GameCult operates. The whole point of Eureka is to give the Mind, Persona and Self agency over its own Body. It's requiring my approval for every deployment that violates our principles. Yes, we certainly want to know which agent approved the deployment and why (this is the authority provenance which we might want to add to the transaction), but that's not the same as gating every deploy on my approval.

On the same day a StreamPixels deploy (tx-b40c7240) waited on the brake because only the root-held operator identity could release it. The agent running the deploy could neither proceed nor record why it should.

F:\Projects\CLAUDE.md says a deployment brake may gate artifact, revision, configuration, schema, unit or authority changes. It does not say that operator approval is the gate.

Invariants

  1. No deployment waits on a per-transaction operator approval. An agent acting for the Mind, Persona or Self may admit a deployment of a target it is authorized for.
  2. Every transaction carries typed authority provenance. That is: who approved it (agent or instance, and faculty), under which session or ruling, and why. It is written before Fencing, it is immutable, and idunn status and history show it. It is part of the transaction document, not a log line.
  3. A brake that survives is a stop, not a gate. The operator or an authorized agent can halt deployment of a target, and the halt is itself provenance-bearing. The deployment brake and the continuity lifecycle brake stay separate (F:\Projects\CLAUDE.md Infrastructure). Neither gates Idunn itself, and the deployment brake never gates continuity.
  4. Existing invariants hold. These are idunn-reincarnation target r2, route-continuity-target.md 1-7 and authority-map.md.

Scope

In:

  • The deployment-brake release path in Idunn and idunn-provision.

  • The provenance record on the transaction.

  • idunn status and history projection of the provenance.

  • The gamecult-ops runbooks that describe a per-transaction operator release (heimdall-discord-launch.md, idunn-host-raven.md, the StreamPixels runbook).

  • A static release (a sealed tree published by repointing a link, with no workload): its transaction records flip (release, previous release, the sha256 of the carried per-site file) beside the brake bytes. See deployment-authority.md, "Static release".

Out:

  • idunn-reincarnation. This campaign is mapped after that campaign's cut 2 merges, and coordinates with it rather than bundling.
  • Harness permission rules on the workstation, which are the operator's.
  • Heimdall's onboarding failures.