Skip to content
Certus

Replay

A closed run's ledger, projected back into something you can scrub through. It reconstructs what was recorded; it never becomes a second record.

What replay is

Replay takes one side of one closed run and projects its ledger into a bundle you can play. It boots nothing, calls no model, and does no input or output beyond fetching artifacts by hash. Given the same ledger it produces byte-identical output, and the time you ask for it does not enter the result.

The rule it exists under: a replay is a reconstruction of what the ledger already recorded. It never becomes a second record of what happened, and it never underwrites a PASS.

Every byte in a bundle carries a preimage — the ledger entry or the artifact hash it came from. A byte with no preimage is a defect, not a rendering detail.

Two neighbouring operations are worth separating. Verifying a run re-executes its oracles over the stored artifacts and recomputes the verdict hash — cheap, offline, no environment. Re-executing a run re-provisions the environments and runs the plan again, which is what catches environment drift and costs what a run costs. Replay is neither: it is a projection.

The eight tracks

A bundle has eight lanes, and a manifest lists each exactly once. A lane that has nothing in it is marked absent — a value the projector wrote, not a lane the player left out.

visual
What the application looked like. Presentation only; never an oracle input. It is a browser recording, a terminal cast, an assistant transcript, or a request waterfall, depending on the boundary that was driven.
action
The lifecycle of each compiled action and the stimulus it sent.
network
Protocol-framed messages on the wire, in both directions.
server
Unframed process output, exits, and breakage below the application.
database
State changes observed independently of the application.
artifact
Complete blobs the broker ingested.
oracle
Readings, each linked to the evidence it consumed. A result on this lane is a link into the ledger, never a badge the player invented.
chapter
Non-overlapping intervals derived from the plan that actually executed.

One clock

The playhead, every cursor, every chapter boundary and every join runs on the broker's clock. A source's own timestamp is never adjusted to make a child nest neatly or a frame line up — that would be a defect in Certus, not a display option.

Because sources have their own clocks, each is aligned against the broker's and the quality of that alignment is stated: exact, approximate, or unaligned when there was nothing to align against. Video is placed using an observed epoch plus the recording's own monotonic time, because a wall-clock media timestamp can step backwards.

Seeking always answers. Ask for any moment on any lane and you get one of: here is the frame, nothing has happened yet, there is a gap here, this lane has ended, or this lane is absent.

Fidelity and redaction

The visual lane can be full, reduced to sparse snapshots, or absent, and which one it is is declared on the bundle rather than degraded silently. Reducing visual fidelity never changes a grade.

Replay is idempotent on redacted bytes: what was redacted stays redacted, and a redaction reference is carried through, never inverted. Changing a redaction policy produces a new projector version and a new bundle; it never rewrites an existing one.

The player verifies the hash of every object it renders, and bundles can be exported as a digest-bound archive so a third party can open the reconstruction without calling Certus at all.

When it says something unexpected

The bytes did not hash to what the manifest names
The serious one. Certus will not paint evidence it cannot verify, so the pane stays empty. Report it.
The short-lived grant for a segment expired
Routine. Re-reading the bundle mints a new one.
A lane is absent
Nothing produced into it, or the artifact it needed has been collected under retention. The projection succeeded either way; the absence is a fact about the run.
The view says it is inconclusive
The projection and the ledger disagree. The ledger is not changed, the bundle is not rewritten, and the verdict is untouched — a replay view is not a verdict status.
The run is still going
There is no bundle yet. Replay projects closed runs, because a projection of a moving ledger is not reproducible.