Connect the Recruits independent-card revival preview

The explicit development initializer now includes the complete three-card Ecaz Treachery variant before genuine Basic/Advanced faction setup. Recruits has owned play/discard controls, full inspection, a public current-rate table, shared authoritative revival quotes, all four AI profiles and persistent exact free-use ledgers. Existing CHOAM/Tleilaxu choices settle before returning forces. Inactive games retain their prior allowance arithmetic.

Clean activation before normal returns or after exactly recorded free returns is connected. Prior-paid/unknown use, later Fremen grants, pending repricing, same-turn recovered-card replay and additional optional modules stay gated. Native unlimited faction advantages remain unlimited. The independent seven-force cap after faction cancellation is explicitly documented as an inference from independent effects, not a direct combined FAQ. Reinforcements and Harass & Withdraw remain unfinished; public starts and publication stay gated.

Independent rules/privacy/persistence review passed. Review fixed auction alias double-counting after a physical card sale, malformed canonical cards, legacy zero-ledger activation, a seat-control validation bypass and an ordinary-start bypass. Focused tests cover readiness and turn expiry as well as authenticated restart, exact free/paid accounting, stale/duplicate requests, competing writes and malformed-save rejection. Types, lint, 4743 offline tests, build and 43 HTTP tests passed with unchanged source.

Eight fixed-seed genuine six-seat samples finish: basic/Easy: 1961 accepted, 0 Recruits plays, 53 JSON restores; basic/Medium: 711 accepted, 0 Recruits plays, 19 JSON restores; basic/Hard: 239 accepted, 0 Recruits plays, 6 JSON restores; basic/Brutal: 1367 accepted, 1 Recruits plays, 36 JSON restores; advanced/Easy: 1402 accepted, 0 Recruits plays, 37 JSON restores; advanced/Medium: 530 accepted, 0 Recruits plays, 14 JSON restores; advanced/Hard: 545 accepted, 1 Recruits plays, 14 JSON restores; advanced/Brutal: 1240 accepted, 1 Recruits plays, 33 JSON restores. Reports retain rejected candidates and earlier harness attempts. All 216 game-source hashes remain identical to the samples; a later presentation-test expectation update changes no game code. Actual card use, custody and periodic/terminal private views are checked; this is bounded playability evidence, not full variant acceptance or AI calibration. A separate conserved browser Revival fixture verifies the full inspector, physical play, public rates, four free returns and active/resolved refresh.

All 902 opening games and original seat/recovery records remain unchanged (936 after checks). All 903 present immediately before broad checks are also preserved. Database integrity and foreign keys pass. The healthy server recovered after the power failure and was reused without restart, reset or recurring automation.

Verified source tree: 1f934f996268b35c8a20d0d617fa962aad878108496fa1a4a05323360757b0e3
This commit is contained in:
Quintine committed 2026-09-14 03:44:21 +10:00
1 parent 9ca17a66a0
commit c04cb93830
21 files changed
+1421 -119

No files matched your search

