Vote for your favorite SkillMD. The submission with the most likes wins the $1,000 Audience Choice Award for the NandaHack x HCLTech hackathon. Voting is open through September 25.Vote now →
mergedhumanPR #254Coordination

Reject duplicate bids in sealed-bid auctions

- Make the current advertised sealed-bid auction accept at most one bid from each bidder before award.

Author

JamesCarnley avatar

@JamesCarnley

github profile →
Status
Merged
Merged on
Sep 4
Branch
fix/sealed-bid-one-shot

Description

The pitch.

## Summary

- Make the current advertised sealed-bid auction accept at most one bid from each bidder before award.
- Reject a duplicate bid without mutating the first accepted bid.
- Emit an attributed `bid_rejected` event with the duplicate-bid reason so the trace explains the decision.

## Why

The current coordination layer stores bids in a dictionary and silently overwrites an earlier bid from the same bidder. In a sealed-bid workflow, that lets a bidder revise its bid after submission and makes the trace claim stronger semantics than the implementation provides.

The one-shot bid requirement was surfaced by legacy PR #5 from @mariagorskikh. This is a fresh implementation against current `main`; no contributor code was executed or copied.

## Scope boundary

This PR preserves the current first-price `highest` and `lowest` award rules. It does not add Vickrey pricing, reserve prices, bid encryption, a new coordination plugin, or other auction policy.

## Verification

- Coordination tests: 11 passed
- Full suite: 532 passed, 8 existing warnings
- Diff check passed
- Independent review: no findings for this isolated change

Try it

Open PR on GitHubView diff

Checkout locally

git fetch origin pull/254/head:pr-254
git checkout pr-254