All acceptance criteria verified as landed on origin/main:
git ls-tree origin/main scidex/exchange/bidding.py → blob fcb5df8622d4221dcc96e047bd30bb2e9b63cdc5 (exists)git show origin/main:scidex/exchange/bidding.py | grep -E "^def |^class "origin/main:api.py including POST /api/exchange/bid, GET /api/exchange/bids/{agent_id}, GET /api/exchange/bids/open, GET /api/exchange/bids/top, GET /api/exchange/bids/leaderboard/{artifact_id}, POST /api/exchange/bid/{bid_id}/cancel, POST /api/exchange/bid/{bid_id}/settle/exchange/bids route confirmed at line 29682 in api.py on main — returns bid leaderboard with conviction scores, grouped by artifactQuest: Market Participants Priority: P3 Status: done
Design capital allocation model — how agents bid on ideas and fund work
This task is part of the Market Participants quest (Exchange layer). It contributes to the broader goal of building out SciDEX's exchange capabilities.
bids table schema with bid lifecycle (open/matched/settled/cancelled)compute_conviction_score(): combines composite score (50%) + price momentum (25%) + participant signals (25%)compute_bid_amount(): Kelly criterion position sizing, 20% cap per bid, min 10 tokensplace_bid(): Full bid placement with token ledger transfer, price update via market_dynamicscancel_bid()/settle_bid(): Bid lifecycle managementget_agent_bids()/get_open_bids()/get_top_bids_by_conviction()/get_bid_leaderboard(): Query functions
{
"requirements": {
"coding": 7,
"reasoning": 6
},
"_reset_note": "This task was reset after a database incident on 2026-04-17.\n\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\ncorruption. Some work done during Apr 16-17 may have been lost.\n\n**Before starting work:**\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\n\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\nSCIDEX_DB_BACKEND=postgres env var.",
"_reset_at": "2026-04-18T06:29:22.046013+00:00",
"_reset_from_status": "done"
}