Compose the deferred Terror arrival and green the mixed E3 programmes

Queue a committed Terror entry whose arrival also opened its own
interaction — Guild income, a Bene Gesserit fighter Intrusion or advisor
choice, or Fremen storm protection — in the additive
Game.pendingArrivalReaction list, and open the oldest queued entry from
settleAutomaticContinuations once nothing is pending. Payment, force
transfer and the original movement never replay; a Terror entry already in
flight and every Ambassador combination still reject.

Both withdrawn mixed E3 programme pairs are green: Moritani 9/9 and Ecaz
14/14, stable across 20 consecutive full-file runs. Their recorded resume
constraints became real fixture repairs, and the two restored consumer
omissions were corrected against the engine rather than re-pinned.

Repair pre-existing failures inherited at 45e6084 against current engine
behavior: stale Discovery and module gates in the native skills, Ix and
expansion-faction prototypes, the advanced Moritani skill boundary, the
Richese Nexus betrayal sale-credit expectation, one incidental gate
message and one flaky Collection-readiness assertion that reproduced at
HEAD.

Offline suite 7,793/7,793 with typecheck and lint clean. No game, seat,
saved-state, deployment, public-start or played-save conversion changes.
This commit is contained in:
Quintine committed 2026-10-07 17:24:23 +11:00
1 parent 45e6084424
commit e05a205a47
30 files changed
+2467 -117

No files matched your search

