Files
Dune/docs/CURRENT_STATUS.md
T

1106 lines
75 KiB
Markdown
Raw 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.
# Current development status
Updated 2 October 2026. **The full twelve-faction goal is unfinished. Basic
is playable and the six classic factions have a user-authorized Advanced preview.
Expansion starts and full rules/publication acceptance remain gated.**
The user-supplied `UNOFFICIAL_Revised_Dune_Rulebook_v.2.3_web.pdf` is now
an [authorized Advanced source of truth](RULE_DECISIONS.md#authorized-source-amendment--1-october-2026),
including its identified unofficial rulings. The 44-page file has 2.3
metadata but a visibly retained 2.2 editorial heading; the index records its
SHA-256 and physical-page citations. Current Guild payment/source passages
were compared with the wave. Wider Advanced reconciliation remains open.
Adoption does not reset games, convert Basic, republish the local PDF or
open mode gates.
## Current checkpoint and work
**Requested priority — 2 October 2026:** development-speed improvements now
precede resuming rule content. Implement all remaining rules first; comprehensive
review and save/recovery/privacy/custody assurance follow afterward, not at each
prototype. Keep legal rule behavior, usable controls, minimal legal AI and
changed-path smoke. Existing games are not reset/deleted; secret protection,
authorization and deployment/publication safeguards remain intact. Use the
[bounded context index](DEVELOPMENT.md#context-index) and
[feedback/proof schedule](DEVELOPMENT.md#feedback-and-proof-schedule).
**Development-throughput improvements implemented and verified:** default
test output preserves failures/details/stdout/stderr/counts while omitting
passing rows; `--verbose` retains full spec. Empty/bad file or name selections
and zero executed cases fail, including source-bound `verify focused --name`.
Cancellation remains non-success even when a driver exits zero. Actual tooling
contracts15/15, six negative CLI cases, positive/negative source-bound runs,
`check:quick` and206 local doc links pass. Final scoped review has no finding.
Identical15-case native rule runs emitted278 bytes/12 lines concise versus
2,455 bytes/27 lines verbose (2.35s versus2.36s: no computation-speed claim).
Named Carthag feedback took0.90s; discovery-only list0.18s. The earlier162-case
union took100.22s with different coverage; use narrow failing-case feedback
before one coherent affected batch. Canonical context index/handoff avoids
mass file moves or duplicate ruling registries. Resume preserved Stronghold
rule/control work now; do not restart save/privacy/custody/seat audit campaigns.
Code checkpoint **e9830b6ced80c95253cfa112bb8ed2eb6e50b74c** is pushed.
[Exact mandatory CI36941218637](https://github.com/Quintine/Dune/actions/runs/36941218637),
job110632894258, completed/success: existing isolated storage/HTTP verification
passed before image publication. This is observed pipeline evidence, not a
new per-feature assurance campaign or deployment claim. Immutable image:
`ghcr.io/quintine/dune:sha-e9830b6ced80c95253cfa112bb8ed2eb6e50b74c`.
**Stronghold rule integration — bounded Development Verified:** fresh
`stronghold-factions` connects Advanced native Ixians/CHOAM plus classic2..6,
canonical combined47 Treachery Cards and six Stronghold Cards alone.
Eighteen native battle/copy cases, all four legal policy paths and five
unstaged complete games pass (3,129 accepted actions, no rejection,82JSON
restores). Earlier162 affected cases and6,513 full checks/type/lint/build
were recorded before the new assurance deferral, not rerun as a prototype gate.
Human390px original CLI room **LAUDR2WN v14** chose HMS Arrakeen copy,
sealed dial6/support3 with bank2/personal1 and completed the real battle
(personal1→0, three cyborg losses, CHOAM income1). Existing classic preview,
public expansion and pending Ecaz rounding boundaries stay unchanged.
New save/privacy/custody/seat campaigns remain deferred until all rules.
See [the bounded integration](STRONGHOLD_CARDS.md#native-ixian-and-choam-integration--2-october-2026).
The checkpoint counts, room/seat observations and live markers below are
historical evidence recorded by **2 October 2026**, tied to their named
revisions/reports. They do not describe a fresh result or require repeating
those assurance loops under the new priority.
Normal Spice Banker income now connects every reachable actual final-bank
auction, shipment, paid revival and resolved support source in fresh local
`banker-income`: unique classic2..6-seat Basic/Advanced, base33/all14-skills only.
One physical-card turn/phase stamp gains1 unavailable front-shield spice;
real native Mentat collects once before optional work/victory. No public
start, existing-game retrofit or combined overlay is activated. Original
earned-faction retention after trainer death/capture/reassignment and separate
payer/source nonaggregation remain explicit LOCAL provisional boundaries,
not an answer to the existing custody question or a publisher split FAQ.
Three implementation owners and two final independent reviews covered runtime,
canonical history and private authenticated entry/recovery; both final reviews
have no finding. Types/lint, **6,487 offline tests**, **140 focused cases** and
build pass. Eighteen native source-to-Mentat cases conserve all33 Treachery
Cards/14 skills; all four legal policies exclude deferred money from budgets.
Original private-backed-up six-seat setups **6VZ8G5BY Basic v38** and
**8TN8BTLT Advanced v31** exercised native Emperor self-auction and Guild
own-bank shipment/allow, human390px controls, refresh and final Collection
readiness to actual Mentat (original Banker wallets10→11 and3→4).
The initial26px notice squeeze was reproduced and repaired in the main column;
fresh notice width is354px. Cards/skills/normal and elite forces are conserved;
the23 prior isolated QA rooms' states/versions are unchanged. After final
guide-worker reload, all82 original seats across25 targeted QA rooms restore;
Basicv38/Advancedv31 remain at native Mentat without double collection.
Local HTTP remains **49/55 with six upstream503 rejection failures**, not green.
Guide coverage is Partial / Development Verified; final guide10/10,
types/lint/build and expanded390px guide pass. Final frozen check after the
phone repair again passes all6,487 offline cases. Code checkpoint
**6785e622a7bc8b850aa5e3d338c63be5a33a9403** is pushed.
[Exact CI run36923901367](https://github.com/Quintine/Dune/actions/runs/36923901367),
container job110576362446, is completed/success: mandatory isolated storage/
HTTP verification passes before verified-image publication. Image:
`ghcr.io/quintine/dune:sha-6785e622a7bc8b850aa5e3d338c63be5a33a9403`.
This does not turn local49/55 green or prove deployment. No deployed/full-module
claim; protected NAS rollout/restoration prerequisites remain unavailable.
Harkonnen Nexus Betrayal now connects actual personal and allied native traitor
calls, exact immediate physical retirement, the surviving original battle once
and one private actual Mentat replacement. Fresh local `harkonnen-betrayal`
retains classic/base33/Nexus-only bounds, natural card rights and original
allied counter preemption. Uniform acknowledgements are provisional; the
previously asked universal reaction-policy question remains open.
Independent review repaired an orphanable native allowance, added the public
declared-Traitor inspector and corrected wrong-face bot fixture assumptions.
Genuine sand battles/native declines replace an invalid Polar Sink fixture;
real counter-free normalization is retained, not forced into a fictitious pause.
Both final scoped reviews have no finding. Types/lint, **6,401 offline tests**,
the **138-case affected union**, final guide **10/10** and build pass.
Ten actual native cases and printed/BG preemption prove original stock and
current Mentat continuation. Four privately backed-up same-setup CLI/390px
rooms exercise human Use/Pass, actual public/own inspectors, partial refresh,
administrator owner and original native HTTP battle/Collection/Mentat once.
Saved proof retains all33 Treachery/all12 Nexus/Traitors, identity/circles,
one actual private reserve-top draw and nineteen earlier QA games.
The bounded path is **Partial development verified**, not full modes or
deployment. Final local HTTP integration is **49/55**, not green: six requests
returned the known Wrangler proxy 503. No automatic POST retry or weaker
authorization is introduced. After the final isolated worker reload, all
**70 original seats in twenty-three QA rooms** reauthenticate; saved proof
preserves all four outcomes and nineteen earlier rooms. The actual expanded
390px guide shows **Partial / Development: Verified** without page overflow.
Code **1cf8ff72c721691f1924e2f27db5936ce79dd4d2** is pushed.
Its [exact workflow](https://github.com/Quintine/Dune/actions/runs/36890229643)
and container job **110463692950** completed successfully: mandatory isolated
storage/HTTP verification and verified image publication both pass. Immutable
image: `ghcr.io/quintine/dune:sha-1cf8ff72c721691f1924e2f27db5936ce79dd4d2`.
Publication does not deploy or turn local 49/55 into green. Protected NAS
snapshot, human safe point and exact interactive deployment approval remain
unavailable; the last observed live marker remains **ab5c782**.
The authorized Advanced **leaderless Battle Plan announcement** is now
connected. Physical PDF page 11 requires disclosure before reveal when no
leader or Cheap Hero can be used; existing leader/card legality was already
enforced. Sealing that legal plan now records one public announcement and
shows a shared table notice while dial, support and other choices remain sealed.
No extra decision, cost, confirmation or serialized duplicate state is added;
Basic behavior is intentionally unchanged by this Advanced cutover.
Failing-before/passing-after privacy/refresh/duplicate regression passes.
Types/lint, **6,316 offline tests**, the **1,025-case selected union**, final
guide **10/10** and build pass. Actual native Advanced preview setup followed
by a conserved staged exhausted-leader battle proves public-before-reveal,
private other choices, JSON continuation and unchanged physical stock.
Backed-up real room `3Y5U53RW` v9 exercised human phone sealing, opponent
refresh, original reveal and native Collection continuation once. Saved proof
retains all thirty-three cards, typed forces, original identities and one
native stronghold income, with no announcement cost. The actual 390px notice
is 354px wide; all **57 original seats in nineteen QA rooms** reauthenticate.
This source-bound behavior is not a complete Advanced-game or deployed claim.
Code checkpoint **44d90bb9aea4032fb8ffda51daa64cc53d11d7f8** is pushed.
Its [exact workflow](https://github.com/Quintine/Dune/actions/runs/36862512991)
and container job **110369907670** completed successfully: mandatory isolated
storage/HTTP verification and verified image publication both pass. Immutable
image: `ghcr.io/quintine/dune:sha-44d90bb9aea4032fb8ffda51daa64cc53d11d7f8`.
This is publication, not deployment; protected NAS snapshot, human safe point
and exact interactive approval remain unavailable.
Subsequent source-frozen genuine continuation completes all ten classic
Basic/Advanced 2..6-seat samples. Combined Homeworld/Nexus samples complete
six-seat Advanced and five-seat Basic; six-seat Basic and five-seat Advanced
stop at turn-six CHOAM Charity on the existing unresolved low-Tupile income
guard. Those stops are not new crashes or permission to remove that ruling
boundary, and do not certify complete combined games.
Ixian Nexus Betrayal now connects both actual native attempts: Bidding's
extra-card inspection and Advanced Technology. Fresh local `ixian-betrayal`
uses native Ix/allowed classic or Tleilaxu, the physical Ix deck and Nexus only.
Native Karama counters resolve first; uniform public possible holders then
acknowledge before the draw/exchange. Denial/allow uses the original transition
once with exact Nexus cost, private controls, legal bots and saved continuation.
This bounded ordering/privacy is an inference, not universal publisher priority.
Original BG conversion and Harkonnen exchange suspensions retain native source
ownership; legitimate pre-offer loss of a declared Technology card retains its
spent attempt without a swap or fabricated Nexus gate. Public administrator
progress follows the same unfinished acknowledgements as the player table.
Final scoped native and privacy/administrator reviews have no finding.
Types, lint, **6,315 offline tests**, **167 affected cases**, final guide
**10/10** and build pass. Eight actual native scenarios plus both BG
Worthless-Karama interruptions retain original stock and continuation.
Four privately backed-up exact-version CLI/390px rooms prove Basic Bidding
Use, Advanced Technology Use, wrong-face Bidding Pass and two-receiver
Technology all-pass with partial refresh. Read-only proof retains all
forty-seven Treachery/twelve Nexus cards and fourteen earlier QA games.
The bounded path is **Partial development verified**, not full Ixian/Nexus
completion, a public start or deployed acceptance.
After the final isolated worker reload, all **55 original seats in eighteen
rooms** reauthenticate; exact saved proof preserves all four outcomes and
fourteen earlier games. The actual phone guide shows **Partial / Development:
Verified** at 390px without horizontal overflow. Current HTTP integration is
**52/55**, not green: three requests returned the known Wrangler proxy 503.
No authorization weakening, automatic write retry, reset or deployment follows.
Code checkpoint **cdfe0e5370d6fd9f6844f064bafd8198ce897252** is pushed.
Its [exact container workflow](https://github.com/Quintine/Dune/actions/runs/36858699841)
and container job **110357305474** completed successfully: mandatory isolated
storage/HTTP verification and verified image publication both pass.
Published immutable image:
`ghcr.io/quintine/dune:sha-cdfe0e5370d6fd9f6844f064bafd8198ce897252`.
This proxy-free CI evidence does not turn local 52/55 into green or deploy
the checkpoint. Protected NAS snapshot, human safe point and exact interactive
deployment approval remain unavailable; the last observed live marker is
**ab5c782**.
Five implementation lanes connected the missing Ixian Nexus Secret Ally
purchased-card replacement through fresh local `ixian-replacement`: exact
normal paid/printed-Karama source, own private controls, native discard/draw
and original fee/income/auction suffix once. Full hands and genuinely
depleted-pool same-card redraw are supported. Native Nexus still requires
a settled alliance and has no initial deal; actual effects need three seats.
Richese origins, Harkonnen buyers, wider modules and public starts stay gated.
Independent review repaired recursive saved-history growth and silently
dropped seat-control actions. Nine Pass records now serialize to 134,145
bytes rather than 7,030,825; nonrecursive links retain source/replay checks.
Actual pending-choice Take back control now sends one 200 and preserves
the same source. Both final scoped rules/privacy reviews have no finding.
Types, lint, **6,227 offline tests**, **73 selected cases** and build pass.
Fourteen standalone native scenarios retain exact original ledger/custody,
including captured legal six-seat depletion with four reserved lots.
Three privately backed-up same-setup CLI/390-pixel QA rooms prove Basic
paid Use, Advanced printed free Use, irrelevant-face Keep, inspection,
takeback and refresh. Saved proof preserves Treachery/Nexus/forces/elites
and eleven prior QA rooms; all **42 original seats in fourteen rooms**
reauthenticate after isolated build reload. Actual expanded guide shows
Partial / Development Verified. Local HTTP is **51/55**, four POST 503s,
not green. Full families, modes, strategy and live acceptance remain open.
Code `a2b04dbfba13eeb913c93de87981a58cb6b7d99d` is pushed.
[Workflow 36829040552](https://github.com/Quintine/Dune/actions/runs/36829040552)
and its exact-source container job report completed/success. Mandatory
isolated storage/full HTTP verification and verified-image publication
both succeeded. Immutable image:
`ghcr.io/quintine/dune:sha-a2b04dbfba13eeb913c93de87981a58cb6b7d99d`.
Publication is not deployment; the last observed live revision is unchanged.
Five implementation lanes reconciled two source-clear Advanced defaults
from the authorized revised rulebook: all new post-first Storm openings
draw the Storm Deck, even without Fremen; each player's own combined-turn
end applies allied separation without waiting for the ally. Advisor
coexistence in either direction, native Ecaz and Polar Sink remain exempt.
Basic is unchanged; a genuine prior-revision recorded Advanced dial save
finishes its original sum, then uses the Deck on its next new turn.
Canonical engine quotes supply own public loss-territory names only,
with unchanged native ending, force/elite/No-Field custody and pending locks.
Four existing minimal bot policies use native availability, not a second
separation calculator. Independent rules and storage reviews have no finding.
Consumer fixture repairs retain original Storm bindings and native progress;
they do not weaken source validation or remove the allied-entry guard.
Types, lint, **6,169 offline tests**, **339 selected cases** and build pass.
Standalone native continuation covers exact owned normal/elite losses,
advisor/Ecaz/Polar exceptions, unchanged Basic and captured old Storm.
Three backed-up fresh authenticated Advanced preview rooms exercise actual
390-pixel public Storm inspection/confirmation, first/later human ending
and refresh. Read-only proof conserves physical forces/elites/Treachery,
retains the eight prior Guild rooms, and all **33 seats in 11 QA rooms**
reauthenticate after necessary isolated-worker build reloads.
The actual expanded source guide retains Partial gates and exercised evidence.
Local built-worker HTTP is **51/55**, four POST 503s, not green.
Full Advanced, wider source differences, strategic AI and live acceptance
remain open; container publication is not deployment.
Code `e1056a4db0a546400fd9a4461507f93ae6ca57d2` is pushed.
[Workflow 36814701820](https://github.com/Quintine/Dune/actions/runs/36814701820)
and its exact-source container job report completed/success. The mandatory
isolated storage/full HTTP verifier and verified-image publication steps
both succeeded. Immutable image:
`ghcr.io/quintine/dune:sha-e1056a4db0a546400fd9a4461507f93ae6ca57d2`.
This is publication evidence, not a change to the last observed live revision.
Five implementation lanes connected [Guild Nexus Betrayal](NEXUS_GUILD_RULES.md#nexus-guild-betrayal):
full funded shipment-payment replacement, including own upfront payment
and the explicit occupied-Junction override. Fresh `guild-betrayal` admits
classic/native-Guild plus base decks/Nexus, optionally genuine lobby-enabled
Homeworlds; no in-play retrofit or public start. Four typed native source
adapters retain exact payer/escrow, force custody and one shipment suffix.
Neutral public acknowledgements reveal no otherwise private fee/routes;
only own canonical eligibility exposes Use. Both scoped final reviews have
no finding after fixing precommitted Richese parents and independently
revalidating the native transport grant. Unsupported Cunning/Richese producer
overlays block before spending; outside-profile behavior stays unchanged.
Current-quote fixture progression, durable SQL rejection and same-source
private-face comparisons replace random-route/SQL-text/independent-seed pins.
Types, lint, **6,114 offline tests**, build and **147 selected cases** pass.
Eighteen standalone Basic/Advanced paid/free scenarios, eight exact-version
backed-up real CLI entries, 390-pixel Use/Pass/inspector/context-link/refresh
and read-only saved-state checks prove exact native forces, whole-fee ledger,
single donor escrow consumption and physical cards. Original authenticated
seats and all unrelated games remain preserved.
Local built-worker HTTP is **48/55**, five POST 503s plus two timeouts,
not green. Code `8a56299155d0f12c8c4678bfbe5913be71fea5bb` is pushed;
[workflow 36798718410](https://github.com/Quintine/Dune/actions/runs/36798718410)
reports completed/success for that exact source. Its mandatory isolated
full HTTP/storage verifier precedes immutable-image publication.
Full modes, strategic AI, public starts and live deployment stay gated;
container publication does not update the last observed live revision.
Five implementation lanes connect [CHOAM Nexus Cunning Kull](NEXUS_CHOAM_RUNTIME.md#bounded-nexus-kull-profile)
through the new fresh `nexus-kull` profile. Actual canonical Treachery fuel
and physical Nexus are distinct costs: Nexus spends at accepted declaration,
fuel remains held pending response, and only success disposes fuel and bans
the original actor for the phase. Distinct prevention retains fuel, leaves
Nexus spent and resumes the reserved original once; BG is still preconversion.
Review repaired counterfeit descriptor trust, native suspended-parent
ownership, nested reserved counters and CHOAM winning-payment coverage.
Verified old printed counter saves migrate their binding immutably without
enabling new choices or accepting source-omitting Use; new corrupt Nexus
selections remain rejected. The fresh Spice Deck excludes Sandtrout.
Types, lint, **6,022 offline tests**, build and actual Basic/Advanced
CLI/runtime/phone success/prevention/refresh pass with conserved physical
cards and unchanged spice. Local HTTP is **49/55**, four POST 503s plus two
timeouts, not green. Code `0d9d0a72d63b29d93161857cee2d1a2cd6acd7e3`
is pushed and [workflow 36770260638](https://github.com/Quintine/Dune/actions/runs/36770260638)
reports completed/success for that immutable source; the mandatory
isolated storage/HTTP verifier precedes image publication. Live deployment
and full-mode acceptance remain separate; no public/deployed claim.
Five implementation lanes now connect the bounded
[Richese Nexus Betrayal](NEXUS_RICHESE_RULES.md#bounded-betrayal-auction-contract--30-september-2026)
preview: original public self-cache purchase veto without payment,
and another buyer's cache/Black Market sale diversion to bank with
unchanged price, contributions, physical delivery and earned Harkonnen
bonus. Fresh `richese-betrayal` CLI entry requires paired CHOAM/Richese,
classic remaining seats, the CHOAM deck and Nexus alone. Public possible
responders acknowledge uniformly; only own canonical eligibility shows Use.
Independent review repaired escrow double-counting and post-bonus
exhausted-cache preflight. Types, lint, 5,953 offline tests, build and
80 focused cases pass. Genuine local CLI/runtime and phone controls prove
Basic veto, Advanced all-pass and Basic cache/Advanced Black Market
diversion, exact custody and refresh. Local Wrangler HTTP is **51/55**:
three POST 503s and one Advanced timeout, not green HTTP acceptance.
Code checkpoint `9c0000e469935d9f0fae1605358d5e6a2617be56` is pushed.
The [container workflow](https://github.com/Quintine/Dune/actions/runs/36720704874)
reports completed/success for that exact revision; its mandatory isolated
storage/HTTP verifier and immutable-image publication are separate from
local Wrangler and live deployment. Normal hidden self-buys, private special
acquisition, wider compositions and full-family completion remain open;
no public start or live NAS deployment is claimed.
The explicit `kull` development profile now connects printed Kull
Wahad interception in Basic/Advanced CHOAM-plus-classic rosters
with the physical CHOAM/Ix deck. Five implementation lanes delivered
the typed engine, pure policy, human controls/legal bots, authenticated
SQLite scenarios and internal guide. An original Karama stays
reserved; only a distinct eligible card can counter Kull before the
phase ban. BG is intercepted before conversion. Unpayable winning
overbid remedies remain deferred: non-CHOAM unfunded bids are
privately fenced before commitment to avoid an unfinishable payment.
Numeric UI limits and non-preview rules are unchanged. Original,
counter and Kull costs honor live promises; unproven suffixes reject
before disposal. Review exposed Auditor-parent, orphan-frame and
promise defects, which are repaired with regressions. Focused rules,
controls, legal AI and SQLite checks pass; direct smoke kept the
original card, spent one Kull and applied a phase ban without a rate.
`npm run check` passed types, lint and 5,907 offline tests; build
passed. Phone-width Basic/Advanced QA exercised Use, a distinct
counter and Decline after refresh: Basic retained the original
and phase ban; Advanced resumed BG conversion and its saved
cancellation once. Independent repair reviews found no remaining
scoped defect. Isolated Wrangler-dev HTTP passed 49/55 with five
proxy 503s and one timeout, not a green local HTTP suite.
Proxy-free workflow `36706704939` passed the full isolated
HTTP suite for `aeae152` and published its image.
Nexus Cunning Kull, wider modules and full expansion acceptance
remain separate; no public starts or live NAS deployment are claimed.
The explicit [Semuta development preview](SEMUTA_SOURCE_UPDATE_20260907.md#30-september-2026--bounded-clean-discard-runtime)
accepts a fresh Richese roster with CHOAM & Richese and optionally
the physical Ix deck. Clean public ordinary-card, paid Box, retired
Ornithopter, used Distrans, final Truthtrance, four bounded Sapho,
pre-leader Residual Poison, printed Karama canceling clean CHOAM
Charity, Inflation or Bene Gesserit Charity or settling a clean
normal-auction lot, a completed CHOAM sale or clean
Kulon/La La La/Baliset/ordinary Trip to Gamont, accepted
Jubba Cloak Worthless, battle-card and Ix-deck
Thumper/Amal discards open the same neutral offer regardless
of hidden Semuta custody.
A clean **private** normal-auction Ixian ally replacement discard
also pauses before its draw; no unknown face is shown before a
holder commits. A completed CHOAM sale pays its quoted bank spice
before the offer and resumes the same market afterward. Karama waits
after its public cost but before cancellation or the reserved lot settles.
Kulon's public card is spent before this offer; its single movement
range bonus and same turn resume only after claim or all-seat decline.
Proactive La La La likewise spends its public card before the
selected target loses remaining free revival; paid revival remains
available. Proactive Baliset spends its public card before the
selected player is barred from movement into CHOAM's occupied
territory; shipment stays legal.
Clean ordinary Trip to Gamont spends its public card before
one opponent force returns to reserves; elite and concealed
No-Field returns retain their earlier automatic path.
Accepted Jubba Cloak spends its public card before protecting
one CHOAM territory; the moving storm resolves only after a
claim or all-seat decline.
Residual Poison commits one random death before the offer; only an
uninspected battle with nobody ready qualifies. Once Around commits
bidder order and frees a slot; other Sapho scopes commit chooser or
aggressor priority. Claim or decline resumes the saved effect once.
A Black Market Semuta reserved as the offered card cannot Commit.
Thumper waits before worm/spice draw; Amal waits after halving spice
and clearing opening passes. Mixed-owner battle cards require
committed owner-only selection; mandatory and optional winner cleanup
remain separate. Minimal legal AI, JSON/SQLite continuation and
competing-room CAS are connected. Mixed arrivals, queued or
promise-bound Truthtrance, other Karama uses, pending rewards,
normal Richese starts and deployed acceptance remain unfinished.
Neutral passes are application policy. The user approved Semuta's
atomic exchange at the faction hand limit; completed hand counts
and reserved incoming capacity remain protected.
Full-hand Semuta exchange passes normal/faction-limit and
incoming-reservation regressions, authenticated SQLite and
independent review. `npm run check` passed types, lint and
5,854 offline tests; build passed. Direct smoke and an actual
phone-width full-hand QA seat acquired Hajr, spent Semuta,
kept four cards and preserved that result across refresh.
Isolated Wrangler-dev HTTP passed 49/55 with five proxy 503s
and one timeout; this is not a green local HTTP suite.
Proxy-free workflow `36684960601` passed the full isolated
HTTP suite for `3285172` and published its image. No NAS
deployment is claimed.
Kull's approved distinct counter/BG-before-conversion timing
is recorded but runtime remains unfinished; unpayable
winning-overbid recovery is deliberately not chosen.
Accepted printed Jubba Cloak passes focused engine and
authenticated SQLite, a direct one-storm claim smoke and
independent review without findings. `npm run check` passed
types, lint and 5,853 offline tests; the production build
and phone-width in-app guide passed. Isolated built-worker
HTTP passed 50/55 with four Wrangler-dev proxy 503s and
one timeout. The local suite is not green. Proxy-free workflow
`36676105785` passed the full isolated HTTP suite for `98d556a`
and published its image. No NAS deployment or complete faction
claim follows.
Clean ordinary Trip to Gamont passes focused engine and
authenticated SQLite checks, a direct physical claim/force
return smoke and independent review without findings.
`npm run check` passed types, lint and 5,851 offline tests;
typecheck, lint and 18 guide/Semuta tests passed after the
in-app text update, and the production build passed. The
built phone-width rules guide displayed both new CHOAM
discard scopes. Isolated built-worker HTTP passed 50/55:
four Wrangler-dev proxy 503s and one timeout. It is not a
green local HTTP suite or a live deployment. Proxy-free
workflow `36674543364` passed the full isolated HTTP suite
for `953be21` and published its image; this is not NAS
deployment.
Clean proactive Baliset passes focused engine and authenticated
SQLite checks, a direct engine claim/restriction smoke and
independent review without findings. `npm run check` passed
types, lint and 5,849 offline tests; the production build
passed. Isolated built-worker HTTP passed 49/55: four POSTs
returned the Wrangler-dev proxy's 503 rather than app statuses,
and two requests timed out. This is **not** a green local HTTP
suite or production deployment. Proxy-free workflow
`36673190056` passed the full isolated HTTP suite for
`756af19` and published its image; this is not NAS deployment.
Clean proactive La La La passes engine, authenticated SQLite,
direct engine smoke and phone-width guide checks. `npm run check`
passed types, lint and 5,847 offline tests; the build passed.
In an isolated QA room, the actual Richese seat showed Continue
and Commit, acquired the physical card, then retained zero free
revivals and a two-spice paid quote across refresh. Direct
Wrangler-dev HTTP passed 50/55 with four 503s and one timeout;
proxy-free workflow `36671450678` passed the **full** HTTP suite
for `b130cff` and published its image. This is not NAS deployment.
Clean Kulon-before-bonus continuation passed engine, authenticated
SQLite and genuine-setup targeted smoke checks. `npm run check`
passed types, lint and 5,845 offline tests; build and phone-width
guide inspection passed. Direct Wrangler-dev HTTP passed 48/55;
six tests saw HTTP 503 instead of their expected status, and one
Advanced-lobby request timed out at 15 seconds. The proxy-free
container workflow `36670493579` for `88bcb33` passed the full
HTTP suite and published its image; this is not a NAS deployment.
The completed CHOAM card-sale reaction passed two- and three-spice
engine cases, canceled-sale exclusion, authenticated SQLite recovery,
direct engine smoke and rendered phone-width guide inspection.
`npm run check` passed types, lint and 5,843 offline tests; the build
passed. A direct Wrangler-dev HTTP suite passed 50/55; four
origin/validation requests returned 503 and one Advanced-lobby
request timed out after 15 seconds. This local proxy run is not
a green suite; the proxy-free container run below passed.
One diagnostic POST returned Wrangler's literal "Your worker restarted
mid-request" 503 body; 100 subsequent identical requests returned the
application's expected 400. [Cloudflare workers-sdk issue #14641](https://github.com/cloudflare/workers-sdk/issues/14641)
documents a local dev-proxy disconnect with this misleading status.
This points to the proxy for those transient failures, not to a
verified application fix. The existing [container verifier](../tools/verify-container.mjs)
runs the **full** HTTP suite against isolated Docker without that
Wrangler dev proxy. Revision `4c07e1b` passed workflow
`36668822954`, including this full HTTP suite, and published its
image. Live NAS deployment and acceptance remain open.
The private normal-auction Ixian ally reaction passed genuine-setup
engine, authenticated SQLite and direct engine smoke checks. The full
`npm run check` passed types, lint and 5,839 offline tests; build and
phone-width guide inspection passed. The isolated built-worker HTTP
suite passed 49/55 tests: five returned 503 instead of expected
authorization/validation/success statuses, and one Advanced-lobby
request exceeded its 15-second limit. Full HTTP acceptance remains open.
The previous printed Karama purchase/payment checkpoints passed
engine and authenticated SQLite checks; their local HTTP caveats
are recorded in the implementation log.
The previous purchase revision `eede77a` passed container workflow
`36664985601`, including its isolated storage/HTTP gate, and published
an image. This does not deploy it to the live NAS.
The following paid Karama revision `8f6b1c8` also passed container
workflow `36665999972` through isolated storage/HTTP verification
and published its image. Neither checkpoint has been deployed to the NAS.
The subsequent private Ixian ally revision `9bfc3ec` passed workflow
`36667534804` and published after isolated storage/HTTP verification.
It too is not a live NAS deployment.
Container workflow `36656043783` built `32d9ef4` but failed
isolated storage/HTTP verification; that image was not published and
the public job exposes no assertion log. The next checkpoint
`d9c67ca` passed the same verification and published its image in
workflow `36657454120`. The live homepage footer now displays
`ab5c782`, confirmed in an independent browser view and screenshot.
This marker is not a complete production gameplay or administrator
check, nor evidence that the later pushed revisions are deployed.
One [natural Advanced Moritani assassination](MORITANI_ASSASSINATE_LEADERS.md#29-september-2026--natural-revealed-card-game)
now proceeds from genuine battle loss to a dead-target Traitor reveal,
face-up retirement and private Mentat replacement. The six-seat game
completed 1,666 accepted actions, zero rejected candidates and 45 JSON
restores; a separate replay checked every private view across reveal and
replacement. A natural living-target kill, exceptional combinations and
the unresolved duration/UX rulings remain open. Public expansion starts
and deployed acceptance remain gated.
Another natural six-seat Moritani game exposed two illegal Fremen worm
rides into a placed Terror with a pending BG fighter intrusion. The
[worm-arrival bot preflight](BOT_ARRIVAL_PREFLIGHT.md#29-september-worm-ride-into-terror-with-bg-intrusion)
now omits only that public reaction conflict. Same-seed replay completes
1,541 accepted actions, zero rejects and 41 JSON restores. This does not
implement the simultaneous reaction or demonstrate a natural assassination
reveal; expansion starts and deployment remain gated.
A six-seat Advanced Moritani sample exposed six illegal bot Guild
cross-planet transport candidates into a placed Terror while Guild income
was pending. [Arrival preflight](BOT_ARRIVAL_PREFLIGHT.md#29-september-guild-cross-planet-transport-and-terror)
now quotes the submitted single-source transport and payment using public
arrival triggers. The same genuine game completes 1,262 accepted actions,
zero rejected candidates and 34 JSON restores; both assassination choices
were declined. This repairs AI candidate legality, not the unsupported
arrival composition, natural assassination reveal coverage, normal
expansion starts or deployed acceptance.
The owner-only [administrator accounts](ADMIN_ACCOUNTS.md) prototype now
lists, provisions, changes roles, disables and rotates another account’s
personal key. Rotation can re-enable a disabled target only with a fresh
key; old credentials and sessions remain revoked, including attempted
A→B→A reuse. Live owner/target fences, durable exact retries and safe
actor-attributed history preserve rooms and seats. A disposable owner
and target completed authenticated local **network** rotation and
re-enable on an isolated built-worker D1 store, and mobile browser review
showed exact impact and a superseded-replay warning. The supported dev
HTTP suite passes 55/55; the built-worker full suite hit intermittent
local workerd 503 restarts and is not a green production-bundle suite.
Failed-attempt history, the rest of administration, deployment and
production acceptance remain unfinished. This code is not in the last
verified live image.
The bounded [Advanced Moritani Assassinate Leaders preview](MORITANI_ASSASSINATE_LEADERS.md)
now has repeatable genuine games across two through six supported seats.
Five samples completed 2,511 accepted actions, no rejected candidates
and 65 JSON continuations. The six-seat game reached two private
assassination offers, both declined. The separate natural reveal sample
above adds one dead-target use, not a complete Moritani rules claim. The
unresolved duration/UX questions and public expansion gate remain
unchanged. This source is not in the last verified live image.
The independent Ecaz three-card variant now has a repeatable
[genuine-game sample profile](VERIFICATION_WORKFLOW.md#reusable-base-and-faction-sample-games)
for paired Ecaz/Moritani rosters from two to six seats. Ten Basic/Advanced
games at base seed `20260929` completed with 3,768 accepted actions, zero
rejected candidates and 95 JSON continuations; the six-seat Advanced game
actually played Recruits, Reinforcements and Harass & Withdraw. That run
exposed and confirmed a saved-view drift from unlocked Bene Gesserit advisor
stances, now corrected at four arrival/movement writers. These samples do
not certify all card interactions, full expansion modes or deployment.
The separate [Reinforcements card prototype](REINFORCEMENTS_RUNTIME.md)
now works in clean Ecaz/Moritani expansion battles as well as classic-faction
tables in Basic and Advanced. Genuine setup, owner-only two-slot controls,
legal AI offers, typed reserve-to-Tanks payment and saved D1 continuation
follow the existing card contract. Co-present Ecaz allied armies, Richese,
Ixians/Tleilaxu and other optional modules remain gated; the printed cost
timing is still a documented product interpretation, not a publisher ruling.
This does not open public expansion or card-variant starts, and this source is
not in the last verified live image.
A five-seat Advanced combined Homeworld/Nexus/expansion sample exposed two
known-unsupported Ecaz Ambassador/Moritani Terror shipment candidates from
Tleilaxu's own Homeworld. [AI arrival preflight](BOT_ARRIVAL_PREFLIGHT.md#29-september-homeworld-sourced-shipment-overlap)
now excludes them using only public entry reactions. The same genuine game
completed with 786/786 legal attempts and 21 JSON continuations; this is a
candidate-legality repair, not support for the combined arrival or a public
expansion start. The source is not in the last verified live image.
Six fixed paired-expansion Basic/Advanced [game samples](IMPLEMENTATION_STATUS.md#29-september-2026--paired-expansion-game-samples)
at `b9c8b74` completed with 4,641 legal actions and 122 JSON continuations.
They do not establish complete faction effects, module combinations or
release readiness.
Five Basic Moritani and five Basic Tleilaxu plus Leader Skills
[game samples](IMPLEMENTATION_STATUS.md#29-september-2026--moritani-and-tleilaxu-leader-skills-samples)
across two through six seats completed with 4,736 legal actions and 123 JSON
continuations. This is sampled playable coverage, not complete skills,
Advanced or optional-module acceptance.
A bounded [Ecaz Ambassador/Moritani Terror same-entry continuation](MORITANI_ENTRY_TIMING.md#selected-bounded-overlap-order--29-september-2026)
now snapshots both original optional triggers and offers their owners sequential
choices in current storm order on classic plus Ecaz/Moritani Basic/Advanced
tables. This order is a conservative provisional table interpretation, not
a publisher ruling. The original shipment, move or Fremen worm ride transfers
forces only once; JSON/SQLite recovery keeps token custody private and proceeds
to the second owner even after the first declines or resolves a supported effect.
A summoned worm during the overlap retains its Nexus before the queued ride;
Robbery overflow and Sabotage discards preserve physical custody. The table
shows public owner order without disclosing the hidden Terror face; existing
owned controls and minimal legal AI remain usable. Competing BG Intrusion,
Fremen/Guild Ambassador child arrivals and optional-module combinations remain
gated, as do normal public expansion starts. The bounded Atomics path below
does not open these overlap combinations. This source is not in the last
verified live image.
A bounded [Guild native rate Karama path](GUILD_RATE_KARAMA_RULES.md#native-transport-extension--29-september-2026)
now interrupts classic Guild/reciprocal-ally ordinary reserve shipments and
eligible cross-planet transport before payment, including Guild's own return
to abstract reserves and allied Fremen southern-reserve transport. Canceling
the rate charges normal destination price for the **exact saved force group**
and original approved funding split; return costs one spice per force under
the documented conservative doubled-tariff interpretation. If the group or
split cannot complete, Karama is spent but the declaration returns unused and
a replacement uses full price this turn. Saved typed custody, a legal AI path,
SQLite CAS recovery and local read-only browser previews of the cancel control
and replacement quote are connected. Guild income, transport permission and
independently purchased Karama rates remain separate. Optional-module and
Homeworld rate cancellation remain gated; this code is not in the verified
live image below.
Moritani Extortion now has a bounded local reveal-to-Mentat continuation:
five bank spice stays reserved until Moritani finishes normal Terror placement
and any Karama response; then non-Moritani seats in storm order may pay three
once or decline. Payment removes the revealed token; all declines rotate it
back into hidden supply. The [placement-first order](MORITANI_EXTORTION_RULES.md)
was selected by the user, not sourced as a publisher priority ruling. Public
notices hide the current payer's affordability from other seats. Owner controls,
legal AI, JSON/SQLite CAS, nested Box/gift interruptions and a genuine late
Mentat Ambassador entry have focused coverage; each still settles before the
turn ends. A separate bounded classic-plus-Moritani Atomics path now records
public Aftermath with permanent shipment prohibition and a one-card hand-limit
reduction for Moritani and its ally at activation; later alliance changes are
gated pending a ruling. Complete expansion starts stay gated. These local
changes are not in the last verified live image below.
The live NAS Apps `dune` image is the immutable
`ghcr.io/quintine/dune:sha-c9a3625ff2a9ddafdbc08e64de809eca6029db85`
from successful container workflow `36358270534`. The public footer's title and
accessibility name show that full revision; visible text shows `c9a3625`.
After the update, owner sign-in succeeded and nine existing rooms remained,
including a playing room at version 54. A fresh 0600 online SQLite backup in
the persistent app volume passed `PRAGMA quick_check` before the update. The
earlier temporary remote plaintext owner key and provisioning SQL were removed.
Private saved-seat reconnection, complete historical-data comparison and live
Diplomat retreat gameplay were not exercised; its local behavior is verified,
not production gameplay-proven.
The bounded Discovery Orgiz Collection transfer is connected in current local
source for Basic/Advanced, with an automatic public log and saved continuation.
It treats each positive collected board deposit as one observable blow, a source
inference pending a publisher clarification. A focused engine/browser/SQLite
checkpoint is in [Discovery prototype](DISCOVERY_PROTOTYPE.md); this code is
not yet in the live `c9a3625` image. Contested/shared transfers and full
Discovery release acceptance remain gated.
Checkpoint `209fb18` was pushed and its matching container workflow
`36359970371` completed successfully. The dedicated deployment agent could not
enter TrueNAS Apps because the host desktop was OS-locked; it made no NAS change,
backup or post-rollout claim. Production remains at the last verified `c9a3625`
image until the Apps session is unlocked and this exact image is deployed.
An owner-only [room-backup prototype](ADMIN_BACKUPS.md) now captures, lists and
downloads immutable private snapshots with live authorization, unchanged room
versions and append-only capture/export receipts. The per-room size/storage
limits, missing import/restore and absent unified action-history entries keep
the saved-game operations gate open. Local isolated capture/export and a
signed-out browser denial passed; this is not deployed evidence.
The owner-only [operations page](ADMIN_PANEL.md) samples build revision,
room/seat and lifecycle counts, invalid JSON, latest write and backup usage.
It now also offers a separate **manual** SQLite quick/foreign-key check.
Only owner requests can run it; the result contains pass/fail and time, never
private rows or raw diagnostics. In-memory SQLite tests and an authenticated
owner request against an isolated built Wrangler worker passed. The same worker
reported a deliberately orphaned foreign key as failed without exposing its row;
the phone-width owner UI showed both outcomes and the no-auto-repair warning.
Live NAS checks remain unverified. This is not a disk-capacity, restore-safety
or game-rule validation tool. No game or seat changes during a check.
Current work adds [action history](ADMIN_ACTION_HISTORY.md): a searchable,
paginated view of nine durable admin receipt sources with public before/after
settings. Owners/operators receive operational reasons; viewers do not. Queries
preserve live authority and reject private or malformed metadata from search.
Failed-attempt coverage, operational health and the remaining full admin scope
are still unfinished.
Discussion checkpoint `160fdc1` is pushed. Types/lint, 5,431 offline tests,
52 HTTP tests, build, twenty-four administrator HTTP groups and desktop/mobile
browser checks passed; all 2,230 baseline games and 4,746 seats were preserved.
Its container workflow `36218058095` succeeded; the later NAS Apps deployment
and current live revision are recorded above.
The bounded [Fremen Nexus Cunning](NEXUS_FREMEN_RULES.md#connected-native-cunning-path)
prototype connects an initially empty worm's public offer, one spent private
card, a Karama response, a typed remote ride after the Nexus, human controls
and minimal legal AI in classic-faction Nexus-only games. Basic/Advanced
natural continuation, an additional-worm placement and an actual Advanced
special-Karama summon retain their physical parent, response and native-then-
remote ride order across JSON/isolated SQLite recovery and duplicate CAS.
Natural and summoned offer/ride browser surfaces were exercised. Review found
and fixed an inherited-key force-custody bypass. A second Cunning offer
inside an interrupted control, Great Maker, combined modules, Secret Ally
protection and complete Nexus games remain gated. The bounded Atomics reveal
is a separate classic-plus-Moritani path, not a playable Nexus Terror effect;
its later-alliance hand-limit policy is unresolved.
The bounded [Fremen Nexus Betrayal alternatives](NEXUS_FREMEN_RULES.md#bounded-betrayal-movement-and-worm-riding)
let an unallied holder spend the physical card either before the first Spice
Blow to prevent Fremen worm rides for that turn, or before Fremen move in
Shipment and Movement to suppress their native two-territory advantage.
Worm destruction/protection and Nexus still resolve; independent movement
bonuses remain available. One saved card cannot use both modes, even if
recycled later that turn. Owner controls, prioritized legal bot play,
Basic/Advanced JSON and authenticated concurrent SQLite continuation are
connected. Post-appearance Betrayal timing and combined modules remain gated;
no public Nexus gate changes.
The bounded [Ecaz Nexus Betrayal](NEXUS_ECAZ_RULES.md#bounded-betrayal-runtime)
path lets a card holder select one public territory shared by Ecaz and its
ally before the first Shipment and Movement turn advances. One spent card,
a provisional Karama response and exact typed ally-force return are wired
through human controls, legal bot action, JSON and in-memory SQL continuation,
and focused gameplay, race and restart tests. A local browser fixture rendered
the holder-only offer and rival Karama notice without writing a room. The
Secret Ally inquiry has a bounded private prototype; its native-leader
scope/answer audience and combined modes remain release gates.
The bounded [native Ecaz Nexus Cunning](NEXUS_ECAZ_RULES.md#bounded-native-cunning-duke-vidal)
prototype spends the one card to take the existing living Duke from Moritani
at a quiet Battle boundary in paired Ecaz/Moritani Nexus games. Owner controls,
legal AI, ordinary battle selection, temporary end-turn custody and signed
saved continuation are connected in Basic/Advanced outside Advanced Harkonnen
tables, where the battle path cannot select Duke. Captured, dead and Ghola
destinations and all combined modules remain gated. The Battle-only timing
is a documented product boundary rather than printed phase text. This code
is not yet in the live image.
The bounded [Ecaz-only Duke revival](ECAZ_REVIVAL_RULES.md#selected-product-interpretation-28-september-2026)
returns the existing dead shared disc alive and set aside after ordinary paid
revival or a Ghola card. The user selected this custody interpretation; it is
not a publisher clarification. Five spice (three with the existing Tleilaxu
alliance discount), stop/cancellation windows, first five-in-Tanks cohort,
owner choices, legal AI and JSON/SQLite continuation are connected. Further
six-disc native cycles, exceptional custody and Advanced Harkonnen remain
guarded; no complete Ecaz start is certified.
The bounded [Mirror Weapon battle path](MIRROR_WEAPON_ENGINE_AUDIT.md#user-selected-cleanup-interpretation-28-september-2026)
admits the canonical physical card in CHOAM/Richese-deck Basic/Advanced
classic/CHOAM/Richese battles without combined optional modules. Effective
copied attacks, copy-first Tooth/Stone choices, public Stone feasibility,
saved custody, human controls and legal AI are connected. A victorious
physical Mirror can be kept even after a copied activated Tooth or Artillery
attack under the user's interpretation, not a GF9 clarification. Combined
modes and full Richese starts remain gated. Neither new path is in the
verified live `c9a3625` image.
The bounded [Bureaucrat/Tleilaxu revival payment](BUREAUCRAT_PAYMENTS.md)
path adds the Basic Tleilaxu/Leader Skills profile's actual single-payer
revival prices to the skill's post-Karama redirection. Paid custody, separate
free-revival income, private negotiated amounts, owner controls, four legal
AI policies and concurrent SQLite continuation are connected. Other expansion
payment families, gifts and combined modules remain gated; this is not a
complete Leader Skills or Tleilaxu certification.
Earlier [complete-game integration samples](IMPLEMENTATION_STATUS.md)
finished 62 genuine games: Basic Leader Skills with Tleilaxu, Moritani,
Ixians or CHOAM; Basic/Advanced classic Homeworld + Nexus; all three paired
faction-expansion + Nexus profiles across two through six seats; and two
six-seat all-expansion games. All 29,333 actions were accepted, with 765
JSON/private-view restorations and unchanged source fingerprints. Rare effects
not encountered naturally and all public release gates remain unverified.
Four further [all-expansion Nexus samples](IMPLEMENTATION_STATUS.md)
completed genuine five/six-seat Basic and Advanced games: 4,098 accepted
actions, 109 JSON/private-view restorations, unchanged source fingerprints
and five Nexus Card draw/keep decisions in the five-seat games. No Nexus
effect was played in those samples; card-specific combinations and public
expansion/Nexus starts remain gated.
Four more [all-expansion Homeworld/Nexus samples](IMPLEMENTATION_STATUS.md)
completed five/six-seat Basic and Advanced games with 2,800 accepted
actions, 74 JSON/private-view restores and unchanged source fingerprints.
Five-seat tables drew/kept three Nexus Cards and used real Homeworld
deployment decisions. Eight proposed entries were rejected by the existing
Ecaz Ambassador/Moritani Terror overlap gate; bots found alternate actions
and completed. Their unresolved priority and all public mode gates remain.
The bounded [native Richese Nexus Cunning shipment](NEXUS_RICHESE_RULES.md#bounded-native-cunning-prototype-27-september-2026) now uses two distinct physical No-Field tokens in one priced shipment in genuine Richese/CHOAM paired Nexus games. One token immediately reveals a reserve-capped public force group; the other remains concealed. Owner-only controls, four legal AI profiles, Karama/Guild responses, signed saved receipts and concurrent in-memory SQLite settlement are connected in Basic/Advanced. A read-only local browser fixture displayed the owner selector and no rival private panel. Same-shipment nonrepeat is a documented product interpretation; faceup-component artwork, combined modules, Betrayal and full Nexus acceptance remain gated. This code is local and not in the last verified production image.
The independent [Reinforcements Battle Plan prototype](REINFORCEMENTS_RUNTIME.md)
connects its physical card in either slot for Basic/Advanced classic-faction
games without other optional modules. Three own reserve counters enter the
Tanks, +2 affects normal battle score only, and the card is discarded on all
revealed outcomes. Owner-only availability, controls, legal AI, private
inspection and saved continuation are connected. Traitor/explosion payment,
normal-first elite selection and battle-loss accounting remain explicitly
provisional interpretations, not a publisher or user ruling; full variant and
public mode gates remain closed. This source is not in the live image.
The bounded [Emperor Nexus Secret Ally bank-auction purchase](NEXUS_EMPEROR_SECRET_ALLY_RUNTIME.md#bank-auction-purchase-alternative)
connects the separate retained-price alternative in Basic/Advanced
classic-faction Nexus-only games. An unallied winner proves the final bid from
their own spice, keeps it, takes the physical Treachery lot and spends the
Nexus; owner controls, legal AI, signed history and saved SQLite continuation
are wired. Every eligible winner receives the same payment confirmation
regardless of hidden card custody; this privacy-preserving timing is
**provisional**, with the prior user question still pending. Seller payments,
allied splits, non-Bidding sources, Betrayal and complete Nexus remain gated.
This source is not in the live image.
The main page
labels its build's Git commit in the lobby and active-table masthead; local
Git HEAD does not represent uncommitted work. The main-branch container
workflow publishes an image but does not deploy the live site automatically.
[Discussion moderation](ADMIN_DISCUSSION.md): owners/operators
can mute or unmute new public/private messages from a human seat. History,
incoming messages, game state and credentials remain saved; the setting follows
recovery/handover. Atomic authority/version fences, durable audit and exact
admin/message retries are connected. This is partial participant support;
access revocation, participant removal, assisted recovery, permanent deletion,
bulk actions and backup/operations tools remain unfinished.
[Participant AI](ADMIN_PARTICIPANT_AI.md) checkpoint `2cddf03` is pushed. Types/lint,
5,408 offline tests, 52 HTTP tests, build, twenty-two administrator HTTP groups
and desktop/mobile browser acceptance passed. Deployment delivery was
unconfirmed at that checkpoint; the current production revision is recorded
above. No strategic AI refinement was added.
Readable-notice checkpoint `137f922` is pushed. Types/lint, 5,381 offline tests,
52 HTTP tests, build and delayed-response desktop/mobile browser QA passed.
Its new-revision deployment handoff is pending confirmation.
The [readable-notice follow-up](READABLE_NOTICES.md) extends first-request progress
to admin operations, AI permissions and seat handovers, preventing recovery
instructions from flashing before a successful response. Seat recovery/handover
confirmations remain above the table until Continue. Existing retry proofs and
rules/AI pacing are unchanged. New-revision deployed acceptance remains separate
from local checks; positive production admin testing still needs authorized access.
The connected [administrative archive/unarchive](ADMIN_ROOM_ARCHIVE.md) prototype lets
closed rooms leave the default directory without changing saved games,
credentials, discussion or AI deadlines. Unarchiving leaves play closed;
reopening requires unarchiving first. Exact saved retries and combined archive /
removal filters preserve recovery. Permanent deletion, bulk actions and full
participant/backup support remain unfinished.
Checkpoint `98b1b32` added [close/reopen](ADMIN_ROOM_CLOSURE.md) and passed types/lint,
5,356 offline tests, 52 HTTP tests and build, with seventeen administrator HTTP
groups and lost-response desktop/mobile browser QA. It is deployed on the NAS:
container verification passed, migration 0013 applied, all eight prior rooms and
ten seats were preserved, and public HTTPS/browser saved-seat restoration passed.
Anonymous admin routes remain denied. Positive production administrator acceptance
still awaits authorized QA access. Archive checkpoint `e918e2e` is also deployed:
migration 0014, integrity and public HTTPS/browser saved-seat restoration passed;
all eight prior rooms and ten seats were preserved. Its positive production
administrator acceptance remains pending the same authorization.
Checkpoint `238de38` added [recoverable removal/restoration](ADMIN_ROOM_REMOVAL.md)
and passed types/lint, 5,314 offline tests, 52 HTTP tests and build, with fourteen
administrator HTTP groups and lost-response desktop/mobile browser QA. It is
deployed on the NAS: container verification passed, migration 0012 applied,
all eight prior rooms and ten seats were preserved, and public HTTPS/browser
saved-seat restoration passed. Anonymous removal and other admin routes remain
denied. Positive production administrator acceptance remains pending authorized
QA operator access.
Checkpoint `c0cc4de` added [neutral administrator lobby configuration](ADMIN_LOBBY_CONFIGURATION.md)
and passed types/lint, 5,260 offline tests, 52 HTTP tests and build, with eleven
dedicated administrator HTTP groups and lost-response desktop/mobile browser QA.
It is deployed on the NAS: container verification passed, migration 0011 applied,
all eight prior rooms and ten seats were preserved, and public HTTPS/browser
saved-seat restoration passed. Anonymous creation, control and configuration
requests remain denied. Positive production administrator acceptance remains
pending authorized QA operator access.
Checkpoint `e7d4efc` added [administrator room creation](ADMIN_ROOM_CREATION.md)
and passed types/lint, 5,240 offline tests, 52 HTTP tests and build, with independent
review and eight dedicated administrator HTTP groups. It is deployed on the NAS:
container verification passed, migration 0010 applied, all eight prior rooms and
ten seats were preserved, and a saved seat restored through public HTTPS and the
browser. Anonymous administrator creation remains denied. Positive production
administrator acceptance still requires explicitly authorized QA operator access.
Checkpoint `8c922b4` added [pause/resume and joining locks](ADMIN_ROOM_CONTROLS.md)
and passed types/lint, 5,223 offline tests, 52 HTTP tests and build, with independent
review and dedicated local administrator/browser checks. It is deployed on the
NAS: container verification passed, migration 0009 applied, all eight prior rooms
and ten seats were preserved, and a saved seat restored through public HTTPS.
Anonymous administrator requests remain denied. Authenticated production admin
acceptance still requires the pending QA-access confirmation.
Checkpoint `f29d056` was pushed and deployed to the NAS instance. Readable
create/join progress and Continue notices passed actual HTTPS browser acceptance,
including mobile and saved-seat refresh; existing production records survived
the update. Administrator sign-in renders closed by default. Authenticated admin
production checks remain pending provisioning approval.
The [readable-notice fix](READABLE_NOTICES.md) replaces the flashing recovery
screen during ordinary room creation/join with concise progress. Actual recovery
instructions stay until resolved, and completed-action text waits for a local
Continue control. It does not add confirmation steps to game rules or AI turns.
Administrator access/directory checkpoint `c2d392e` passed types, lint, 5,196
offline tests, 52 HTTP tests and build, plus focused authenticated/browser checks.
Its authenticated production acceptance remains pending; the current deployment
preserves saved games and full administration gates.
The user added a complete [administration panel](ADMIN_PANEL.md) to the goal on
22 September: secure admin access, room creation/removal and lifecycle controls,
participant support, backup/restore, operational views and audited actions.
The first prototype now connects separate administrator sign-in, persistent
sessions/revocation and a searchable, filtered, paginated room directory at
`/admin`. Private game contents remain excluded. Operator provisioning and
recovery instructions are in the admin guide. Room creation, lifecycle/removal,
participant support, backups and operational controls remain unfinished; these
belong before full AI refinement/calibration. Existing rules, Git, subagent and
preservation requirements remain in force.
The goal also requires testing the deployed application at
**https://dune.procrastination.games**. Match the running revision, exercise
relevant real player/admin flows in dedicated QA rooms, and record deployed
results separately from local checks. See [production verification](VERIFICATION_WORKFLOW.md#verify-the-deployed-application).
This requirements update does not claim a new deployed test result.
Earlier completed rules 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 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
trigger collection from outside territories during native relocation. A ruling
question was sent; ordinary HMS relocation and force entry/exit remain working.
No extra collection is silently applied. The Bureaucrat/Emperor gift question
and the other recorded skill boundaries remain pending.
Remaining native Ecaz/Moritani effects, repeated six-disc Duke cycles and Richese
empty-cache auction arithmetic still cross recorded source questions. Native
Tleilaxu revival now creates its skill offer at successful commitment, including
automatic response chains; the former dependency is resolved in its Basic profile.
The `8f7a62c` policy checkpoint removed usage checks/cutoffs and deferred full AI
work until feature completion, followed by three adjacent 75% targets.
The [platform audit](AUTOPILOT.md#platform-audit-20-september-2026) found no supported
Sites scheduler or Durable Object provisioning contract. Durable unattended bot
resumption remains blocked on that capability; request/reconnect continuation
does not establish it. Preserve pending rules questions and mode gates.
The connected [Harass & Withdraw prototype](HARASS_WITHDRAW_RUNTIME.md) supports either
battle-card slot, private category inspections, exact undialed normal/elite
returns, opponent-Traitor cancellation, mandatory disposal, controls and all
four AI profiles. New battles also have [revealed physical allocation](HARASS_ALLOCATION.md) for
ordinary/elite mixtures and multi-sector returns. Richese card combinations
and additional optional modules stay gated. Withdrawal before explosion and
card-specific discard precedence are explicitly labeled inferences. The Stone
Burner timing question is pending; no user answer is assumed. The separate
Reinforcements prototype has its own provisional timing and cost boundary.
Neither prototype opens variant, mode or publication gates.
The preceding [early Sapho aggressor](SAPHO_AGGRESSOR.md) connects the
printed battle-priority effect during the existing shared pre-plan opportunity.
Physical attacker/defender/chooser stay stable; Habbanya takes precedence in either
slot. Shared priority feeds Stone admission, ordinary/Stone resolution, public
controls and all four AI profiles. Battle-bound history survives private saved
continuation. Later intervention remains unfinished; no new ruling is assumed.
Final checks, samples, browser evidence and delivery belong to the source-bound
private report and Git message.
The earlier [Mirror admission review](MIRROR_WEAPON_ENGINE_AUDIT.md) flagged
copied-attack choice and physical-card cleanup gaps in genuine Richese decks.
The user subsequently chose ordinary winner retention for the physical Mirror,
and the bounded Basic/Advanced battle path above now handles copy-first choices.
Full Richese starts and combined-module play remain gated; the former blanket
admission block does not apply to the connected profile.
The Smuggler follow-up review supports a saved reveal-time receipt with settlement
only on leader survival, but located no official ruling on modified leader
strength. The user has been asked about Kwisatz/trainer/Stunner composition; no
answer is assumed. See the [source follow-up](LEADER_SKILLS_RULES.md#20-september-smuggler-follow-up).
## Authoritative navigation
- [Rules checklist](../game/reference.ts), topic `implementation-checklist` and
each feature's entries: track implementation, controls, AI, documentation and
verification, plus Missing, Prototyped, Integrated, Verified and Polished stages.
- [Rule decision index](RULE_DECISIONS.md): settled contracts, source precedence
and pending material interpretations. Consult it before reopening research.
- [Development context index](DEVELOPMENT.md#context-index), [canonical lookup](DEVELOPMENT.md#canonical-feature-lookup)
and [verification tools](VERIFICATION_WORKFLOW.md): bounded paths, narrow
feedback, frozen-batch proof and deferred final assurance.
- [Implementation history](IMPLEMENTATION_STATUS.md): newest first. Historical
evidence and outage records stay there and in feature documents; read bounded
relevant sections and verify old absence claims against current code/tests.
- [Efficiency pilot](EFFICIENCY_PILOT.md): the first three milestones are pushed;
measurement limits remain explicit. Reuse tools and checks, without promising
an unmeasured savings percentage.
## Connected development capabilities
These links define bounded working behavior, not complete module certification.
| Area | Current connected work and evidence |
| --- | --- |
| 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) and [bounded retreat](LEADER_SKILLS_RULES.md#bounded-diplomat-retreat-interpretation). 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 Orgiz transfers, Jacurutu income, Testing Station and Shrine. Orgiz's per-deposit interpretation, contested/shared benefits and mixed physical allocation remain provisional or pending. The Orgiz path in current source is not yet deployed. |
| Nexus/Homeworlds | [Decision index](RULE_DECISIONS.md) links each integrated faction family, native/borrowed effects, physical custody, private choices, payments and transport. [CHOAM Secret Ally trade and bounded after-victory inspection](NEXUS_CHOAM_SECRET_ALLY.md), [Moritani Secret Ally losing-card retention](NEXUS_MORITANI_RULES.md#secret-ally-losing-card-retention-prototype), [Ecaz private yes/no inquiry and bounded native Duke Cunning](NEXUS_ECAZ_RULES.md#bounded-native-cunning-duke-vidal), [Emperor extra revival and bounded bank-auction purchase](NEXUS_EMPEROR_SECRET_ALLY_RUNTIME.md) are connected. Uniform CHOAM winner/Moritani loser windows, Ecaz inquiry scope/audience and Ecaz Cunning's Battle-only window are product inferences, not publisher rulings. Source audits or helpers alone do not certify full module games. |
| 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. [Recruits](RECRUITS_RUNTIME.md) connects clean Revival play; [Harass & Withdraw](HARASS_WITHDRAW_RUNTIME.md) and [Reinforcements](REINFORCEMENTS_RUNTIME.md) connect bounded battle effects in the same independent three-card preview. Richese card contracts and the checklist identify other connected effects and explicit gaps. |
| Multiplayer | [Public and private discussion](TABLE_DISCUSSION.md), saved rooms/seats, [recovery](../README.md#saved-seats-and-reconnecting), uncertain-request retry, [own-seat AI](AUTOPILOT.md), [named-player AI permission](SEAT_AI_PERMISSION.md) and [voluntary seat handover](SEAT_HANDOVER.md) have connected controls and recovery evidence. |
## Remaining readiness
| 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. 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. |
| Administration | Complete the [admin panel](ADMIN_PANEL.md): permissions, room directory and creation/removal, lifecycle controls, participant support, backup/restore and operational audit tools. Required before full AI refinement. |
| Components and experience | Full component inventory/text verification, all readable inspectors, original artwork, animation/sound/accessibility/mobile polish, complete internal guidance and end-to-end human play. |
[AI calibration](AI_CALIBRATION.md), [multiplayer audit](MULTIPLAYER_AUDIT.md),
[component inventory](COMPONENT_INVENTORY.md) and [visual playtest](VISUAL_PLAYTEST.md)
record their measured scope. [README](../README.md) retains publication gates.
## Working sequence and preservation
Prototype all remaining rules in dependency-related batches using existing
controls and minimal legal AI. Continue independent functions while material
rulings are pending. The integration owner freezes each batch, repairs the
smallest failing case first, then runs affected tests/types/lint and changed-path
smoke once. Do not run the full offline suite or repeat HTTP/seat/save/privacy/
custody audits at every tiny prototype.
After all rules are implemented, run full proof, comprehensive independent
review, integration games and save/recovery/privacy/custody assurance; repair
failures and finish all non-AI scope, including complete administration. Only
then fully implement/refine AI and calibrate adjacent difficulty pairs. Final
components, human journeys, browser/deployed and publication acceptance remain
required. The [proof schedule](DEVELOPMENT.md#feedback-and-proof-schedule) records
the checkpoints without duplicating the rules checklist.
Commit and push verified checkpoints under **“Push all from now on”**, verify push
success. The user removed the usage cutoff and routine account-usage checks;
efficient work, Git delivery and selective subagents remain required.
The user-authorized 13 September reset happened once; preserve all games created
since it. Keep `.wrangler/state`, credentials and private backup artifacts out of
Git. Reuse a healthy server; restart only for a relevant change or observed
problem, warn before interrupting human play and use a safe point. Observe health;
comprehensive restoration assurance follows all rules, while actual production
deployments retain their existing safeguards. No hourly restart or recurring
maintenance automation is installed; do not recreate one.