Expose an explicitly unfinished Advanced preview in normal lobbies

Add room-creation and host lobby rules selectors, readiness reset, explicit
preview start and a persistent warning. Admit the six classic factions,
Tech Tokens with 3+ players and optional Stronghold Cards through genuine
setup. Keep expansion/module gates and complete-rules/publication criteria.

Persist the preview marker and enforce fresh native leaders, unchanged
piece custody and clean runtime/pacing state. Preserve private projections,
JSON continuation, exact room-entry retries and version/CAS protection.
Independent review resolved malformed leader, extra card-zone, missing
required-key and stale bot-deadline admission gaps.

Validation on the shared development tree: types, lint, 5169 offline
tests, build and 50 HTTP tests passed. The tree also contained the
separate deployment task's changes; this commit stages only preview scope.
All 57 base rosters completed real setup with each legal AI profile. Five
normal-preview-start games (2–6 seats) completed 1950 actions and
51 JSON restores without rejected actions; no strategy calibration.

Browser: actual create, host switch/readiness/Stronghold reset, explicit
start, exact private refresh, desktop and mobile warning checked. Retained
dev process stopped; backed up 1,629 saved games, restored server with all
unchanged, and resumed the same traitor choice into Storm. Baseline all-table
preservation retained 1626 rooms and 3442 seats; totals
now 1669 rooms and 3536 seats. No reset or automation.

Preview remains incomplete. Legacy unsupported expansion creation payloads
remain accepted for exact retry compatibility but cannot start. Existing
rules ambiguities and full visual acceptance remain open.
This commit is contained in:
Quintine committed 2026-09-21 17:41:35 +10:00
1 parent 0f79f28ccb
commit c5508b727a
16 files changed
+998 -115

No files matched your search

