Files
Dune/docs/BOX_DISCARD_CONTINUATIONS.md
T
2026-09-08 07:37:52 +10:00

6.3 KiB

Nullentropy Box discard continuation checkpoint

7 September 2026. A completed paid Box search now saves its final card custody and a typed continuation before restoring an interrupted decision. Semuta remains inactive; its unresolved reaction timing and full-hand sequencing questions are unchanged. No mode gate was opened.

Completed transaction and continuation

Payment happens once before private inspection. Selection validates prospective transfers, commits the recovered card to its owner, shuffles the remaining discard pile once and places the activating canonical Box on top. Only that used Box creates a fresh public discard receipt. Older shuffled cards remain old discards, and the selected card is a private transfer.

The nullentropyDiscard continuation records the search owner/event, activating Box, private selected-card receipt, final ordered discard IDs/signature and suspended response, decision, pending Karama and phase opening. Those receipts are evidence, not extra physical card custody. The suffix retires the monotonic discard sequence before restoring only the four saved controls. It never charges, selects, shuffles, repeats the previous action or restores a whole game snapshot.

With one eligible target, staging and retirement occur in the original paid action without another acknowledgement. Multiple targets retain the existing owner-only paid decision. A restored Harkonnen bonus may legitimately refill the deck after the completed Box frame retires; that subsequent draw does not repeat the Box search.

Integrity and private information

Action, projection and automatic recovery validate the one public activating Box, exact former owner, canonical card identity, unique physical custody, top position, selected card in its owner's hand and the frozen final pile. Search identity and suspended controls are bound to the unchanged live pending obligations by a serialized parent signature. This detects changed saved records; it is not cryptographic authentication against wholesale rewriting of every receipt and signature.

Only Box frames permit the separately preserved Richese gift, Ambassador and Ixian ally records. A cloned context restores controls solely for pure shipment-promise, Sapho, Ornithopter, late-defense, Stone Burner, Stronghold and Auditor validation. Validation neither normalizes nor executes the parent. Auditor recognizes its controls inside the Box frame before automatic drain. An independent corruption probe additionally prompted binding a modern Auditor opportunity to its existing completed-battle receipt; legacy opportunities lacking that receipt remain supported.

The full continuation, shuffled pile and recovered card identity do not appear in unentitled seat projections. A public automatic-work flag schedules authenticated recovery, and all four AI levels wait until it settles. Existing full-hand, active Truthtrance, reservations, empty-search and provisional Guild refund guards remain unchanged.

Verification scope

The new tests observe the actual inner production dispatcher immediately before automatic drain; the production runtime has no test export or bypass. Fixtures provide explicitly bounded expansion components, then use real paid search and selection actions. The continuation suite covers actual paid shipment, gift, BG Worthless conversion, Harkonnen exchange, Ixian paid replacement, Ambassador entry and both Auditor stages created by an actual resolved battle. The deliberately constructed phase-opening and empty-deck Harkonnen bonus contexts have separate assertions. The SQL suite uses production room code, real migrations and authenticated seats; competing workers commit one update, and corrupt/stale/retired requests cannot write or replay effects.

Registered new coverage comprises fourteen continuation tests, four Auditor semantic/legacy tests and four SQLite recovery tests. The coordinator reviewed all three complete contributed files and the independent runtime report. Targeted mutations include 29 ordinary frame cases, 20 re-signed Auditor/control/battle cases and 10 SQL cases.

Final verification: 1,703 rules/client/component tests plus 169 multiplayer tests pass (1,872 total). All final command handles reached exit 0:

  • Rules: /tmp/dune-box-frame-final-rules.log, 62.87 seconds.
  • Multiplayer: /tmp/dune-box-frame-final-multiplayer.log, 17.95 seconds.
  • TypeScript: /tmp/dune-box-frame-final-type.log.
  • Lint: /tmp/dune-box-frame-final-lint.log.
  • Production build: /tmp/dune-box-frame-final-build.log.
  • Final source fingerprints: /tmp/dune-box-frame-final-fingerprints.json.

These checks do not certify full expansion compliance.

A Basic regression sample completed 20/20 games across two through six players and four homogeneous AI difficulties: 12,326 accepted actions, zero rejected candidates/stalls/invariant failures and 551 JSON round trips. Seed 20261004, 116.56 seconds, unchanged source fingerprints during the run. Results and traces: /tmp/dune-box-frame-base-fullgames.json; runner: /tmp/dune-sapho-base-fullgames.ts. It uses public setup and ordinary AI with no injected cards/resources. This sample preceded the subsequent Advanced-only Auditor receipt check and documentation evidence-link update; it does not exercise Box/Semuta or calibrate relative AI strength.

Browser inspection verified the updated Box recovery guide, its readable layout and table-to-rules navigation. Returning to the saved QA seat restored turn 2 Spice Collection, 20 spice, 20 reserves, an empty private hand and the pending Ready control. No staged Box browser interaction or mobile/full-expansion acceptance is claimed. The development server remains running from the 03:48 UTC manual restart. The removed automation remains removed.

Remaining work

Ornithopter escrow disposal, Truthtrance queue-head consumption, ordinary cards and distinct Karama batches still need their precise saved continuations. Semuta needs reaction timing and capacity resolution, authenticated private claim controls, AI and combination/recovery verification. Mirror Weapon, other faction/module gaps, remaining Sapho timings, mobile acceptance and full Advanced/expansion games remain unfinished.

Design contract: BOX_DISCARD_FRAME_REVIEW.md. Independent review: BOX_DISCARD_RUNTIME_REVIEW.md.