Repository navigation
openadapt-flow 2.7.1
·
80 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
Flow 2.7.1 fixes loading of programs certified before Nov 8. Two optional
workflow fields added since then changed their certification digest, so they
failed to load. They now load under the reviewed sealed-omission rule, while a
program whose content changed is still refused. The release also makes write
ledger settlement atomic and extends zero-config verifier generation.
Upgrade notes
- A custom
LedgerBackendmust providetransaction(key), an exclusive journal transaction shared byevents()andappend(); a backend without it refuses ledger mutations. A held write is released only by a person:settle_sno longer releases it, andhalted_before_effectis nowREFUTEDwithretry_safe=False. See Verifier API. scaffold-verifier --proveno longer accepts the built-inmockmedandeffect-e2efixtures. It runs only against a proof source the caller passes tomain(record_check_proof_source=...).
Fixes
- Programs certified before the
Anchor.form_identityandTokenTemplate.bearingfields were added load again. When the current workflow-contract digest does not match, the loader tries the older form, leaving out only fields on the reviewed sealed-omission list for the bundle's format version that are unset andNone, and accepts it only if it reproduces the bound digest exactly. A program whose content changed is still refused. - Ledger settlements record the journal revision they observed, so a stale or concurrent observation cannot release a hold, grant a retry, complete a recheck or hand back an older result. Rechecks are bound to the original receipt and the exact set of validated later receipts.
Changed
scaffold-verifiercloses three gaps the zero-config benchmark found. A generated REST read now carriesrecords_complete: truewhen--complete-readdeclares it or one unpaged response was seen to hold the whole collection; otherwise it stays incomplete andverify-runreturns INDETERMINATE. A step counts as a write when the capture shows the page sending a POST, PUT, PATCH or DELETE to its own origin, or its store snapshots differ, not only when its label looks like Save.--probe-reads(with optional--probe-base) finds a read for an app that never reads the saved record back: it probes the collection and item reads the write implies with GET on the local machine, uses one only when it returns the written values and nothing outside it could change unseen (otherwise it refuses and writes the TODO draft), and records every probe (read_discoveryin the proof, orread_discovery.jsonwhen none confirms).