655 lines
41 KiB
Markdown
655 lines
41 KiB
Markdown
# Homeworld setup and native reserve runtime
|
||
|
||
The original 9 September checkpoint connects the physical Homeworld model to
|
||
the authoritative game, player table and AI. Normal Homeworld starts are now
|
||
labelled previews, not complete Advanced/expansion acceptance. The earlier
|
||
component checkpoint remains in [HOMEWORLD_IMPLEMENTATION.md](HOMEWORLD_IMPLEMENTATION.md).
|
||
|
||
**18 October registered World all14:** every registered actual seat uses its
|
||
selected ordinary family, including mixed E3/E1/E2 and unused extra decks,
|
||
without a Nexus, single-family or independent-card requirement. Original
|
||
Tech/Advanced Strongholds and optional independent cards retain native sources,
|
||
pre-fee traits, fee/dial disjointness, committed-only Suk and every own-World
|
||
Harass ban. Bare native E3 cards keep their original roster envelope without
|
||
Skills. Original Nexus/Discovery/Semuta, Advanced role and effect guards remain;
|
||
no World, counter, wallet, owner or played history is manufactured.
|
||
[Latest registered scope and609/609 proof](LEADER_SKILLS_RUNTIME.md#registered-native-e3-selected-decks--18-october-2026);
|
||
[prior standalone/paired World459/459 proof](LEADER_SKILLS_RUNTIME.md#native-e3-worlds-with-independent-cards--17-october-2026).
|
||
|
||
|
||
## Original World Nexus payment chronologies — 18 October 2026
|
||
|
||
Two focused chronologies now exercise genuine original World card-granted
|
||
shipment sources against unchanged shared engine helpers. The Basic base33
|
||
scene ships Guild's first three native Junction counters to Giedi Prime,
|
||
spends the actual Cunning singleton, then returns the same three typed
|
||
visitors home: the second declaration opens the real native return permission
|
||
and native rate windows before the funded Guild fee gate, and the rival
|
||
Harkonnen-face holder cannot Use a second Guild payment. The Advanced
|
||
all14/Tech/Strongholds scene ships five actual selected Caladan counters into
|
||
Carthag under the original Richese Secret Ally discount and once without it;
|
||
the distinct Emperor holder of the real Guild singleton claims the one-spice
|
||
discounted fee or the full five-spice ordinary fee, and typed visitor/native
|
||
custody, source pools and unrelated seats stay untouched throughout.
|
||
|
||
Observed through the finite original-action programme
|
||
`/tmp/dune-world-nexus-payments-smoke.mts` (`node --import tsx`, exit0):
|
||
permission→rate gate kinds, invoice prices 2/1/5 with `originalReceiver`
|
||
guild, wallet and reserve deltas only at the owner acknowledgement, the
|
||
visitor pool leaving Giedi Prime for Junction without any counter creation,
|
||
and the once-only rejection of a repeated `homeworldShip`. New files are
|
||
`tests/fixture-nexus-core-world-payments.ts` and
|
||
`tests/nexus-core-world-payments-runtime.test.ts`; no shared engine, fixture
|
||
or profile file changed. Test runners, types, lint, build, formatters and git
|
||
were not run here; the frozen-suite verification remains with the parent.
|
||
|
||
## Mixed E1/E2 and paired E3 Nexus — 7 October 2026
|
||
|
||
Original Homeworld/Nexus now composes natives from both selected Ix+CHOAM
|
||
families/union47 or both Ecaz+Moritani/ecaz33 with classics, optionally
|
||
all14 Skills/Discovery7/8/Tech3+/Advanced Strongholds2+. Original typed
|
||
native/visitor custody, source-local winning rescue/residual substitution,
|
||
shared Duke, native assassination and printed payer ledgers are reused.
|
||
|
||
312 original admissions,31 programmes plus two Loyalty-stock regressions,
|
||
final489/489 checks across42 files and qualified258/288 original games
|
||
retain30 printed source stops. Actual390px mixed Ixian native2/1 shipping
|
||
and one-normal/one-Cyborg world transport charge the original four/two
|
||
spice; actual paired Ecaz native1 transport costs one, then native Cunning
|
||
takes the separate living Duke with no extra debit. Both public inspectors
|
||
show20 counters. No new return adapter, played-save conversion or
|
||
complete-mode/deployment gate is opened.
|
||
[Canonical qualified evidence](NEXUS_CARD_RULES.md#mixed-e1e2-and-paired-e3-nexus--7-october-2026).
|
||
|
||
## Single-native E1/E2 Nexus composition — 7 October 2026
|
||
|
||
Original Homeworld/Nexus now composes exactly one Ixians OR Tleilaxu,
|
||
or CHOAM OR Richese, with classics and one family deck, with or without
|
||
Skills. Discovery7/8, Tech3+ and Advanced Strongholds2+ remain optional.
|
||
Typed native, visitor and nested rescue, residual Cyborg substitution,
|
||
printed own-disc revival training, physical Face Dance and signed Richese
|
||
one-invoice marker pairs reuse the original consumers.
|
||
[Canonical source-qualified verification](NEXUS_CARD_RULES.md#single-native-e1e2-nexus-composition--7-october-2026)
|
||
records192 setup admissions,15 programmes/398 affected checks and190/192
|
||
completed original games across two frozen trees. Actual390px native typed
|
||
Cistern entry/equal Cyborg exchange and signed five-plus-three reveal keep
|
||
20 physical counters. Paired predicates still require both natives;
|
||
printed ruling and complete-mode/protected deployment gates remain.
|
||
|
||
## Standalone E3 Nexus without Skills — 6 October 2026
|
||
|
||
Fresh original Ecaz OR Moritani/classic Nexus now retains Homeworlds with
|
||
no Skills, optional Discovery7/8, Tech3+ and Advanced Strongholds2+.
|
||
Original ecaz33/all12, native setup, typed pools and roster/effect exclusions
|
||
remain. Generic Nexus setup reuses the original faction flag; no parallel
|
||
initializer or return adapter is added.
|
||
|
||
Actual human native Ecaz2 free Cistern entry, paid Junction visitor1 and
|
||
living-Duke Cunning retain native11/Imperial6/Cistern2/visitor1. Original
|
||
Mori supply Cunning/paid Guild1 Polar arrival/human Assassination reveal
|
||
consume one Nexus/token and kill the actual Staban once for its printed5.
|
||
[Full canonical source/game/human receipts](NEXUS_CARD_RULES.md#standalone-e3-nexus-without-skills--6-october-2026)
|
||
records372 affected checks and46/48 completed original games across two
|
||
frozen source trees. No full-mode, new ruling or protected deployment claim.
|
||
|
||
## Native Homeworld Nexus composition — 6 October 2026
|
||
|
||
Fresh original paired Ixians+Tleilaxu OR CHOAM+Richese entries now retain
|
||
Homeworlds/all12 Nexus with Skills, Discovery or both and optional original
|
||
Tech3+/Advanced Strongholds2+. The no-Skills/no-Discovery paired module entry
|
||
retains Tech and/or Advanced Strongholds. Standalone Ecaz OR Moritani with
|
||
classic opponents retains Homeworld/Nexus with all14 Skills, optionally
|
||
Discovery7/8 and those industry/card modules. Basic/Advanced2–6 follows
|
||
each existing roster predicate; Advanced Harkonnen and Duke/assassination
|
||
exclusions remain. Native singles/mixed-deck Nexus and no-Skills E3 module
|
||
families remain separate, not outside the complete goal.
|
||
|
||
The existing private skill/Nexus, paired Nexus module and paired Discovery/
|
||
Nexus envelopes are amended; original setup/initializers remain. Actual
|
||
Ixian pre-training offers precede native placement. Richese Cunning now
|
||
uses these existing Homeworld paired envelopes, not an Arrakis-only
|
||
fallback. No new revival/deposit adapter, public start or played-save
|
||
conversion is added. Revision physical PDF21–23 permits optional variants
|
||
together/separately regardless of seated factions; printed Nexus faces
|
||
retain their separate effect authority and pending interpretations.
|
||
|
||
Fifteen meaningful cases in two original programme pairs and the affected
|
||
25-file union307/307 pass. Typed native/visitor Suk, residual Cyborg Tank
|
||
substitution, nested single-invoice marker materialization, held support,
|
||
original cleanup/Tech, Moritani assassination/death/own revival and quiet
|
||
living-Duke Cunning retain original physical sources. Foreign-Homeworld
|
||
Face Dance suppression remains; Ecaz Arrakis Occupy does not become
|
||
Homeworld Occupy or Intrusion. All four minimal legal policies consume real
|
||
owned windows. Free native strength is not free dialed-force support;
|
||
CHOAM support income settles after Suk/cleanup and excludes its own plan.
|
||
|
||
Fixture corrections use actual leader-death rewards, typed rescue returns,
|
||
affordable declarations, real turn-six Charity and available untrained
|
||
later-battle leaders after posture closes. No wallets, forces, deaths or
|
||
outcomes are injected. An older copied-hand/staged-army test with
|
||
“authenticated” player names but no HTTP authentication is deleted, not
|
||
re-pinned; actual original HTTP/private-CLI human evidence follows below.
|
||
|
||
Twenty-three new runner profiles retain stable bands10300–12500, leaving
|
||
older names/seeds unchanged. Families are `paired-homeworld-nexus-skills`,
|
||
`paired-homeworld-nexus-discovery`, `paired-homeworld-nexus-discovery-skills`,
|
||
`e3-homeworld-nexus-skills` and `e3-homeworld-nexus-discovery-skills`, each
|
||
optionally `-tech`, `-stronghold` or `-stronghold-tech`; no-Skills/no-Discovery
|
||
paired profiles are `paired-homeworld-nexus-tech`, `-stronghold` and
|
||
`-stronghold-tech`. Original prerequisite guards and exact resume dispatch
|
||
remain authoritative.
|
||
|
||
Across all23 families,59 of68 original six-seat Basic/Advanced samples
|
||
complete71,137 accepted/71,484 attempted actions with1,894 JSON continuations
|
||
on unchanged source tree
|
||
`d5083acd4842b98e6ccdb753354c36b50f840726248d6d952db8c8835478509e`
|
||
(HEAD `71bc325`). Every report's before/after receipt is read. Nine original
|
||
captures retain existing guards: seven low-CHOAM opening-income cases,
|
||
one Basic odd-**force** Ecaz Occupy and one Imperial revival crossing a
|
||
Homeworld high threshold. Their actual rejected trace reasons are read;
|
||
none is bypassed or rerun to confirm. This is not68 uninterrupted completions
|
||
or a later documentation-tree certificate. Reports and captures remain at
|
||
`/tmp/dune-native-{profile}-six-seat-20261006`, seed20268006.
|
||
|
||
Human390px `AB7UKV8K` uses its original four-human Richese/CHOAM/Guild/Fremen
|
||
HTTP lobby and original `nexus --discoveries` CLI, with Homeworld/Tech/Strongholds
|
||
selected beforehand. Original Traitors and legal Fremen placement complete.
|
||
Only conserved original unplayed Spice/Nexus order is selected; the actual
|
||
supply lottery yields Cistern, not a staged token. Guild's native3 paid
|
||
shipment, actual peek/reveal and next-turn free parent entry precede real
|
||
Maker majority, both Advanced piles, Guild/Fremen alliance and closing draw.
|
||
The human draws the actual Richese singleton, then uses the Cunning surface
|
||
to reveal5 and conceal3 inside Cistern. Original Guild approval commits
|
||
one-spice invoice: wallet5→4, native reserves20→15 and Cistern5 plus the
|
||
concealed marker. Actual human revelation materializes the other3: atv145,
|
||
native reserves12/Cistern8, Tanks0, no concealed marker, wallet4 unchanged.
|
||
The fresh public inspector shows20 physical counters, not marker strength.
|
||
|
||
Human390px `8Q2WZQMA` uses its original Ecaz/Guild/Bene Gesserit lobby and
|
||
`leader-skills --nexus-cards` CLI with Homeworld/Tech/Strongholds. Actual
|
||
Prediction precedes its random Diplomat/Warmaster offer; the human chooses
|
||
Warmaster on the original eligible Sanya Ecaz disc without redealing.
|
||
Both other actual trainings and native placement complete. Real first turn,
|
||
both second-turn piles, Guild/BG alliance and closing draw precede the
|
||
human Ecaz singleton draw. The human ships1 actual native counter to
|
||
Wallach IX for1; reserves14→13, separate visitor1, BG native19 unchanged.
|
||
At the actual quiet Battle window the human spends Ecaz Nexus for the
|
||
living unclaimed Duke. Atv88, Duke control is Ecaz, the card is gone, original
|
||
Sanya/Warmaster remains alive and uncaptured, and the v87/v88 purse stays12.
|
||
Ordinary phase-opening income is separate from the shipment/Cunning.
|
||
The fresh inspector shows13 native reserves, Imperial Basin6 and Wallach1.
|
||
|
||
Fresh choice/result accessibility and screenshots observe both original
|
||
390px surfaces with document width390. These bounded programmes do not
|
||
certify complete modes, all combinations, comprehensive assurance,
|
||
calibration, pending rulings or protected deployment.
|
||
|
||
Final types/lint/build pass. The first guide load after rebuilding beneath
|
||
the owned QA worker fails its old lazy-chunk request; an owned-only worker
|
||
restart loads the new native composition and307-check evidence at390px.
|
||
The originalv145/v88 changed-path states retain their counters, Duke and
|
||
training. All three managed tabs close; both temporary TypeScript helpers
|
||
are removed. Private source reports, captures and credential-free human
|
||
action/result receipts remain outside Git.
|
||
|
||
Gameplay checkpoint `2efa10a9d6d1f60e3725404f5d0a4b36de596732` is pushed,
|
||
rebuilt exactly and loaded into the owned isolated QA worker. Both original
|
||
v145/v88 tables show that full Git revision at390px with retained counters,
|
||
living Duke and original training. The updated native Homeworld guide and
|
||
307-check evidence render at document390. All three exact-checkpoint tabs close.
|
||
Final container
|
||
[run37537171148/job112521014337](https://github.com/Quintine/Dune/actions/runs/37537171148/job/112521014337)
|
||
completes successfully: isolated verification7 finishes before publication9
|
||
in the workflow. The final job record is read; this is verified image
|
||
publication, **not protected-server deployment**.
|
||
|
||
## Classic Homeworld Nexus composition — 6 October 2026
|
||
|
||
Fresh classic Basic/Advanced2–6 now composes original Homeworlds/all12 Nexus
|
||
with all14 Skills, Discovery7/8 or both, optionally original Tech3+ and
|
||
Advanced Strongholds2+. Without Skills/Discovery, original Homeworld/Nexus
|
||
additionally retains Tech and/or Advanced Strongholds. Existing `nexus`
|
||
with optional `--discoveries`, and `leader-skills --nexus-cards` with optional
|
||
`--discoveries`, remain the only private setup paths. Original base33,
|
||
private offers/hands, native placement and unchanged fresh-inventory guards
|
||
remain; no public start, new profile initializer or saved-game conversion.
|
||
Native Homeworld/Nexus optional-module families remain separate.
|
||
|
||
Eight original admission cases reject before the amendment and reach
|
||
original Traitors/Skills afterward. Three existing classic envelopes are
|
||
extended; native predicates remain authoritative. The existing
|
||
`addRevivedReserves`/`quoteNativeRevivalDeposit` already routes actual native
|
||
returns, so no second revival adapter is added. The fixed Emperor grant
|
||
uses the existing classic Nexus module predicate, including its Discovery
|
||
route. Printed Nexus faces retain their own source authority; the supplied
|
||
revision21–23 supplies the other variant and Homeworld mechanics.
|
||
|
||
Thirteen semantic cases and the affected20-file union242/242 pass;
|
||
final types/lint/build pass. Actual programmes cover qualified closing draws,
|
||
typed native/visitor Suk, original cleanup/winner Tech, death/card return,
|
||
exact-three Fremen Nexus revival, Maker casualties/votes/typed reserve ride,
|
||
both Advanced piles and next-turn parent entry. JSON continuations and all
|
||
four minimal legal policies exercise those actual windows. Support pays at
|
||
resolution before Suk, not at reveal. PDF22 grants the native strength
|
||
bonus for free, not free support for dialed forces. Ordinary stronghold
|
||
Collection income remains separate from the printed blow harvest. A preceding
|
||
Shai-Hulud may already resolve losses before Great Maker; those casualties
|
||
do not repeat. Incidental input/view copies, fake-auth/identity pins and
|
||
undefined-object/spice-property shape assertions are deleted, not re-pinned.
|
||
|
||
Fifteen new runner profiles retain stable bands8800–10200 without changing
|
||
older6400–8700 names/seeds. Families `homeworld-nexus-skills`,
|
||
`homeworld-nexus-discovery` and `homeworld-nexus-discovery-skills` optionally
|
||
add `-tech`, `-stronghold` or `-stronghold-tech`; no-Skills/no-Discovery
|
||
profiles are `homeworld-nexus-tech`, `homeworld-nexus-stronghold` and
|
||
`homeworld-nexus-stronghold-tech`. Existing prerequisite guards now include
|
||
these Homeworld classifiers: an observed unsupported Basic Stronghold
|
||
request falsely reported passed with zero samples; it now rejects, as does
|
||
two-seat Tech, before output creation. The original empty receipt remains.
|
||
|
||
Twenty-two original six-seat games across all15 families finish
|
||
14233 accepted/14233 attempted actions with375 JSON continuations and no
|
||
rejected candidates on unchanged source tree
|
||
`3f53782ade5a1824388ddc1dc552558da79ab0b2ef6354c1819ef919d07f1b08`
|
||
(HEAD `b5f5de5c83cf00e4b3006c422dad97f9d87a625c`). Every report's before/
|
||
after receipt is read. This is one frozen gameplay batch, not complete-mode/
|
||
final assurance or a later documentation-tree certificate. Private reports:
|
||
`/tmp/dune-classic-homeworld-nexus-*-six-seat-20261006`.
|
||
|
||
Human390px `RCGZK4CF` uses its original HTTP four-seat lobby/private CLI.
|
||
Its actually offered Suk on Hasimir is selected without redealing. Conserved
|
||
unplayed Spice/Nexus order selects the qualifying encounter/singleton; all
|
||
armies, alliances, losses and payments follow real actions. The human draws
|
||
Fremen after actual alliance settlement, ships3 ordinary/1 Sardaukar from
|
||
Kaitain/Salusa to Junction for4, then explicitly chooses zero Suk saves.
|
||
At next original Revival the human spends that actual Nexus for2 ordinary/
|
||
1 Sardaukar. Atv167: reserves19/5, Tanks0/0, Kaitain14 ordinary, Salusa5
|
||
Sardaukar, original Junction visitor1 ordinary, wallet6 unchanged by return.
|
||
The physical Nexus is discarded once; the original trained disc survives.
|
||
An offline auction-plan divergence is not retried: subsequent actions use
|
||
the actual current owned policy/offer. No event or outcome is staged.
|
||
|
||
Human390px `A3LV8Y3U` uses the original no-Skills Nexus/Discovery CLI,
|
||
three actual seats and Homeworld/Tech/Strongholds. Only original unplayed
|
||
Spice order is selected; the real supply lottery yields Shrine and the later
|
||
Nexus draw yields Moritani without selecting either face. The human reveals
|
||
Shrine, freely enters with the actual3-counter Imperial parent army, votes
|
||
for the real majority, and rides2 native Fremen reserves including1 Fedaykin
|
||
inside. The prior Atreides blow army goes to Tanks2 once. Both actual
|
||
Advanced piles finish before settled alliance and the sole closing draw.
|
||
Atv74: Shrine Emperor3/1 and Fremen2/1, native Southern Hemisphere6/2,
|
||
Atreides Tanks2, held Moritani; no duplicate movement, shipment or fee.
|
||
Choice screenshots, fresh state/accessibility and document width390 prove
|
||
these working-tree controls. All tabs close and temporary scripts are removed.
|
||
|
||
Native compositions, pending effect interpretations, public starts, full
|
||
combinations, comprehensive assurance/calibration and protected deployment
|
||
remain open; this bounded prototype does not shrink the complete goal.
|
||
|
||
Pushed gameplay `c7073dc6b6602f09d15bea55c89608eaabb82613` then receives an
|
||
exact build and owned isolated-QA restart. The originalv167/v74 tables show
|
||
that full revision at390px with retained native/visitor and Shrine/Maker
|
||
custody; the actual updated combined Homeworld guide remains document390.
|
||
Both tabs close. Final container
|
||
[run37524999649/job112479645440](https://github.com/Quintine/Dune/actions/runs/37524999649/job/112479645440)
|
||
completes successfully, isolated verification7 before verified publication9.
|
||
No protected server is deployed.
|
||
|
||
|
||
## Native optional-module compositions — 6 October 2026
|
||
|
||
The existing fresh private entries now preserve Homeworlds with Skills,
|
||
Discovery or both for supported native E1/E2 single/paired rosters and
|
||
Advanced distinct-family decks, or standalone Ecaz **OR** Moritani with
|
||
classic opponents. Basic/Advanced2–6; original unused Tech3+ and Advanced
|
||
Strongholds2+ remain optional. Original roster/deck, Duke and assassination
|
||
exclusions remain; no Nexus, unsupported E3 pairs/mixed families, unrelated
|
||
previews, public starts or played-game conversion is admitted.
|
||
|
||
Authorized revision physical21–23 permits the variants together/separately
|
||
irrespective of factions. Existing native predicates and initializers remain
|
||
the single setup path. Nullable Homeworld custody now covers the original
|
||
Ixian `skillTreachery` card choice before training/force placement. Actual
|
||
normal/trained native/visitor Suk rescue forwards residual Cyborg Tanks from
|
||
the same physical quote into optional equal Suboid substitution, fixing a
|
||
reproduced null-quote crash without restoring rescued counters to the Tanks.
|
||
Native saved forces stay at the original home; the Imperial external split
|
||
remains the implementation interpretation below, not ordinary revival.
|
||
Non-native Homeworld winners retain the existing Face Dance offer prohibition.
|
||
Original CHOAM payer/support, Richese caps and revealed nested invoice,
|
||
Tleilaxu own leader revival, Ecaz Arrakis-only Occupy, Moritani assassination/
|
||
skill return and native-world winner Tech timing remain distinct mechanics.
|
||
|
||
Thirty-five new semantic cases and the affected19-file union180/180 pass.
|
||
After the subsequently discovered Ambassador bot and natural-Storm fixture
|
||
repairs, the final four-file union46/46, types/lint and build pass.
|
||
The old classic invasion fixture now explicitly allows the original Guild
|
||
interception decision: a real Easy-AI Karama cancellation had removed the
|
||
army/battle under test. A preserved reproduction and80 original repaired
|
||
invasion boundaries prove the fixture change, not a new shipment rule.
|
||
|
||
The runner adds twelve `native-homeworld-{skills,discovery,discovery-skills}`
|
||
families with optional `-tech`, `-stronghold`, `-stronghold-tech` at stable
|
||
bands7600–8700; existing classic names/seeds6400–7500 are unchanged.
|
||
Original six-seat `native-homeworld-skills` samples:14/19 complete,
|
||
18693 accepted/18718 attempted actions and501 JSON continuations among those
|
||
completed games, on unchanged tree
|
||
`fc792b6089e8d3a17e661daf5a76b9148ad45692c3dfafb2d9481520822d6a31`.
|
||
Five original captures stop at existing CHOAM low-opening-income, exhausted
|
||
Richese cache or Basic odd Ecaz Occupy ruling guards; none is bypassed.
|
||
|
||
All twelve families then run twelve original Advanced three-seat samples
|
||
each:134/144 initially complete,34730 accepted/34853 attempted actions/
|
||
867 JSON among completed games, on unchanged tree
|
||
`3a99f592826e5476825d43330397c7fdca6582157f2bc05600f24a7b7919105f`.
|
||
Eight captures retain the existing CHOAM ruling guard. Two actual Ecaz
|
||
placement deadlocks exposed a bot enumerating revealed Discovery strongholds
|
||
although the original engine/UI permit only base-board strongholds.
|
||
The bot now uses that same base-board enumeration; every difficulty legally
|
||
declines on both preserved exhausted-destination states and advances to
|
||
Shipment. Those exact original captures complete102/124/2 and21/29/0 further
|
||
accepted/attempted/JSON actions on unchanged tree
|
||
`f80a99ba1799254ea93bd3eed6cc64ece7d95195d5503f115c0f570cf9e1828a`.
|
||
This is136 completed three-seat games **across repaired continuations**,
|
||
not144 uninterrupted passes or a final-tree certificate. Existing rejected
|
||
competing Ambassador-arrival candidates remain visible in these reports.
|
||
Reports/captures are private `/tmp/dune-native-homeworld-*-20261008` and
|
||
`/tmp/dune-native-homeworld-skills-first-games-20261007`; no original game,
|
||
native custody or pending ruling is reset.
|
||
|
||
Human390px QA uses two original authenticated HTTP lobbies and the existing
|
||
private CLI, with no redeal, held-card/force injection or outcome lottery.
|
||
`4AG8J2ZX`v9 starts original Ixian `skillTreachery`: the human chooses its
|
||
original Shield, then Prana-Bindu Adept on C’tair Pilru before original
|
||
Traitors/native placement. In actual turn-one Shipment the human declares
|
||
one Suboid plus one Cyborg from Ix to Kaitain for2 spice. Atv74 Ix retains
|
||
9 Suboids/3 Cyborgs, the original Kaitain visitor group is1/1, the separate
|
||
HMS army remains3/3 and the Ixian wallet is7. Original Skills/Discovery/
|
||
Tech/Stronghold custody remains.
|
||
|
||
`TYH3JS3C` uses original standalone Advanced Moritani Homeworld/Skills
|
||
setup without Discovery. The human keeps its actually offered Suk Graduate
|
||
on Lupino Ord. A genuine two-force Guild invasion and original1-supported
|
||
native plan produce the native Moritani win. The human saves the actual
|
||
single ordinary casualty through the owned Suk panel. Atv56 Grumman still
|
||
has14 native forces, Moritani Tanks0, Guild Tanks2 and no visitors remain.
|
||
The original Grumman Collection decision follows; no native force is moved
|
||
to another home and support/plans/casualties are not replayed.
|
||
Both actual choice screenshots, fresh accessibility/resulting state and
|
||
document width390 were observed. These are working-tree controls, not a
|
||
pushed revision or deployed acceptance claim.
|
||
|
||
This bounded composition is Development Verified, not complete faction/
|
||
module coverage, all combinations, comprehensive assurance, calibration or
|
||
protected deployment.
|
||
|
||
Pushed gameplay `3fb047c93d4f41840ee527883b3d7deda35b1645` then receives an
|
||
exact build and owned isolated-QA restart. Both originalv74/v56 tables display
|
||
that full revision at390px and retain the observed native/visitor counters.
|
||
The actual updated native Homeworld guide renders at document width390.
|
||
All tabs are closed. Final container
|
||
[run37510034689/job112428482102](https://github.com/Quintine/Dune/actions/runs/37510034689/job/112428482102)
|
||
completed successfully; isolated verification7 finishes before publication9.
|
||
No protected server is deployed. Checkpoint dates follow the actual6October
|
||
revision timestamp; private numeric run-directory labels are not calendar evidence.
|
||
|
||
|
||
## Classic optional-module compositions — 6 October 2026
|
||
|
||
The fresh classic Homeworld prototypes now compose **Skills, Discovery or
|
||
both**, with original unused Tech at three or more seats and/or original
|
||
Stronghold Cards in Advanced at two or more seats. Basic/Advanced two–six
|
||
unique base factions; both optional industry/card modules require Advanced3+.
|
||
Existing `leader-skills --discoveries` and `discovery` private room entries
|
||
preserve selected Homeworlds and original components; no parallel setup or
|
||
save conversion. The runner adds ten profiles at stable bands6600–7500 while
|
||
retaining existing6400/6500 names/seeds. Families `homeworld-skills`,
|
||
`homeworld-discovery` and `homeworld-discovery-skills` add `-tech`,
|
||
`-stronghold` or `-stronghold-tech` under those prerequisites.
|
||
|
||
Authorized PDF21–23 expressly permits variants together/separately. Original
|
||
all14 offers, DS7/8, first-Storm industry ownership, end-Mentat held cards and
|
||
native reserve placement remain. Nested battles get no Homeworld native
|
||
bonus. Typed Suk returns use actual homes; support is already paid before
|
||
rescue, while later Cistern income is a separate printed reward. Native saves
|
||
still stay at their original home; the external Imperial split remains the
|
||
implementation interpretation recorded below, not ordinary revival placement.
|
||
Printed industry accrues once and pays at phase end; Guild-only transport is
|
||
excluded. Held Arrakeen support and Carthag poison defense remain source-local,
|
||
not borrowed by Homeworlds or Cistern. Physical cleanup precedes mandatory
|
||
winner Tech choice without replaying armies or casualties.
|
||
|
||
New semantic cases14/14; affected union145/145 across17 files; types/lint
|
||
and build pass. Original private room entry also exercises real combinations
|
||
and rejects two-seat Tech/Basic Strongholds with the saved lobby unchanged.
|
||
Four-policy original six-seat games cover ten added profiles: thirteen
|
||
completed7879/7879 actions with207 JSON continuations on unchanged tree
|
||
`bf9b1f8a59f77494c1f2dcbd79326705aae1a00c37bc09bd3a157d4de9fb0851`.
|
||
One Advanced `homeworld-discovery-stronghold` seed20268015 stopped at
|
||
turn8/Shipment after1110/1110/29 because an internal view-copy assertion
|
||
treated four optional `undefined` advisor-response properties as different
|
||
from JSON omission. That incidental assertion was deleted, not re-pinned;
|
||
physical custody, rival-privacy checks and actual restored play remain.
|
||
The preserved capture completes19 further actions. The same original fresh
|
||
sample then completes1129/1129/30 on unchanged tree
|
||
`b47a9b126b4f7edf4a29a346fc124ee9427e22d7659c3f0762b0b16ad96fe2f2`.
|
||
Thus fourteen completed original samples total9008/9008/237 across two source
|
||
batches, **not** one final-tree certificate or fourteen uninterrupted passes
|
||
on the first tree. Reports/capture remain under
|
||
`/tmp/dune-homeworld-optional-*-20261006`; no rules guard was bypassed.
|
||
|
||
Human QA: original HTTP four-seat lobbies, real host module toggles, original
|
||
private CLI and explicit unplayed offer/card/token lotteries feed genuine
|
||
action programmes. `XJCJ3H3W`v17 actually submits trained Cistern Suk:
|
||
three ordinary remain inside, reserves17/5 and Tanks0; Kaitain11 ordinary/
|
||
1 Sardaukar, Salusa1/4. Separate Collection pays Cistern2; original industry
|
||
and held-card custody remain. `WM8E7CFG`v17 actually chooses Spice Production
|
||
from two real mandatory Tech options after two genuine Homeworld battles and
|
||
original winner cleanup. Emperor retains one ordinary visitor in Southern
|
||
Hemisphere, native home is empty, reserves14/4, Tanks2/0 and original parent
|
||
army3 with1 Sardaukar. The defeated Fremen retains Axlotl; physical armies
|
||
are not replaced by the Tech action. Both390px surfaces, choices and fresh
|
||
resulting state were observed. These were working-tree controls, not a pushed
|
||
revision/deployment claim. Both tabs closed; temporary human scripts removed.
|
||
|
||
Gameplay checkpoint `fa025220f858e1cf3797f9a34ed39c0822c29bbd` is pushed.
|
||
After an exact build and owned isolated-QA restart, both originalv17 tables
|
||
display that full revision at390px and retain their observed counters/token
|
||
choices. The actual updated Homeworld guide paragraph renders without overflow;
|
||
all tabs are closed. Exact container
|
||
[run37432875364/job112167625286](https://github.com/Quintine/Dune/actions/runs/37432875364/job/112167625286)
|
||
completed successfully; final job record confirms isolated verification7
|
||
finished before publication9. No protected server was deployed.
|
||
|
||
Nexus, native expansion rosters, unrelated previews/variants and pending
|
||
specific rulings remain separate in this checkpoint. Public starts, full
|
||
combinations, comprehensive assurance, calibration and deployment stay open.
|
||
|
||
## Classic Skills and Discovery — 6 October 2026
|
||
|
||
Fresh private prototypes now support Homeworlds with **either** Leader Skills
|
||
or Discovery: Basic/Advanced, two–six unique base factions, no other overlays.
|
||
Use existing `start-prototype.ts --profile leader-skills` or `--profile discovery`
|
||
on a fresh ready lobby with Homeworlds enabled. Genuine game runner profiles
|
||
are `homeworld-skills` and `homeworld-discovery`. Original fourteen skill
|
||
offers, seven Discovery cards/eight tokens, first hands and native placement
|
||
remain authoritative; no existing save is converted.
|
||
|
||
The authorized root revision, physical PDF21–23, permits variants together
|
||
or separately, keeps Homeworlds outside Arrakis and preserves their normal
|
||
battle rules except printed modifications. This is permission to compose
|
||
these prototypes, not a ruling for every interaction or a complete mode.
|
||
Nullable custody now remains legal through actual skill assignment before
|
||
the original force-placement stage.
|
||
|
||
Suk quotes use physical normal/elite casualties and real native or visiting
|
||
Homeworld pools. A native save remains at that same home; it cannot redeploy
|
||
freely. An external save returns to actual native reserve homes. When Emperor
|
||
has both homes, human controls require an exact ordinary/elite allocation;
|
||
minimal bots allocate the return to the primary home. **Allowing both types
|
||
at either native home is a prototype implementation interpretation**, not
|
||
the PDF22 ordinary-revival placement rule and not a new user/publisher ruling.
|
||
The quote validates before mutation and conserves physical custody, Tanks
|
||
and reserves. Battle costs, leader death and card cleanup do not repeat.
|
||
Bureaucrat's existing invoice redirection now accepts this bounded profile.
|
||
Discovery's original Maker, next-turn entry and nested shipment paths need
|
||
no alternate mechanics.
|
||
|
||
Verification:17/17 new behavioral cases;94/94 affected tests across12 files;
|
||
types/lint and build pass. Four original six-seat Basic/Advanced games using
|
||
all four legal AI policies finish2330 accepted/2330 attempts,61 JSON
|
||
continuations. Skills1125/1125/29 ran on unchanged source tree
|
||
`4d3f1c5f99bf6a18cac6553a1ecb0bfbe4da35709e91f1384050506fbd98fc00`;
|
||
Discovery1205/1205/32 on
|
||
`64c0b8ae5286bfdab9019222bb652bf99a7b1f1478eb5b16024844503c930412`.
|
||
Reports are `/tmp/dune-homeworld-classic-{skills,discovery}-games-20261006/report.json`.
|
||
These are two source batches, not one final-tree certificate.
|
||
|
||
Human QA uses isolated existing QA persistence on local port3089, not the
|
||
protected server. Original fresh human rooms, original CLI setup and explicit
|
||
unplayed lotteries feed genuine engine action programmes; no held components
|
||
are injected. At390px, `3NM6MS4T`v11 actually submits trained Suk rescue:
|
||
Junction retains three ordinary visitors; Kaitain has11 ordinary/1 Sardaukar,
|
||
Salusa1 ordinary/4 Sardaukar, reserves17/5 and Tanks0. `CLQYLURH`v11 actually
|
||
submits next-turn Cistern entry for two ordinary/one Sardaukar: reserves17/4,
|
||
Kaitain12/0, Salusa1/4, preserving the earlier actual turn-one internal move.
|
||
Both rendered surfaces have document width390; fresh state and accessibility
|
||
were observed after submission. Nested shipment has engine/runtime coverage,
|
||
not an additional human submission claim.
|
||
|
||
Gameplay checkpoint `e2dcebca35a89ed1e1d129b1fbc2428378b1d700` is pushed.
|
||
An exact build and owned isolated-QA restart retain both originalv11 tables;
|
||
each displays the full checkpoint revision at390px. The actual Homeworld
|
||
guide paragraph renders without overflow. All QA tabs are closed and the
|
||
temporary human lottery/staging scripts were removed. Exact container
|
||
[run37427758535/job112151199196](https://github.com/Quintine/Dune/actions/runs/37427758535/job/112151199196)
|
||
completed successfully; final job record confirms isolated storage/HTTP
|
||
verification7 finished before publication9. No protected server was deployed.
|
||
|
||
Native expansion combinations, other overlays, Advanced Atreides Suk/KH,
|
||
captured replacement, Diplomat Homeworld retreat and the separate Emperor
|
||
Face Dance allocation question remain guarded. No public start, deployment,
|
||
complete rules, recovery/privacy assurance or AI calibration is certified.
|
||
|
||
## Implemented behavior
|
||
|
||
`Game.homeworlds` is optional for existing saves. An enabled fresh lobby stores
|
||
`{custody:null}` until the genuine setup pipeline places forces, after prediction
|
||
and traitor choices. Setup then records typed native reserves and Advanced
|
||
Emperor's separate Salusa allocation. The offline-only initializer does not
|
||
replace the public start gates or dispatch through the room API. It supports
|
||
the currently implemented base/Ix deck sets; CHOAM/Richese and Ecaz/Moritani
|
||
deck construction still rejects instead of substituting a different deck.
|
||
|
||
Native primary counts derive from the player's aggregate reserves; Salusa is
|
||
an allocation within those totals. Foreign garrisons remain separate physical
|
||
pools. Reads, actions and automatic normalization validate custody and all
|
||
twenty physical counters, including special-counter identities across board,
|
||
Tanks, native worlds and foreign worlds. Missing Salusa allocation is rejected,
|
||
not reconstructed. Ixians have seven Cyborgs total, initially four in reserves
|
||
and three in the mobile stronghold. The earlier custody limit of four is fixed.
|
||
|
||
Basic Homeworld setup retains Emperor's five Sardaukar and Fremen's three
|
||
starred counters. They count as strength one in ordinary Basic combat and do
|
||
not activate Advanced faction responses. Basic winner casualties preserve the
|
||
owner's physical normal/special selection. Basic revival and Ghola preserve
|
||
identity without imposing the Advanced one-special-counter-per-turn limit.
|
||
Ixian special-counter rules retain their separate behavior.
|
||
|
||
The Advanced Emperor's `emperorHomeworldMove` action transfers an explicit
|
||
normal/Sardaukar group between Kaitain and Salusa. The server checks current
|
||
owner, phase, movement budget, pending controls and a public-state event. It
|
||
spends one movement, charges no spice and conserves aggregate reserves.
|
||
Starting with movement passes an unused shipment. A real Hajr supplies the
|
||
second movement; active Ornithopter composition remains explicitly blocked.
|
||
Homeworld permission is independent of ordinary faction Karama cancellation.
|
||
|
||
Ordinary native-to-Arrakis shipments now withdraw exact typed Homeworld sources.
|
||
An omitted selection is inferred only when the allocation is unique; ambiguous
|
||
partial draws from both Imperial worlds require explicit choices. The same
|
||
transaction places the matching Arrakis counters once. The chronicle records
|
||
the Homeworld sources and cost. No-Fields retain their separate source contract.
|
||
Normal force revival, Emperor special-Karama force revival and Ghola deposit
|
||
Advanced Emperor's normal forces on Kaitain and Sardaukar on Salusa, even when
|
||
those counters previously moved between worlds. Other factions return to their
|
||
one native reserve pool. Completed Ghola discard receipts bind the full
|
||
Homeworld custody as well as aggregate counters.
|
||
|
||
The public table displays each native world's physical counts and population,
|
||
with the full local-art card inspector. Emperor controls select a movement's
|
||
origin and force types and the Salusa contribution to a combined shipment.
|
||
Kaitain's complementary contribution is displayed and submitted explicitly.
|
||
Invalid source counts disable submission; stale choices are revalidated by the
|
||
server. Shared public helpers give all four AI levels legal typed shipment
|
||
sources and a bounded transfer policy to restore Imperial population. They
|
||
do not read opponent hands, decks, predictions or spice.
|
||
|
||
The server's shipment-completion search uses the same source helper. Its
|
||
mixed-Imperial proof is tested as an internal future integration seam: actual
|
||
Advanced Truthtrance shipment questions still remain Basic-gated.
|
||
|
||
## Verification scope
|
||
|
||
- Genuine setup: sixteen six-seat setups span the eight supported factions,
|
||
Basic/Advanced and all four profiles; another eight mixed-Ix setups cover
|
||
two through five seats. Unsupported deck combinations reject unchanged.
|
||
Prediction/traitor privacy, physical card uniqueness and JSON recovery pass.
|
||
- Actual actions: transfer, Hajr, wrong-owner/stale/blocked rejections, mixed
|
||
native shipment and a Sardaukar's shipment → Storm death → revival on Salusa.
|
||
Ghola's saved completed-effect frame drains once; changing only its Salusa
|
||
allocation rejects despite unchanged aggregate counters.
|
||
- Basic counters: both Emperor and Fremen retain strength-one stars, legal
|
||
casualty choices, repeated typed revival and Ghola. Ordinary Basic behavior
|
||
without the module remains unchanged.
|
||
- AI: every offered movement/shipment candidate is individually accepted by
|
||
the real dispatcher across all four levels. Explicit sources, unavoidable
|
||
elite draws, hidden-information independence, Basic exclusions and no
|
||
oscillating population repair are verified.
|
||
- In-memory production SQL: duplicate and competing transfer requests commit
|
||
one version; fresh module instances and authentication restore the same
|
||
physical state/private hand. Corrupt missing Salusa state rejects without
|
||
writes. Unrelated rooms remain unchanged.
|
||
|
||
`npm run check` passes typecheck, lint and **3,152 offline tests**. The final
|
||
production build passes; `npm test -- homeworld reference` passes **106**
|
||
focused cases. Logs: `/tmp/dune-homeworld-runtime-check-final.log`,
|
||
`/tmp/dune-homeworld-runtime-build-final.log`,
|
||
`/tmp/dune-homeworld-runtime-focused-final.log`, and
|
||
`/tmp/dune-homeworld-actions-engine-final.log`.
|
||
|
||
The live browser used a new named QA room, `VQ6ALGRE`. Genuine setup preceded
|
||
a documented conserved dual-source phase position. UI actions shipped three
|
||
forces (one normal from Kaitain; one normal and one Sardaukar from Salusa),
|
||
then moved three normal forces from Kaitain to Salusa. The final position has
|
||
Kaitain 7 normal + 2 Sardaukar; Salusa 6 normal + 2 Sardaukar; Arrakeen three
|
||
forces including one Sardaukar; seventeen reserves and seven spice. Refresh
|
||
preserved it. Invalid source input disabled shipment, enlarged Kaitain opened
|
||
from the table, and 390×844 inspection found no horizontal overflow in the
|
||
world panels or inspector. Desktop card and phone movement screenshots were
|
||
visually reviewed; this is bounded sampling, not full module acceptance.
|
||
|
||
Forty live HTTP tests pass. Twenty ordinary **two-player Basic** games finish
|
||
3,079 accepted actions with no rejected candidates or stalls, using seed
|
||
20261026 and unchanged source fingerprints. This small regression sample is
|
||
not new strength calibration or Homeworld/full-player-count verification.
|
||
All 2,617 pre-existing room versions and hashes remain unchanged. The separate
|
||
QA room and thirty HTTP-test rooms were added. The development server remains
|
||
running from the 07:53 UTC controlled restart; no hourly restart was yet due
|
||
during this checkpoint. The removed automation stays removed.
|
||
|
||
## Remaining integration
|
||
|
||
Homeworld population values currently describe physical state; they do not yet
|
||
apply high/low advantages, charity/free-revival bonuses or occupation penalties.
|
||
Foreign Homeworld shipment permissions, Guild sponsorship, alliance rules,
|
||
occupation qualification/turnover, Homeworld combat and aftermath, explosions,
|
||
all card effects, occupation Collection, Ecaz victory and full AI policies
|
||
remain unfinished. Ordinary special arrival/return routes still need the
|
||
reserve integration audit, including Ambassador, Face Dance, No-Field and
|
||
card-specific destinations. Emperor transfer with Ornithopter is also pending.
|
||
|
||
Occupation history must remain distinct from population and current foreign
|
||
forces. Some turnover/expiry interpretations still need source resolution.
|
||
Do not infer a complete mode from a valid physical state or successful native
|
||
transfer. No release gate, saved-game migration or hosting access was changed.
|