Add opt-in CHOAM market skip for the current turn
Verify and publish checkpoint container / container (push) Successful in 10m42s

This commit is contained in:
Quintine committed 2026-10-29 07:08:53 +11:00
1 parent 685bd8bdfc
commit 825f903cce
12 files changed
+536 -2

No files matched your search

+19
View File
@@ -1,5 +1,24 @@
# CHOAM empty-market automatic continuation
## Human opt-in for remaining markets — 29 October 2026
In a supported Basic CHOAM/classic game, a human CHOAM can explicitly finish
one market and choose to skip the rest of that turn's closing markets. The
persistent owner control cancels that choice before a future market. The choice
expires when the turn changes and is cleared on autopilot handover. A pending
sale, trade or response is never closed by it. A current-turn Truthtrance
record or pending paid deal conservatively keeps the market open; this does not
reveal whether a private answer has been fulfilled. Shared Bidding, optional
modules, other faction profiles and automated CHOAM seats retain their existing
behavior.
This is a revocable player preference to decline future optional actions, not a
publisher timing rule or a default skip. The decision does not inspect hand
contents, so the separate Bidding-only automatic-empty policy below is unchanged.
[Runtime](../tests/choam-market-auto-waiver.test.ts),
[continuation guards](../tests/choam-market-auto-waiver-guards.test.ts) and
[controls](../tests/choam-market-auto-waiver-controls.test.tsx).
## Final integrated verification
Final implementation is **Bidding-only**. The coordinator read the corrected nine tests and independent review `/tmp/dune-market-recovery-review.md`. Three production-room tests in `tests/automatic-response-recovery.test.ts` cover pure private reads, authoritative completion, exactly-once allied escrow refund and notification, racing CAS workers, and preserving a possible incoming card choice. `db/rooms.ts` now schedules market recovery; the engine still decides whether closure is legal. It also schedules existing empty Auditor offers and unaffordable audit payments, covered by a new production recovery case rather than a view mutation.