The record
Native session files belong to their runtimes, in formats that are private and change between releases. The record is Constant's answer: at every carry, the distilled conversation is snapshotted as neutral IR before the native session is written.
~/.constant/snapshots/<conversation>/ch04-from-codex.jsonEach snapshot — a volume — is written atomically, owner-only, after redaction. The trail ledger row for the carry references its volume. A failed record write never blocks a switch, but it is always announced.
The inversion this buys: the record is the durable copy of the conversation, and the runtimes' native sessions become reprintable projections of it. A deleted projection, a crashed switch, or a runtime format change can no longer be the end of a thread.
List the volumes
constant snapshots
constant snapshots --allLists the record volumes per conversation, from the ledger, with missing files marked.
Restore from any hop
constant restore ~/.constant/snapshots/<conversation>/ch04-from-codex.json
constant restore <snapshot-path-or-session-id> --to clauderestore reprints a fresh native session from a record volume. It always
mints a new session and never overwrites anything — least of all the record.
The default target is the runtime the volume came from; the restore is logged
to the trail so lineage stays joined.
Resume falls back to the record
constant resume wakes a conversation's latest live projection. If every
projection has been deleted, it reprints one from the latest record volume
first, then resumes that. The conversation survives its projections.
Conversations cross machines
Because the record is neutral and self-contained, a conversation is portable:
# machine one
constant pack cobalt-37
# -> cobalt-37.constant-pack.json
# machine two
constant unpack cobalt-37.constant-pack.json
constant resume cobalt-37pack bundles the conversation's ledger rows and every record volume into one
file. unpack writes the volumes into the local vault (volumes are immutable —
existing ones are kept, never overwritten), appends the ledger rows
idempotently, and re-mints the handle only if the local registry already gave
it to a different conversation. A pack carries the record, not native
projections; sessions reprint on arrival.
What the record is not
It is not a backup of your original runtime sessions — those are never touched. It records what Constant carried: each volume is the distilled, redacted thread as it crossed a runtime boundary. Conversations that never switch are not in the record.
Next: The alembic cartridge.