Files
Dune/docs/ECAZ_DUKE_ACQUISITION.md
Quintine 22b463a395
Verify and publish checkpoint container / container (push) Successful in 10m31s
Restore safe Duke grants in early legacy games
2026-10-29 19:35:55 +11:00

23 KiB
Raw Permalink Blame History

Ecaz Ambassador: direct Duke acquisition

Public first-turn proof and occupied Ecaz displacement — 29 October 2026

Prototyped / Partial. An unstamped legacy game can establish clear Duke capture history from public state while it is playing in turn one, phases 0–5, with no battle, previous battle context or pending capture, and no capture response or decision. The check does not inspect Duke custody or the selected captive. Explicit uncertainty and later or ambiguous states remain guarded. Viewing the game does not mutate the receipt; automatic normalization or an accepted live action records the proven clear state. Later qualifying capture events can make the history uncertain again.

Actual occupied-Ecaz displacement of a living ordinary Duke grant also clears the marker: the displacement is publicly logged before the occupier's eligible recipient choice. Merely having an occupation or an unrelated continuation does not establish that displacement. Existing eligibility and custody checks remain in force.

Focused tests cover a real Advanced opening and Ambassador arrival with an unstamped receipt, public-state boundary and private-custody comparisons, and the real occupied-Ecaz battle with a staged prior ordinary grant and uncertainty receipt. Broader combinations, capture assurance and deployed verification remain open; these prototypes do not certify a complete rules mode.

Public resolution of capture uncertainty — 29 October 2026

Prototyped / Partial. A public event that establishes the actual unique Duke disc clears the uncertainty receipt, including when an older game lacks one. Supported events are a revealed ordinary Duke battle; a named paid, Ghola or Tleilaxu Ambassador revival; Ecaz Nexus Cunning or occupied-Ecaz grant; a public Moritani acquisition or Tanks resolution; and a named Residual Poison or Terror assassination death. Canceled, declined or unrelated actions do not clear it. A subsequent Harkonnen capture that could have included Duke records new uncertainty. The existing eligibility and custody checks still apply.

An Advanced Harkonnen game with clear public history can now also use the provisional same-recipient conversion from another temporary tenure. A current ordinary Ecaz Ambassador tenure cannot be redundantly renewed. The public history safeguard remains uniform when the marker is uncertain, or absent without the public first-turn proof above.

Twelve related files pass 87 cases. The real battle fixture verifies a later Ambassador grant and renewed uncertainty after capture. Other action fixtures stage the marker; paid/Ghola and Residual Poison cases also stage the relevant physical positions. More public resolution paths, complete combinations and deployed verification remain open.

Public capture uncertainty — 29 October 2026

Prototyped / Partial. A fresh game records whether a public Harkonnen capture could have involved Duke, using the losing player's public identity, revealed battle plan and projected Duke controller, never the selected captive. Once that possibility arises it stays recorded until a supported public resolution above. Direct Ambassador acquisition and the automatic Advanced alliance loan are uniformly unavailable while the record is uncertain, regardless of actual hidden custody. A game saved before this receipt existed remains conservative unless its public first-turn state proves capture could not yet have occurred, as described above. No saved game is reset or assigned a fabricated clean history.

When the record is clear, a plain Advanced Ecaz–Harkonnen game can use the ordinary direct grant and automatic new-ally loan; the original disc, reusable token, existing custody checks and continuation remain. The same public uncertainty guard protects already supported Harkonnen profiles. This conservative restriction can block an otherwise available Duke after a possible capture. The later public-resolution section above clears it when specific public events establish the disc. The restriction is a provisional online policy, not a publisher ruling; broader modules and old-game coverage remain open.

Eight related files pass 62 cases. Genuine plain Advanced setup exercises both grants, and an actual capture is replayed with controlled shuffle outcomes to confirm the same receipt for Duke and another leader. The equivalent-custody privacy comparison stages the two physical underlays. Deployed verification and comprehensive capture assurance remain open.

Same-recipient temporary tenure — 27 October 2026

