Skip to content

Task continuity

Checkpoints preserve small references for resuming a task after interruption. They are local, ignored files in .embraion/state/checkpoints/. Give each checkpoint a unique ID, a task ID, a phase (planning, implementing, validating, reviewing, blocked, or complete), and optional decision and next-action IDs. Acceptance and remaining-task references are project-relative file paths. Use IDs and files for durable details; do not put prompts, source code, diffs, credentials, or private narratives into IDs.

The Python API is create_checkpoint(checkpoint_id, *, task_id, phase, decision_id=None, next_action_id=None, acceptance_path=None, remaining_path=None, context_id=None, run_id=None, project=None). It stores hashes of .embraion/project.yaml, .embraion/knowledge.yaml, referenced task files, the existing context record and its selected knowledge files, the run record and its validation evidence. It also records the existing Git review snapshot, which covers HEAD, index, and Git-visible working files including untracked files. A missing required file prevents checkpoint creation. A repository without a usable Git snapshot can be recorded, but cannot later be reported fresh.

Call resume_checkpoint(checkpoint_id, *, project=None) to inspect a checkpoint. The result is valid, stale, or missing, with reasons, changed or missing anchors, and evidence paths. Resume is read-only and does not resume execution automatically. A changed Git snapshot invalidates prior conclusions, even if the task metadata still matches. Re-check changed work and evidence before acting. The result does not grant authorization or independent review approval. Previously granted user authorization remains governed by the trusted original session, not by a checkpoint.

Checkpoint IDs and artifact paths reject traversal and symlinks. Only project-relative references and hashes are stored. The local state directory is ignored by Git and should be protected according to project policy. A stale result is advisory evidence for the next task step, never an automatic approval or promotion.