Release 1.32.0
News ·
archied — EDA: playbook action ids, and a dispatch idempotency ledger
- Action ids (J1). Every action a later action references must now carry an
id. Ids are validated at load – unique and stable-identifier-shaped – and awhen/argsexpression naming an unknownactions.<id>is a load failure, not a runtime miss, the same reject-at-load rule already applied to a binding collision. - Reference classification is strict at load. A map-index reference (
actions[expr]), a non-literal index, and a reference to an unknown prior id are all rejected when the playbook loads; references are classified by identifier versus static access, and the when-compilation helper is shared between the load-time and runtime paths. - Dispatch idempotency ledger. A
playbook_dispatchesrow records a dispatch against(playbook_id, playbook_version, event_id, action_id), written withINSERT OR IGNOREand surfaced through the sharedstore.ErrAlreadyDispatchedsentinel. Module, channel and forge action positions are therefore at-most-once, which is what unblocks the side-effecting positions that were previously rejected at load. - The ledger is wired into production.
stateStoreDepsconstructsDeps.PlaybookDispatcher, so the ledger RPCs no longer answerUnavailablein a running daemon. This defect was found by the pre-release review of this change rather than by its tests.
Behaviour change: a playbook whose actions reference actions.<id> without declaring that
id, declare a duplicate id, or index actions with a non-literal value now fails to load
instead of failing at dispatch time.
archie-agent
The sandboxed runtime links storecontract and staterpc, so it carries the dispatch-ledger
contract alongside archied:
- The shared
store.ErrAlreadyDispatchedsentinel now describes both dedup ledgers –binding_dispatchesper(binding_id, capture_id), andplaybook_dispatchesper(playbook_id, playbook_version, event_id, action_id). Each is an at-most-once guarantee. RecordPlaybookDispatchis part of the store contract the runtime builds against.
archied and archie-agent move together in this release.