Mission history + replay
Every finished mission gets a Completed tab entry: directive, status,
duration, task/finding counts, and a best-effort learned-linkage (promoted
proposals whose signature matches one of the mission’s findings) —
/api/history lists all of them, /api/history/{id} drills into one
mission’s phases, tasks, findings, and executions.
Replay reconstructs from durable rows
A ▶ replay button rebuilds the whole build from durable rows only:
BuildReplayStream merges task lifecycle events (created/claimed/
done/cancelled/superseded), findings, and executions — plus the telemetry
event log where present — into one time-ordered stream, served at
/api/replay?mission=N. No positions are ever recorded; the replay client
recomputes layout itself through the same render path the live canvas uses,
at 1×–16× with a scrub bar, so the same recording looks right at any window
size, and live SSE simply pauses while replaying.
Honest fidelity limits, today
Global-ambience telemetry — claim_made/claim_released/host_seen/
memory_written — is recorded with mission_id=0 by design and is
deliberately excluded from this merge; a mission’s replay is built from its
task/finding/execution/mission-event rows alone. A mission recorded before
richer telemetry shipped, or one with no telemetry at all, still replays
correctly from those rows (graceful degradation) — it just won’t show the
ambience layer until mission_id is threaded through everywhere that emits
it, an open follow-up, not something this page claims already works.
The tapes on the site’s recordings page play through the same player the daemon’s Completed tab uses — see the UI tour’s Completed page for the replay bar inside the daemon’s console. (This page used to say the landing page’s hero was such a replay; the front page no longer carries one.)
corral-observe, a credentialed reverse proxy for remote viewing, forwards
this same UI — history and replay included — to anyone holding a read-only
observer token; corral-top is a lighter terminal viewport over the
adjacent live /api/state snapshot. See their pages in the CLI
reference.