Browse documentation

Current writer default: v4 (requires opentine 0.26+). Legacy v1/v2 files and v3 repositories remain readable. Bare tine migrate now writes a sibling file; use --dry-run for preview only. Read upgrade notes.

Docs target stable release v0.27.0; v0.28.0 on main is unreleased.Stable vs main checked 2026-11-02

Source preview · unreleased · checked 2026-11-02

Fork with an edited step

Main at b32cbd7 declares v0.28.0. GitHub and PyPI still publish v0.27.0; this page describes source behavior, not the installed release. No installation link here targets v0.28.

Retain the prefix, edit the boundary

The source adds repeatable --set PATH=VALUE and --edit-file FILE to tine fork RUN --from-step K. The JSON edit file maps paths to values. Paths begin with inputs, model (an alias of model_info), or tool_info; dotted paths can descend into objects and list indexes. Values parse as JSON, falling back to strings.

Steps before K stay as recorded. K becomes an edited copy with outputs, error, cost, and usage cleared: it has not been executed. The original is only read. The fork stops at the edited boundary unless an explicit harness and prompt continue it.

Edits are provenance, not a successful repair

metadata.edit records the original step, the edited step ID, and SHA-256 digests of old and new values for each changed path—not copies of those values. The edit is bound into fork intent and identity. New results require new execution; changing input cannot retain the old step's success claim.

Refused edits

Out-of-scope paths, missing fields, no-op edits, and invalid step indexes exit 1 without writing. The edit options are refused with --ref repository forks. These source contracts can change before publication.

Inspect the pinned concepts and changelog. Use published fork commands for v0.27.0 and release status for availability.