mergedhumanPR #245Coordination
fix: bind Lab auction settlement to its task and payee
Current Lab auction settlement checks the payer and amount but not the payee or task. A real local run with the ledger transfer redirected to a losing bidder still reports passed, even though the auctioneer receives zero.
Author
@JamesCarnley
github profile →- Status
- Merged
- Merged on
- Sep 4
- Branch
- fix/lab-auction-settlement-evidence
Description
The pitch.
## Summary Current Lab auction settlement checks the payer and amount but not the payee or task. A real local run with the ledger transfer redirected to a losing bidder still reports `passed`, even though the auctioneer receives zero. This change binds the single-auction settlement evidence to the configured auctioneer/item, recorded task announcement and award, winner, integer amount, run and causal order. Duplicate/ambiguous records and known contradictions fail. Missing records remain `not_enough_evidence`; missing evidence cannot hide a known wrong payee. ## Source and scope Retains the correct-recipient distinction raised by #136, by @KaranSinghBisht: conservation alone does not prove that the intended parties received the intended allocation. This is a selected-scope adaptation to the existing bilateral auction, not a port of the weighted fan-out implementation. The weighted allocator/property corpus, independent payee-observed balances and broader split/refund workflow remain future profile candidates. These are correlated Lab records, not external settlement verification. No payment runtime, provider, default authority policy, amount-validation runtime, wire schema or new dependency changes. The separate award stage still evaluates the bidding result; this patch binds payment to the recorded award. ## Verification - Clean baseline: 342 tests passed. - Initial regression pass: 30 expected failures. - Final focused auction/coverage checks: 60 passed. - Full final suite: 385 passed, 8 existing warnings. - Real healthy auction: passed; real wrong-recipient transfer: settlement failed while ledger conservation remained passed. - Six in-memory omitted-check mutations were rejected by their corresponding regressions. - Genuine pre-change bundle reports `lab-0.2.4` versus `lab-0.2.5` and explicitly declines replay equivalence. - New healthy auction bundles verify and replay. Review was local self-review. No contributor code or external payment service was executed. Source #136 will be closed only after this selected correction merges, with the unported scope recorded.
Try it
Open PR on GitHubView diffCheckout locally
git fetch origin pull/245/head:pr-245
git checkout pr-245