Skip to content

Let seam /status resolve a reservation by pair - #711

Merged
anderdc merged 1 commit into
testfrom
fix/seam-status-by-pair
Aug 28, 2026
Merged

Let seam /status resolve a reservation by pair#711
anderdc merged 1 commit into
testfrom
fix/seam-status-by-pair

Conversation

@anderdc

@anderdc anderdc commented Aug 26, 2026

Copy link
Copy Markdown
Collaborator

Companion to the ventura-labs-allways-app red-team round (2026-08-26). Validator seam only.

Failure mode

/status without a swap_key walks the miner's per-hub reservation slots and answers with the freshest one. A consumer tracking one seat (the app) has no way to ask for its slot, so a stranger reserved on the miner's other hub was read as "another user holds this miner" — the app refunded a seat that had just been finalized for its user and left the reservation live and untracked — and a same-pubkey stranger there (a declared SOL address is not proof of ownership) was adopted as the consumer's own reservation.

/status now takes optional from_chain/to_chain and returns the slot carrying that pair (none if no such slot), unchanged behaviour without them. The read cache keys on the pair too.

Checks: ruff clean; pytest tests/ 2033 pass — the 3 test_bitcoin_signing failures are order-dependent and present on test already (they pass in isolation).

@anderdc
anderdc merged commit 5f78466 into test Aug 28, 2026
3 checks passed
@anderdc
anderdc deleted the fix/seam-status-by-pair branch August 28, 2026 19:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant