Connect unmodified Smuggler battle collection
New Leader Skills battles bind territory spice to the public plan reveal and automatically pay the controlling player once the selected Smuggler survives, including a loser or captive with no surviving forces. Cap collection at the original single pile and unmodified disc strength. Pending spice cannot fund a plan. Settlement before Sandmaster's after-win addition remains an explicitly documented timing inference; modified strength, multiple positive piles and other module combinations remain gated pending the existing rulings and integration. Share pre-seal admission across server, controls and all four bot profiles. Expose the public Ecaz card-variant flag so its guard also works in private views. Normalize the selected Kwisatz value once for UI validation and submission. Fix AI selection of unavailable native face-up skilled discs. Show reveal-time pending guidance and an automatic collection notice/chronicle without a new confirmation. Keep unversioned saved battles on their existing behavior. Bind saved receipts to the original battle, controller, leader, plans, posture and pile; project no internal binding frame. Void collection on leader death, opposing/mutual Traitors and explosion without restoring destroyed spice. Apply captured-leader settlement before normal custody cleanup. Existing room versioning prevents concurrent final votes from paying twice. Twelve new engine/SQLite tests cover Basic/Advanced winners and losers, caps, empty piles, zero remaining forces, weapon/Traitor/explosion outcomes, captive survival/death custody, Sandmaster ordering, corrupted receipts, immutable pre-seal guards, legacy continuation, legal paths for four profiles and authenticated concurrent/restarted settlement. Independent review prompted the Ecaz gate and stale-Kwisatz corrections and found no further material defect in the bounded delta. A focused regression also identified the missing public Ecaz configuration field, now projected. Types, lint, 4884 offline tests, production build and 43 HTTP tests passed on the unchanged source fingerprint. Two genuine four-profile Leader Skills samples completed in 265 Basic and 211 Advanced actions with no rejected candidates and 14 JSON/private-view restorations; neither sampled game naturally exercised Smuggler collection, so focused and browser evidence establish that effect. In isolated browser room YWV8AGKS, the Emperor selected Smuggler, sealed a zero dial, saw six pending spice without early credit, refreshed the pending decision and submitted no Traitor. After the opponent's production-engine final action, the browser showed the 6-8 loss, automatic six-spice collection, explanatory chronicle and restored balance 26 after another refresh. Opponent/setup staging was private and confined to the new QA room. Screenshot acceptance remains open. An initial private verification script compared SQLite null-prototype rows with parsed JSON too strictly; the transaction rolled back and the corrected content comparison passed. After the reported outage the server was healthy and the previous private QA seat restored. All 1106 baseline rooms, 2314 seats and every original recovery, entry and handover row remain byte-for-byte unchanged; the HTTP/browser checks added 34 rooms and 71 seats. SQLite integrity and foreign keys pass. No restart, migration, database reset or automation was needed. No mode, module or publication gate is opened. Verified source tree: dc55a36f7bfe108d6529b2e42add019d212648e6c17772b36e06fe73f9443265
This commit is contained in:
1 parent
9be7dfb9fb
commit
20cc6057e9
15 files changed
+564
-37
No files matched your search
+12
-12
@@ -6,19 +6,19 @@ gated.** Prototypes do not open completion or publication gates.
|
||||
|
||||
## Current checkpoint and work
|
||||
|
||||
Latest delivered checkpoint: `9b67a78`, [early Sapho aggressor](SAPHO_AGGRESSOR.md).
|
||||
Types, lint, **4,866 offline tests**, production build and **43 HTTP tests** passed.
|
||||
Two genuine CHOAM/Richese samples completed; focused and browser evidence exercised
|
||||
the new priority effect. After the next outage all 1,106 rooms were present, the
|
||||
original baseline rows and latest QA save were unchanged, and a private seat
|
||||
restored after browser refresh. The healthy server was reused without a reset.
|
||||
Latest delivered checkpoint: `9be7dfb`, the [interactive introduction](INTERACTIVE_INTRODUCTION.md).
|
||||
Types, lint, **4,872 offline tests** and production build passed. Five lessons
|
||||
connect shared-rule shipping, sealed battle and collection exercises, card
|
||||
inspection and browser-local continuation. Broader teaching remains unfinished.
|
||||
After the reported outage all 1,106 games matched the prior backup and a private
|
||||
QA seat restored after refresh. The healthy server was reused without a reset.
|
||||
Earlier evidence remains in the [implementation history](IMPLEMENTATION_STATUS.md).
|
||||
|
||||
Current work: the [interactive introduction](INTERACTIVE_INTRODUCTION.md) adds
|
||||
five lessons with shared-rule shipping, sealed battle and collection exercises,
|
||||
card inspection and browser-local continuation. Broader faction/expansion
|
||||
teaching remains unfinished. Final verification and delivery belong to the
|
||||
source-bound report and Git message.
|
||||
Current work: [Smuggler battle collection](SMUGGLER_BATTLE.md) connects the
|
||||
unmodified lower band, automatic survival settlement, losing/captured leaders,
|
||||
Sandmaster order, shared controls and bots, and saved continuation. Modified
|
||||
strength and combined modules remain guarded. Final verification and delivery
|
||||
belong to the source-bound private report and Git message.
|
||||
|
||||
The connected [Harass & Withdraw prototype](HARASS_WITHDRAW_RUNTIME.md) supports either
|
||||
battle-card slot, private category inspections, exact undialed normal/elite
|
||||
@@ -75,7 +75,7 @@ These links define bounded working behavior, not complete module certification.
|
||||
| --- | --- |
|
||||
| Base/Advanced setup | [Genuine setup](ADVANCED_SETUP_TEST_SEAM.md), [Advanced study](AI_ADVANCED_SETUP_CALIBRATION_20260907.md), [Fremen cancellation](FREMEN_MOVEMENT_KARAMA_RULES.md), [Atreides full-plan audit](ATREIDES_FULL_PLAN_TIMING.md). Earlier Basic-then-flip fixtures do not establish current setup coverage. |
|
||||
| Expansion factions | [Ixians/Tleilaxu](IX_PROTOTYPE.md) and [all seven faction selections](EXPANSION_FACTIONS_PROTOTYPE.md): genuine setup, Ecaz six-force placement, separate optional card variants, private controls and saved per-lot Ixian/Richese decline. Actual special-lot exchange remains pending. |
|
||||
| Leader Skills | [Common lifecycle](LEADER_SKILLS_RUNTIME.md), [known skilled capture](LEADER_SKILLS_CAPTURE.md), [Mentat question preview](MENTAT_QUESTION.md), [Bureaucrat payments](BUREAUCRAT_PAYMENTS.md), five battle disciplines, [Planetologist](PLANETOLOGIST_RULES.md), [Suk Graduate](SUK_GRADUATE_RULES.md), [Rihani and other battle effects](LEADER_BATTLE_EFFECTS.md), [Smuggler shipment](SMUGGLER_SHIPMENT.md) and [No-Field](SMUGGLER_NO_FIELD.md), [Sandmaster routes](SANDMASTER_MOVEMENT.md), [Banker spending](SPICE_BANKER_RUNTIME.md), [Diplomat defense](DIPLOMAT_DEFENSE.md). Remaining bands and combinations are explicit in those contracts. |
|
||||
| Leader Skills | [Common lifecycle](LEADER_SKILLS_RUNTIME.md), [known skilled capture](LEADER_SKILLS_CAPTURE.md), [Mentat question preview](MENTAT_QUESTION.md), [Bureaucrat payments](BUREAUCRAT_PAYMENTS.md), five battle disciplines, [Planetologist](PLANETOLOGIST_RULES.md), [Suk Graduate](SUK_GRADUATE_RULES.md), [Rihani and other battle effects](LEADER_BATTLE_EFFECTS.md), [Smuggler shipment](SMUGGLER_SHIPMENT.md), [No-Field](SMUGGLER_NO_FIELD.md) and [battle collection](SMUGGLER_BATTLE.md), [Sandmaster routes](SANDMASTER_MOVEMENT.md), [Banker spending](SPICE_BANKER_RUNTIME.md), [Diplomat defense](DIPLOMAT_DEFENSE.md). Remaining bands and combinations are explicit in those contracts. |
|
||||
| Discoveries | [Prototype](DISCOVERY_PROTOTYPE.md): genuine setup, Great Maker, seven cards/eight tokens, inspection and stash rewards, nested sites, signed later free entry, carried Ornithopter, sole Cistern, bounded Jacurutu income, Testing Station and Shrine. Orgiz and contested/mixed cases remain pending. |
|
||||
| Nexus/Homeworlds | [Decision index](RULE_DECISIONS.md) links each integrated faction family, native/borrowed effects, physical custody, private choices, payments and transport. [CHOAM Collection trade](NEXUS_CHOAM_SECRET_ALLY.md) and [Emperor extra revival](NEXUS_EMPEROR_SECRET_ALLY_RUNTIME.md) are connected; CHOAM inspection and Emperor purchase remain pending. A source audit or helper alone is not a completed effect. |
|
||||
| Truthtrance | [Spice facts](TRUTHTRANCE_SPICE_FACTS.md), [card counts](TRUTHTRANCE_CARD_COUNT.md), [hand inventory](TRUTHTRANCE_HAND_INVENTORY.md), [recorded knowledge](TRUTHTRANCE_KNOWLEDGE.md), and [Basic/no-Guild Advanced reserve-shipment promises](TRUTHTRANCE_SHIPMENT_PROMISES.md) use authoritative private state. Earlier readiness audits do not supersede these follow-ups. |
|
||||
|
||||
@@ -1,5 +1,21 @@
|
||||
# Dune implementation status
|
||||
|
||||
## 20 September 2026 — Smuggler battle collection prototype
|
||||
|
||||
[Unmodified Smuggler collection](SMUGGLER_BATTLE.md) binds the reveal-time pile
|
||||
and pays once after leader survival, including losing or captured leaders. Shared
|
||||
server/control/bot admission preserves the pending modifier and combined-module
|
||||
boundaries; deferred settlement before Sandmaster remains an explicit timing
|
||||
inference. Native face-up skilled discs are excluded from AI selection. New
|
||||
receipts preserve private saved continuation and old unversioned battles retain
|
||||
their prior behavior. Independent review and focused engine/SQLite evidence are
|
||||
paired with source-bound final checks, browser/samples, preservation and verified
|
||||
Git delivery in the private checkpoint and commit message. No gate is opened.
|
||||
|
||||
After the reported outage the server responded and all 1,106 baseline games
|
||||
matched their saved rows. The prior private QA seat restored after refresh.
|
||||
No restart, reset or maintenance automation was needed.
|
||||
|
||||
## 20 September 2026 — Interactive introduction prototype
|
||||
|
||||
[Five guided lessons](INTERACTIVE_INTRODUCTION.md) connect shipping budgets,
|
||||
|
||||
@@ -204,8 +204,9 @@ Resolving this reveal-time collection logically before Sandmaster's after-win
|
||||
addition is an explicit timing inference. A drained pile leaves no existing spice
|
||||
for Sandmaster to augment. Multiple-pile allocation remains unresolved. Pending
|
||||
spice is not spendable personal custody; this provisional timing must remain
|
||||
explicit when the collection function is connected. Runtime collection is still
|
||||
missing; the independent introduction proceeded while the modifier answer waits.
|
||||
explicit in the connected [unmodified collection prototype](SMUGGLER_BATTLE.md).
|
||||
Modified plans, other modules and multiple positive piles remain gated while
|
||||
their answers and integration wait.
|
||||
|
||||
## Implementation readiness contract
|
||||
|
||||
|
||||
@@ -64,8 +64,9 @@ now connects its lower band with separate sealed funds and survivor strength. [S
|
||||
connects its optional normal reserve bonus and the [owned No-Field companion](SMUGGLER_NO_FIELD.md).
|
||||
[Diplomat defense](DIPLOMAT_DEFENSE.md) connects its normal band for a physical
|
||||
Worthless card copying a canonical base Shield or Snooper; the lower retreat
|
||||
and modified-defense inheritance remain guarded. Smuggler battle collection
|
||||
also remains missing.
|
||||
and modified-defense inheritance remain guarded. [Smuggler battle collection](SMUGGLER_BATTLE.md)
|
||||
now connects reveal-bound, unmodified collection after survival, including
|
||||
losers and captives. Modified strength and combined modules remain guarded.
|
||||
Planetologist and Suk Graduate have the connected
|
||||
prototypes described below.
|
||||
|
||||
@@ -78,7 +79,7 @@ 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, ordinary Mentat activation, Smuggler battle collection,
|
||||
Remaining normal-band payments, ordinary Mentat activation, modified Smuggler collection,
|
||||
Diplomat retreat and the other guarded skill combinations still need connected
|
||||
effects.
|
||||
|
||||
|
||||
@@ -56,8 +56,8 @@ These are unresolved in the cited records. Do not infer an answer from elapsed t
|
||||
| Sapho remaining timing | First versus unspent Advanced Guild priority, partly completed combined turns, cyclic auction duration and later battle timing stay guarded. The existing pre-plan opportunity supports [early aggressor](SAPHO_AGGRESSOR.md). Prior questions remain unanswered. | [Source audit](JUICE_OF_SAPHO_SOURCE_UPDATE.md), [battle review](JUICE_OF_SAPHO_BATTLE_REVIEW.md) |
|
||||
| Mirror Weapon | Whether copied Tooth/Artillery mandatory-discard rules attach to the physical Mirror remains unanswered. Every genuine Richese setup includes those cards and Stone Burner; an ordinary-copy-only admission gate cannot depend on concealed custody or alter the printed deck. | [Engine audit](MIRROR_WEAPON_ENGINE_AUDIT.md) |
|
||||
| Semuta Drug | Full-hand take-before-discard and the privacy-neutral immediate reaction protocol remain unresolved. Typed discard continuations already exist; they are not activation. | [Source update](SEMUTA_SOURCE_UPDATE_20260907.md), [privacy review](SEMUTA_PRIVACY_REVIEW.md) |
|
||||
| Leader Skills edge cases | Capture/replacement eligibility, Banker escrow custody (user question sent), Smuggler survival settlement, Mentat empty-hand fallback (private historical observations persist after death), Diplomat lower retreat ordering, modified-defense inheritance and remaining simultaneous optional timing need resolution before those cases are enabled. These are recorded source gaps, not answered user rulings. | [Material boundaries](LEADER_SKILLS_RULES.md#material-boundaries-not-settled-by-the-sources), [Diplomat boundary](DIPLOMAT_DEFENSE.md#evidence-and-remaining-scope) |
|
||||
| Smuggler collection strength | A fresh primary-source check found no modifier ruling. The user was asked whether to keep affected combinations gated, use printed/copied disc value, or include leader bonuses with Stunner zero. No answer is assumed. The reveal-bound deferred receipt is supported as an explicit timing inference; lower collection remains unimplemented. | [Smuggler follow-up](LEADER_SKILLS_RULES.md#20-september-smuggler-follow-up) |
|
||||
| Leader Skills edge cases | Capture/replacement eligibility, Banker escrow custody (user question sent), Smuggler modifier/allocation boundaries, Mentat empty-hand fallback (private historical observations persist after death), Diplomat lower retreat ordering, modified-defense inheritance and remaining simultaneous optional timing need resolution before those cases are enabled. These are recorded source gaps, not answered user rulings. | [Material boundaries](LEADER_SKILLS_RULES.md#material-boundaries-not-settled-by-the-sources), [Diplomat boundary](DIPLOMAT_DEFENSE.md#evidence-and-remaining-scope) |
|
||||
| Smuggler collection strength | A fresh primary-source check found no modifier ruling. The user was asked whether to keep affected combinations gated, use printed/copied disc value, or include leader bonuses with Stunner zero. No answer is assumed. The reveal-bound deferred receipt is supported as an explicit timing inference; unmodified lower collection is now [prototyped](SMUGGLER_BATTLE.md); modified strength, multiple positive piles and combined modules remain gated. | [Smuggler follow-up](LEADER_SKILLS_RULES.md#20-september-smuggler-follow-up) |
|
||||
| Suk Graduate / Atreides | Whether rescued dialed casualties count toward the seven-loss Kwisatz Haderach threshold remains unresolved. The user question has been sent; Advanced Atreides rescue stays guarded. | [Source and runtime boundary](SUK_GRADUATE_RULES.md) |
|
||||
| Ordinary Guild cancellation | Unaffordable repricing, replacement/retry/decline, consumed opportunity, contributor adjustment and ordering with special shipment-stop. The affordability question was already sent. | [Material timing](GUILD_RATE_KARAMA_RULES.md#material-unresolved-timing) |
|
||||
| Base special Karama | Unfunded auction recovery, stopped-shipment settlement and Atreides full-plan commitment order remain provisional. Native full-plan/Voice/Prescience/Truthtrance/Ghola interactions now have genuine-setup focused evidence, but the source audit does not settle the special offer/deadline or target-first interpretation. | [Explicit base interpretations](BASE_ADVANCED_READINESS_20260907.md#explicit-unresolved-base-interpretations), [full-plan interaction audit](ATREIDES_FULL_PLAN_TIMING.md) |
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
# Smuggler battle collection
|
||||
|
||||
20 September 2026. **Prototyped, with Partial rules coverage.** New battles in
|
||||
the base-faction Leader Skills preview connect the lower Smuggler effect in Basic
|
||||
and Advanced games. Public module, mode and publication gates remain closed.
|
||||
|
||||
## Rule and timing contract
|
||||
|
||||
The [source follow-up](LEADER_SKILLS_RULES.md#20-september-smuggler-follow-up)
|
||||
combines the printed reveal-time collection with the common requirement that the
|
||||
selected skilled leader survive. The card does not require winning or retaining
|
||||
forces. A captured skilled leader grants its lower effect to its controller.
|
||||
|
||||
At public plan reveal the server records the battle, controller, selected leader,
|
||||
plans, skill posture and territory's existing spice. The amount is the smaller of
|
||||
that single pile and the unmodified disc strength. This pending amount is not
|
||||
personal spice and cannot fund a sealed plan or another payment. After survival
|
||||
is known, the server transfers it once, including for a surviving loser, before
|
||||
Sandmaster adds any after-victory spice. A pile drained to zero cannot receive
|
||||
Sandmaster's addition. This deferred settlement and ordering remain explicit
|
||||
timing inferences, not a newly discovered publisher ruling.
|
||||
|
||||
A weapon death, opposing or mutual Traitor, or Lasgun–Shield explosion voids the
|
||||
collection. A successful sole own Traitor call can leave the Smuggler alive and
|
||||
eligible. A void receipt changes no pile; it cannot restore spice destroyed by an
|
||||
explosion. Capture return/death cleanup follows settlement without paying the
|
||||
original owner. This board transfer is neither bank income nor another player's
|
||||
payment, so it does not invoke Banker or Bureaucrat payment handling.
|
||||
|
||||
## Connected behavior
|
||||
|
||||
- A shared admission quote serves the server, player controls and four AI
|
||||
profiles. Public mode flags and the player's own chosen plan determine the
|
||||
guard; an opponent's concealed cards do not control eligibility.
|
||||
- Guidance explains the pending amount, survival and spending restriction.
|
||||
Collection is automatic, with the existing faction-colored action notice and
|
||||
an explanatory chronicle entry; there is no confirmation step.
|
||||
- AI candidates omit optional Kwisatz when selecting Smuggler and reject other
|
||||
unsupported modified plans. Native face-up skilled discs remain unavailable
|
||||
to battle selection; captives and existing mandatory concealment retain their
|
||||
legal paths. UI availability and the submitted Kwisatz value share one check.
|
||||
- Versioned, signed reveal receipts survive private JSON/SQLite continuation.
|
||||
Reads/actions reject changed plans, receipts, pile or identity. Public views
|
||||
expose the selected leader, controller and pending amount only after reveal;
|
||||
the internal binding frame is never projected. Concurrent final votes use the
|
||||
existing versioned room write to prevent duplicate collection.
|
||||
- Battles already saved without the new version keep their original behavior.
|
||||
Subsequent battles use the new flow. There is no database migration or reset.
|
||||
|
||||
## Boundaries and evidence
|
||||
|
||||
Kwisatz, separate trainer bonuses and Stunner still await the existing modifier
|
||||
question; no user answer is assumed. Expansion rosters/cards, the independent
|
||||
Ecaz card variant, other optional modules and multiple positive piles remain
|
||||
guarded before the Smuggler plan seals. These development restrictions are not
|
||||
rules that forbid those combinations in the physical game. Stone Burner and
|
||||
other expansion combinations therefore have no connected acceptance claim here.
|
||||
|
||||
Focused engine tests cover winners/losers in both modes, empty/short piles,
|
||||
zero surviving forces, death and Traitor outcomes, explosion, capture custody,
|
||||
Sandmaster order, corruption, immutable rejection, legacy continuation and all
|
||||
four bot profiles. SQLite tests cover authenticated restart, private projection,
|
||||
concurrent final votes and replay rejection. Browser and full-game sample scope,
|
||||
required check/build/HTTP results, preservation and verified Git delivery are
|
||||
recorded in the private source-bound checkpoint and commit message. This does
|
||||
not certify every Leader Skill or combined-module interaction.
|
||||
Reference in new issue
Block a user