Offer Semuta after clean Sapho movement reorder

This commit is contained in:
Quintine committed 2026-09-30 08:22:23 +10:00
1 parent 836af6fb3a
commit eb4df0b99c
9 files changed
+281 -40

No files matched your search

+13 -13
View File
@@ -7,19 +7,19 @@ Expansion starts and full rules/publication acceptance remain gated.**
## Current checkpoint and work
The explicit [Semuta development preview](SEMUTA_SOURCE_UPDATE_20260907.md#30-september-2026--bounded-clean-discard-runtime)
pauses a clean public ordinary-card discard, the used Box after a
paid search, early-ended Ornithopter, public used Distrans after a
private transfer, or a final definite Truthtrance after its answer
is bound. Every seat sees the same neutral offer independently of
hidden Semuta possession. The Distrans gift remains private with
its recipient; Truthtrance history stays fixed through the claim.
A holder with a free hand slot can recover the fresh other-player
discard and dispose Semuta; saved effects and the movement queue
resume once. All-seat decline, minimal legal AI, exact JSON/SQLite
continuation and competing-room CAS are connected. Phone width
showed the owned Commit and rival Continue event without a private
card face. Promise-bound and queued Truthtrance, completed-flight
arrival, competing transactions, multi-card and most other producers,
pauses a clean public ordinary-card discard, used Box after paid search,
early-ended Ornithopter, public used Distrans after private transfer,
final definite Truthtrance or movement-order Juice of Sapho after
its queue reorder. Every seat sees the same neutral offer independently
of hidden Semuta possession. The private gift stays with its recipient,
Truthtrance history stays fixed, and Sapho's first/last queue resumes
once after claim or decline. A holder with a free hand slot can recover
the fresh other-player discard and dispose Semuta. All-seat decline,
minimal legal AI, exact JSON/SQLite continuation and competing-room
CAS are connected. Phone width showed the owned Commit and rival
Continue event without a private card face. Auction/battle Sapho,
promise-bound and queued Truthtrance, completed-flight arrival,
competing transactions, multi-card and most other producers,
full-hand ordering, normal Richese starts and deployed acceptance
remain unfinished. Neutral passes and the free-slot guard are
product safety choices, not publisher rulings.
+35
View File
@@ -1,5 +1,40 @@
# Dune implementation status
## 30 September 2026 — Semuta after clean movement-order Sapho
The explicit Richese Semuta preview now pauses after Juice of Sapho
physically discards its public card and commits a clean first/last
reorder of remaining combined shipment and movement turns. Every seat
sees the same neutral event before the active turn changes. A legal
holder can claim only the used Sapho and discard Semuta; all-seat
decline leaves Sapho in the ordinary pile. Both paths resume the
already committed order once, retaining protected last and prior
Guild timing without restarting any completed turn.
Genuine setup covers first reordering, last protection, all-seat
decline, one physical claim, exact card census and JSON views. A
corrupted saved queue, newly spent movement, changed Basic/Advanced
profile or altered faction roster rejects before claim; an isolated
migrated SQLite room restores the paused reorder and commits an
authenticated claim with unchanged seat rows. Independent rules
review found the initially missing timing-profile binding; the
failing-before/passing-after regression now covers both Advanced
mode and Guild identity. Auction and battle Sapho, competing parents,
full-hand ordering, normal Richese starts and deployed acceptance
remain outside scope.
Follow-up rules and independent privacy reviews found no remaining
scoped defect. A throwaway production-engine run completed genuine
AI setup, Sapho first reorder, neutral Semuta offer and bot claim;
the saved turn advanced to the reordered actor exactly once. The
phone-width rules guide rendered the bounded Sapho path as Partial.
An initial `npm run check` failed one expansion-roster CLI resume
while source edits were concurrent; the focused case passed after
source stabilized. The stable rerun passed typecheck, lint and
5,807/5,807 offline cases; `npm run build` and all 55 Vite development
HTTP cases passed after the timing-profile fix. No deployed revision
was exercised.
## 30 September 2026 — Semuta after a final definite Truthtrance answer
The explicit Richese Semuta preview now pauses the public card discard
+5 -4
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 now has an explicit bounded development preview for clean public ordinary-card, paid Box, early-ended Ornithopter, completed private Distrans and final definite Truthtrance discards; no private gift or unresolved promise becomes a fresh target. Other producers, full-hand ordering and normal Richese starts remain unfinished. Mirror Weapon and Juice of Sapho have separate bounded paths, not complete combined-mode certification. Other unfinished faction/module systems, mobile acceptance, difficulty-strength calibration and complete Advanced/expansion games still prevent goal completion. No start gate was removed.
- Semuta Drug now has an explicit bounded development preview for clean public ordinary-card, paid Box, early-ended Ornithopter, completed private Distrans, final definite Truthtrance and movement-order Sapho discards; private gifts, unresolved promises and auction/battle Sapho are not fresh targets. Other producers, full-hand ordering and normal Richese starts remain unfinished. Mirror Weapon and Juice of Sapho have separate bounded paths, not complete combined-mode certification. Other unfinished faction/module systems, mobile acceptance, difficulty-strength calibration and complete Advanced/expansion games still prevent goal completion. No start gate was removed.
The complete integrated validation checkpoint is recorded in [IMPLEMENTATION_STATUS.md](IMPLEMENTATION_STATUS.md).
@@ -113,8 +113,9 @@ explicitly opted-in Richese development profile. Neutral all-seat
responses, physical one-card recovery, a provisional free-slot guard,
minimal legal AI and saved continuation now work after clean public
ordinary-card discards, the used Box after a paid search, early-ended
Ornithopter, clean private Distrans transfer and final definite
Truthtrance without a queued question or bound promise. Other semantic
discard families and full-hand ordering remain unconnected; the
Ornithopter, clean private Distrans, final definite Truthtrance and
movement-order Sapho after its first/last queue is committed. Queued
questions, promise-bound answers, auction/battle Sapho and other
semantic discard families remain unconnected; full-hand ordering,
ten-card inventory, cache custody and public expansion start gate
are unchanged.
+7
View File
@@ -21,6 +21,13 @@ 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 movement-order Sapho now 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;
the queue, prior active seat and protected-last receipt bind saved
continuation. Once Around and Battle Sapho remain outside this
Semuta preview.
## Main findings
A post-`applyAction` pile diff cannot implement immediate Semuta. Ix Ambassador and Ixian ally replacement discard then draw directly. Ordinary Karama cancellation/purchase can reach replacement, Harkonnen bonus or a new auction pool indirectly. A stopped frame must resume at a named stage, never rerun its original public action.
+17 -14
View File
@@ -65,15 +65,17 @@ The explicit `semuta` development profile starts a fresh Richese roster
without opening ordinary expansion starts. It interrupts **one public
ordinary-card discard, the used Box after a paid Nullentropy search, an
Ornithopter retired by ending movement early, the used Distrans after
a clean private transfer, or a final definite Truthtrance after its
answer is bound**, provided the parent transaction is clean. Every seat
sees a neutral fresh-discard opportunity regardless of hidden Semuta
possession. The flight's committed movement and escrow remain intact;
a claim or all-seat decline advances its saved queue once. Distrans's
transferred card stays privately with its recipient and cannot be
claimed; only the played public Distrans enters the fresh batch. The
Truthtrance's public answer and history are already committed before
the offer, and neither is re-evaluated afterward.
a clean private transfer, a final definite Truthtrance after its answer
is bound, or movement-order Juice of Sapho after its queue is committed**,
provided the parent transaction is clean. Every seat sees a neutral
fresh-discard opportunity regardless of hidden Semuta possession. The
flight's committed movement and escrow remain intact; a claim or
all-seat decline advances its saved queue once. Distrans's transferred
card stays privately with its recipient and cannot be claimed; only
the played public Distrans enters the fresh batch. Truthtrance's
public answer and history are already committed before the offer.
Sapho's first/last queue and protected Guild-last choice stay committed;
only the turn-activation suffix waits for the reaction.
Each seat can Continue; only the canonical holder with a free hand
slot and a card discarded by another player can commit. The sole
@@ -90,11 +92,12 @@ 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 flights with
arrival follow-up, queued or promise-bound Truthtrance and other typed
discard producers retain their existing automatic continuation; Semuta
cannot claim those events yet. The completed Box's selected search card
stays private and its paid shuffle is not repeated when another seat
takes the used Box. No source ruling is inferred from this omission. The
arrival follow-up, queued or promise-bound Truthtrance, auction/battle
Sapho and other typed discard producers retain their existing
automatic continuation; Semuta cannot claim those events yet. The
completed Box's selected search card stays private and its paid shuffle
is not repeated when another seat takes the used Box. No source ruling
is inferred from this omission. The
separate [reaction privacy audit](SEMUTA_PRIVACY_REVIEW.md) explains why
auto-closing only when nobody secretly holds the card would leak
possession. The main game and public expansion gates remain closed.