feat: preserve quoted CHOAM income through Semuta battle discards

This commit is contained in:
Quintine committed 2026-10-12 04:40:04 +11:00
1 parent 0d545deb63
commit f09ddf1b18
9 files changed
+180 -11

No files matched your search

+6
View File
@@ -23,6 +23,12 @@ private opportunity; native replacement runs once and does not undo a Semuta
claim. Face Dancer cards remain their separate physical deck, never Treachery
discard targets. Other pending reward exclusions are unchanged.
Quoted Advanced CHOAM force-payment income now also survives those offers.
The native quote remains unpaid through cleanup; its original allow/Karama
response credits once or redirects income to bank without a payer refund.
The original CHOAM market and following phase opening still run afterward.
Auditor, tech and other reward exclusions remain unchanged.
Sequence retirement precedes the remaining work. Ordinary public actions still drain these saved steps automatically. Test-only observation of unchanged private production dispatch captures real intermediate frames; this is not a public Semuta reaction window.
## Integrity, privacy and multiplayer
+15
View File
@@ -29,6 +29,21 @@ 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 / quoted CHOAM battle income — 11 October.** Mandatory and winner
discard offers now preserve the original Advanced force-payment quote unpaid
through cleanup, then restore its native allow/Karama response. Allow credits
once; cancellation redirects income without refunding paid support.
The regression fails before and passes after; types/lint and 119 affected unit
cases across eight files pass. Twenty-four runtime scenarios
cover both producers, claim/pass, four legal Semuta AI profiles and allow/cancel,
then finish the original market without another credit.
Real GameTable at 390px claims Crysknife, restores the actual one-spice response,
credits CHOAM2→3 and finishes the market to phase7's Ix opening with spice still3.
Two eligible paid support spice yield one income under the unchanged native
quote. No overflow; other reward exclusions remain.
Temporary QA scaffolds are removed; no saved store or deployed game was targeted.
See [the source/runtime boundary](SEMUTA_SOURCE_UPDATE_20260907.md).
**Semuta / native Face Dance — 11 October.** Mandatory and winner battle
discards now offer Semuta while native Tleilaxu replacement remains pending.
Original casualties and card cleanup still precede the same private opportunity;
+32
View File
@@ -1,5 +1,37 @@
# Dune implementation status
## 11 October 2026 — quoted CHOAM income after Semuta battle discards
The existing battle receipt validates the native CHOAM owner and positive
income quote. Removing only that reward exclusion admits mandatory and winner
discard reactions without changing force payments, quote calculation or
aftermath ordering. Claim/pass preserves the unpaid quote through casualties
and winner cleanup, then opens its original allow/Karama response. Allow pays
once; cancellation redirects income to bank without a payer refund.
The regression fails before and passes after, covering both producers,
claim/pass, exact quote preservation, allow/cancel, unchanged already-paid
balance and casualties, card conservation and retired reaction rejection.
Twenty-four isolated runtime scenarios cover both producers with claim/pass
and four legal Semuta AI profiles, followed by allowance and cancellation.
The native quote gives one income for the two eligible paid support spice;
the already-settled payer balance stays12.
An additional suffix observation confirmed the original phase6 CHOAM market
remains after income; it is not a stall or immediate Collection. Every extended
scenario finishes that actual market to phase7's Ix opening with no second
credit. Real production GameTable at 390px claims Crysknife, restores the quoted
one-spice response and native Allow/Cancel controls, allows CHOAM2→3, then
finishes the original market with spice still3. Claimed custody persists and
there is no horizontal overflow.
Types/lint and 119 affected unit cases across eight files pass.
Temporary scripts, isolated server and browser tab are removed/stopped; no
saved store or deployed game was targeted. Auditor, tech and other rewards
remain separate. Full CHOAM/Semuta and deployed acceptance remain open.
Contracts: [Semuta](SEMUTA_SOURCE_UPDATE_20260907.md),
[battle ordering](BATTLE_DISCARD_CONTINUATIONS.md).
## 11 October 2026 — native Face Dance after Semuta battle discards
The battle receipt already validates pending native Face Dance against the
+8 -2
View File
@@ -45,6 +45,12 @@ decline; original casualties and winner cleanup still precede it. Native
replacement runs once, and the claimed Treachery card remains held afterward.
Face Dancer cards are not Treachery cards and never enter the fresh batch.
Quoted Advanced CHOAM force-payment income may also remain pending across
mandatory/winner discard offers. The original owner/amount stays unpaid through
cleanup, then its native allow/Karama response resumes. Allow credits once;
cancellation redirects only the income and does not refund force payments.
The original post-battle CHOAM market still finishes before the next phase.
Completed ordinary Ghola disposal may now offer Semuta during battle as well.
Revival has already committed; the receipt binds the returned leader/forces and
original battle, including a sealed opposing plan. Claim or decline restores
@@ -185,8 +191,8 @@ winning-card cleanup uses a separate `winnerMandatoryDiscard` batch,
and an optional winner selection uses a third `battleCleanup` batch.
Every supported stage has a neutral all-seat offer; committed holders
select one fresh card, leave the others in the pile and resume exactly
once. Native Advanced Harkonnen capture and native Face Dance remain pending
across the offer; Auditor, tech and CHOAM rewards remain automatic without Semuta.
once. Native capture, Face Dance and quoted CHOAM force income remain pending
across the offer; Auditor, tech and other rewards remain automatic without Semuta.
The explicit Richese preview also accepts a fresh physical Ix deck.
Clean Thumper disposal stages `thumperDiscard` before `blowSpice`
+33 -4
View File
@@ -237,9 +237,9 @@ policy**, not a newly discovered publisher timing rule. Full-hand
Semuta uses the explicit user-approved atomic exchange; its completed
hand count is unchanged. Pending gifts, competing responses,
completed Ornithopter arrivals with Ecaz Ambassador or Moritani Terror,
pending battle rewards other than native Harkonnen capture/Face Dance and other
typed producers retain automatic continuation; Semuta cannot claim those events
yet.
pending battle rewards other than native capture, Face Dance or quoted CHOAM
income and other typed producers retain 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
@@ -248,13 +248,42 @@ 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 — quoted CHOAM force-payment income.** Mandatory and
winner discard batches now offer Semuta while the native Advanced income quote
remains pending. Only that reward exclusion changed. The existing receipt
validates the original owner and positive amount; costs and income calculation
are untouched. Claim/pass leaves it unpaid through casualties and winner cleanup,
then restores the original allow/Karama response. Allow pays once; cancellation
sends that income to bank without refunding the original force payments.
The regression fails before and passes after, covering both producers,
claim/pass, preserved quote, allow/cancel, payer/casualty/card conservation and
retired-event rejection. The original quote rounds down half of each eligible
payment: this fixture's two paid support spice yield one income, not two.
Twenty-four runtime scenarios cover both producers, claim/pass and four legal
Semuta AI profiles followed by both allowance and printed-Karama cancellation.
The already-settled payer balance stays12 in both branches. The native phase6
CHOAM market finishes afterward; no second credit occurs before phase7's Ix
opening.
Real GameTable at 390px claims Crysknife, shows the actual one-spice unpaid
income with Allow/Cancel controls, allows it once (CHOAM spice2→3), then finishes
the original market and reaches the phase7 opening with spice still3. Claimed
card custody persists; there is no horizontal overflow. Temporary scripts,
isolated server and browser are removed/stopped; no saved store or deployed
game was targeted. Auditor, tech and other rewards remain separate. This is
bounded income continuation proof, not complete CHOAM/Semuta or deployed
acceptance.
Types/lint and 119 affected unit cases across eight files pass.
**11 October 2026 — native Face Dance suffix.** Mandatory and winner
battle discard batches now offer Semuta with native Tleilaxu Face Dance pending.
Only that reward exclusion changed. The existing battle receipt already binds
the pending native owner, original winner and territory. Claim/pass preserves
casualties and winner-card cleanup before the same private opportunity; it
cannot replace an army early, repeat replacement or move the claimed card back.
Auditor, tech, CHOAM income and other reward exclusions remain separate.
CHOAM income was separate at this checkpoint; its later continuation above now
admits it. Auditor, tech and other reward exclusions remain separate.
The permanent regression fails before and passes after, covering both discard
producers, claim/pass, one replacement, original leader death, force and card