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:
1 parent
45e6084424
commit
e05a205a47
30 files changed
+2467
-117
No files matched your search
@@ -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
@@ -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.**
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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) |
|
||||
|
||||
Reference in new issue
Block a user