+69
View File
@@ -0,0 +1,69 @@
# Advanced preview
The user explicitly authorized a clearly labeled unfinished Advanced mode on
21 September 2026. This changes access to the existing development game, not
the rules-completion or publication criteria.
## Select and start
1. On the home page, choose **Rules → Advanced preview**, then **Create a room**.
2. Invite players or add AI seats. The preview supports two through six of the
six classic factions: Atreides, Harkonnen, Fremen, Emperor, Guild and Bene Gesserit.
3. Optionally enable **Tech Tokens** with at least three players, or
**Stronghold Cards** in the lobby.
4. Each human chooses **Ready for Advanced preview**. The host chooses
**Begin Advanced preview**.
The host can also change **Rules** in an existing base-game lobby. Changing modes
clears human readiness; native AI seats remain ready. Switching to Basic removes
unused Stronghold Cards and keeps Tech Tokens. Rules cannot change after setup
starts. Selecting Advanced on the home page clears expansion selections, which
are outside this preview. Joining a room uses that room's existing rules.
The warning remains visible throughout Advanced play, including older Advanced
development saves. Games use the existing room save, reconnect and private seat
system. Basic remains the default.
## Admission and saved behavior
Normal room creation already stores `advanced: boolean`; the same request format
and exact tab retry are retained. The host-only lobby action
`{type: 'rules', advanced: boolean}` changes the mode. The ordinary start action
must contain `advancedPreview: true` for Advanced; a bare start remains rejected.
Only a successful explicit start writes `Game.advancedPreview: true`.
`GameView.advancedPreview` projects the marker as a boolean.
Start calls the genuine shared setup pipeline, including prediction, Traitors,
starting forces, advisors, elites and the starting Treachery deal at their normal
stages. The live API never dispatches a test/audit initializer. Fresh-lobby and
unused-module checks prevent accidental redealing. Restored preview markers must
still match their supported mode and roster. Mode changes, starts and ordinary
continuation retain the existing version/CAS fence and private views.
Expansion factions/decks, Homeworlds, Nexus, Discoveries, Leader Skills, the Ecaz
Treachery variant and separate audit profiles remain rejected by normal starts.
Enabling Advanced cannot bypass those gates. For compatibility with exact older
create retries, the create API still accepts the pre-existing expansion lobby
format; those unsupported lobbies cannot start and have no expansion-removal
control yet. The preview creation UI prevents that combination. No pending ruling is resolved by
this access change; see the [decision index](RULE_DECISIONS.md).
## Evidence and limits
- `advanced-preview.test.ts`: normal explicit starts, strict authority/admission,
readiness, Basic fallback, genuine setup for all 57 base rosters with each of
four existing legal AI profiles, card/force custody, JSON and private views.
- `advanced-preview-controls.test.ts`: visible mode/warning/host controls and
exact Advanced create-request restoration.
- `advanced-preview-recovery.test.ts`: production room SQL, fresh module reload,
both private seats, unchanged rejected requests and start/rules CAS races.
- `advanced-preview-http.test.ts`: normal authenticated endpoints, explicit
opt-in, origin/authority checks, readiness, duplicate start and refresh.
The private checkpoint directory records final check/build/HTTP results, ordinary
preview-start complete-game samples, browser checks and saved-game preservation.
These are development samples, not AI calibration or complete interaction coverage.
Advanced base powers and timing audits remain unfinished, including the recorded
Guild/special-Karama boundaries and advisor interactions. Stronghold Cards and
Tech Tokens retain their existing implementation limits. Full visual acceptance,
complete rules compliance and publication remain open.
+18 -18
View File
@@ -1,26 +1,26 @@
# Current development status
Updated 21 September 2026. **The full twelve-faction goal is unfinished. Basic
is playable; public Advanced and unfinished expansion/module starts remain
gated.** Prototypes do not open completion or publication gates.
is playable and the six classic factions have a user-authorized Advanced preview.
Expansion starts and full rules/publication acceptance remain gated.**
## Current checkpoint and work
Latest delivered checkpoint: `a3bc0ac`, [completed-action feedback](ACTION_FEEDBACK.md).
Types, lint, **5,137 offline tests** and the production build passed. Two complete
Basic/Advanced samples had no rejected actions across 821 actions and 21 JSON
restores. Browser burst notices, local interaction, muted updates and exact refresh
were checked. All 1,585 prior rooms and 3,353 seats remained intact; one QA
room/seat brought the baseline to 1,586 rooms and 3,354 human seats. Full visual
acceptance remains open.
Latest delivered checkpoint: `0f79f28`, [forced Harkonnen exchange return](HARKONNEN_EXCHANGE.md).
Types, lint, **5,150 offline tests**, **49 HTTP tests** and the production build
passed. One complete Advanced sample had no rejected actions across 158 actions
and four JSON restores. Browser inspection and exact refresh were checked;
full visual acceptance remains open. All 1,586 prior rooms and 3,354 human seats
were preserved; new QA/HTTP rooms brought the baseline to 1,626 rooms and 3,442 seats.
Current work connects the [forced Harkonnen special-Karama return](HARKONNEN_EXCHANGE.md)
when every held card must go back. Automatic settlement preserves a private saved
record of the inspected cards and the original interruption. Larger hands keep
their real return choice; legacy records identify held cards without inventing
which were originally drawn. The server also schedules older saved exchanges for
automatic recovery while preserving real choices. Independent review is complete;
final source-bound checks and browser evidence accompany the Git checkpoint.
Current work exposes [Advanced preview](ADVANCED_PREVIEW.md) through normal room
creation and host lobby controls. It uses genuine setup, explicit unfinished-mode
start, renewed human readiness after mode changes, private seat restoration and
saved continuation. Six classic factions, existing Tech Tokens (3+ players) and
Stronghold Cards are admitted; expansion/module gates and pending rulings remain.
Focused engine, controls, retry and concurrent recovery checks are connected;
final independent review, browser, sample-game and required checks accompany the
Git checkpoint. Preview access does not certify complete rules compliance.
The [Sandmaster/HMS source comparison](SANDMASTER_MOVEMENT.md#21-september-native-hms-relocation-eligibility)
found no official clarification that passengers remaining in the interior
@@ -94,7 +94,7 @@ These links define bounded working behavior, not complete module certification.
| Area | Current connected work and evidence |
| --- | --- |
| 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. |
| Base/Advanced setup | [Normal Advanced preview](ADVANCED_PREVIEW.md), [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 and [Advanced Loyalty](ECAZ_LOYALTY.md), 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), [No-Field](SMUGGLER_NO_FIELD.md) and [battle collection](SMUGGLER_BATTLE.md), [Sandmaster routes](SANDMASTER_MOVEMENT.md) and [worm rides](SANDMASTER_WORM.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. |
@@ -108,7 +108,7 @@ These links define bounded working behavior, not complete module certification.
| Area | Remaining gate |
| --- | --- |
| Basic core | Ordinary Guild repricing/transport settlement, broader truthful commitments, unresolved special timing and integrated rules/human/AI acceptance. |
| Six-faction Advanced | Base gaps, provisional special-Karama outcomes, remaining timing audits and authentic multiplayer/browser acceptance. Setup matrices and complete samples do not open public starts. |
| Six-faction Advanced | Base gaps, provisional special-Karama outcomes, remaining timing audits and authentic multiplayer/browser acceptance. The user-authorized unfinished preview is available; setup matrices and complete samples do not certify full compliance. |
| Twelve factions and all optional modules | Every missing effect, remaining skill bands, Ecaz card variant, Kull Wahad, unfinished Richese cards, Terror effects, occupation entitlement, Nexus interactions, contested Discoveries and complete games across valid combinations. Detailed boundaries remain in the checklist/decision index. |
| AI | Maintain minimal legal participation and critical correctness fixes while game features are unfinished. Full implementation, strategy refinement and calibration wait until all non-AI features are complete; then target approximately 75% higher-tier wins for Medium/Easy, Hard/Medium and Brutal/Hard. See the [AI development plan](AI_DEVELOPMENT_PLAN.md). These targets remain unverified. |
| Multiplayer | Broader disconnected/abandoned-seat recovery, unattended continuation and network-failure acceptance, while preserving authoritative versioning, custody, privacy and saves. |
+12
View File
@@ -1,5 +1,17 @@
# Dune implementation status
## 21 September 2026 — Selectable Advanced preview
The user-authorized [Advanced preview](ADVANCED_PREVIEW.md) now has room-creation
and host lobby selectors, renewed readiness after mode changes, an explicit
preview start and a persistent unfinished-rules notice. It uses genuine setup
for two through six classic factions, with the existing Tech Token and Stronghold
Card options. Saved mode integrity, fresh-piece checks, authenticated recovery
and concurrent-start tests retain authority, custody and privacy. All 57 base
rosters complete setup with each of four existing legal AI profiles. Full rules
compliance, expansion starts and publication remain gated; final verification
evidence stays in the private checkpoint report and Git message.
## 21 September 2026 — Harkonnen forced exchange return
Special-Karama exchanges now return automatically when the entire combined hand