Prototyped / Partial. At an actual eligible Ecaz Ambassador entry, Ecaz may provisionally select the current recipient of a living Duke under another temporary tenure, changing that same disc to the Ambassador's ordinary until-battle tenure. Existing battle use and death history remain; no leader, resource or extra use is created. A recipient already holding the ordinary Ambassador tenure cannot trigger a redundant renewal. The later public uncertainty policy above permits same-recipient conversion in Advanced Harkonnen games when their public capture history is clear. Other exceptional custody and occupied-Ecaz priority retain their existing restrictions.

Publisher E3 printed p. 7 describes the Ambassador grant until battle; printed p. 8 permits sharing an Ambassador benefit with an ally. Applying that grant to the same holder's different temporary tenure is a provisional composition, not a worked publisher example. The focused runtime test uses an actual placed token, alliance and paid entry, with explicitly staged existing-loan custody. It follows the original arrival and a later turn; wider combinations and final/deployed acceptance remain open.

Integrated 7 September 2026; existing-ally extension 26 October 2026. Ecaz can choose Acquire Duke Vidal for itself or its current reciprocal ally when an eligible entrant reaches its reusable Ambassador in supported development games. The server transfers the existing shared disc, returns the token to supply and resumes the entrant’s remaining actions. There is no additional confirmation or new generic Ambassador cancellation response.

The direct acquisition and tenure follow the publisher’s Ecaz & Moritani rules, pp.7–9. Fresh indexed publisher retrieval rechecked eligibility outside Tanks, captured or ghola custody. The prior Duke source audit and remaining effects readiness review record the separate unresolved combinations. The current direct choice supports self or the existing reciprocal ally as recorded below; this does not certify full Ecaz or a complete expansion game.

Existing-ally direct acquisition — 26 October 2026

The triggered reusable Ecaz Ambassador may now grant its direct acquisition to the current reciprocal ally instead of Ecaz. Publisher E3 p8's general benefit sharing and the authorized Advanced physical30,F support the recipient. Under 14 October choose-recommended authority, select ordinary direct-acquisition tenure until battle use, including unused control across turns; this is provisional composition, not a publisher worked example. It is distinct from the newly formed alliance's optional Basic/automatic Advanced turn-long loan.

Reuse source ecaz for the same direct power and physical disc; changing the recipient needs no new saved source kind. Qualification is rechecked at this actual token entry. A living Ecaz-held or set-aside disc can go to the ally; the later same-recipient follow-up above extends temporary tenure. Death history and usedAt remain, and no roster or Traitor gains a duplicate. Captive, concealed, Ghola, dead, duplicated-disc and existing table/profile exclusions remain. Occupied-Ecaz priority is checked before acquisition; only Ecaz may revive Duke. There is no standing gift/transfer action outside a fresh eligible entry. A living current-turn Nexus grant may likewise become this ordinary acquisition; the original card stays spent. Later Ecaz Cunning receipts recognize ordinary source ecaz as its granting power even when a former ally holds that tenure, including its captured underlay. Native Nexus tenure still requires the native Ecaz controller; no custody or mode gate is relaxed.

The private owner sees separate offered beneficiaries and per-recipient reasons. All four minimal profiles use the first legal direct recipient after any eligible alliance alternative. Generic exceptional-custody reasons retain the existing projection boundary. Broader combinations and final assurance remain.

Frozen verification passes 19 files,189/189, types/lint/build and four native engine/GameTable SSR/actual hook-free choice-callback journeys. Genuine public Basic92/Advanced104-action sources play self acquisition, unused turn-end retention, Nexus alliance and fresh entry. The actual ally grant is followed either by Duke battle use/release or a native-leader battle and retained unused Duke into turn3. All33 original Treachery and12 Nexus cards remain. The quote, engine, controls and original acquisition/bot/Nexus tests cover the related guards; controlled receipt supplements are not complete custody campaigns. Private report/logs: /home/quintine/.local/share/dune/checkpoints/20261026-ecaz-duke-ally-proof-v5/; journeys/HTML: adjacent 20261026-ecaz-duke-ally-runtime/. No saved-room/D1/server or recovery operation occurs. Browser/mobile/deployed acceptance and full combinations remain due; SSR/callbacks do not prove hydration.

