Skip to main content
Cartographer checkpoints capture a mission’s journal cursor and agent state so a run can be inspected, advisory-restored, or forked into a new mission. Restore is non-destructive — it reports divergence without mutating mission state — while Fork branches a fresh mission anchored at the checkpoint. See the Cartographer guide.
All endpoints require authentication and are workspace-scoped. Cross-tenant IDs return 404 (same shape as “not found”).

Endpoints


Mission checkpoints

List and create checkpoints scoped to a mission’s journal.

List checkpoints

Path parameters: Query parameters: Response: 200 OK
fork_of is omitempty: it appears only on checkpoints created by Fork (carrying the source checkpoint id) and is dropped from the JSON entirely on independent checkpoints. crew_id, label, and state.crew_container_id/state.meta are likewise omitted when empty. Errors:

Create checkpoint

Request body (optional):
Response: 201 Created — full checkpoint object. Errors:

Inspect, restore, and fork

Read a single checkpoint by ID, run an advisory restore that only reports drift, or branch a new mission from a checkpoint.

Get checkpoint

Path parameters: id is the checkpoint ID. The request has no body. Response: 200 OK — full checkpoint object. Errors: 401 without an authenticated workspace; 404 on a missing or cross-tenant checkpoint; 500 on a database read failure.

Restore (advisory)

Path parameters: id is the checkpoint ID. The request has no body. Returns the checkpoint plus the list of journal entries that have diverged since it was made. No mission state is mutated. Response: 200 OK
warn_divergence is always an array (empty when no drift). Callers should treat a long list as a signal to fork, not restore. Errors: 401 without an authenticated workspace; 404 on a missing or cross-tenant checkpoint; 500 on a database read failure.

Fork

Creates a new mission anchored at the checkpoint’s cursor, plus a matching fresh checkpoint in the new mission with fork_of = <source checkpoint id>. Request body (optional):
Auth: Authenticated user required (the checkpoint’s created_by is stamped with the caller’s user ID). Response: 201 Created
Errors: 401 if no user; 404 on missing or cross-tenant.

Delete

Path parameters: id is the checkpoint ID. The request has no body. Response: 204 No Content. Errors: 401 without an authenticated workspace; 404 on a missing or cross-tenant checkpoint; 500 on a database delete failure.
Forks that referenced the deleted checkpoint via fork_of are orphaned (their reference is set to NULL) — no cascade. The forked missions themselves are untouched.

Journal side-effects