Add alpha-hardening ADRs and issue plan from pre-release audit.
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>
This commit is contained in:
27
.scratch/alpha-hardening/issues/15-h1-commutative-forfeit.md
Normal file
27
.scratch/alpha-hardening/issues/15-h1-commutative-forfeit.md
Normal file
@@ -0,0 +1,27 @@
|
||||
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_locked` forfeit 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
|
||||
- [ ] `setdefault` replaced with explicit merge rules on out-of-order apply
|
||||
- [ ] Property tests under shuffled event delivery
|
||||
|
||||
## ADR links
|
||||
|
||||
- [ADR-0019](../../docs/adr/0019-money-path-consistency-multi-tracker.md) §4
|
||||
|
||||
## Blocked by
|
||||
|
||||
- `13-c3-c4-consensus-gated-settlement.md`
|
||||
Reference in New Issue
Block a user