Offer Semuta after clean Once Around Sapho discard

This commit is contained in:
Quintine committed 2026-09-30 11:07:09 +10:00
1 parent 9872efcc1d
commit 989a986d68
10 files changed
+268 -45

No files matched your search

+12 -10
View File
@@ -9,21 +9,23 @@ Expansion starts and full rules/publication acceptance remain gated.**
The explicit [Semuta development preview](SEMUTA_SOURCE_UPDATE_20260907.md#30-september-2026--bounded-clean-discard-runtime)
accepts a fresh Richese roster with CHOAM & Richese and optionally
the physical Ix deck. Clean public ordinary-card, paid Box, retired
Ornithopter, private Distrans, final Truthtrance, movement-order
or pre-plan aggressor Sapho, battle-card and Ix-deck Thumper/Amal
discards open the same neutral offer regardless of hidden Semuta
custody. Pre-plan Sapho has already committed ordinary tie priority;
claim or decline restores the unsealed shared battle preparation
without another aggressor change. Thumper waits before its injected
Ornithopter, private Distrans, final Truthtrance, Once Around,
movement-order or pre-plan aggressor Sapho, battle-card and Ix-deck
Thumper/Amal discards open the same neutral offer regardless of hidden
Semuta custody. Once Around has already committed remaining bidder
order and a freed hand slot; pre-plan Sapho has committed tie priority.
Claim or decline retains the lot or unsealed shared battle preparation
without another order/aggressor change; a Black Market Semuta reserved
as the offered card cannot Commit. Thumper waits before its injected
worm/spice draw; Amal waits after halving personal spice and clearing
earlier opening passes. Mixed-owner battle cards require committed
owner-only selection of another player's fresh card; mandatory and
optional winner cleanup remain separate. Minimal legal AI, JSON/
SQLite continuation and competing-room CAS are connected. Mixed
arrivals, Once Around/remaining battle-choice Sapho, queued or
promise-bound Truthtrance, pending rewards, other producers, full-hand
ordering, normal Richese starts and deployed acceptance remain
unfinished. Neutral passes and free-slot guard are product choices.
arrivals, remaining battle-choice Sapho, queued or promise-bound
Truthtrance, pending rewards, other producers, full-hand ordering,
normal Richese starts and deployed acceptance remain unfinished.
Neutral passes and free-slot guard are product choices.
One [natural Advanced Moritani assassination](MORITANI_ASSASSINATE_LEADERS.md#29-september-2026--natural-revealed-card-game)
now proceeds from genuine battle loss to a dead-target Traitor reveal,
+28
View File
@@ -1,5 +1,33 @@
# Dune implementation status
## 30 September 2026 — Semuta after Once Around Sapho
The explicit Richese preview now pauses after a clean Once Around
Juice of Sapho public discard and finite bidder reorder, before the
lot's settlement suffix. Previously acted bids and funding remain
committed; discarding Sapho can admit its formerly full-hand holder
to the still-open lot. Every seat sees the neutral offer, and only
an eligible held Semuta owner can claim the used card. Claim or
all-seat decline resumes the same saved lot and active bidder once.
The receipt binds the auction event, bidding round, order, funding,
hands and spice. A Black Market Semuta reserved as the offered lot
remains in its seller's hand: the neutral offer persists, but the
owner's Commit is disabled and an attempted commit rejects before
any card moves.
Genuine auction setup, both first/last and full-hand paths, private
projection, JSON corruption checks and authenticated SQLite restart
were exercised. A direct production-engine smoke run observed
`offer`, active reordered bidder and one recovered physical Sapho.
The independent read-only rules/privacy reviews found two defects:
Black Market reservation and unbound bidding-round state; both were
corrected with focused regressions. `npm run check` passed typecheck,
lint and 5,819 offline tests; `npm run build` and all 55 local HTTP
tests passed. The phone-width local reference rendered the Once
Around guide. No deployed revision was exercised. Remaining
battle-choice Sapho, competing parents, full-hand take-before-discard
and public Richese starts remain gated.
## 30 September 2026 — Semuta after pre-plan Sapho aggressor
The explicit Richese preview now stages a clean pre-plan Juice of
+10 -10
View File
@@ -12,7 +12,7 @@ Audited 6 September 2026. The ten physical identities and their readable face in
- Player controls show both original plans, exact undialed counts or honest possible totals, the mode choice and a complete internal guide. No victim/death confirmation is added. The card stays physically reserved until standard cleanup; stale events, duplicate requests and corrupted source custody fail before resources change. All four AI profiles use public force possibilities, legal low-dial plans and revealed leader/bounty information. They preserve leader value when Artillery suppresses bounty and leave traitor/explosion precedence intact.
- Semuta Drug has a bounded preview for clean public ordinary-card, paid Box, retired Ornithopter, private Distrans, final Truthtrance, movement-order and pre-plan aggressor Sapho, and three separate battle discard stages. A fresh Richese roster may include the physical Ix deck: Thumper pauses before worm/spice draw and Amal pauses after halving spice before phase initialization. Multi-owner battle batches reveal candidates only after holder commitment and transfer one other-player card. Private gifts, unresolved promises, reactive arrivals, Once Around/remaining battle-choice Sapho and pending battle rewards remain outside scope. Other producers, full-hand ordering and normal Richese starts are unfinished. Mirror Weapon and Juice of Sapho retain separate bounded paths, not combined-mode certification.
- Semuta Drug has a bounded preview for clean public ordinary-card, paid Box, retired Ornithopter, private Distrans, final Truthtrance, Once Around/movement/pre-plan Sapho and three separate battle discard stages. A fresh Richese roster may include the physical Ix deck: Thumper pauses before worm/spice draw and Amal pauses after halving spice before phase initialization. Multi-owner battle batches reveal candidates only after holder commitment and transfer one other-player card. Private gifts, unresolved promises, reactive arrivals, remaining battle-choice Sapho and pending battle rewards remain outside scope. Other producers, full-hand ordering and normal Richese starts are unfinished. Mirror Weapon and Juice of Sapho retain separate bounded paths, not combined-mode certification.
The complete integrated validation checkpoint is recorded in [IMPLEMENTATION_STATUS.md](IMPLEMENTATION_STATUS.md).
@@ -113,14 +113,14 @@ opted-in fresh Richese profile, optionally with the physical Ix deck.
Neutral all-seat responses, physical one-card recovery, provisional
free-slot policy, minimal legal AI and saved continuation work after
clean ordinary-card, paid Box, retired Ornithopter, private Distrans,
final Truthtrance, movement-order/pre-plan aggressor Sapho, Ix-deck
Thumper/Amal and three battle discard stages. Pre-plan Sapho commits
aggressor tie priority before the neutral offer and resumes unsealed
battle readiness; Thumper pauses before worm/spice draw, and Amal
resumes its already-halved opening once. Multi-owner batches require
committed owner-only selection of one other-player card. Queued
questions, promises, reactive arrivals, Once Around/remaining
battle-choice Sapho, pending battle rewards and other sources stay
unconnected.
final Truthtrance, Once Around/movement/pre-plan Sapho, Ix-deck
Thumper/Amal and three battle discard stages. Once Around commits
the lot order and hand-slot release before a neutral offer;
pre-plan Sapho commits aggressor priority but leaves readiness unsealed.
Thumper pauses before worm/spice draw; Amal resumes its already-halved
opening once. Multi-owner batches require committed owner-only selection
of one other-player card. Queued questions, promises, reactive
arrivals, remaining battle-choice Sapho, pending rewards and other
sources stay unconnected.
Full-hand ordering, ten-card inventory, cache custody and public
expansion start gate are unchanged.
+6 -2
View File
@@ -21,6 +21,10 @@ promise or competing parent qualifies. A claim may move that consumed
card, never re-answer the question or rewrite its history; other
Truthtrance continuations remain automatic.
Clean Once Around Sapho stages `saphoAuctionDiscard` after the open
lot's finite bidder reorder, hand-slot release and public card disposal,
but before settlement. The saved receipt binds the lot, prior funding,
active bidder and event; claim or decline restores bidding once.
Clean movement-order Sapho stages `saphoMovementDiscard` after its
finite first/last queue and public card disposal are committed.
The reaction retires before `movementTurn` opens the new actor's turn;
@@ -29,8 +33,8 @@ Clean pre-plan aggressor Sapho stages `saphoAggressorDiscard` after
the aggressor event, ordinary tie priority and card disposal commit.
The receipt binds the same unsealed battle, readiness, player hands
and reserves. Claim or decline restores shared pre-leader preparation
without rerunning the aggressor change. Once Around and remaining
battle-choice Sapho remain outside this preview.
without rerunning the aggressor change. Remaining battle-choice Sapho
stays outside this preview.
Completed Ornithopter movement now offers the same retired public card
before its already committed arrival suffix only in a roster without
+14 -9
View File
@@ -65,16 +65,21 @@ The explicit `semuta` development profile starts a fresh Richese roster
with CHOAM & Richese and optionally the physical Ix deck, without
opening public expansion starts. It interrupts **clean public
ordinary-card, paid Box, retired Ornithopter, used Distrans, final
Truthtrance, movement-order or pre-plan aggressor Sapho, battle
and Ix-deck Thumper/Amal discards**, provided the parent transaction
has no competing response.
Truthtrance, Once Around, movement-order or pre-plan aggressor Sapho,
battle and Ix-deck Thumper/Amal discards**, provided the parent
transaction has no competing response.
Every seat sees the same neutral fresh-discard opportunity regardless
of hidden Semuta custody.
An early-ended Ornithopter advances the saved queue; a completed
flight resumes one committed arrival only without BG, Ecaz or
Moritani entry reactions. Distrans's gift remains private with its
recipient; Truthtrance answer/history and Sapho first/last order are
already bound. A clean pre-plan Sapho aggressor choice commits its
already bound. A clean Once Around Sapho discard commits its public
finite bidder order, retains prior bids/funding and frees the holder's
hand slot before the offer; the saved lot resumes without another
reorder. If Semuta itself is reserved as an offered Black Market card,
its owner cannot Commit, while every seat still sees the neutral offer.
A clean pre-plan Sapho aggressor choice commits its
ordinary tie priority and physical card before the Semuta offer; the
unsealed battle's shared readiness then resumes without another
aggressor change.
@@ -109,11 +114,11 @@ commitment. Other simultaneous discard producers remain unfinished.
This neutral all-seat acknowledgement is a conservative **application
policy**, not a newly discovered publisher timing rule. The explicit
free-slot requirement is a provisional safety guard, not the printed
resolution of full-hand take-before-discard. Auction, CHOAM market,
pending gifts, competing responses, completed Ornithopter arrivals
with BG intrusion, Ecaz Ambassador or Moritani Terror, queued or
promise-bound Truthtrance, Once Around or remaining battle-choice
Sapho, pending battle rewards and other typed producers retain their
resolution of full-hand take-before-discard. Normal auction/CHOAM
market, pending gifts, competing responses, completed Ornithopter
arrivals with BG intrusion, Ecaz Ambassador or Moritani Terror,
queued or promise-bound Truthtrance, remaining battle-choice Sapho,
pending battle rewards and other typed producers retain their
automatic continuation; Semuta cannot claim those events yet.
The completed Box's selected
search card stays private and its paid shuffle is not repeated