No-Skills native Nexus scope extension — 15 October 2026

Original standalone, paired and mixed-family E3 Nexus predicates without Skills now admit Advanced Harkonnen, retaining their existing optional-module envelopes. The Ambassador's captured/dead/Ghola exclusions still apply; it does not inherit Moritani's provisional captive takeover or Nexus liberation. Basic optional loan and Advanced automatic new-ally grant keep their original tenure. Skills/Harkonnen, shared training and unrelated non-Nexus guards remain. Current native custody/source and bounded verification. Historical blanket/standalone-only Harkonnen wording below is superseded only in those admitted envelopes; no complete-mode or public-start gate opens.

Original standalone Advanced Harkonnen follow-up — 14 October 2026

The already admitted standalone Ecaz/classic no-Skills Nexus envelope now supports the original available-living Duke acquisition with Harkonnen. Captured, Ghola and dead discs remain unavailable to the Ambassador itself. Subsequent real Battle capture/return and independent Nexus liberation are connected without creating a sixth native leader or Traitor card. Their priority/return composition is explicitly provisional; broader roster/Skills guards remain. This supersedes only that envelope's blanket Advanced-Harkonnen exclusion in the historical checkpoint below. Current native controls and verification.

Basic new-ally loan first version — 8 October 2026

After the reusable Ambassador alliance is accepted in Basic, Ecaz receives a separate optional loan choice when Duke is available. The new ally controls the same disc; no native leader or Traitor card is created. Ecaz may decline, leaving the disc unchanged. The original entrant resumes after this choice. Private decision ownership and a minimal legal bot choice are connected.

The first version uses one-battle tenure and sets an unused living loan aside at turn end. These are labelled implementation policies under the Basic-first instruction, not a publisher clarification of return destination or mid-loan alliance changes. Exceptional custody and wider combinations remain for refinement. A direct Basic arrival → consent → legal bot loan → resumed entrant smoke passes.

Advanced accepted-alliance Duke grant — 8 October 2026

The authorized supplied UNOFFICIAL_Revised_Dune_Rulebook_v.2.3_web.pdf, physical page 30, Ecaz A, says “Then, add Duke Vidal to the triggering faction’s leader pool” after alliance consent, and sets an unused disc aside at turn end. Advanced therefore grants an available canonical Duke automatically in the accepting action, with no separate Ecaz loan choice or acknowledgement. Basic keeps its existing optional prototype choice.

The same disc changes controller/source, preserving identity and death history without appending a native leader or Traitor. Existing dead, captured/ghola and Advanced-Harkonnen scope guards remain; unavailable Duke does not veto alliance consent. One-battle release remains the explicit provisional tenure policy, not an additional supplied-text ruling. The entrant’s original arrival suffix resumes once after consent/grant.

One direct Advanced smoke reproduces the missing grant, then uses Easy's real consent, the automatic same-disc grant, a real Duke Battle Plan and surviving release through native aftermath. Three changed alliance contract cases pass, including Basic decline and dead/shared custody. Actual SSR consent controls were observed in Chromium with automatic grant wording. Types pass; no broad suite or deployed acceptance was run.

Rules and authoritative execution

game/ecaz-duke-acquisition.ts quotes a detached next DukeState using the existing custody helper. It requires a current seated Ecaz owner and the existing canonical shared disc. It preserves identity, death history and usedAt; it never appends a leader to a native roster, adds a Traitor card, manufactures a replacement disc, samples randomness or grants new battle-use permissions. Starting-force initialization remains the normal disc-creation boundary.

The actual entry event, turn/phase, decision owner, physical placed Ecaz token, entrant eligibility and explicit choice:'duke'/current self-or-reciprocal-ally beneficiary are checked before the token commits. Current native-roster duplication rejects through the same availability descriptor. An existing ally does not prevent Ecaz from acquiring for itself. An eligible Duke controlled by Moritani transfers as the same physical disc. The controller/source/turn update and token return occur in one authoritative action, followed by the existing Ambassador suffix.

