feat: restore final CHOAM Mentat after Semuta Gamont reactions

This commit is contained in:
Quintine committed 2026-10-12 03:37:23 +11:00
1 parent c468dc9e44
commit 12e4bcbf45
7 files changed
+145 -7

No files matched your search

+14
View File
@@ -29,6 +29,20 @@ optional skill bands, combinations and public expansion starts remain open.
Rules implementation continues; comprehensive assurance and administration
remain deferred until all rules are implemented.
**Semuta / CHOAM final Mentat — 11 October.** Gamont disposal in the native
final opportunity now offers Semuta, then restores the same CHOAM-owned window.
Claim/pass returns the selected force but never checks victory or advances
the turn; the original owner must still finish. The regression fails before
and passes after, with a native baseline that would give Atreides victory
without the recall. Twelve runtime scenarios cover both modes, claim/pass and
four legal AI profiles, including owner-window completion.
Types/lint and 82 affected unit cases across six files pass.
Real GameTable at 390px performs Return this force → Commit Semuta → restored
Finish and check victory → turn3/Storm, still playing, without overflow.
Temporary QA scaffolds are removed; no saved store or deployed game was targeted.
Nexus and other parents remain separate. See
[the source/runtime boundary](SEMUTA_SOURCE_UPDATE_20260907.md).
**Semuta / typed and concealed Gamont — 11 October.** A clean proactive
discard now preserves the selected elite counter or native No-Field event,
instead of hard-coding an ordinary return. The original native helper performs
+30
View File
@@ -1,5 +1,35 @@
# Dune implementation status
## 11 October 2026 — original final Mentat after Semuta/Gamont
The Gamont receipt now carries an optional final-Mentat marker and signs the
native pending opportunity. After the selected physical return, claim/pass
restores the same `choamMentat` decision for CHOAM. No victory check or phase
advance runs inside the receipt; the original owner must still finish.
Unmarked proactive signatures remain unchanged.
The regression fails before and passes after. Actual native market, readiness
and done actions create the closing window. Its unopposed board gives Atreides
a three-stronghold victory; recall removes Arrakeen before the same owner can
finish. Claim/pass preserves turn2/Mentat, exact force return and cards;
wrong-owner completion and retired reactions reject. CHOAM's actual Done then
advances to turn3/Storm with no winner. The fixture initially checked phase
before native market completion and placed Tabr in sector13; corrected
progression and canonical sector14 required no production rule change.
Twelve isolated runtime scenarios cover Basic/Advanced, claim/pass and all
four legal AI profiles, including each profile finishing the restored owner
window. Real production GameTable at 390px performs Return this force, Semuta
commitment, the restored Finish and check victory and actual turn3/Storm
continuation, without horizontal overflow.
Types/lint and 82 affected unit cases across six files pass.
Temporary scripts, isolated server and browser tab are removed/stopped; no
saved store or deployed game was targeted. Nexus and other competing parents
remain separate. Full Semuta/CHOAM and deployed acceptance remain open.
Contracts: [source/runtime](SEMUTA_SOURCE_UPDATE_20260907.md),
[discard suffix](SEMUTA_DISCARD_CONTINUATIONS.md).
## 11 October 2026 — typed and concealed Gamont with Semuta
The existing receipt already signs target elite and No-Field custody, but the
+3 -2
View File
@@ -144,13 +144,14 @@ ordinary declared move is already stopped without spending its allowance.
Nexus, movement-card/Ambassador and overlapping arrival parents retain their
automatic paths.
Clean proactive Trip to Gamont stages `choamGamontDiscard` after the accepted
Clean proactive or final-Mentat Trip to Gamont stages `choamGamontDiscard` after the accepted
public card cost but before its selected ordinary/elite return or native
No-Field reveal and capped recall. The receipt binds location, exact counter
type/marker event, target force/reserve/elite/No-Field custody and CHOAM hand.
Claim or decline completes the original selection once without replaying the
response. A zero marker reveals without inventing a force; revival usage stays
unchanged. Closing Mentat, Nexus and competing parents retain automatic paths.
unchanged. A final-Mentat marker restores the same CHOAM-owned decision before
victory or turn advancement; Nexus and competing parents retain automatic paths.
Accepted printed Jubba Cloak stages `choamJubbaDiscard` after
its public Worthless card cost but before protecting CHOAM's
+34 -4
View File
@@ -149,12 +149,13 @@ legal. A clean ordinary declared move is already stopped without spending a
movement. Movement-card/Ambassador parents, Nexus conversion and competing
arrivals retain their original automatic paths.
A clean proactive Trip to Gamont response pauses after its public card cost,
A clean proactive or final-Mentat Trip to Gamont pauses after its public card cost,
before returning the selected ordinary/elite physical force or performing the
native concealed No-Field reveal and capped recall. The receipt binds target,
location, exact counter type or marker event and pre-return custody. Claim or
decline applies the original selection once; a zero marker reveals without
inventing a force. Closing Mentat, Nexus and competing parents remain automatic.
inventing a force. Final Mentat restores the same owner decision before victory;
Nexus and competing parents remain automatic.
An accepted printed Jubba Cloak response pauses after its
public Worthless card cost but before the chosen CHOAM territory
@@ -247,6 +248,34 @@ 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.
**11 October 2026 — original final-Mentat continuation.** Gamont disposal
inside CHOAM's final opportunity now offers Semuta too. The receipt signs an
optional `mentat` marker and the still-pending native opportunity. Claim or
all-seat decline performs the original selected return, then restores
`choamMentat` for the same CHOAM owner. It never checks victory or advances the
turn itself; the original owner still chooses Finish and check victory.
Proactive receipt signatures are unchanged when this marker is absent.
The regression fails before and passes after. Genuine native Collection/Mentat
market, readiness and done actions create the final window. Without Gamont,
the same closing board gives Atreides a three-stronghold victory. With the
return and claim/pass, one force leaves Arrakeen, the same owner window remains
on turn2/Mentat, wrong-owner completion and retired reaction reject, and only
CHOAM's Done advances to turn3/Storm with no winner. The fixture first placed
its phase assertion before the market completion and used the wrong Tabr
sector; corrected actual progression and canonical sector14 require no rule
change.
Twelve isolated runtime scenarios cover Basic/Advanced, claim/pass and all four
legal AI profiles; the four profiles also complete the restored owner window.
Real GameTable at 390px uses Return this force, Commit Semuta, the restored
Finish and check victory control and actual turn3/Storm continuation. The game
stays playing and has no horizontal overflow. Temporary scripts/server/browser
are removed or stopped; no saved store or deployed game was targeted.
Types/lint and 82 affected unit cases across six files pass.
Nexus and competing parents remain separate; no complete or deployed acceptance
is claimed.
**11 October 2026 — elite and concealed Gamont targets.** The existing
receipt already signed target elite and No-Field custody, but stored neither
selection and resumed with a literal ordinary-force argument. It now carries
@@ -276,8 +305,9 @@ Types/lint and 163 affected unit cases across nine files pass.
Optional signature fields now serialize directly, and reactive stopped markers
are assigned without temporary spread objects. Absent optional fields are
omitted by JSON, preserving the prior ordinary/proactive signature shape.
Closing Mentat, Nexus and competing parents remain separate. This is bounded
counter-selection coverage, not complete Semuta/CHOAM or deployed acceptance.
Closing Mentat remained separate at this counter-selection checkpoint; the
later continuation above admits it. Nexus and competing parents remain separate.
This is bounded coverage, not complete Semuta/CHOAM or deployed acceptance.
**11 October 2026 — reactive Baliset and La La La.** Accepted native
declarations now offer their used public card in the clean reactive paths too.