Files
Dune/docs/TRUTHTRANCE_BID_PROMISES.md
T

215 lines
14 KiB
Markdown

# Truthtrance ordinary bid commitments
## Richese Silent bid prototype — 27 October 2026
**Prototyped / Partial.** The existing event-bound Richese minimum-bid question
also applies to the respondent's one unsubmitted Silent bid. A qualifying
positive sealed bid fulfills Yes; No permits zero or a bid below the threshold.
The answer and guide use only the respondent's actual available funds and aid,
not other sealed amounts. All eligible submissions retain native escrow and
reveal simultaneously in original tie order; only the winner pays. When a hand
becomes full, the native automatic zero releases an impossible Yes or completes
No. Its public text matches a manual sealed submission and its action tag is neutral. Public hand counts can still allow inference of a forced zero. Five focused
files pass 54/54; type/lint passed before the intervening test-only CI fix.
The [GF9 November 2020 FAQ p8](https://www.gf9games.com/dune/wp-content/uploads/2020/11/Dune-FAQ-Nov-2020.pdf#page=8)
supports action commitments while possible, but does not supply this specific
sealed-auction procedure. This remains a provisional interpretation. Normal
Black Market bidding, mixed questions and wider combined promises remain open.
Native Basic and Advanced R/A/E fixtures exercise original Silent lots, real
Truth cards, zero, positive bids, reveal and minimal bot guides. Separate
full-hand cases explicitly stage conserved unopened cards; selector/browser and
deployed acceptance remain open. Ten focused files pass 85/85 and build passes;
type/lint passed before the final test-only wording correction.
## Richese Once Around bid prototype — 27 October 2026
**Prototyped / Partial.** The distinct `{kind:'richeseBid', target, turn, event,
minimum}` question binds the current public Once Around lot, not its private
card identity. The original physical Truth card, one bid or pass, bid order,
capacity, currently available spice, pledged ally funding and native winner's
payment remain unchanged. An accepted qualifying bid fulfills Yes even if it
loses; No excludes qualifying declarations. The last-acting Richese owner gets
no opportunity if all other bidders pass, so Yes is not forecast without an
existing positive bid. A real opposing raise or loss of funds can release an
impossible Yes; the respondent cannot deliberately abandon it.
The public question editor, private answer, own receipt, event-bound guide and
four minimal legal bot profiles are connected. Existing positive independent
financial/transport commitments restrict admission in both answer orders until
a combined planner is implemented. Silent and normal special auctions, mixed
expressions, optional module combinations, broad Semuta discard interactions,
complete modes and browser/deployed acceptance remain open. Basic's native
Semuta preview may enter the quiet lot path, without certifying its combinations.
The [GF9 November 2020 FAQ p8](https://www.gf9games.com/dune/wp-content/uploads/2020/11/Dune-FAQ-Nov-2020.pdf#page=8)
supports current-turn action questions and compliance while possible but does
not prescribe this Once Around procedure. The online opportunity and release
policy is a provisional software interpretation, not a dedicated publisher
ruling. Native Basic/Advanced R/A/E starting deals and auction actions exercise
answers, costs, lot continuation, rival raises and minimal bots. A separate
Advanced bribe conflict uses a labeled card-conserving supplement. Server-rendered
controls and guide callbacks are exercised, without operating the stateful
selector. Ten focused files pass 120/120; type/lint and build pass.
## Phase-wide ordinary bid prototype — 27 October 2026
**Prototyped / Partial.** A distinct `{kind:'phaseBid', target, turn, minimum}`
asks whether the respondent will make at least one accepted ordinary bid of
that size after the answer and before this turn's Bidding ends. It may be asked
before Bidding or during a quiet ordinary lot on supported native tables. A Yes
survives lot changes until fulfilled or made impossible; No caps every later
ordinary bid until actual phase close. The original current-lot question and its
saved records remain separate. The general FAQ authority below does not contain
a phase-wide bid worked example, so these online feasibility rules are explicitly
provisional.
An accepted declaration fulfills Yes even if it later loses; purchases retain
their real payment. A later lot is not assumed when all players might pass:
there must already be a funded positive winning bid, a physically prepared next
card and post-purchase hand space and funding. Possible Basic and Advanced Harkonnen bonus
draws reserve their hand slot; a cancelable Karama-only overbid is not a funded
later-lot witness. Existing current-lot answers are considered before forecasting
the later invoice. Before Bidding, a witness uses current eligible hand space,
funding and available card count, without inventing a future acquisition. Ixian
or Richese special-auction preparation is not forecast. Existing transport, revival and aggregate turn commitments retain current-lot
checks; the future combined planner is not implemented. Before Bidding, an
independent bribe can be quoted first using currently funded payments, leaving
only the actual remaining funds for the bid; current-lot independent bribe
combinations remain limited. Uncertain combinations do not create a fictitious
later witness or release an answer merely because that planner is absent. Full special-auction, mixed-expression and module coverage
remains open.
The private panel displays owned answers and a server-quoted current bid/pass;
its event and public lot ordinal reject stale guided actions. The ordinary
question control, current answer choices and four minimal bot profiles use the
same server projections. No extra card, funds, hand slot, auction or payment is
created. Prior bids do not count. Public Basic and Advanced fixtures exercise original Truth cards, actual bids
and competing funded and unfunded commitments; additional cases explicitly
stage conserved resources. Server-rendered controls and their engine callback
have focused smoke coverage. Stateful browser interaction, full-game,
recovery and deployed acceptance remain separate. The focused 12-file batch
passes 224/224; type/lint and the production build pass.
### Admission and external funding correction — 27 October 2026
Later independent shipment, movement, revival and travel answers are checked
against an existing phase-bid Yes before they are offered. A movement No does
not itself require a movement or suppress a future bid. When the combined future
planner cannot prove a positive answer, it may withhold that definite answer;
this remains a conservative prototype boundary, not a completed planner. An
external change releases an impossible Yes when a bribe and bid are fully
quoted, while an unsupported future combination remains unknown. Original
Basic/Advanced questions and real bids exercise the acceptance path; revival
and external-loss supplements stage a conserved force or spice transfer. Seven
focused files pass 88/88; type/lint and build pass.
## Current-lot prototype — 26 October 2026
**Prototyped / Partial.** The question binds one
future ordinary bid declaration of at least a chosen positive whole amount in
the current lot. Registered native Basic/Advanced tables use their selected
decks and ordinary auctions. Optional modules, independent cards, Semuta/Kull,
native special auctions and phase-wide/grouped bidding claims remain required
work. The [native force-revival follow-up](TRUTHTRANCE_REVIVAL_PROMISES.md) adds
current-phase ordinary returns; broader revival promises remain due. This does not change game-start permissions.
## Authority and selected interpretation
The [GF9 November 2020 FAQ, printed p8](https://www.gf9games.com/dune/wp-content/uploads/2020/11/Dune-FAQ-Nov-2020.pdf#page=8)
permits game-related yes/no questions and current-turn action commitments,
requires compliance while possible, and releases a later impossible answer.
Its worked example concerns shipment; it does not prescribe a bidding-specific
packet or online auction boundary. The official-domain indexed text was checked
for this slice. The previous [general source audit](TRUTHTRANCE_NONBATTLE_READINESS_20260907.md)
remains applicable.
Under the standing 14 October choose-recommended instruction, use a single
accepted bid in this exact ordinary lot. Only a still-eligible active or waiting
bidder can answer; current-highest, already-passed and full-hand players have no
new opportunity for this question. An earlier bid does not fulfill it. Yes
requires a qualifying declaration at the player's next available opportunity
while possible; a smaller bid or pass cannot rely on a future rival raise.
No forbids every later qualifying bid through the close of the lot. These are
explicit provisional software interpretations, not a dedicated publisher FAQ.
Fulfillment records the declaration, even if someone else wins. The original
winning invoice and Karama payment remain separate and binding. Legal native
Karama overbidding is retained; the question creates no spice, discount or free
purchase. Existing current cash, prepaid allied aid, capacity and normal quote
checks remain authoritative. Unknown purchases and future rival income are not
assumed. Earlier shipment/movement funding obligations constrain the bid quote.
## State, actions and continuation
`game/bid-promises.ts` validates positive safe-integer `turn`, one-based `lot`
and `minimum`. The new question is `{kind:'bid',target,turn,lot,minimum}`.
It uses the original card declaration, priority, Ask, public Yes/No, physical
discard and interrupted-auction continuation. It adds no automatic human reply.
The engine privately binds the original physical lot, turn, respondent and
asker with a distinct event. Public history contains the stated lot/minimum and
answer; the unrevealed card binding is never projected. Only the respondent
receives feasible answers and its own sanitized commitment/guide. The guide
waits for the real active seat and original pending windows, and its event
rejects stale guided callbacks. Ordinary manual bid packets retain their shape.
The native bid quote is shared with ordinary bidding. Yes requirements form a
lower bound; No requirements cap the permitted amount. Several original
Truthtrances must remain jointly satisfiable. A real accepted bid fulfills each
matching Yes; No persists. Native settlement, custody and income then continue
normally. A paid purchase is not another bid.
Own voluntary spending or closure cannot erase a remaining Yes. A completed
opposing raise can price out the respondent and release only impossible Yes
answers in accepted order; feasible answers and No constraints remain. Finished
lots fulfill No and release any forced impossible remainder. Records may stay
in history, but never bind another lot or turn. Recovery/privacy/custody
certification is deferred with the rest of the full-rules review.
## Connected controls and evidence
The original Truthtrance selector offers **Bind a bid in this ordinary lot**,
with fixed public lot/turn, editable validated minimum and an explicit preview.
Only feasible respondent answers are shown. `components/bid-promises.tsx`
keeps the owner's obligation and fulfilled/released status visible; its guarded
button submits the authoritative bid/pass packet without duplicating prices.
No transient notice is required. All four existing policies use the same legal
answer/next-action guidance; strategy and strength tuning remain deferred.
Pure cases: `tests/bid-promises.test.ts`. Native source and engine cases:
`tests/fixture-truth-bid.ts`, `tests/truth-bid-runtime.test.ts`. Controlled and
source-earned callbacks: `tests/truth-bid-controls.test.tsx`. Original H/A/E
starts genuinely deal Harkonnen both physical Truthtrances and the other native
hands. Only unopened deal/lot/Spice positions and scalar lotteries are selected;
no played card, purse, force, auction, question or promise is installed.
Frozen integration passes **14 files,175/175**, types/lint/build and four native
runtime paths with17 GameTable SSR renders and two actual guide callbacks.
Ten pure cases, fourteen native engine cases and six controlled/source-earned
UI cases cover the new contract. Related original auction, Banker/Bureaucrat,
funding and Truthtrance cases remain passing after the native quote extraction.
Public H/A/E Basic/Advanced active sources use22/25 actions plus8 each. Actual
declaration/priority/Ask/answer precede the authoritative bid callback; Yes4
fulfills before cash changes, then the original winner pays4. Four existing
minimal policies each submit a legal guide action per source. Waiting sources
use20+12 actions for No4/lower3/lot expiry/new-lot4, or20+9 for an actual A10
opposing bid, E10's released Yes8 and original A payment/native E income10.
Other native cases bind both original cards as No6 plus Yes4, lose after a
fulfilled declaration, spend an original Karama after the promised11 bid and
reject stale/foreign packets and voluntary loss of required funding. An earlier
shipment Yes9 disallows later bid Yes4; a paid1 card leaves the actual9 for a
native nine-force shipment. All33 original cards remain physical. SSR confirms
the original authoring option, respondent answers, persistent guide and final
statuses; actual hook-free callbacks execute the original native bid packet.
This is not DOM/hydration or browser evidence.
Report/source manifest:
`/home/quintine/.local/share/dune/checkpoints/20261026-truth-bid-proof-v1/`;
journeys/HTML: adjacent `20261026-truth-bid-runtime/`.
No saved-room/D1/server, reset/restart, deployment or separate assurance campaign.
Full Truthtrance, module/native-special composition, browser/mobile/deployed
acceptance and final assurance remain open.