Skip to main content

Configuration revisions

Why a running ticket never changes when the configuration on disk does.

Every process validates its configuration folder at startup, and saves it in the store as a revision. A revision is every manifest except Runtime and Plugin, with prompt files inlined and folder paths made absolute, named by the SHA-256 of its canonical form. The same manifests always give the same id, whatever the file layout.

A ticket is pinned to the revision it started on. Resume, recovery and every worker run it on that revision, loaded from the store. Changing a flow and restarting afe serve never changes a ticket already running, and the workers need no restart: new tickets take the new revision.

  • afe rerun TICKET starts the same ticket again, on its revision. afe run --revision ID starts a new one on an older revision.
  • A revision whose models, keys or harnesses are missing in a worker fails only that ticket, with the reason.
  • A revision freezes the configuration, not the code. A newer engine must still read older tickets.
  • A ticket created before revisions existed is not resumed. The call fails with -32006.

See also​