Context
The Engram → XERIS relay (engram/relay/) currently emits payloads from neurons/validator.py immediately after set_weights(). If the Engram chain reorgs, XERIS may consume outputs that never finalized.
Task
Add a finality guard: hold payloads in a pending queue and only submit to XERIS after the originating block has 3 confirmations on the Engram side.
Acceptance criteria
From TASKS.md — Relay Phase 2, last open item.
Context
The Engram → XERIS relay (
engram/relay/) currently emits payloads fromneurons/validator.pyimmediately afterset_weights(). If the Engram chain reorgs, XERIS may consume outputs that never finalized.Task
Add a finality guard: hold payloads in a pending queue and only submit to XERIS after the originating block has 3 confirmations on the Engram side.
Acceptance criteria
current_block >= origin_block + 3From TASKS.md — Relay Phase 2, last open item.