Offer Semuta after clean pre-plan Sapho aggressor discard
This commit is contained in:
1 parent
dffbe7b9f7
commit
9872efcc1d
11 files changed
+297
-61
No files matched your search
+29
-29
@@ -10,19 +10,20 @@ The explicit [Semuta development preview](SEMUTA_SOURCE_UPDATE_20260907.md#30-se
|
||||
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
|
||||
Sapho, battle-card and Ix-deck Thumper/Amal discards open the same
|
||||
neutral offer regardless of hidden Semuta custody. Thumper pauses
|
||||
before its injected worm or spice draw; Amal pauses after halving
|
||||
personal spice and clearing earlier opening passes, before phase
|
||||
initialization. Claim or decline resumes each saved suffix once.
|
||||
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, auction/battle
|
||||
Sapho, queued or promise-bound Truthtrance, pending rewards, other
|
||||
discard producers, full-hand ordering, normal Richese starts and
|
||||
deployed acceptance remain unfinished. Neutral passes and free-slot
|
||||
guard are product safety choices, not rulings.
|
||||
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
|
||||
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.
|
||||
|
||||
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,
|
||||
@@ -285,21 +286,6 @@ AI policies and concurrent SQLite continuation are connected. Other expansion
|
||||
payment families, gifts and combined modules remain gated; this is not a
|
||||
complete Leader Skills or Tleilaxu certification.
|
||||
|
||||
The main page
|
||||
labels its build's Git commit in the lobby and active-table masthead; local
|
||||
Git HEAD does not represent uncommitted work. The main-branch container
|
||||
workflow publishes an image but does not deploy the live site automatically.
|
||||
|
||||
Current work adds [discussion moderation](ADMIN_DISCUSSION.md): owners/operators
|
||||
can mute or unmute new public/private messages from a human seat. History,
|
||||
incoming messages, game state and credentials remain saved; the setting follows
|
||||
recovery/handover. Atomic authority/version fences, durable audit and exact
|
||||
admin/message retries are connected. This is partial participant support;
|
||||
access revocation, participant removal, assisted recovery, permanent deletion,
|
||||
bulk actions and backup/operations tools remain unfinished.
|
||||
|
||||
[Participant AI](ADMIN_PARTICIPANT_AI.md) checkpoint `2cddf03` is pushed. Types/lint,
|
||||
|
||||
Earlier [complete-game integration samples](IMPLEMENTATION_STATUS.md)
|
||||
finished 62 genuine games: Basic Leader Skills with Tleilaxu, Moritani,
|
||||
Ixians or CHOAM; Basic/Advanced classic Homeworld + Nexus; all three paired
|
||||
@@ -346,6 +332,20 @@ regardless of hidden card custody; this privacy-preserving timing is
|
||||
allied splits, non-Bidding sources, Betrayal and complete Nexus remain gated.
|
||||
This source is not in the live image.
|
||||
|
||||
The main page
|
||||
labels its build's Git commit in the lobby and active-table masthead; local
|
||||
Git HEAD does not represent uncommitted work. The main-branch container
|
||||
workflow publishes an image but does not deploy the live site automatically.
|
||||
|
||||
[Discussion moderation](ADMIN_DISCUSSION.md): owners/operators
|
||||
can mute or unmute new public/private messages from a human seat. History,
|
||||
incoming messages, game state and credentials remain saved; the setting follows
|
||||
recovery/handover. Atomic authority/version fences, durable audit and exact
|
||||
admin/message retries are connected. This is partial participant support;
|
||||
access revocation, participant removal, assisted recovery, permanent deletion,
|
||||
bulk actions and backup/operations tools remain unfinished.
|
||||
|
||||
[Participant AI](ADMIN_PARTICIPANT_AI.md) checkpoint `2cddf03` is pushed. Types/lint,
|
||||
5,408 offline tests, 52 HTTP tests, build, twenty-two administrator HTTP groups
|
||||
and desktop/mobile browser acceptance passed. Deployment delivery was
|
||||
unconfirmed at that checkpoint; the current production revision is recorded
|
||||
@@ -541,7 +541,7 @@ These links define bounded working behavior, not complete module certification.
|
||||
| Expansion factions | [Ixians/Tleilaxu](IX_PROTOTYPE.md) and [all seven faction selections](EXPANSION_FACTIONS_PROTOTYPE.md): genuine setup, Ecaz six-force placement and [Advanced Loyalty](ECAZ_LOYALTY.md), separate optional card variants, private controls and saved per-lot Ixian/Richese decline. Actual special-lot exchange remains pending. |
|
||||
| Leader Skills | [Common lifecycle](LEADER_SKILLS_RUNTIME.md), [known skilled capture](LEADER_SKILLS_CAPTURE.md), [Mentat question preview](MENTAT_QUESTION.md), [Bureaucrat payments](BUREAUCRAT_PAYMENTS.md), five battle disciplines, [Planetologist](PLANETOLOGIST_RULES.md), [Suk Graduate](SUK_GRADUATE_RULES.md), [Rihani and other battle effects](LEADER_BATTLE_EFFECTS.md), [Smuggler shipment](SMUGGLER_SHIPMENT.md), [No-Field](SMUGGLER_NO_FIELD.md) and [battle collection](SMUGGLER_BATTLE.md), [Sandmaster routes](SANDMASTER_MOVEMENT.md) and [worm rides](SANDMASTER_WORM.md), [Banker spending](SPICE_BANKER_RUNTIME.md), [Diplomat defense](DIPLOMAT_DEFENSE.md) and [bounded retreat](LEADER_SKILLS_RULES.md#bounded-diplomat-retreat-interpretation). Remaining bands and combinations are explicit in those contracts. |
|
||||
| Discoveries | [Prototype](DISCOVERY_PROTOTYPE.md): genuine setup, Great Maker, seven cards/eight tokens, inspection and stash rewards, nested sites, signed later free entry, carried Ornithopter, sole Cistern, bounded Orgiz transfers, Jacurutu income, Testing Station and Shrine. Orgiz's per-deposit interpretation, contested/shared benefits and mixed physical allocation remain provisional or pending. The Orgiz path in current source is not yet deployed. |
|
||||
| Nexus/Homeworlds | [Decision index](RULE_DECISIONS.md) links each integrated faction family, native/borrowed effects, physical custody, private choices, payments and transport. [CHOAM Secret Ally trade and bounded after-victory inspection](NEXUS_CHOAM_SECRET_ALLY.md), [Moritani Secret Ally losing-card retention](NEXUS_MORITANI_RULES.md#secret-ally-losing-card-retention-prototype), [Ecaz private yes/no traitor inquiry](NEXUS_ECAZ_RULES.md#bounded-secret-ally-traitor-inquiry-runtime) and [Emperor extra revival](NEXUS_EMPEROR_SECRET_ALLY_RUNTIME.md) are connected. Uniform CHOAM winner/Moritani loser windows and Ecaz inquiry scope/audience are explicit product inferences, not publisher rulings; Emperor purchase remains pending. A source audit or helper alone is not a completed effect. |
|
||||
| Nexus/Homeworlds | [Decision index](RULE_DECISIONS.md) links each integrated faction family, native/borrowed effects, physical custody, private choices, payments and transport. [CHOAM Secret Ally trade and bounded after-victory inspection](NEXUS_CHOAM_SECRET_ALLY.md), [Moritani Secret Ally losing-card retention](NEXUS_MORITANI_RULES.md#secret-ally-losing-card-retention-prototype), [Ecaz private yes/no inquiry and bounded native Duke Cunning](NEXUS_ECAZ_RULES.md#bounded-native-cunning-duke-vidal), [Emperor extra revival and bounded bank-auction purchase](NEXUS_EMPEROR_SECRET_ALLY_RUNTIME.md) are connected. Uniform CHOAM winner/Moritani loser windows, Ecaz inquiry scope/audience and Ecaz Cunning's Battle-only window are product inferences, not publisher rulings. Source audits or helpers alone do not certify full module games. |
|
||||
| Truthtrance | [Spice facts](TRUTHTRANCE_SPICE_FACTS.md), [card counts](TRUTHTRANCE_CARD_COUNT.md), [hand inventory](TRUTHTRANCE_HAND_INVENTORY.md), [recorded knowledge](TRUTHTRANCE_KNOWLEDGE.md), and [Basic/no-Guild Advanced reserve-shipment promises](TRUTHTRANCE_SHIPMENT_PROMISES.md) use authoritative private state. Earlier readiness audits do not supersede these follow-ups. |
|
||||
| Other cards | [Sapho runtime](JUICE_OF_SAPHO_RUNTIME.md) includes first among remaining unstarted movement turns after Advanced Guild has finished. [Recruits](RECRUITS_RUNTIME.md) connects clean Revival play; [Harass & Withdraw](HARASS_WITHDRAW_RUNTIME.md) and [Reinforcements](REINFORCEMENTS_RUNTIME.md) connect bounded battle effects in the same independent three-card preview. Richese card contracts and the checklist identify other connected effects and explicit gaps. |
|
||||
| Multiplayer | [Public and private discussion](TABLE_DISCUSSION.md), saved rooms/seats, [recovery](../README.md#saved-seats-and-reconnecting), uncertain-request retry, [own-seat AI](AUTOPILOT.md), [named-player AI permission](SEAT_AI_PERMISSION.md) and [voluntary seat handover](SEAT_HANDOVER.md) have connected controls and recovery evidence. |
|
||||
|
||||
@@ -1,5 +1,29 @@
|
||||
# Dune implementation status
|
||||
|
||||
## 30 September 2026 — Semuta after pre-plan Sapho aggressor
|
||||
|
||||
The explicit Richese preview now stages a clean pre-plan Juice of
|
||||
Sapho discard after its public card and single aggressor/tie-priority
|
||||
choice commit, before either combatant closes shared preparation.
|
||||
Every seat sees the same neutral offer; a different held Semuta owner
|
||||
may recover exactly that card or all seats may decline. The saved
|
||||
receipt binds the battle event, Sapho event, committed priority,
|
||||
unsealed readiness, hands and force custody. A resolved response
|
||||
retires the frame without replaying the aggressor choice or battle;
|
||||
both combatants can still declare ready and choose plans.
|
||||
|
||||
Genuine faction setup, owner-only projection, saved JSON, authenticated
|
||||
SQLite room CAS/restart and legal AI claim/pass were exercised. A direct
|
||||
production-engine smoke run observed `offer`, an unsealed battle and
|
||||
one recovered card with unchanged priority. Focused tests passed;
|
||||
`npm run check` passed typecheck, lint and 5,816 offline tests;
|
||||
`npm run build` passed; all 55 development HTTP tests passed. The
|
||||
phone-width local rules page rendered the pre-plan guidance. Two
|
||||
independent read-only rules/privacy reviews found no scoped defect.
|
||||
No deployed revision was exercised. Once Around and remaining
|
||||
battle-choice Sapho, competing parents, full-hand sequencing, normal
|
||||
Richese starts and publication acceptance remain gated.
|
||||
|
||||
## 30 September 2026 — Semuta after Ix-deck Amal
|
||||
|
||||
In the explicit Richese preview with the physical Ix deck, playing
|
||||
@@ -1041,7 +1065,8 @@ validated restore, server health display or unified action-history entry yet.
|
||||
|
||||
Twelve isolated in-memory D1 backup cases pass, including exact replay, revoked
|
||||
access, unversioned concurrent changes, highly escaped state rejection, the
|
||||
32,768-record download-audit capacity boundary and duplicate snapshots. A throwaway genuine game created in an isolated store was
|
||||
32,768-record download-audit capacity boundary and duplicate snapshots.
|
||||
A throwaway genuine game created in an isolated store was
|
||||
captured, listed and downloaded once; its room version remained zero and its
|
||||
export receipt count was one. The signed-out local browser showed the owner
|
||||
gate. A separate intercepted local UI view showed an older snapshot available
|
||||
@@ -1054,7 +1079,8 @@ passed 5,662/5,662 cases with zero failures.
|
||||
missing `Player.fremenNexusMovementBlockedTurn` type field. The 1,800,000-byte
|
||||
per-snapshot cap, 16 MiB per-room and 64 MiB global quotas, bounded export
|
||||
ledger without archival, absent chunked backups, and unavailable live NAS Apps
|
||||
session keep saved-game and deployed acceptance open. No production game or credential was modified.
|
||||
session keep saved-game and deployed acceptance open. No production game or
|
||||
credential was modified.
|
||||
|
||||
## 28 September 2026 — rules-reference duplicate links
|
||||
|
||||
@@ -1339,7 +1365,25 @@ force creation bug that was reproduced and fixed. Browser QA exercised natural
|
||||
and summoned offer/response/ride controls from genuine projected views with
|
||||
isolated GET interception and blocked POST; no room was mutated. Full module
|
||||
games, second Cunning offers during interrupted controls and Great Maker,
|
||||
combined modules and the absent-faction protection remain gated.
|
||||
combined modules and the absent-faction protection remain gated. A disconnected
|
||||
Moritani Atomics quote is not a runtime effect.
|
||||
|
||||
## 26 September 2026 — Unified administrator action history
|
||||
|
||||
[Action history](ADMIN_ACTION_HISTORY.md) reads the nine existing durable audit
|
||||
sources with date/group/search filters, pagination, actor/target attribution and
|
||||
public recorded settings. Live owners/operators receive reasons; viewers receive
|
||||
none, and reasons are never searched. No saved-game or message table is read.
|
||||
Records remain available after target removal, with malformed metadata handled
|
||||
without leaking raw contents or breaking the page.
|
||||
|
||||
Independent review found and corrected unsafe role coercion, a rejected-field
|
||||
search oracle, affected-account name lookup and missing player-circle changes.
|
||||
Focused source/SQL regressions and genuine configuration receipts cover these
|
||||
boundaries. Real-runtime HTTP checking exposed workerd’s five-term compound-query
|
||||
limit; materialized source groups and an isolated D1 regression cover the fix. Required checks, HTTP/browser acceptance and preservation accompany
|
||||
the checkpoint separately. This is successful-operation history; failed attempts,
|
||||
full operational diagnostics and the remaining admin/game goal are unfinished.
|
||||
|
||||
## 26 September 2026 — Administrative discussion moderation prototype
|
||||
|
||||
|
||||
@@ -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 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, auction/battle 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. Other systems, mobile acceptance, difficulty calibration and complete Advanced/expansion games still prevent goal completion. No start gate was removed.
|
||||
- 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.
|
||||
|
||||
The complete integrated validation checkpoint is recorded in [IMPLEMENTATION_STATUS.md](IMPLEMENTATION_STATUS.md).
|
||||
|
||||
@@ -113,11 +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 Sapho, Ix-deck Thumper/Amal and
|
||||
three battle discard stages. Thumper pauses before its injected worm
|
||||
or spice draw; Amal resumes its already-halved phase opening once.
|
||||
Multi-owner batches require committed owner-only selection of one
|
||||
other-player card. Queued questions, promises, reactive arrivals,
|
||||
auction/battle Sapho, pending battle rewards and other sources stay
|
||||
unconnected. Full-hand ordering, ten-card inventory, cache custody
|
||||
and public expansion start gate are unchanged.
|
||||
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.
|
||||
Full-hand ordering, ten-card inventory, cache custody and public
|
||||
expansion start gate are unchanged.
|
||||
@@ -21,12 +21,16 @@ 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.
|
||||
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;
|
||||
the queue, prior active seat and protected-last receipt bind saved
|
||||
continuation. Once Around and Battle Sapho remain outside this
|
||||
Semuta preview.
|
||||
the queue, prior active seat and protected-last receipt bind its suffix.
|
||||
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.
|
||||
|
||||
Completed Ornithopter movement now offers the same retired public card
|
||||
before its already committed arrival suffix only in a roster without
|
||||
|
||||
@@ -65,15 +65,19 @@ 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 Sapho, battle and Ix-deck Thumper/Amal
|
||||
discards**, provided the parent transaction has no competing response.
|
||||
Truthtrance, 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.
|
||||
already bound. 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.
|
||||
|
||||
For a genuine Ix-deck Thumper, its played physical card reaches
|
||||
the discard before an injected worm or actual spice-card draw.
|
||||
@@ -108,9 +112,10 @@ 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, auction/battle Sapho, pending battle
|
||||
rewards and other typed producers retain their automatic continuation;
|
||||
Semuta cannot claim those events yet. The completed Box's selected
|
||||
promise-bound Truthtrance, Once Around or 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
|
||||
when another seat takes the used Box. No source ruling is inferred
|
||||
from this omission. The
|
||||
|
||||
Reference in new issue
Block a user