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 TICKETstarts the same ticket again, on its revision.afe run --revision IDstarts 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.