checkpoint: extract committed contract to api/checkpoint

Commit

Soph3mo ago

Move the committed-checkpoint contract — the persisted document types (CommittedMetadata, CheckpointSummary, Summary, InitialAttribution, ...), the operation option types (WriteCommittedOptions/UpdateCommittedOptions/ PrecomputedTranscriptBlobs), the reader/writer interfaces, and the Write request union — into a new github.com/entireio/cli/api/checkpoint package.

The contract is now agent-free (it depends only on leaf packages: agent/types, checkpoint/id, redact, and go-git plumbing), so a storage backend can implement it without pulling in the CLI's agent/TUI/git machinery. This is the pluggable surface from #1433.

The git implementation (GitStore, Open, the Stores facade, ref resolution, and the git-only temporary/shadow-branch types) stays in cmd/entire/cli/checkpoint, which imports api/checkpoint and re-exports every moved symbol via aliases (aliases.go). All 65 existing importers compile unchanged — no call-site churn.

Notes:

  • PrecomputedTranscriptBlobs.isUsable is now exported (IsUsable) since the one caller is in the implementation package, across the new package boundary.
  • The Write union is now sealed to api/checkpoint: an unhandled WriteRequest can only be introduced there, so Write's default branch is a forward-safety net for future request types (the unknown-request unit test was removed as it can no longer be expressed from the impl package).
  • The api package imports the checkpoint/id leaf as-is; moving id under api/ can follow later if desired.

Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com Entire-Checkpoint: e8788a712424

Checkpoints

can you look at this branch / pr also in the context of https://github.com/entireio/cli/issues/1433 and especially https://github.com/entireio/cli/issues/1433#issuecomment-4722283362

Claude CodeOpus 4.8[1m]
View session
Checkpoint 1