Changelog¶
[Unreleased]¶
- Agents can be removed:
Marketplace.unregisteralso deletes the stored profile,DELETE /api/agents/{id},auctionsi agent remove, and a dashboard button. Past bids, contracts and reputation observations are kept. - Breaking (API): the WebSocket no longer accepts
?key=; sendX-API-Keyon the upgrade or a first{"type": "auth", "key": ...}message. - Fix: a WebSocket client that fell 10,000 events behind made every broadcast
raise
QueueFull; it now loses its oldest events instead. - Fix: a non-ASCII
X-API-Keyheader caused a 500 instead of a 401. - Fix: PostgreSQL
status()could include the password forkey=valueDSNs or passwords given as URL parameters; it now reportshost:port/dbnameonly. MarketConfig.restore(store)rebuilds a marketplace (agents and reputation) from a store; the CLI and API share it.open_storeaccept- Documentation site on Material for MkDocs with search, per-page descriptions, canonical URLs, sitemap, Open Graph and JSON-LD metadata; the changelog, security policy, contributing guide, benchmarks and every research report are published with working links. New pages: getting started, storage, development, roadmap. CI builds the site in strict mode.
- Tests for Markdown reports, bid validation, replay edge cases and CLI paths;
coverage gate raised to 93%.s
check_same_thread. - Dashboard: live view reconnects with backoff, skips malformed frames, reports a rejected key; clickable table rows work from the keyboard; labelled inputs; invalid JSON and out-of-range task counts are reported before calling the API.
- Dashboard test suite (Vitest + Testing Library), run in CI.
[0.2.0] - 2026-10-04¶
Mechanisms and bidding
- Forward auctions (first or second price) with Task.reserve_price;
direction-aware contracts and settlements.
- Bundle (combinatorial) reverse auction with exact winner determination.
- Capacity (multi-unit) procurement auction, pay-as-bid or uniform; Award.quantity.
- Learning bidder BanditMarkup (bandit: UCB1 or epsilon-greedy).
- ExplorationBonus selection policy.
Marketplace
- Concurrent bid solicitation with a deadline (bid_timeout), execution_timeout.
- HMAC-signed bids bound to agent, auction and task (bid_keys, require_signatures).
- New rejection codes TIMEOUT, BAD_SIGNATURE, BELOW_RESERVE.
- Capability index for discovery; retain_results=False for long runs.
Research
- Experiment configs: environment.adversaries, mid-run environment.changes,
factorial factors.
- Metrics: average_winning_markup, total_verification_cost, bid_cv,
relative_distance; buyer utility subtracts verification cost.
- Calibration reports (auctionsi calibration).
- Four new experiments (learning bidders, reputation decay, collusion screens,
factorial); all results regenerated.
Interfaces and storage
- Optional REST/WebSocket API with API-key auth (auctionsi[api], auctionsi serve).
- Web dashboard bundled in the wheel.
- PostgreSQL store (auctionsi[postgres], --db postgresql://...) on a shared SQL
base; SQLite schema v2 (indexes, tasks.saved_at).
- HTTP agents can be registered declaratively (kind: http).
Fixes - Reputation quality and claim calibration use delivered work only, so failed executions no longer count as quality 0. - Sybil copies of colluders keep an independent copy of the strategy. - Factor levels that share a plugin name get distinct arm labels.
CI: PostgreSQL service, coverage gate (88%), dashboard build, docs site.
[0.1.1] - 2026-10-03¶
- Fix: agent capacity is only held on simulated clocks. With a real clock a synchronous execution has already finished, and coarse OS timers (Windows) made agents look permanently busy.
- Text files are always read and written as UTF-8.
- First PyPI release (
pip install auctionsi), published with trusted publishing.
[0.1.0] - 2026-10-03¶
First release.
- Core models: tasks, capabilities, agents, bid proposals and stamped bids, contracts, execution results, settlements; auction and contract state machines.
- Marketplace running the full lifecycle (discovery, validated bid intake, award, contract, execution, verification, settlement, reputation), with a staged API for external bids, cancellation, capacity tracking and recovery (retry, fail-over, re-open).
- Mechanisms: first-price, second-price (critical value), multi-winner, open descending.
- Explainable selection policies: lowest price, highest quality, lowest latency, weighted score, risk-adjusted cost, reputation-adjusted cost.
- Deterministic verifiers, settlement policies, multi-dimensional reputation with decay.
- Event bus, traces, JSON logging, counters, SQLite persistence, deterministic replay.
- Simulation (synthetic agents/tasks, bid strategies, dynamics, adversaries), market metrics, experiment runner with manifests, statistics and Markdown reports.
- Adapters: Python function, HTTP, OpenAI-compatible (optional), human.
- CLI, YAML configuration, Plotly figures (optional), examples, benchmarks, research configs.