Offer Semuta on printed Emperor-share cancellation and repair stale unit tests

This commit is contained in:
Quintine committed 2026-10-12 14:46:09 +11:00
1 parent 63e5f22607
commit 308797567e
12 files changed
+319 -28

No files matched your search

+33 -1
View File
@@ -29,6 +29,38 @@ 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 / printed Karama canceling the Emperor share — 11 October.**
`karamaEmperorShareDiscard` covers `emperorGift` and `emperorRevival`
cancellations through the existing response-cost union, admission, signature
and retirement path. A distinct printed Karama now pauses on its public cost
before the native denial; the canceled share moves no spice, forces or revival
and the extra-revival ledger stays empty. Claim/pass restores the saved response
and finishes the cancellation once. Before cutover the Karama was discarded and
the denial applied with no Semuta opportunity; afterward the offer appears and
all views work. Types/lint pass. Six consumer cases (gift/revival × claim/pass,
declined-cost settlement, four legal bot profiles) reuse a genuine three-seat
Richese/Emperor/Atreides Semuta setup that moves only real physical cards.
Styled390px human Emperor→Cancel→Commit proves the gift and extra-revival
denials with no share applied. See
[Semuta ordering](SEMUTA_SOURCE_UPDATE_20260907.md#30-september-2026--bounded-clean-discard-runtime).
**Pre-existing red unit tests repaired — 11 October.** Four tests already
failed at `63e5f22` (verified in a clean worktree): `homeworld-actions-engine`
pinned the obsolete word "Basic" in a rejection message now reading "base
rules"; `leader-skills-controls` pinned superseded panel prose; and
`moritani-skills-worm` omitted the implemented multi-pile `piles` shape. Those
stale wording/incidental pins were replaced with behavior and presence checks,
and the multi-pile expectation was aligned. `smuggler-battle` fabricated a
Leader Skills battle with the Ecaz variant module, a state the profile
initializer rejects; it now asserts the real gate (the profile rejects
`ecazTreachery`) and that the fabricated mid-battle state is rejected by reads
and actions. The four files pass33/33; the full unit suite then ran
7066/7067. The single failure, `moritani-skills-modules-runtime` expecting
`battleCards` but sometimes seeing `moritaniSpecialKarama`, is a pre-existing
intermittent flake from that fixture's real shuffled deal (0 failures in 12
isolated reruns on this tree, 5/5 at `63e5f22`); it is recorded rather than
pinned, and the deferred comprehensive review covers it.
**Stale battle-frame recovery expectation repaired — 11 October.** The
`authenticated clean Semuta producers claim once through restart and room CAS`
case asserted the winner's cheap-hero frame as the first post-battle
@@ -3413,7 +3445,7 @@ These links define bounded working behavior, not complete module certification.
| Area | Remaining gate |
| --- | --- |
| Basic core | Ordinary Guild repricing/transport settlement, broader truthful commitments, unresolved special timing and integrated rules/human/AI acceptance. |
| Basic core | Broader truthful commitments, unresolved special timing and integrated rules/human/AI acceptance. Ordinary Guild rate cancellation now exists: the `guildRate` prepayment response and `guildRateBlocked` turn window cover ordinary reserve shipment, eligible cross-planet transport and Guild return through the normalized `guildTransport`/shipment intents (`game/engine.ts`, `docs/GUILD_RATE_KARAMA_RULES.md`); the older 7 September readiness note that called it absent is superseded. |
| Six-faction Advanced | Base gaps, provisional special-Karama outcomes, remaining timing audits and authentic multiplayer/browser acceptance. The user-authorized unfinished preview is available; setup matrices and complete samples do not certify full compliance. |
| Twelve factions and all optional modules | Every missing effect, remaining skill bands, Ecaz card variant, Kull Wahad, unfinished Richese cards, Terror effects, occupation entitlement, Nexus interactions, contested Discoveries and complete games across valid combinations. The 7 October 2026 rulings settled CHOAM's low-population opening income, the Richese exhausted/canceled cache count, Suk/Kwisatz loss counting, the Guild Secret Ally Homeworld reserve return and Sandmaster HMS-relocation eligibility; the preserved captures can be resumed. Detailed boundaries remain in the checklist/decision index. |
| AI | Maintain minimal legal participation and critical correctness fixes while game features are unfinished. Full implementation, strategy refinement and calibration wait until all non-AI features are complete; then target approximately 75% higher-tier wins for Medium/Easy, Hard/Medium and Brutal/Hard. See the [AI development plan](AI_DEVELOPMENT_PLAN.md). These targets remain unverified. |
+43
View File
@@ -1,5 +1,48 @@
# Dune implementation status
## 11 October 2026 — Emperor share cancellation cost through Semuta
Actual native `emperorRevival`/`emperorGift` cancellation discarded the printed
Karama and applied the denial with no neutral opportunity. New
`karamaEmperorShareDiscard` extends the existing response-cost union, factory,
bounded admission, validator, state signature and original retirement path.
The shared `semutaEmperorShareKaramaResponse` admits only a genuine Emperor
share to a reciprocal ally with a positive amount and no battle or pending
shipment/transport, keeping the public cost clean.
The printed Karama is committed first; claim/pass restores the actual saved
response and completes the cancellation once. The canceled share moves no
spice, forces or revival, and the Emperor extra-revival ledger stays empty.
Signature facts bind the response and the extra-revival ledger for this kind;
other kinds omit them so their existing shapes are unchanged.
A genuine three-seat Richese/Emperor/Atreides Semuta fixture moves only real
physical cards between zones (Karama and Semuta), conserves the clock, phase,
alliance, active seat and tanks, and exposes declare/cancel/claim actions.
Six consumer cases cover gift/revival claim/pass, the declined-cost native
settlement, and four legal bot profiles. Types/lint pass; the four-file repair
set and this file pass. Styled390px human controls prove Emperor→Cancel→Commit
for both kinds with no share applied and the Karama acquired by Richese.
No new module admission, source ruling, saved-game conversion or public gate.
Temporary QA scripts/server and tab were removed.
## 11 October 2026 — pre-existing unit-suite failures repaired
Four tests failed at `63e5f22` in a clean worktree (so not regressions from
this session). Three pinned superseded wording or an incomplete shape:
`homeworld-actions-engine` matched the word "Basic" in a message now saying
"base rules"; `leader-skills-controls` matched replaced panel prose; and
`moritani-skills-worm` omitted the implemented multi-pile `piles` result. The
wording pins were deleted in favour of behavior/presence checks and the shape
expectation was aligned to the intended multi-pile output.
`smuggler-battle` fabricated a Leader Skills battle with the Ecaz variant
module. That profile never admits `ecazTreachery`, and toggling it mid-battle
invalidates the saved Mentat question battle version; the engine correctly
rejects the state. The test now asserts the real gate and the rejection.
The four files pass33/33; types/lint pass.
## 11 October 2026 — printed CHOAM-power cancellation cost through Semuta
Actual native Cunning Kulon canceled immediately while its printed Karama
+7
View File
@@ -145,6 +145,13 @@ cancels the effect once and completes its original ordinary movement,
free-revival, storm or closing-Mentat suffix. Taking Karama neither claims
CHOAM's retained fuel nor restores the denied effect.
A printed Karama canceling the Emperor's shared gift or extra allied revival
also offers that public cost before the denial completes. The canceled share
moves no spice, forces or revival; the ally link and extra-revival ledger stay
unchanged. Claim/pass restores the saved response and finishes one original
cancellation. The retired Karama is a genuine Semuta candidate for any other
player, is discarded once and is never replayed.