The reusable token does not belong to the five-token random cohort. Its trigger leaves that cohort unchanged and never replenishes it. The chronicle distinguishes reusable return from ordinary set-aside tokens and records previous Duke control, the new tenure and resumption of the entrant’s actions. Successful acquisition emits an automatic notice using Ecaz’s faction color and the existing configurable 1.5-second notice queue.

The existing leader lifecycle supplies Duke to the chosen recipient’s battle-plan options and consumes temporary custody after battle use. Death retains the same disc in Tanks. Unused source-Ecaz control persists across turns, while a later qualifying Moritani acquisition still takes the same disc. Existing Advanced-Harkonnen and exceptional custody limits remain in force; this feature does not order the unresolved capture/return combination.

The 27 October same-recipient follow-up above supersedes the earlier blanket no-op restriction. Existing-ally acquisition and Basic/Advanced new-alliance choices retain their distinct earlier prototypes. Unsupported or unavailable commands preserve the placed token; declining the opportunity also preserves Duke and resumes the entrant.

Controls, privacy and AI

Only the actual owner’s Ecaz-token offer contains the dukeAcquisition descriptor and per-recipient benefit choices. The entry panel renders the offered acquisition buttons and availability reasons, one portrait inspector and the leave-in-place alternative. The self descriptor remains a compatibility fallback when the benefit list is absent. Other seats cannot submit the choice. Exceptional or concealed custody yields a generic unavailable reason rather than exposing a captor/ghola identity. Existing profile restrictions are checked before that custody; the dated no-Skills Harkonnen extensions above supersede the original blanket table restriction.

All four AI profiles use the owner’s projected choices to acquire for a legal recipient or decline, after any eligible alliance alternative. They do not inspect raw Duke custody, foreign hands, spice or Traitor cards. Enabling the Ecaz handler does not add Ecaz to BG’s random-token copy choices.

The complete Ambassador gameplay explanation remains readable in the token inspector, including printed alternatives that are not implemented yet. Separate coverage copy identifies those limits. Duke’s shared inspector and internal reference now distinguish unused Ecaz tenure from Moritani end-turn expiry. The public Ambassador inventory is collapsed by default behind a native keyboard-accessible summary showing supply/placed counts; expanding it retains every zone and inspector. Actual entry and placement choices remain open.

Traceable coverage

Facet Evidence Remaining
Implementation Shared self/ally quote, atomic real entry, token return, original movement/worm suffix, same-disc battle/turn lifecycle Wider revival/capture/occupation combinations and remaining public uncertainty resolution
Player controls Per-recipient actions/reasons, persistent tenure guidance, complete token guide, Duke portrait, private-owner descriptor, compact inventory Browser/mobile acceptance of the ally choices and broader faction journeys
AI All four minimal policies use projected legal recipients in Basic/Advanced; related bot regressions pass Strength calibration and full expansion games
Documentation Internal Ecaz/Duke topics, five-facet checklist, Ambassador guide and shared-disc support metadata updated Complete expansion reference and component inventory
Verification Current 19-file189/189 union and four native SSR/callback journeys; historical self-acquisition results below are separately dated Every legal expansion/module combination and all nested arrival interactions

Historical validation results — 7 September 2026

The following counts and artifacts describe the original self-acquisition checkpoint, not verification of the 26 October ally extension.

2,474 rules/client/component +224 multiplayer tests pass: 2,698 total. The new slice adds 24 rules/AI and four persistence tests. Full logs: /tmp/dune-ecaz-duke-rules-final.log (74.44 seconds), /tmp/dune-ecaz-duke-multiplayer-final.log (24.74 seconds). Final typecheck, lint and production build pass in /tmp/dune-ecaz-duke-{type,lint,build}-final.log. A final build followed the dedicated Duke inspector’s support-text correction.

