Connect optional Smuggler reserve shipment and saved interception
Prototype one free accompanying force into an empty territory with explicit opt-out, shared human/AI pricing, physical elite custody and Guild recipient accounting. Bind pending quotes to their unique saved Guild decision; preserve legacy unstamped full-price declarations. Smuggler battle collection and combined modules remain unfinished and gated. Repair a randomly dealt-out Karama fixture by relocating its actual physical card without changing inventory. Validation: 70 focused tests; typecheck, lint, 4477 offline tests, production build and 43 HTTP tests passed. Independent rules/persistence review completed, including interruption and cancellation. Browser checked the price toggle, three arrivals for two spice, and refresh with unchanged private cards. Two genuine four-profile Basic/Advanced samples completed without rejected candidates but did not use Smuggler. Preserved all 427 opening rooms and original seat/recovery rows (461 rooms after QA/HTTP). SQLite integrity and foreign keys passed. Server remained healthy after the reported power outage; no restart or reset. Verified source tree: bf6e02bf6873ca6d6b01c83481489f55b2c7db0184a7056364343440dae88803
This commit is contained in:
1 parent
06f46c6f79
commit
9381ef140d
18 files changed
+1015
-25
No files matched your search
@@ -8,7 +8,8 @@ Planetologist now also has movement and base green-Special battle controls;
|
||||
[Suk Graduate](SUK_GRADUATE_RULES.md) redirects actual ordinary/elite casualties
|
||||
through readable rescue choices without creating counters. [Battle effects](LEADER_BATTLE_EFFECTS.md)
|
||||
now connect Rihani inspection/exchange, Mentat/Bureaucrat scoring and Sandmaster
|
||||
victory spice. Their other bands and Spice Banker, Diplomat and Smuggler remain
|
||||
victory spice. [Smuggler shipping](SMUGGLER_SHIPMENT.md) now connects its normal reserve bonus
|
||||
without adding any physical component. Other unfinished bands, Spice Banker and Diplomat remain
|
||||
missing. This supersedes the historical missing-inventory
|
||||
rows below only for Leader Skills. See [source inventory](LEADER_SKILLS_RULES.md),
|
||||
[capture interpretation](LEADER_SKILLS_CAPTURE.md) and [prototype evidence](LEADER_SKILLS_RUNTIME.md).
|
||||
|
||||
@@ -4,6 +4,14 @@ Updated 13 September 2026. This is the short navigation dashboard; detailed evid
|
||||
|
||||
## Evidence and source of truth
|
||||
|
||||
- [Smuggler reserve shipment](SMUGGLER_SHIPMENT.md) connects the optional free
|
||||
companion, total physical count, Guild rounding, controls, all four AI profiles
|
||||
and saved interception. Independent review added missing-decision rejection.
|
||||
Browser opt-out, actual shipment and refresh are exercised in a new room.
|
||||
Battle collection and combined routes remain missing. After the latest outage,
|
||||
the server was healthy and all 427 opening rooms remained unchanged; a fresh
|
||||
backup captured 428. Broad results and final preservation are in the commit.
|
||||
|
||||
- [Leader battle effects](LEADER_BATTLE_EFFECTS.md) now connect both Rihani bands
|
||||
and lower Mentat, Bureaucrat and Sandmaster effects. Private controls, all four
|
||||
AI profiles, JSON/SQLite continuation and concurrent exchanges are covered.
|
||||
|
||||
@@ -1,5 +1,30 @@
|
||||
# Dune implementation status
|
||||
|
||||
## 13 September 2026 — Smuggler reserve shipment prototype
|
||||
|
||||
[Smuggler shipping](SMUGGLER_SHIPMENT.md) connects one optional free accompanying
|
||||
force for an empty-territory off-planet shipment. The shared quote preserves
|
||||
actual reserve/elite custody, Guild rounding and real recipient payments. UI
|
||||
controls and all four AI profiles explicitly choose the bonus; declining and
|
||||
legacy unstamped declarations preserve ordinary pricing.
|
||||
|
||||
Independent review found saved quotes could lose their required Guild decision.
|
||||
Read/action integrity now binds the declaration to its unique current or saved
|
||||
interception, rejecting missing/mismatched decisions or removed discounts.
|
||||
The first broad run also exposed a random Discovery fixture that searched only
|
||||
the undealt deck for Karama. It now relocates an existing card from its actual
|
||||
zone and asserts the complete physical card inventory is unchanged.
|
||||
SQLite restart, concurrent allowance, stale replay and old quote recovery pass.
|
||||
The browser exercised the price toggle, three physical arrivals for two spice
|
||||
and refresh with the same private hand. Two Basic/Advanced samples finished
|
||||
without rejected candidates but did not use Smuggler; targeted checks cover it.
|
||||
|
||||
The latest outage left the existing server healthy. All 427 opening rooms were
|
||||
unchanged and a new backup captured 428 rooms. No restart or reset was needed.
|
||||
Broad results and final preservation are in the checkpoint commit and private
|
||||
source-bound report. The lower battle effect and combined routes remain missing;
|
||||
no rules-mode or publication gate is opened.
|
||||
|
||||
## 13 September 2026 — Leader battle effects prototype
|
||||
|
||||
[Battle effects](LEADER_BATTLE_EFFECTS.md) connects lower Mentat +2 strength,
|
||||
|
||||
@@ -52,7 +52,8 @@ publisher instruction to announce a name.
|
||||
[Battle-effects follow-up](LEADER_BATTLE_EFFECTS.md) connects both Rihani bands
|
||||
and the lower Mentat, Bureaucrat and Sandmaster effects. Their normal questioning,
|
||||
payments and movement collection remain missing, along with all Spice Banker,
|
||||
Diplomat and Smuggler effects. Planetologist and Suk Graduate have the connected
|
||||
Diplomat effects and Smuggler battle collection. [Smuggler shipping](SMUGGLER_SHIPMENT.md)
|
||||
connects its optional normal reserve bonus. Planetologist and Suk Graduate have the connected
|
||||
prototypes described below.
|
||||
|
||||
Captured-card replacement entitlement remains unresolved. The prototype rejects
|
||||
@@ -64,8 +65,8 @@ Before enabling them, add response-driven automatic revival continuation
|
||||
coverage; the current before/after revival observer does not certify deferred
|
||||
Tleilaxu response chains. The other source-contract timing questions also remain
|
||||
open. Planetologist now has bounded movement and battle controls as described below.
|
||||
Remaining normal-band payments, questions, collection and the three missing
|
||||
skill families still need connected effects.
|
||||
Remaining normal-band payments, questions, collection and the remaining
|
||||
skill bands still need connected effects.
|
||||
|
||||
## Planetologist follow-up
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@ Updated 13 September 2026. This is the authoritative navigation index for existi
|
||||
|
||||
| Topic | Decision to preserve | Detailed authority and evidence |
|
||||
| --- | --- | --- |
|
||||
| Smuggler shipping | Optional free companion is included in the actual total; apply Guild rounding to the reduced priced count. Ordinary Fremen reserves are on planet. No-Field plus a separate free force is officially permitted but still awaits integration. Legacy unstamped declarations keep their quoted full price. | [Source contract and prototype](SMUGGLER_SHIPMENT.md) |
|
||||
| Leader battle effects | Rihani normal peek and reshuffle precede a separate committed optional draw; ordering is an explicit printed-order inference. Unused excludes actual calls, not mere disclosure. Mentat/Bureaucrat change scores; Sandmaster adds board spice. Multiple piles and Face Dancer composition stay guarded. | [Source contract and prototype](LEADER_BATTLE_EFFECTS.md) |
|
||||
| Source and readiness | Separate published rules, explicit implementation choices and unfinished interpretations; Advanced/expansion gates stay closed. | [Base/Advanced audit](BASE_ADVANCED_READINESS_20260907.md), [checklist](../game/reference.ts) |
|
||||
| Setup and Fremen movement | Preserve source-ordered setup and the distinct declared-movement cancellation; do not recreate fixed historical gaps. | [Setup contract](ADVANCED_SETUP_TEST_SEAM.md), [Fremen Karama](FREMEN_MOVEMENT_KARAMA_RULES.md) |
|
||||
@@ -17,7 +18,7 @@ Updated 13 September 2026. This is the authoritative navigation index for existi
|
||||
| Expansion Nexus families | Source audit coverage does not imply every panel is playable; consult later runtime records in the status log. | [Ixian Cunning](NEXUS_IXIAN_CUNNING_RULES.md), [Ixian replacement](NEXUS_IXIAN_REPLACEMENT_RULES.md), [Tleilaxu](NEXUS_TLEILAXU_RULES.md), [CHOAM](NEXUS_CHOAM_RULES.md), [Richese](NEXUS_RICHESE_RULES.md), [Ecaz](NEXUS_ECAZ_RULES.md), [Moritani](NEXUS_MORITANI_RULES.md) |
|
||||
| CHOAM Secret Ally | Absent-faction Collection trade spends one actual Worthless card and the Nexus for two bank spice. It is separate from native Cunning and Auditor; the battle inspection alternative remains missing. | [Prototype contract](NEXUS_CHOAM_SECRET_ALLY.md) |
|
||||
| Sapho movement | At a clean boundary, first reorders only remaining unstarted turns; completed turns stay completed. Advanced Guild must have finished or be absent. Last retains existing protection after Guild. | [Existing source contract](JUICE_OF_SAPHO_SOURCE_UPDATE.md#movement-firstlast), [runtime](JUICE_OF_SAPHO_RUNTIME.md) |
|
||||
| Leader Skills | Fourteen physical cards, variant setup order, public/hidden assignment, death return, own-leader revival and captured lower-band effects are sourced. Five battle disciplines, Planetologist movement/Special substitution, Suk Graduate rescues and common lifecycle are prototyped; seven skills and combinations remain missing. Known skilled capture identifies the leader through its unique public card. | [Source contract](LEADER_SKILLS_RULES.md), [capture inference](LEADER_SKILLS_CAPTURE.md), [runtime](LEADER_SKILLS_RUNTIME.md), [Planetologist](PLANETOLOGIST_RULES.md), [Suk Graduate](SUK_GRADUATE_RULES.md) |
|
||||
| Leader Skills | Fourteen physical cards, variant setup order, public/hidden assignment, death return, own-leader revival and captured lower-band effects are sourced. Five battle disciplines, Planetologist movement/Special substitution, Suk Graduate rescues and common lifecycle are prototyped; Rihani, lower Mentat/Bureaucrat/Sandmaster and normal Smuggler now have connected follow-ups. Remaining bands and combinations stay missing. Known skilled capture identifies the leader through its unique public card. | [Source contract](LEADER_SKILLS_RULES.md), [capture inference](LEADER_SKILLS_CAPTURE.md), [runtime](LEADER_SKILLS_RUNTIME.md), [Planetologist](PLANETOLOGIST_RULES.md), [Suk Graduate](SUK_GRADUATE_RULES.md) |
|
||||
| Discoveries | Preserve seven sourced Spice Cards and eight physical tokens, private faction peeks and Collection choices. Revealed locations are separate territories; only Jacurutu counts toward stronghold victory. Next-turn free entry, sole-occupant Cistern income and later-turn Ornithopter spending are prototyped; Jacurutu income, Testing Station and Shrine have bounded prototypes; Orgiz and contested/mixed cases remain pending. | [Component authority](DISCOVERY_COMPONENTS.md), [prototype boundary](DISCOVERY_PROTOTYPE.md) |
|
||||
| Guild Secret Ally | One explicit Guild-priced ordinary shipment; borrowed prices/routes preserve native identity. Free Fremen reinforcement remains a separate choice. | [Route contract](NEXUS_GUILD_SECRET_ALLY_RULES.md), [verified runtime](NEXUS_GUILD_SECRET_ALLY_RUNTIME.md) |
|
||||
| Homeworld custody and mobility | Physical home/visitor groups, population thresholds, tariffs and transport permissions retain distinct sources; Homeworld immunity is not universal immunity. | [Homeworld rules](HOMEWORLD_RULES.md), [benefits](HOMEWORLD_BENEFITS_RULES.md), [mobility](HOMEWORLD_MOBILITY_RULES.md), [invasion](HOMEWORLD_INVASION_RULES.md), [Guild transport](GUILD_HOMEWORLD_TRANSPORT_RULES.md) |
|
||||
|
||||
@@ -0,0 +1,78 @@
|
||||
# Smuggler normal shipment prototype
|
||||
|
||||
13 September 2026. **Prototyped**, with **Partial** rules coverage. Public module
|
||||
starts and publication remain gated. The lower battle effect and combined
|
||||
expansion routes are unfinished.
|
||||
|
||||
## Source contract
|
||||
|
||||
The physical Smuggler card supplies one optional free accompanying force when
|
||||
shipping from off planet into an empty territory. The selected total includes
|
||||
that force: ship three actual counters, price two. At least one paid companion
|
||||
is needed. Empty strongholds qualify; existing forces anywhere in the territory,
|
||||
including friendly forces, advisors and No-Field presence, prevent the benefit.
|
||||
Spice alone does not occupy a territory. Determine emptiness before arrival.
|
||||
See the [publisher CHOAM & Richese rulebook](https://www.gf9games.com/dune/wp-content/uploads/2021/11/CHOAM-Rulebook-low-res.pdf),
|
||||
pages 8–9 and 12, and the [designer walkthrough](https://www.youtube.com/watch?v=XT_azRVLq_0&t=724s),
|
||||
12:04–12:19.
|
||||
|
||||
Apply ordinary Guild/ally rounding after removing the free counter from the
|
||||
priced count. Classic Fremen reserves are on planet, so their ordinary Great
|
||||
Flat reinforcements retain their existing rule. See the
|
||||
[base rulebook](https://www.gf9games.com/dunegame/wp-content/uploads/Dune-Rulebook.pdf),
|
||||
pages 9–11 and 13, and [November 2020 FAQ](https://www.gf9games.com/dune/wp-content/uploads/2020/11/Dune-FAQ-Nov-2020.pdf), page 5.
|
||||
|
||||
The CHOAM & Richese FAQ explicitly permits a Richese No-Field with a separate
|
||||
free Smuggler force into empty territory. That valid combination still needs
|
||||
concealed-counter integration here; its current guard is an implementation gap.
|
||||
No new material user ruling was required for the ordinary reserve route.
|
||||
|
||||
## Connected behavior
|
||||
|
||||
A shared public-custody quote powers the engine, UI, bots and shipment-promise
|
||||
completion search. Only a living native trainer grants the normal effect;
|
||||
captured and foreign-ghola leaders do not. The selected amount remains the
|
||||
actual reserve withdrawal and board arrival, including ordinary/elite identity.
|
||||
The existing payment pipeline receives the actual discounted cost.
|
||||
|
||||
The checkbox starts selected when an eligible shipment is chosen. Declining
|
||||
preserves the full payment, which can matter to recipients and other payment
|
||||
powers. API omission and explicit false also retain ordinary pricing. All four
|
||||
AI profiles have a legal path that explicitly chooses the bonus, including a
|
||||
two-force shipment when only one force can be afforded at the ordinary rate.
|
||||
This policy is not full skill strategy or difficulty calibration.
|
||||
|
||||
Advanced Guild interception stores the trainer, physical total and original
|
||||
price before payment or departure. Views, automatic normalization and actions
|
||||
validate the pending declaration against its unique current or saved Guild
|
||||
decision. Missing/mismatched decisions, stale leaders, changed occupancy and
|
||||
prices no longer explained by the saved discount record reject before mutation. Actual legacy unstamped
|
||||
shipments retain their full price and may omit the older optional turn field.
|
||||
|
||||
## Verification and remaining scope
|
||||
|
||||
Focused tests cover total-versus-priced counts, desert costs, Guild rounding,
|
||||
Fremen reinforcement, advisors, hidden/captured custody, opt-out, all four bots,
|
||||
JSON recovery, malformed saved decisions, elite conservation, private SQLite
|
||||
views, concurrent allowance, nested decision restoration, cancellation and stale replay. Independent review identified the
|
||||
saved-decision binding gap, which was fixed before the checkpoint checks.
|
||||
|
||||
A fresh genuine two-seat setup assigned Smuggler to Hasimir Fenring in an
|
||||
isolated browser room. A documented fixture advanced only that room to a clean
|
||||
shipment boundary with two human spice. The browser checked ordinary cost three
|
||||
and its disabled action, then enabled Smuggler and shipped three actual forces
|
||||
for two spice. Refresh restored seventeen reserves, three Arrakeen forces,
|
||||
zero Tanks, zero spice and the same private hand and traitor. This is a targeted
|
||||
scenario, not a complete human game.
|
||||
|
||||
Two genuine four-profile Basic/Advanced samples completed with 99/212 actions,
|
||||
3/6 JSON restorations and no rejected candidates. Neither sample used Smuggler;
|
||||
these samples establish continuation only. Targeted tests and browser play
|
||||
exercise the new effect. Required broad check/build/HTTP results and final
|
||||
preservation totals are recorded in the checkpoint commit and private report.
|
||||
|
||||
Smuggler battle collection still needs its reveal/survival settlement. Combined
|
||||
No-Field, Homeworld, Nexus, Discovery, Stronghold and technology routes remain
|
||||
outside this prototype. Mentat questioning, Bureaucrat payments, Sandmaster
|
||||
movement collection, Spice Banker and Diplomat also remain incomplete. Reuse
|
||||
this ordinary route when integrating those dependencies.
|
||||
Reference in new issue
Block a user