Offer Semuta on clean early-ended Ornithopter discard

This commit is contained in:
Quintine committed 2026-09-30 07:38:45 +10:00
1 parent 0e9945e333
commit 2ec0422b79
8 files changed
+170 -38

No files matched your search

+13 -12
View File
@@ -7,18 +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)
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 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.
now pauses a clean public ordinary-card discard, the used Box after
a completed paid search, or an Ornithopter retired on early movement
ending 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, Box parent or movement queue 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. Completed-flight arrival, multi-card
and most other discard 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.
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,
+30
View File
@@ -1,5 +1,35 @@
# Dune implementation status
## 30 September 2026 — Semuta after an early-ended Ornithopter flight
The explicit Richese Semuta preview now interrupts the one public
Ornithopter discarded when its pilot ends movement before using every
available flight group. The first group has already moved its exact
forces and consumed one move; the card then leaves escrow exactly once.
Every seat sees the same neutral event before the saved movement queue
advances. Another holder with hand space can claim that retired physical
card and discard Semuta; all-seat decline leaves it on the pile. Both
paths advance the original turn once without moving forces again.
Genuine setup exercises a completed first group, early retirement,
JSON restoration, owner-only commitment by the legal AI, all-seat
decline, exact force/card census and stale-action rejection. An
isolated migrated SQLite room recovers the paused flight without
auto-advancing, projects only the owner's Commit control and commits
the claim through authenticated room CAS, preserving seat rows.
Completed flights with arrival/intrusion follow-up, competing suspended
transactions, multiple fresh cards and unresolved full-hand ordering
remain gated. This is not a complete Semuta or deployed Richese path.
Independent rule/continuation and privacy/recovery reviews found no
scoped defect. A throwaway direct production-engine run completed
genuine AI setup, moved one group, showed a neutral offer with owner-only
Commit, recovered the played card and advanced to the next seat with
one move and one arrived force. A phone-width local rules page rendered
the new boundary and Partial checklist. `npm run check` passed typecheck,
lint and 5,803/5,803 offline cases; `npm run build` and 55/55 Vite
development HTTP cases passed. No production deployment was verified.
## 30 September 2026 — Semuta after a completed paid Box search
The explicit Richese Semuta preview now opens the same neutral
+1 -1
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, Mirror Weapon and Juice of Sapho remain inactive. Source audits now identify Semuta's fresh-discard continuation requirements and Sapho's scoped ordering requirements; these are not runtime completion claims. 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, completed paid Box and early-ended Ornithopter discards; it does not implement other producers, full-hand ordering or normal Richese starts. 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).
+21 -17
View File
@@ -63,28 +63,32 @@ 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 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 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.
ordinary-card discard, the used Box after a completed paid Nullentropy
search, or an Ornithopter retired by ending movement early**, provided
the parent transaction is clean, with a neutral fresh-discard opportunity
for every seat regardless of hidden Semuta possession. The flight's
already committed movement and physical escrow remain intact; a claim
or all-seat decline advances the saved movement queue exactly once.
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 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
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. 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
pending gifts, competing responses, completed Ornithopter flights with
arrival follow-up 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.