New tests cover actual paid shipment and movement entry; Ecaz with an existing ally; transfer from Moritani; source/event/choice restrictions; missing/dead/captured/ghola/concealed or duplicate disc; exact reusable token/cohort behavior; foreign-hand independence; a real worm ride interruption and remaining ride; following battle use/death; actual next-turn tenure; and later end-of-movement Moritani takeover. The worm test begins from a staged worm decision and exercises the real ride and continuation; it is not a complete spice-deck journey. The no-replenishment case explicitly stages a completed cohort to verify Ecaz’s independent token semantics.

Production SQL tests reauthenticate through freshly loaded room code, race two identical acquisition submissions and observe one successful compare-and-swap. They preserve private cards/resources, the exact shared disc, counters and cohort. Stale/wrong-owner/unsupported commands and unavailable custody reject without writes. Actual subsequent entrant movement succeeds after both acquisition and decline. The staged prior Moritani control is a fixture, not a claim that its earlier acquisition was played in the same test.

The unchanged /tmp/dune-sapho-base-fullgames.ts public-start Basic runner completed 20/20 games, counts 2–6 and all four homogeneous difficulty levels, seed 20261017: 10,450 accepted actions, zero rejected candidates/stalls and 476 JSON round trips, 65.48 seconds. /tmp/dune-ecaz-duke-fullgames-final.json records unchanged game-source hashes during and after execution; combined fingerprint 1c5199b54891e91ac7fbcdbd71a18c545c2bc45a10b67cfa9a777278266ae93c. This is a shared-engine/AI regression sample, not coverage of the gated Ecaz feature in full games.

Historical browser playtest and preservation — 7 September 2026

This is the original self-acquisition playtest. Its room/database counts and server session are historical; no hourly maintenance or restart is now scheduled.

Existing isolated QA room 8S3MRDEK was backed up at v86, preserving both authenticated seat IDs. A conserved Advanced Ecaz/Moritani position stages an already Moritani-controlled Duke, a placed reusable Ecaz Ambassador and Ecaz forces in Arrakeen. The actual Moritani shipment of two forces creates the Ecaz offer at v87. Browser acquisition reaches v88 with the same disc now controlled by Ecaz, the token in supply, five random companions unchanged and the entrant’s paid shipment/counters intact. Refresh preserves the result.

The browser opened the Duke portrait and full Ambassador inspector, then expanded and collapsed the inventory. A controlled actual Moritani movement completion reached v89; browser Ecaz movement completion and battle choice followed. The battle-plan selector included Duke Prad Vidal at strength 6, and the browser sealed him at v92. Controlled Moritani defense/traitor actions reached v93, then browser resolution reached v94: Ecaz won, Duke is set aside alive with his Arrakeen usedAt, Moritani’s two forces are in Tanks, and collection credited Ecaz once. Ecaz retains three forces, 17 reserves, 12 spice and its private Shield; Moritani retains 18 reserves and 8 spice. No second acquisition or arrival was logged.

Private snapshots /tmp/dune-ecaz-duke-qa-{before,staged,acquired,resumed,sealed,defended,final}.json have mode 0600. Controlled scripts are /tmp/dune-stage-ecaz-duke-qa.ts, /tmp/dune-resume-ecaz-duke-qa.ts and /tmp/dune-defend-ecaz-duke-qa.ts. The starting position and controlled other-seat actions are explicit QA setup; the acquisition, inspection, main-player movement, battle selection, Duke plan and resolution were exercised through the browser. This is a targeted playtest, not a complete expansion game. Desktop readability was inspected; mobile-specific acceptance remains pending.

All 2,286 older non-QA room versions and state hashes still match the 08:50 UTC maintenance checkpoint; the database now contains 2,377 rooms after test fixtures. Development server session 88643 remains the controlled launch, with the next hourly maintenance check due 09:50 UTC during active work and subject to human-play safety. The removed automation was not recreated.

The full goal remains active. No Advanced/expansion start gate was opened, and complete rules, all optional modules, component inventory, calibration and broader user journeys remain unfinished.