Compose Semuta with completed paid Box discard

This commit is contained in:
Quintine committed 2026-09-30 01:25:22 +10:00
1 parent 9ea50a792e
commit 0e9945e333
9 files changed
+146 -28

No files matched your search

+7 -6
View File
@@ -7,14 +7,15 @@ 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)
now pauses a clean public ordinary-card discard with the same neutral
offer for every seat, independently of hidden Semuta possession. A
holder with a free hand slot can commit to the one fresh other-player
card; its physical claim and Semuta disposal resume the original
effect once. All-seat decline, four minimal legal AI profiles, exact
now pauses a clean public ordinary-card discard or the used Box after
a completed paid search with the same neutral offer for every seat,
independently of hidden Semuta possession. A holder with a free hand
slot can commit to the one fresh other-player card; its physical claim
and Semuta disposal resume the original effect or Box parent once.
All-seat decline, four minimal legal AI profiles, exact
JSON/SQLite continuation and competing-room CAS are connected. Phone
width showed the owned Commit control and the identical rival Continue
event without a private card face. Multi-card and other discard
event without a private card face. Multi-card and most other discard
producers, full-hand ordering, normal Richese starts and deployed
acceptance remain unfinished; the neutral passes and free-slot guard
are product safety choices, not publisher timing rulings.
+30
View File
@@ -1,5 +1,35 @@
# Dune implementation status
## 30 September 2026 — Semuta after a completed paid Box search
The explicit Richese Semuta preview now opens the same neutral
all-seat response when a clean paid Nullentropy Box search finishes
and places its used physical Box on the discard pile. The search
owner has already paid two spice, privately recovered its chosen
card and shuffled the remaining pile once. Another holder may commit
Semuta and take only the freshly discarded Box; declining preserves
the Box on top. Neither path re-pays, reselects, reshuffles or
reopens the search. Older discard cards and the privately recovered
card are not fresh targets.
Genuine-setup engine cases verify both claim and all-pass paths,
exact card census and discard order, every-seat JSON restoration
and stable two-spice payment. An isolated migrated SQLite room
restores the Box reaction after the paid selection, leaves automatic
recovery idle until a real choice and commits the claim through
authenticated seat control without changing saved seat rows.
Independent privacy and continuation reviews found no scoped issue.
This extends the previous phone-width neutral control surface; no
new browser POST was sent. Auction/CHOAM-market overlaps, multiple
fresh cards, other producer families and full-hand ordering remain
gated. This is not a complete Semuta, Richese or deployed claim.
`npm run check` passes typecheck, lint and 5,802/5,802 offline cases;
`npm run build` and the 55/55 local development HTTP cases pass.
The phone-width rules deep link shows the updated Box target boundary
and partial checklist. No authenticated production Box/Semuta play or
deployed revision was exercised.
## 30 September 2026 — neutral Semuta clean-discard prototype
The [bounded runtime](SEMUTA_SOURCE_UPDATE_20260907.md#30-september-2026--bounded-clean-discard-runtime)
+4 -3
View File
@@ -112,6 +112,7 @@ supersedes the older inactive-card observations above for one
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 other semantic discard families and
full-hand ordering are not connected; the ten-card inventory, cache
custody and public expansion start gate remain unchanged.
ordinary-card discards and the used Box after a completed paid search.
Other semantic discard families and full-hand ordering remain
unconnected; the ten-card inventory, cache custody and public expansion
start gate are unchanged.
+11 -8
View File
@@ -63,17 +63,18 @@ Do not ask again about normal targets, forced-discard owner bookkeeping, simulta
The explicit `semuta` development profile starts a fresh Richese roster
without opening ordinary expansion starts. It now interrupts **one public
ordinary-card discard** from a clean transaction with a neutral
fresh-discard opportunity for every seat, regardless of hidden Semuta
ordinary-card discard or the used Box after a completed paid Nullentropy
search**, provided the parent transaction is clean, with a neutral
fresh-discard opportunity for every seat regardless of hidden Semuta
possession. Each seat can Continue; only the canonical holder with a
free hand slot and a card discarded by another player can commit. The
sole eligible fresh card transfers automatically in the same accepted
action, then Semuta goes to the normal discard pile. The saved ordinary
card effect resumes once; passing by every seat preserves the original
discard and effect. No face from an undisclosed event is projected before
commitment. Owner-only multi-candidate selection support exists in the
reaction component and bot adapter, but no multi-discard producer is
activated in this first boundary.
card effect or Box parent resumes once; passing by every seat preserves
the original discard and effect. No face from an undisclosed event is
projected before commitment. Owner-only multi-candidate selection
support exists in the reaction component and bot adapter, but no
multi-discard producer is activated in this bounded runtime.
This neutral all-seat acknowledgement is a conservative **application
policy**, not a newly discovered publisher timing rule. The explicit
@@ -81,7 +82,9 @@ 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 and other typed discard producers
retain their existing automatic continuation; Semuta cannot claim those
events yet. No source ruling is inferred from this omission. The
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.