Why is the mediator "load-bearing"? +
The ablation's middle column is the proof: run the identical society without adjudication and contested claims are quarantined at the round cap — 96 passengers stranded overnight versus 52 for a lone planner and 50 for the full society. Deleting one component makes the system worse than the baseline; that's an existence proof the component does the work.
Can I verify the results without an API key? +
Yes — that's the designed judge path. python scripts/verify_offline.py disables all sockets, runs the full society on the committed fixture, replays the manifest from the hash-chained log, and re-checks invariants I1–I5. Exit 0 means the run reproduced itself byte-for-byte with zero network.
What stops agents from arguing forever? +
A credibility currency: contesting a claim costs points, winning refunds them plus a premium, losing burns them. Argument is economically bounded — the bench reports the stake spent (40 for the full society vs 60 without a mediator), and rounds to quiescence stay finite.
Why does this need Qwen Cloud specifically? +
The society must be measured, not just demoed. qwen3.7-plus keeps five role personas affordable across ~60 turns per run; qwen3.7-max with thinking adjudicates five conflicting position papers; structured output makes claims mechanically executable; context cache reuses the 4k-token storm prefix every turn; the Batch API prices a 60-run ablation. Remove that stack and the benchmark becomes economically impossible.
Is this only for airlines? +
No. The negotiation core — ClaimLedger, DeadlockDetector, Commitment, Mediator — is domain-agnostic. examples/meeting_rooms.py rebuilds meeting-room booking on the same protocol in about 20 lines. Anywhere agents contend for scarce, exclusive resources, the physics transfer.
How solid is the code, really? +
327 tests, 99% coverage, green in ~5 seconds — covering ledger locking and double-claim rejection, commit→reveal mismatch rejection, the deadlock detector on synthetic wait-for graphs, credibility math, the ruling flow, invariants I1–I5, and a fixture guarantee that storm_dfw always produces at least one genuine deadlock. CI runs ruff, mypy, pytest, CodeQL, pip-audit, TruffleHog, and a wheel-install smoke test on every push.