Support multiparty public deals

This commit is contained in:
Quintine committed 2026-10-28 00:48:40 +11:00
1 parent 86c51b4aa7
commit e133a5fe2b
14 files changed
+676 -98

No files matched your search

+2 -2
View File
@@ -23,8 +23,8 @@ places paid bribes in front of the recipient's shield until the next Mentat Paus
Chat messages and verbal promises do not themselves transfer spice. Emperor
gifts to allies remain a separate power.
The separate [public deal record](PUBLIC_DEALS.md) can capture a two-human
offer, acceptance and mutual release. Its written terms do not automatically
The separate [public deal record](PUBLIC_DEALS.md) can capture a two-to-six-human
offer, unanimous acceptance and mutual release. Its written terms do not automatically
transfer spice or enforce future promises; use this native action to pay.
The server derives the owner's limits from existing uncommitted spice, excluding
+13 -1
View File
@@ -16,13 +16,25 @@ open mode gates.
## Current checkpoint and work
**Multiparty public deals — 28 October. Prototyped / Partial.** Two to six human
seats can record public terms; every recipient must accept, any may decline and
all parties must agree to release. Existing two-party records and actions retain
their shape. Pairwise nonalliance at offer and acceptance is provisional. Four
related unit files pass 28 cases, and two isolated HTTP cases cover two- and
three-party consent, independent seat access and continued play. Prose remains
player-managed; AI negotiation, automatic enforcement and deployed acceptance
remain open. An isolated browser room exercised three-party acceptance and
unanimous release using four human faction seats; the later allied-acceptance
control is covered by a focused component test. [Scope](PUBLIC_DEALS.md).
**Public deal records — 28 October. Prototyped / Partial.** Two nonallied human
seats can record an offer, acceptance or decline, withdrawal and mutual release,
including while a native decision is pending. Public terms rely on players to
honor them; the record does not enforce prose, determine impossibility or pay
spice. Seven related unit files pass 43 cases; an isolated authenticated HTTP
case covers public visibility, consent, release and resumed play. AI negotiation,
multiparty deals, automatic enforcement and deployed acceptance remain open.
automatic enforcement and deployed acceptance remain open; the multiparty
follow-up above expands this original two-seat checkpoint.
An isolated browser room also exercised offer, acceptance and mutual release
between two separately authenticated faction seats, with a persistent result.
[Scope](PUBLIC_DEALS.md).
+12
View File
@@ -1,5 +1,17 @@
# Dune implementation status
## 28 October 2026 — Multiparty public deals
Two to six human seats can agree to public terms. Every recipient must accept,
and all participants must agree to release; an outstanding offer may still be
declined or withdrawn. Existing two-party records and actions retain their
original format. Four focused unit files pass 28 cases; two isolated HTTP cases
cover authenticated two- and three-party flows and continued play. Pairwise
nonalliance is provisional; prose enforcement, AI and deployed acceptance remain
open. An isolated browser room exercised three-party acceptance and release;
the later allied-acceptance control has focused component coverage.
[Scope](PUBLIC_DEALS.md).
## 28 October 2026 — Public human deal records
Two nonallied humans can publish terms, accept or decline an offer, withdraw it
+22 -11
View File
@@ -10,27 +10,38 @@ terms that contradict the rules. The user-supplied revised rulebook, physical
p. 16 (printed p. 14), records the same principles. This implementation does
not interpret written terms or decide whether they are legal or impossible.
Two human seats that are not allied with each other can record public written
terms during play, including while a game decision is open. The recipient may
accept or decline and the proposer may withdraw an unanswered offer. Both
participants can vote to release an accepted deal; either may withdraw a
pending release request. Once both agree, the record is released. Existing
agreements can be released if participants subsequently become allies. Records
remain visible and active until both release them, even after the players
consider the terms fulfilled. Their text is public to the whole table.
Two to six human seats can record public written terms during play, including
while a game decision is open. Every pair must be nonallied when the offer is
made and when each acceptance is recorded. This pairwise interpretation of a
multi-party offer is provisional; the printed rules do not settle its exact
online form. The proposer is implicitly in agreement. All recipients must
accept for the record to become active; any may decline while it remains open,
and the proposer may withdraw it. Each participant can request or withdraw a
release; all must agree before release. Existing agreements can still be
released if participants subsequently become allies. Records remain active
until unanimously released, even after the players consider terms fulfilled.
Their text is public to the whole table.
The record itself moves no spice and creates no automatically enforced game
action. Players remain responsible for honoring valid terms, and an impossible
part is void under the rules. Existing [bribe controls](BRIBE_CONTROLS.md)
make actual eligible payments into the recipient's deferred Mentat supply.
Automatic interpretation, enforcement and impossibility handling, more than
two parties, AI negotiation and complete multiplayer/deployed acceptance remain
Automatic interpretation, enforcement and impossibility handling,
AI negotiation and complete multiplayer/deployed acceptance remain
open. The text interface is an online convention, not a publisher ruling.
The action uses the normal seat authentication and room version fence. Game
The action uses the normal seat authentication and room version fence. Older
two-party records retain their original serialized form and actions. Game
state carries an additive public ledger; it does not replace the native phase,
decision, private information or physical components.
The multiparty follow-up passes 28 cases in four related unit files and two
isolated authenticated HTTP cases, including three signatories across separately
authenticated faction seats. This does not certify all game combinations.
An isolated browser room exercised three-party acceptance and unanimous release
across four human faction seats. The subsequent allied-acceptance control was
verified by a focused component test rather than that browser run.
Seven related unit files pass 43 cases, including a native Truthtrance response
continuation; an isolated authenticated HTTP case covers three public views,
seat-authorized consent, release and subsequent play. The UI tests cover
+5 -4
View File
@@ -4,10 +4,11 @@
The publisher's 2019 rulebook permits public nonallied deals, requires their
legal terms to be honored, voids impossible parts and permits mutual release.
The initial two-human written record models offer, acceptance and mutual
release; compliance with prose and impossibility are player-managed, and spice
still requires the native bribe action. AI negotiation and multiparty terms
remain open. [Scope](PUBLIC_DEALS.md).
Written records allow two to six human seats to consent and mutually release;
pairwise nonalliance at offer and acceptance is a conservative provisional
interpretation, not an explicit publisher ruling on multiparty offers. Prose
and impossibility are player-managed, and spice still requires the native bribe
action. AI negotiation and automatic enforcement remain open. [Scope](PUBLIC_DEALS.md).
## Truthtrance and Basic Ixian auction knowledge — 28 October 2026