+30 -92
View File
@@ -6,100 +6,38 @@ gated.** Prototypes do not open completion or publication gates.
## Current checkpoint and work
Previous verified checkpoint: `58ae84f`, Moritani Assassinate Leaders preview.
Types, lint, **4,690 offline tests**, build and **43 HTTP tests** passed.
All 801 opening rooms and original seat/recovery records were preserved
(835 after HTTP checks); all 802 present immediately before verification also
remained unchanged. The healthy server was reused.
Previous verified checkpoint: `9ca17a6`, [Fremen/Ecaz final-turn victory](ECAZ_VICTORY_RULES.md#fremen-final-turn-runtime-follow-up)
and [deferred shipment repair](DEFERRED_SHIPMENT_ARRIVAL.md). Types, lint,
**4,716 offline tests**, build and **43 HTTP tests** passed. All 835 opening games
and the 869 present after the outage, including their seat/recovery records,
were preserved (902 after verification). Three source-stable samples finish,
including the exact failed shipment resumption; full scope remains unfinished.
Detailed earlier capabilities and evidence are linked below and retained in the
[implementation history](IMPLEMENTATION_STATUS.md).
[Mentat](MENTAT_QUESTION.md) connects private naming/disclosure before posture
and faction powers, all four AI profiles and saved continuation in explicitly
opted-in previews. Two controlled-shuffle genuine-setup samples finish. Ordinary
activation still awaits the uniform private response UX decision.
Current prototype: [Recruits](RECRUITS_RUNTIME.md) connects the independent complete
three-card inventory before genuine Basic/Advanced faction setup, owned card
play/discard, public current revival rates, existing CHOAM/Tleilaxu decisions,
four AI profiles and saved continuation. Exact free usage and physical custody
are retained. Prior-free activation is supported; prior-paid or unknown accounting,
later grants, pending repricing, same-turn replay and other optional modules stay
gated. Reinforcements and Harass & Withdraw are present but their effects remain
unfinished. Independent-cap precedence is explicitly labeled as an inference.
[Bureaucrat payments](BUREAUCRAT_PAYMENTS.md) connect
ordinary auctions, shipment income, Richese sale proceeds and actual bribe
transfers, with a once-per-phase optional redirection and preserved continuation.
Qualifying allied funding, other payment families and combined-module acceptance
stay explicit. Independent review and focused controls/AI/recovery checks pass.
Four genuine-setup games finish without rejected candidates, but contain no payment
choice; a separate staged browser exercise verifies both choices and refresh.
All 699 opening rooms and original seat/recovery records survived the reported
outage. The healthy server was reused. The completed checkpoint's Git record
contains final broad verification and post-HTTP preservation totals.
Independent review's 37-case union and four authenticated recovery cases pass.
Eight fixed Basic/Advanced six-seat samples finish in 7,995 actions with no
rejected candidates and three actual Recruits plays. Exact custody, 212 periodic
all-seat JSON restores and terminal private views pass. A separate conserved
browser fixture verifies inspection, play/discard, public rates, four free returns
and refresh. Final broad-check totals, source fingerprints and Git delivery are
recorded with the checkpoint; these are bounded playability results.
Completed prototype: [Emperor Nexus Secret Ally revival](NEXUS_EMPEROR_SECRET_ALLY_RUNTIME.md).
Exactly three free returns, independent ordinary allowances, shared Fedaykin caps,
private controls, four AI profiles and saved continuation are connected. Independent
review and 17 focused effect tests pass. Two genuine-start and two explicitly staged
samples finish with zero rejections; only the staged pair uses this effect. A staged
browser exercise verifies a Fedaykin return, three ordinary returns and refresh.
Final broad checks, preservation counts and Git delivery are recorded in the
checkpoint commit and private report before handoff.
The purchase alternative still needs a private post-win payment choice. The earlier
question asks whether to allow a uniform winner payment step, including otherwise
forced spice payments. No answer or purchase policy is assumed. All 733 opening
rooms and seat/recovery records survived the latest outage unchanged; a new snapshot
protects all 734 rooms before final verification. The healthy server is reused.
Completed prototype: [Truthtrance recorded knowledge](TRUTHTRANCE_KNOWLEDGE.md), connecting
stored BG prediction faction/turn, submitted current Storm dials and actually known
Fremen forecasts. The same private verified answer drives controls, all four bots
and saved continuation. Independent source/privacy review and 44 focused cases pass,
including five authenticated SQLite recovery cases. Two genuine-setup games finish
in 192/518 actions with zero rejections and three scripted, naturally held-card
questions; forecast coverage comes from the separate conserved browser exercise.
Browser controls, unknown/rephrasing, compound answers and resolved refresh pass.
All 767 opening rooms and seat/recovery records survived the latest reported outage;
the healthy server is reused. A new snapshot protects all 768 rooms before broad
verification. Final checks, preservation totals and Git delivery are recorded in
the checkpoint commit and private report; full mode/publication gates remain.
Completed prototype: [Moritani Assassinate Leaders](MORITANI_ASSASSINATE_LEADERS.md)
connects a qualifying battle loss to a private reveal/continue choice, living/dead
targets, bank bounty, public markers and automatic Mentat replacement. All four
AI profiles and saved continuation are connected in the bounded Advanced preview.
Independent source/privacy/persistence review and 32 focused cases pass. Two genuine
four-profile games finish in 296/101 actions with no rejections; both observed
opportunities are declined. A separate conserved, staged browser battle verifies
the reveal, three-spice payment, automatic physical replacement, readable inspectors
and pending/resolved refresh. Normal-traitor-call duration and the uniform private
UX question remain pending; exceptional custody and combined modules stay gated.
All 801 opening games remain unchanged after the reported outage; the healthy
server is reused. Required broad checks, source fingerprint, final preservation
and Git delivery are recorded in the checkpoint commit and private report.
Current checkpoint: [Fremen/Ecaz final-turn victory](ECAZ_VICTORY_RULES.md#fremen-final-turn-runtime-follow-up).
The explicit Sietch Tabr exception is connected to the same public board quote
used by automatic victory and the table guide. Reciprocal allies must both be
present; solitary/non-allied Ecaz and third-party fighters still block. Ordinary
stronghold/BG precedence, the other protected sietch and Tuek conditions, Guild
fallback and private No-Field identity remain intact. Independent review and
17 focused cases pass, including all-profile final readiness and authenticated
SQLite restart/concurrent writes. Final-turn fixtures are staged after genuine
setup; they do not establish naturally reached allied special wins. Habbanya
symmetry and complete mode/expansion acceptance remain unfinished. Broad checks,
browser/sample evidence, saved-game preservation and Git delivery are recorded
with the checkpoint.
The same checkpoint repairs a pre-existing [deferred Guild shipment deadlock](DEFERRED_SHIPMENT_ARRIVAL.md)
found after 90 accepted Advanced actions. Fresh ordinary and No-Field declarations
preflight unsupported arrivals; an eligible saved ordinary Guild allowance returns
unspent for another choice. Special card/parent receipts retain their own gates.
Independent review and its 149-case union pass. The exact failed snapshot now
finishes in 842 further accepted actions. The original Basic/Advanced seeds finish
in 563/806 actions, with 14/81 guarded candidates; the resume has 109. All physical
custody, 58 periodic JSON rounds and 12 terminal private views pass. The Advanced
runs form Ecaz/Fremen alliances but do not exercise the shared-Tabr exception.
These are bounded playability checks, not complete arrival-order acceptance.
After the latest reported outage, the server responds normally, all 835 opening
rooms and original seat/recovery records remain unchanged, and integrity/foreign-key
checks pass. A new backup protects all 869 rooms before final checks. The completed
browser game restores its result and private seat; no restart, reset or automation
is required. Final broad verification, preservation totals and Git delivery are
recorded with the checkpoint.
After the latest reported power failure, the existing server responds normally.
All **902 rooms**, **1,888 seats** and original recovery/entry/handover records
match the opening backup; SQLite integrity and foreign-key checks pass. No server
restart, database reset or recurring automation is needed. Final review, sample and
browser evidence, broad verification and Git delivery are recorded with this
checkpoint before handoff. Public mode and publication gates remain closed.
## Authoritative navigation
@@ -130,7 +68,7 @@ These links define bounded working behavior, not complete module certification.
| 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. |
| Other cards | [Sapho runtime](JUICE_OF_SAPHO_RUNTIME.md) includes first among remaining unstarted movement turns after Advanced Guild has finished. Richese card contracts and the checklist identify the other connected effects and explicit gaps. |
| Other cards | [Sapho runtime](JUICE_OF_SAPHO_RUNTIME.md) includes first among remaining unstarted movement turns after Advanced Guild has finished. [Recruits](RECRUITS_RUNTIME.md) connects clean Revival play in its independent three-card preview. Richese card contracts and the checklist identify other connected effects and explicit gaps. |
| Multiplayer | Saved rooms/seats, [recovery](../README.md#saved-seats-and-reconnecting), uncertain-request retry, [own-seat AI](AUTOPILOT.md), and [voluntary seat handover](SEAT_HANDOVER.md) have connected controls and recovery evidence. |
## Remaining readiness
+33
View File
@@ -1,5 +1,38 @@
# Dune implementation status
## 14 September 2026 — Recruits independent-card preview
[Recruits](RECRUITS_RUNTIME.md) is connected in an explicit development preview.
Genuine Basic/Advanced faction setup includes all three independent Ecaz Treachery
Cards before shuffle and deal. Physical play/discard, public effective rates,
shared revival quotes, exact free-use tracking, existing CHOAM/Tleilaxu response
continuation, owner controls and all four AI profiles share the authoritative
contract. Inactive games retain their earlier free-use arithmetic. The other two
battle effects and public variant starts remain unfinished.
Source review supports the bounded clean-case contract. The independent seven-force
cap after faction cancellation remains an explicit inference. Earlier-paid returns,
late grants, pending repricing and same-turn recovered-card replay remain gated;
the user's late-paid question is pending. Focused rules, controls, genuine local
setup and authenticated recovery tests accompany the implementation. Complete-game
and browser evidence, required broad checks and Git delivery are recorded with
the checkpoint; this does not certify complete variant or combined-mode compliance.
All 902 opening rooms and original seat/recovery records survived the latest power
failure unchanged. The healthy server was reused; integrity and foreign keys pass.
No database reset, server restart or recurring automation was needed.
Final independent review's 37-case union and four SQLite recovery cases pass.
Review closed normal-auction sale aliasing, malformed canonical cards, known-zero
legacy ledger initialization, seat-control validation and ordinary-start bypasses.
Eight genuine six-seat Basic/Advanced samples finish in 7,995 accepted actions,
with zero rejected candidates and three Recruits plays. Every action preserves
physical card/Traitor/force/elite custody; 212 periodic all-seat JSON restores and
terminal views pass. The conserved browser exercise verifies play/discard, global
rates, four free returns, explanatory chronicle, private seat and refresh. Earlier
harness attempts remain preserved; JSON comparison normalizes undefined properties
on both sides without dropping defined values.
## 14 September 2026 — Fremen/Ecaz final-turn victory and deferred shipment repair
The [explicit Sietch Tabr FAQ](ECAZ_VICTORY_RULES.md#fremen-final-turn-runtime-follow-up)
+91
View File
@@ -0,0 +1,91 @@
# Recruits development preview
14 September 2026. **Prototyped, not full card-variant acceptance.** The independent
Ecaz & Moritani Treachery Cards variant is included before genuine Basic or
Advanced faction setup. All three physical cards are present exactly once.
Recruits has connected controls, AI and saved continuation; Reinforcements and
Harass & Withdraw remain unfinished. Public starts and publication remain gated.
## Rules contract
[The source audit](RECRUITS_RULES.md) records publisher Ecaz & Moritani pages 11
and 16, the base and faction revival rules, and designer Jack Reda's explanation
at 8:25–8:48. The card plays during Revival, doubles every current free rate,
raises the normal force limit to seven for this turn, and is discarded after use.
The publisher's four-to-eight example is capped at seven by the ordinary limit.
Fresh publisher/designer-linked PDF fetches on 14 September returned HTTP 403;
this follow-up uses the earlier recorded primary-source audit and independent
source review. No newly retrieved late-paid ruling is claimed.
The connected scope permits clean activation before normal returns or after only
exactly recorded free normal returns, once existing priority windows and transactions
have finished. Earlier paid returns, unknown legacy usage, later Fremen grants,
same-turn replay after recovery and additional optional modules remain guarded.
Those guards identify unfinished cases; they are not new printed timing rules.
Already-ready players retain their Revival opportunity while phase four is open.
Atreides doubles two to four, Fremen three to six, and Guild one to two. Native
CHOAM and Tleilaxu retain their unlimited allowance with free rates zero and four.
Paid prices, prevention and separate elite caps remain in force. A Fremen grant
settled before play doubles the ally's replacement rate three to six.
The seven-force allowance remains an independent global card effect when a
CHOAM or Tleilaxu faction advantage is canceled. **This is an implementation
inference from independent effects, not a direct combined publisher FAQ.** A
Tleilaxu limit response is not opened merely for crossing three under Recruits;
other qualifying price/prevention responses retain their original purposes.
The user has been asked about Atreides taking two free plus one paid return before
Recruits: preserve the gate, provide two further free returns without refund, or
provide one further free return without refund. No answer is assumed. The source
audit also records the refund alternative and later changing-rate ambiguity.
## Connected path and persistence
`initializeEcazTreacheryGameForAudit` composes the complete three-card inventory
with the selected ordinary deck before shuffle/deal. The local `ecaz-treachery`
prototype-room profile accepts only a fresh ready lobby and uses the existing
version/state compare-and-swap. It preserves seats and other rooms.
The holder's existing inspector shows the complete original-language card guide.
The Revival panel submits the shared `recruitsPlayAction`; rivals receive no held
card offer. A successful action discards the physical card once and saves its
player, turn and identity. Every player then sees the same effective public rates
and force limits. No rival hand, private spice or revival-use ledger is added.
Authoritative shared revival quotes use the effect. Exact free usage is separate
from total normal returns only while Recruits is active; inactive/legacy games
retain their previous arithmetic. Active receipts and ledgers are validated on
action and projection. JSON and SQLite restoration retain the same allowance;
the next turn clears the effect. Rejected actions leave the supplied state intact.
All four AI profiles use the same legal owned offer when their faction or ally can
benefit, then ordinary quoted revival choices. The late Fremen grant is excluded
from bot candidates as well as server and UI controls. This is a legal first
strategy, not completed Recruits difficulty calibration.
## Verification
Focused engine, component, AI, genuine prototype-room and authenticated SQLite
recovery suites are maintained alongside the pure arithmetic and inventory tests.
Independent review passes a 37-case related union; four authenticated SQLite cases
cover restored free/paid returns, malformed saves, stale/duplicate actions and
competing writes. Eight fixed-seed six-seat Basic/Advanced samples across all four
AI profiles finish in 7,995 accepted actions with no rejected candidates. Recruits
is genuinely played three times. Physical cards, Traitors, safe force/elite pools,
212 periodic all-seat JSON restores and terminal private views pass. Undefined
object properties are normalized through JSON on both sides of the comparison;
defined values are retained. Earlier harness attempts remain in private artifacts.
A separate conserved browser Revival fixture verifies the full inspector, actual
play/discard, public Atreides four/Fremen six rates, four free returns, automatic
chronicle and active/resolved refresh. Exact state comparison preserves the seat,
cards, forces and unchanged spice. This staged browser position does not establish
naturally reached card use. Final broad checks, source fingerprints, saved-game
preservation and Git delivery are recorded with the checkpoint. These samples do
not certify the unfinished three-card variant or every combined configuration.
See [current status](CURRENT_STATUS.md), [decision index](RULE_DECISIONS.md) and
[the reference checklist](../game/reference.ts), topic `card-recruits`, for the
remaining boundaries. Final polishing, other two effects and valid optional-module
combinations remain required work.
+1
View File
@@ -41,6 +41,7 @@ These are unresolved in the cited records. Do not infer an answer from elapsed t
| Boundary | Still unresolved | Existing record |
| --- | --- | --- |
| Recruits late accounting and rates | A user question has been sent for two free plus one paid Atreides return before Recruits: keep the disputed case gated, or one/two further free returns without refund. No answer is assumed. Late-changing free rates, pending repricing and same-turn recovered-card replay also stay gated. The connected clean-case preview retains the independent seven-force cap after faction-advantage cancellation as an explicit inference, not a direct combined FAQ. | [Source audit](RECRUITS_RULES.md), [runtime scope](RECRUITS_RUNTIME.md) |
| Ambassador/Terror arrival priority | Both optionally react to the same entry, but no publisher/designer priority was found. The order can change Fremen relocation versus Atomics losses. A user question has been sent: keep the overlap gated pending an official ruling, or use explicitly provisional storm order. No answer is assumed; Baliset remains a separate pre-entry prevention effect. | [Reproduction and source boundary](DEFERRED_MOVEMENT_ARRIVAL.md) |
| Sapho remaining timing | First versus unspent Advanced Guild priority, partly completed combined turns, cyclic auction duration and remaining battle timing stay guarded. 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; arithmetic helpers do not admit the full battle card. | [Engine audit](MIRROR_WEAPON_ENGINE_AUDIT.md) |