Docs target current release v0.7.0.v0.7.1 is under review

Historical release guide · released 2026-08-01

Upgrade to opentine 0.6

Version 0.6.0 is the Surface Release. It exposes the v3 repository engines as operator-facing CLI verbs, makes deterministic replay a checkable CI verdict, adds scriptable artifact diff and cross-run statistics, and expands the shared JSON surface. It does not introduce a storage-format change.

Upgrade without migrating stored data

Terminal
python -m pip install --upgrade "opentine==0.6.0"
python -c "import opentine; print(opentine.__version__)"

# Existing stored data is not rewritten
tine verify representative-v0.5.tine
tine replay representative-v0.5.tine --verify
tine fsck --repo .

Portable *.tine files remain format v2 and .tine/repositories remain v3. The v0.6 compatibility gate covers stored data from the published v0.3.0, v0.4.0, and v0.5.0 releases. No v0.5-to-v0.6 data migration or batch re-save is required.

Repository operations become CLI verbs

Terminal
tine repo-show heads/main --repo .
tine repo-log heads/main --repo . --json
tine context event:sha256:... --repo .
tine repo-diff heads/main experiments/alt --repo . --exit-code
tine repo-search "tool:error" --repo .
tine repo-fork heads/main --from-event event:sha256:... --ref experiments/alt --repo .
tine repo-resume heads/main --ref experiments/live --repo .
tine evaluate experiments/alt --evaluator judge --score quality=0.9 --repo .
tine attest experiments/alt --signer reviewer --claim '{"approved":true}' --repo .
tine promote experiments/alt --name candidate --repo .

These commands share engines with the repository MCP tools. Read operations do not mutate the repository. Writes append immutable objects and move refs under their documented compare-and-swap rules; promote has no force escape for an existing promotion.

Replay, diff, statistics, and JSON

  • tine replay RUN --verify re-derives, saves, reloads, and compares a cached replay, exiting 0 when it reproduces and 1 on drift. Harness verification executes twice to test an external agent.
  • tine diff A B --json --exit-code emits the shared drift object and follows git-diff exit semantics: 0 identical, 1 different.
  • tine stats aggregates the legacy .tine_runs index using the same filters as tine ls; --deep explicitly loads artifacts for token and duration totals.
  • tine import gains a JSON receipt. tine tag --json is for tag listing only; mutating tag operations still refuse JSON mode.

Application checklist

  • Upgrade every reader and writer that shares opentine data.
  • Verify representative artifacts and run a deep repository fsck.
  • Use returned run and object IDs rather than predicting derived identifiers.
  • Keep file-index statistics separate from v3 repository search results.
  • Continue with the current v0.7 guide.