+29
View File
@@ -73,6 +73,30 @@ genuine-setup replay completes in 786 accepted attempts, zero rejections,
candidate legality, not the unsupported arrival-rule composition or public
expansion start gate.
## 7 October: the deferred Terror entry is a supported arrival
The engine now commits a Terror arrival whose entry coincides with the
arrival's own interaction. `openTerritoryEntry` queues the committed entry in
the additive `Game.pendingArrivalReaction` list and
`settleAutomaticContinuations` opens the oldest queued entry as soon as no
response, decision, Terror entry, Ambassador entry or Ecaz/Moritani overlap is
pending. Payment, force transfer and the original movement never replay.
Consequently `quoteCompletedMovementArrival` no longer rejects a Terror
arrival because a Guild income response, a Bene Gesserit fighter Intrusion or
advisor choice, or Fremen storm protection is present; those windows settle
first and the entry follows. The preflight still rejects a Terror entry already
in flight (`controls.pendingTerror`) and every Ambassador combination
(`Ambassadors combined with another arrival reaction`).
The two former bot policies that avoided those combinations are updated, not
re-pinned: `tests/bot-arrival.test.ts` now asserts the Guild transport ships
into its committed Terror entry, and
`tests/ambassador-terror-overlap-worm.test.ts` asserts the queued worm ride
defers the entry behind the pending Intrusion and then opens it after the
decline. Both drive the deferred path to completion and keep the profiles'
other policy checks.
## 29 September: Guild cross-planet transport and Terror
An unmodified six-seat Advanced Moritani sample at base seed `20260930`
@@ -114,3 +138,8 @@ accepted attempts, zero rejects and 41 JSON continuations. No hidden Terror
face or rival hand enters the quote. Homeworld rides and other special
arrivals retain their own gates; this does not implement the conflicting
reaction or open public expansion starts.
**Superseded 7 October 2026:** the conflicting reaction is now implemented as
the deferred entry above. The owned bot candidate may choose that destination
again; the focused regression now asserts the ride is accepted, the entry waits
behind the pending Intrusion and then opens after the decline.
+16 -11
View File
@@ -33,17 +33,22 @@ Loyalty card, and the engine's assassination inventory check now counts
Tleilaxu Face Dancers. Selected decks/cache, shared-Duke/capture,
force/payment and pending-effect guards remain.
Dedicated original programme evidence for this envelope is **not** yet
green: two independently authored programme pairs reached11/21 cases and
were withdrawn from this checkpoint rather than shipped failing. Recorded
engine constraints for resuming: the loser must dial for the winner to have
rescuable casualties; Ixian Suboids are half-strength so dials are
half-integers; support is capped by `maxCombatSupport`/`battleSupportBudget`;
a Worthless card is a defense, not a weapon; a normal Traitor call needs the
held card to match the opponent's plan leader; and the mixed-E3 Moritani
Terror/Cunning windows need their own real shipment. No new frozen
test/build/game/human checkpoint, public start or played-save conversion
is claimed.
Dedicated original programme evidence for this envelope is now green for the
Moritani pair (9/9) and the Ecaz pair (14/14, stable across 20 consecutive
full-file runs). The former recorded engine
constraints are resolved as real fixture or engine defects: Moritani must start
in an unoccupied printed stronghold (never a seated faction's own start), a
pending Leader-Skill posture must be concealed before both plans are submitted,
a normal Traitor call is legal only for the card that actually matches the
opponent's plan leader, the winner's automatic casualty application is not an
assassination effect, and the mixed-E3 Moritani Terror/Cunning window now uses
its own real shipment. **New engine behavior:** a Terror arrival whose entry
coincides with the arrival's own interaction (Guild income, Bene Gesserit
fighter Intrusion or advisor choice, Fremen storm protection) is queued in the
additive `Game.pendingArrivalReaction` and opens as soon as that interaction
settles, without replaying payment or force transfer. A Terror entry already in
flight and every Ambassador combination still reject. Selected decks/cache,
shared-Duke/capture, force/payment and pending-effect guards remain.
**Mixed E1/E2 and paired E3 Nexus — bounded Development Verified.**
+44
View File
@@ -1,5 +1,49 @@
# Dune implementation status
## 7 October 2026 — mixed E3 programme evidence and the deferred Terror entry
The withdrawn mixed E3 programme pairs are green: Moritani9/9 and Ecaz14/14
(stable across 20 consecutive full-file runs). The recorded resume
constraints became real fixture repairs, not re-pinned assertions: Moritani
starts in an unoccupied printed stronghold, a pending Leader-Skill posture is
concealed before both plans are submitted, a normal Traitor call requires the
card that matches the opponent's plan leader, the winner's automatic casualty
is not an assassination effect, the public history never carries the private
Mentat replacement, and the Moritani Terror/Cunning window uses its own real
shipment. Two restored consumer omissions were corrected against the engine:
the Discovery entry asserts the token's actual random face and conserved
counters, and the Suk rescue asserts the winner's own dialed casualties with
the loser never rescued.
**New engine behavior.** `Game.pendingArrivalReaction` queues a committed
Terror entry whose arrival also opened its own interaction — Guild income, a
Bene Gesserit fighter Intrusion or advisor choice, or Fremen storm protection —
and `settleAutomaticContinuations` opens the oldest queued entry once nothing
is pending. Payment, force transfer and the original movement never replay; a
Terror entry already in flight and every Ambassador combination still reject.
The selected order is a provisional implementation interpretation, not a
publisher priority ruling.
Former limitation pins now assert the accepted, deferred outcome and drive it
to completion instead of the removed rejection: `bot-arrival`,
`ambassador-terror-overlap-worm`, `moritani-entry`, both Richese No-Field
files, `homeworld-grumman-engine`, `karama-movement-preflight` and
`ornithopter-discard-continuations`.
Pre-existing failures inherited at `45e6084` were repaired against current
engine behavior rather than re-pinned: the stale Discovery module gates in
both native skills integrations, the Ix prototype and Ix skills gates, the
advanced Moritani skill boundary, the expansion-faction prototype and recovery
gates, and the Richese Nexus betrayal sale-credit expectation (the authorized
Advanced source sends Richese's own contribution to the Emperor, or the Bank
with no Emperor seated). One incidental gate message ("excludes other optional
modules") and one flaky Collection-readiness assertion in the Ecaz Homeworld
victory runtime were also corrected; the flake reproduced at HEAD.
Offline suite 7,793/7,793 with typecheck and lint clean at this checkpoint; no
game, seat, saved-state, deployment, public-start or played-save conversion is
claimed.
## 7 October 2026 — Mixed E1/E2 and paired E3 Nexus
Original both-family Ix+CHOAM/union47 or both Ecaz+Moritani/ecaz33 with
+28 -1
View File
@@ -21,7 +21,7 @@ No targeted publisher/designer clarification establishes which of Ecaz's Ambassa
Both optional trigger opportunities belong to the **same already committed entry**. Snapshot the original entrant, token identities, physical arrival amount and turn; finish the first owner's choice and its allowable continuations before offering the second. Revalidate the second effect's physical requirements without replaying the original shipment payment, movement or force transfer. Owner-private Terror identity remains concealed until revealed. If the first reaction changes an alliance, the other owner keeps the trigger earned at the original entry; it does not gain a new trigger from a later action.
This bounded path excludes competing BG fighter Intrusion, Guild income/advisor and CHOAM prevention windows, Homeworlds, Nexus, Discoveries, Leader Skills and the still-unfinished Atomics effect. Fremen relocation or Guild free-shipment Ambassador effects can create nested arrivals before the second owner; they remain declineable but cannot be activated in this overlap until their child continuation is integrated. These guards are development boundaries, not physical-game prohibitions.
This bounded path originally excluded competing BG fighter Intrusion, Guild income/advisor and CHOAM prevention windows, Homeworlds, Nexus, Discoveries, Leader Skills and the still-unfinished Atomics effect. **The competing BG fighter Intrusion, Guild income and BG advisor windows are now integrated as a deferred entry — see the 7 October 2026 section below.** Fremen relocation or Guild free-shipment Ambassador effects can create nested arrivals before the second owner; they remain declineable but cannot be activated in this overlap until their child continuation is integrated. These guards are development boundaries, not physical-game prohibitions.
## Paired native Nexus composition — 7 October 2026
@@ -50,6 +50,33 @@ This does not merge an advisor's separate arrival into the parent's
reaction, make advisors eligible for Ambassadors, or claim a universal
optional-module priority order.
## Deferred arrival entry behind the arrival's own interactions — 7 October 2026
The engine no longer rejects a Terror arrival that coincides with the arrival's
own pending interaction. `openTerritoryEntry` stores the already committed
entry in the additive `Game.pendingArrivalReaction` record — original entrant,
destination, sector, amount, elite, cause, resume kind and turn/phase — and
`settleAutomaticContinuations` opens it as soon as no response, decision,
Terror entry, Ambassador entry or Ecaz/Moritani overlap is pending. Payment,
force transfer and the original movement are never replayed; the deferred
record only reopens the entry.
**Selected order (provisional implementation interpretation, not a publisher
ruling):** the arrival's own interaction settles first — the committed
shipment's Guild income payment and BG advisor choice, the BG fighter
Intrusion, or Fremen storm protection — and the Terror entry is offered
afterwards. This reuses the bounded policy already recorded for an accompanying
counter, whose own qualifying entry likewise follows earlier Intrusion and
income, and it respects the November 2020 FAQ wording that Intrusion must occur
immediately when the other faction intrudes. No source ranks the optional
Terror reaction against those windows; this table selects one order rather than
leaving the entry uncommitted.
Still guarded after this integration: `controls.pendingTerror` (a Terror entry
already in flight), every Ambassador combination
(`Ambassadors combined with another arrival reaction`), Atomics, unsupported
child effects and the CHOAM prevention windows.
## Atomics and later allies
The current official indexed p. 5 still says: “From this turn forward, your hand limit is reduced by 1 (as well as your ally’s)”. It does not specify how a later alliance change affects either former or new allies. Both a continuing current-ally modifier and a detonation-time recipient remain interpretations. No targeted clarification was found. [GF9 E3, p. 5](https://www.gf9games.com/dune/wp-content/uploads/EcazMoritani-Rulebook-LOWRES.pdf#page=5)
+1 -1
View File
@@ -301,7 +301,7 @@ dedicated retrieved worked FAQs. [Contract and remaining limits](HOMEWORLD_OCCUP
| Truthtrance hand categories | Count current physical hand custody by explicitly named primary role; alternate battle slots and faction powers do not reclassify cards. Only an aggregate answer is disclosed. | [Hand inventory](TRUTHTRANCE_HAND_INVENTORY.md) |
| Moritani Advanced assassination preview | After an eligible battle loss, a different opposing-faction Traitor Card may be revealed even if its leader is already dead (zero bounty). Face-up set-aside and one private replacement occur during Mentat; one use per faction. Normal-call duration, uniform hidden-eligibility UX and exceptional combinations remain explicit. | [Runtime/source contract](MORITANI_ASSASSINATE_LEADERS.md) |
| Moritani Extortion at Mentat | The user selected normal Terror placement/relocation first, including any Karama response; only then collect the reserved five bank spice and approach other players in storm order for a possible three-spice payment. Payment removes the token; all declines recover it with rotated hidden supply IDs. The relative placement timing is a user-selected interpretation, not a publisher ruling. | [Publisher sequence and selected timing](MORITANI_EXTORTION_RULES.md#mentat-ordering-selected-interpretation-not-a-publisher-ruling) |
| Ecaz Ambassador / Moritani Terror shared entry | In bounded classic plus Ecaz/Moritani Basic/Advanced games and the exact original paired native Nexus envelopes, both originally eligible owners resolve optional reactions in current storm order; committed entry, payment and counters do not replay. Later alliances do not erase the original trigger; physical effect prerequisites are rechecked. This remains an explicit provisional interpretation, not a located publisher priority ruling. An original accompanying counter joining existing BG fighters creates its own qualifying entry only after earlier Intrusion/income finish; exempt advisors, competing live reactions, unsupported children and Atomics retain guards. | [Primary-source gap and selected policy](MORITANI_ENTRY_TIMING.md#selected-bounded-overlap-order--29-september-2026), [exact paired composition](MORITANI_ENTRY_TIMING.md#paired-native-nexus-composition--7-october-2026), [movement recovery](DEFERRED_MOVEMENT_ARRIVAL.md#bounded-storm-order-continuation--29-september-2026) |
| Ecaz Ambassador / Moritani Terror shared entry | In bounded classic plus Ecaz/Moritani Basic/Advanced games and the exact original paired native Nexus envelopes, both originally eligible owners resolve optional reactions in current storm order; committed entry, payment and counters do not replay. Later alliances do not erase the original trigger; physical effect prerequisites are rechecked. This remains an explicit provisional interpretation, not a located publisher priority ruling. An original accompanying counter joining existing BG fighters creates its own qualifying entry only after earlier Intrusion/income finish; exempt advisors, competing live reactions, unsupported children and Atomics retain guards. The Terror entry itself is now deferred behind the arrival's own interaction (Guild income, BG fighter Intrusion or BG advisor choice, Fremen storm protection) in an additive pending record that never replays payment or force transfer; a Terror entry already in flight and every Ambassador combination still reject. | [Primary-source gap and selected policy](MORITANI_ENTRY_TIMING.md#selected-bounded-overlap-order--29-september-2026), [exact paired composition](MORITANI_ENTRY_TIMING.md#paired-native-nexus-composition--7-october-2026), [deferred arrival entry](MORITANI_ENTRY_TIMING.md#deferred-arrival-entry-behind-the-arrivals-own-interactions--7-october-2026), [movement recovery](DEFERRED_MOVEMENT_ARRIVAL.md#bounded-storm-order-continuation--29-september-2026) |
| Fremen/Ecaz final-turn victory | Reciprocal allied Ecaz and Fremen with fighters in Sietch Tabr do not block the Fremen special victory. Ecaz alone/non-allied or a third faction still blocks. The Habbanya extension remains unsupported; ordinary winner/prediction and fallback order are preserved. | [Explicit FAQ and runtime](ECAZ_VICTORY_RULES.md#fremen-final-turn-runtime-follow-up) |
| Truthtrance recorded knowledge | Questions compare an already recorded BG prediction, active submitted storm dial or actually known native Fremen forecast. Missing knowledge is unknown; only the aggregate answer is published. No future promise or unknown deck peek is created. | [Connected predicates and evidence](TRUTHTRANCE_KNOWLEDGE.md) |
| Nexus lifecycle | Twelve physical cards, phase draw/replacement and alliance forfeiture; native Cunning, absent-faction Secret Ally and Betrayal have separate effects. No blanket Karama immunity. | [Common source contract](NEXUS_CARD_RULES.md), [lifecycle runtime](NEXUS_CARD_RUNTIME.md) |