Files
Dune/docs/HOMEWORLD_RUNTIME_IMPLEMENTATION.md

655 lines
41 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.