Offer Semuta on a Truthtrance shipment promise

This commit is contained in:
Quintine committed 2026-10-12 00:22:28 +11:00
1 parent a487f3e1b3
commit 871e932319
10 files changed
+137 -18

No files matched your search

+13
View File
@@ -29,6 +29,19 @@ optional skill bands, combinations and public expansion starts remain open.
Rules implementation continues; comprehensive assurance and administration
remain deferred until all rules are implemented.
**Semuta / Truthtrance shipment promise — 11 October.** A classic payer's ordinary
Truthtrance shipment answer in the Richese Semuta profile now offers the consumed
card; the binding promise and its enforcement are unchanged. The structured
shipment-question scope gained that profile for a non-Richese active payer, and the
availability boundary is now server-projected (`truthShipmentSupported`) so the
human Truthtrance panel and validation share it. Native No-Field shipments and
other module combinations stay automatic. Types/lint pass and 125 affected cases
pass. Eight isolated runtime scenarios cover both answers across four legal AI
profiles; a real 390px control check confirms the shipment question is selectable
for a classic payer and refused for a Richese target, with no horizontal overflow.
No saved store or deployed game was targeted. See
[the source/runtime boundary](SEMUTA_SOURCE_UPDATE_20260907.md).
**Guidance accuracy — 11 October.** Three stale player/developer records were
corrected: the card-inspector Semuta availability text now lists every connected
producer and the approved full-hand exchange; `verification.runtime` marks all ten
+26
View File
@@ -1,5 +1,31 @@
# Dune implementation status
## 11 October 2026 — Semuta with a bound Truthtrance shipment promise
The typed `truthtranceDiscard` receipt already carried a bound promise and the
integrity validator already required it; the Semuta admission check excluded every
promise. Admitting only `kind === 'shipment'` lets a classic payer's ordinary
shipment answer offer its consumed card while leaving battle-plan promises and
every other promise path automatic.
The structured shipment question was still limited to base games, so the Richese
Semuta profile could not even ask one. `shipmentPromiseModeSupported` now admits
that profile for a non-Richese active payer, and the result is projected as
`truthShipmentSupported` so the human Truthtrance panel and the engine validation
use one boundary instead of the client re-deriving it.
Both regressions fail before the change (no offer; question rejected) and pass
after, covering claim and decline, promise preservation and enforcement, public
history, and inventory conservation. Types/lint pass and the 125-case affected
union passes. Eight isolated CLI scenarios cover both answers across four legal AI
profiles. A real 390px check confirms the shipment question is selectable for the
Emperor target and refused for a Richese target, with no horizontal overflow.
Native No-Field shipments and other module combinations remain outside this
boundary. This is local changed-path proof, not complete Semuta or deployed
acceptance. Contracts: [source boundary](SEMUTA_SOURCE_UPDATE_20260907.md),
[discard continuations](SEMUTA_DISCARD_CONTINUATIONS.md).
## 11 October 2026 — Semuta before a reserved Truthtrance question resumes
The typed `truthtranceDiscard` receipt already captured the remaining queue and
+5 -4
View File
@@ -15,10 +15,11 @@ behavior without this Semuta reaction. The table below remains the
broader producer/continuation inventory, not a claim of complete coverage.
A clean definite Truthtrance answer now offers its consumed card even when another
question remains reserved, provided no promise bound this answer. Claim or
all-seat decline leaves public history and the consumed card's custody settled,
then restores the same remaining queue at `ask` once. Shrine-source, queued
shipment and queued battle-plan answers retain their automatic continuation.
question remains reserved, and also when the answer bound a shipment promise in
the supported Richese Semuta profile. Claim or all-seat decline leaves public
history, the consumed card's custody and any bound promise settled, then restores
the same remaining queue at `ask` once. Shrine-source, battle-plan and unsupported
native No-Field shipment answers retain their automatic continuation.
The same preview also pauses a final definite Truthtrance after its
public answer, history and physical card disposal are committed. An
+16 -1
View File
@@ -234,7 +234,7 @@ policy**, not a newly discovered publisher timing rule. Full-hand
Semuta uses the explicit user-approved atomic exchange; its completed
hand count is unchanged. Pending gifts, competing responses,
completed Ornithopter arrivals with Ecaz Ambassador or Moritani Terror,
promise-bound Truthtrance answers, pending battle rewards and other
battle-plan Truthtrance answers, pending battle rewards and other
typed producers retain their automatic continuation; Semuta cannot
claim those events yet.
The completed Box's selected
@@ -245,6 +245,21 @@ separate [reaction privacy audit](SEMUTA_PRIVACY_REVIEW.md) explains why
auto-closing only when nobody secretly holds the card would leak
possession. The main game and public expansion gates remain closed.
**11 October 2026 — shipment-promise answer.** A classic payer's ordinary
Truthtrance shipment answer in the Richese Semuta profile now offers the consumed
card. The binding promise, public history and enforcement are unchanged; claim or
all-seat decline leaves the same obligation enforceable. To admit it, the
structured shipment-question scope gained the Richese Semuta profile for a
non-Richese active payer; the availability boundary is now server-projected
(`truthShipmentSupported`) so human controls and validation share it. Native
No-Field shipments and other module combinations stay automatic.
The permanent regressions fail before and pass after. The affected union passes
125 cases and typecheck/lint pass. Eight isolated CLI scenarios cover both answers
across four legal AI profiles, plus a real 390px control check that the shipment
question is selectable for a classic payer and refused for a Richese target. This
is local changed-path evidence, not complete Semuta or deployed acceptance.
**11 October 2026 — queued Truthtrance answer.** An ordinary definite answer now
offers its consumed card while another question remains reserved. Only the
`remaining === null` software restriction changed; promise-bound shipment and