#[non_exhaustive]pub enum StepFact {
Show 15 variants
CeremonyStarted {
name: String,
},
ActStarted {
id: ActId,
label: String,
},
StepStarted {
id: StepId,
label: String,
role: RoleId,
role_name: String,
},
PromptAnswered {
step: Option<StepId>,
prompt: Prompt,
response: ResponseRecord,
},
BackendOperation {
step: StepId,
kind: String,
inputs: Value,
outputs: Value,
fingerprint: Option<String>,
},
AttestationRecorded {
step: StepId,
role: RoleId,
statement: String,
},
ArtifactWritten {
step: StepId,
name: String,
path: PathBuf,
sha256: String,
},
DeviationRecorded {
step: Option<StepId>,
text: String,
},
StepAttemptFailed {
step: StepId,
attempt: u32,
error: ErrorRecord,
},
StepCompleted {
id: StepId,
outcome: StepOutcome,
},
CeremonyCompleted {},
CeremonyFailed {
error: ErrorRecord,
},
EntropySeeded {
m: String,
source: String,
derivation: String,
},
EntropyContributed {
step: StepId,
epoch: u32,
contribution: String,
},
EntropyDrawn {
step: StepId,
path: String,
value: String,
},
}Expand description
Durable, transcript-worthy fact.
Every variant is recorded by the runtime’s transcript sink synchronously
before being forwarded to the UI. Action handlers emit
BackendOperation and AttestationRecorded; all other variants are
emitted by the executor at the corresponding lifecycle boundary.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
CeremonyStarted
Ceremony has started running.
ActStarted
Beginning of an act (named subdivision of a ceremony).
StepStarted
Beginning of a step.
Fields
PromptAnswered
A prompt has been answered and validated.
Fields
step: Option<StepId>Step that issued the prompt, if any. None for ceremony-level
prompts emitted before the first step (e.g. the ceremony-start
confirmation) or after the last step.
response: ResponseRecordRedacted response record.
BackendOperation
A backend operation completed and produced structured evidence.
Fields
AttestationRecorded
A human attestation was recorded.
Fields
ArtifactWritten
An artifact was written to disk.
Fields
DeviationRecorded
A deviation was logged by the operator.
Fields
StepAttemptFailed
A step attempt failed. Recorded per attempt, so a retried step shows
StepAttemptFailed{attempt: 1} followed by the operator’s retry
decision and, on success, StepCompleted. The final attempt of a step
that the run gives up on is followed by the terminal CeremonyFailed.
Fields
error: ErrorRecordStructured error record for the failed attempt.
StepCompleted
Step finished executing.
CeremonyCompleted
Ceremony finished successfully.
The transcript’s cryptographic identity is SHA-256(line_bytes)
for this line, recoverable by any reader, so the fact itself
carries no fingerprint field. The runtime forwards the value to
frontends through an out-of-band channel event.
CeremonyFailed
Ceremony failed or was aborted.
Fields
error: ErrorRecordStructured error record.
EntropySeeded
The ceremony entropy source was seeded with machine randomness.
Emitted once by the runner at ceremony start (run-metadata). Records
the machine contribution m and the frozen derivation scheme so any
value the ceremony later draws is re-derivable from the transcript
alone. Part of the entropy source family.
Like every fact, it is timed by the at on its chain envelope.
Fields
EntropyContributed
A human folded additional entropy into the seed, advancing the ratchet.
Emitted by the authored gather_entropy step. The verbatim operator
contribution is recorded so the epoch chain re-folds identically; it is
public, witnessed entropy, not a secret. Timed by its enclosing step
boundaries (and by the PromptAnswered that captured the input).
Fields
EntropyDrawn
A value was drawn from the entropy source (a nonce, certificate serial, or challenge).
Emitted whenever an action draws bytes from the entropy source. The
derivation path plus the recorded seed let rite verify re-derive
the value and confirm the right value reached the right consumer. Like
other action-emitted evidence, it is timed by its enclosing step.
Implementations§
Source§impl StepFact
impl StepFact
Sourcepub fn is_side_effect(&self) -> bool
pub fn is_side_effect(&self) -> bool
Whether this fact evidences work performed on the world: a backend operation, a written artifact, a captured attestation, or consumed entropy. Interaction records (an answered prompt, an operator deviation note) and lifecycle markers are not side effects: repeating the interaction is safe and simply produces a fresh record.
The runtime’s retry gate refuses to re-execute a step attempt that already emitted a side-effect fact.