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
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
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 --verifyre-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-codeemits the shared drift object and follows git-diff exit semantics: 0 identical, 1 different.tine statsaggregates the legacy.tine_runsindex using the same filters astine ls;--deepexplicitly loads artifacts for token and duration totals.tine importgains a JSON receipt.tine tag --jsonis 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.