Lock alpha scope, tracker auth, TOPLOC fraud verification, and deferred multi-tracker money-path work; supersede legacy fraud issues with ADR-0018. Co-authored-by: Cursor <cursoragent@cursor.com>
1.0 KiB
1.0 KiB
Status: ready-for-human
15 — H1: Commutative forfeit event ordering (deferred)
What to build
Define deterministic ordering when forfeit, charge, and payout events replicate concurrently. Forfeit snapshots amount at creation (~287) but apply order can desync pending balances under gossip.
Code refs:
packages/tracker/meshnet_tracker/billing.py—forfeit_pending(~280–292),_apply_lockedforfeit branch (~345–349)packages/tracker/meshnet_tracker/billing.py—_pending_since.setdefault(~324), wallet bind direct overwrite (~351)
Acceptance criteria
- Documented commit order: charges before forfeit before payout for same wallet epoch
- Forfeit events carry pending snapshot or
(term, index)for tie-break setdefaultreplaced with explicit merge rules on out-of-order apply- Property tests under shuffled event delivery
ADR links
- ADR-0019 §4
Blocked by
13-c3-c4-consensus-gated-settlement.md