Combine current facts with native Traitor decisions
This commit is contained in:
1 parent
812f77e348
commit
13398aa76e
22 files changed
+1512
-17
No files matched your search
@@ -0,0 +1,133 @@
|
||||
# Truthtrance current facts and original Traitor declarations
|
||||
|
||||
## Mixed aggregate prototype — 26 October 2026
|
||||
|
||||
**Prototyped / Partial.** The packet is
|
||||
`{kind:'mixedTraitorCall',target,battle,territory,mixed}`. Fact/action/AND/OR clauses
|
||||
use `TraitorActionClaim={call:boolean}`: true Reveal, false Decline. Every action
|
||||
leaf concerns the same current original revealed native voter decision. The
|
||||
[scalar contract](TRUTHTRANCE_TRAITOR_DECISIONS.md) still owns public source,
|
||||
voter/beneficiary, matching physical card, protection and effect timing.
|
||||
Original pure questions and faction/module start gates stay unchanged.
|
||||
|
||||
## Authority and logical meaning
|
||||
|
||||
Reuse recorded publisher November2020 FAQp8 AND/OR/current-turn and supplied
|
||||
Advanced physical39/printed37 compliance/release/unknown authority. The existing
|
||||
native declaration interval and shared snapshot/witness interpretation remain
|
||||
provisional under standing14October priority. No dedicated publisher mixed
|
||||
solver, future matching draw witness or arbitrary promise language is claimed.
|
||||
|
||||
Current facts all freeze at the actual answer. Later bribes, Traitor draws and
|
||||
returns do not reevaluate them. Unknown is false for definite Yes and true for
|
||||
No; a remaining native obligation must guarantee the aggregate. No negates the
|
||||
whole expression. Unknown FACT correlations are not inferred.
|
||||
|
||||
Every Reveal/Decline action leaf names one boolean decision, so its correlation
|
||||
is exact. `mixedTraitorRequirement` evaluates the complete compiled tree for
|
||||
both logical declarations. It returns impossible, one forced choice, or no
|
||||
restriction when both values guarantee the selected aggregate. Constants and
|
||||
logical tautologies are terminal immediately; this claims no declaration
|
||||
receipt. A contradictory action expression can have a guaranteed whole No.
|
||||
No to a Decline condition can force Reveal. Smaller subclauses never acquire
|
||||
separate public answers or fixed routes.
|
||||
|
||||
Reduction considers both logical values before native eligibility. A presently
|
||||
unmatched/leaderless/protected actor may only Decline, but a new forced Decline
|
||||
still binds through later matching-card draws. Eligibility is not used to erase
|
||||
the future commitment. If no guaranteed answer has an original native completion,
|
||||
unknown/save/change-question remains available.
|
||||
|
||||
## One native decision and receipt
|
||||
|
||||
`game/mixed-traitor-question.ts` strictly accepts only one call boolean per leaf.
|
||||
Outer groups use the shared16-leaf/depth4 grammar and nested fact budget, with
|
||||
no additional battle-plan node/term caps. Invalid metadata/groups cannot hide
|
||||
under decisive branches. The original native context must be revealed/current,
|
||||
with an actual still-unsubmitted voter and exact battle/territory. This includes
|
||||
native Harkonnen ally voting and retains original Homeworld restrictions.
|
||||
|
||||
A forced choice enters `traitorDecisionPromises` through the original binder,
|
||||
with one optional new event link. Old pure records omit that property and
|
||||
retain their shape. Validation accepts only a nonempty link when present;
|
||||
settlement/reconciliation preserve it. Native choice calculation, matching
|
||||
identity, Kwisatz protection, beneficiary, opposing leader and prior promises
|
||||
stay authoritative. The mixed helper performs no second native eligibility or
|
||||
physical card search.
|
||||
|
||||
Raw `mixedTraitorQuestions` links original question/answer to the native record.
|
||||
Actual declaration settles it before effect prevention or synchronous cleanup.
|
||||
A later canceled effect never undoes a receipt. Native impossibility or ended
|
||||
unfulfilled source releases pending aggregates; submitted true and false slots
|
||||
never reopen. New mixed discard signatures retain raw metadata plus the already
|
||||
signed battle/ledger without changing old pure continuation signatures.
|
||||
|
||||
Harkonnen Cunning still draws/returns original physical identities. A live
|
||||
required Reveal protects its matching identity from voluntary return, including
|
||||
an answer added during the pending native return. A Decline can return the
|
||||
matching identity; new draws do not remove its cap. After an actual fulfilled
|
||||
Reveal, returning that identity does not retract the original receipt/effective
|
||||
call. Existing parent signatures keep their original exemptions and unrelated
|
||||
fields; no extra snapshot weakening is added.
|
||||
|
||||
## Projection and human controls
|
||||
|
||||
Own projection retains only original raw question, whole answer, public turn/
|
||||
battle/territory and fulfilled/released status. Binding flags, forced choices,
|
||||
compiled trees and separate frozen facts are not projected. Native own pure
|
||||
promise rows filter mixed event links for every viewer; private declaration
|
||||
choices still use the full authoritative ledger.
|
||||
|
||||
The shared full editor adds/wraps/nests/switches/removes/collapses groups and
|
||||
exposes per-leaf Reveal/Decline choices without inspecting card custody or
|
||||
canReveal. Invalid drafts remain repairable. Raw preview/Ask and target-only
|
||||
aggregate answer choices connect to the exact current source. Saved answer
|
||||
callbacks retain owner/question/window/battle/choice-array identity and busy/
|
||||
source guards. Pure wording and behavior remain.
|
||||
|
||||
The mixed panel is status-only and persists after battle cleanup. Original
|
||||
Reveal/Decline controls use native allowed choices; no duplicate declaration
|
||||
control or fact reconstruction is added. Four minimal profiles answer and
|
||||
actually declare legally; strategy/calibration remain deferred.
|
||||
|
||||
## Evidence and remaining gates
|
||||
|
||||
Helpers: `tests/mixed-traitor-question.test.ts`,
|
||||
`tests/traitor-decision-promises.test.ts`. Source/journeys:
|
||||
`tests/fixture-truth-mixed-traitor.ts`, `tests/truth-mixed-traitor-runtime.test.ts`,
|
||||
`tests/truth-mixed-traitor-harkonnen.test.ts`.
|
||||
Controlled/shared answer/UI: `tests/truth-mixed-traitor-controls.test.tsx`.
|
||||
Frozen v2 integration passes **18 files,149/149**, types/lint/build and eleven
|
||||
original runtime paths with 29 GameTable SSR renders,11 actual answer callbacks
|
||||
and one editor callback followed by native Ask. Basic26 prefixes add6 for actual
|
||||
declaration/cleanup, edited true OR, false AND, No-to-Decline requiring Reveal,
|
||||
call tautology and both unknown polarities; a real bribe3 adds7. Allied72 adds9
|
||||
for actual Reveal, original Karama cancellation and retained receipt. Cunning77
|
||||
adds8 for matching protection/safe return/Reveal or matching return/frozen fact/
|
||||
Decline. Four minimal profiles actually answer and declare legally. Native tests
|
||||
also exercise the original pre-Cunning76 prefix, real draw/return after Decline,
|
||||
and fulfilled Reveal followed by a later matching return.
|
||||
|
||||
V1 quick checks pass, then the new controls file needs the established Vinext/
|
||||
CSS test import shim. Loaded controls find a missing history location and an
|
||||
assertion that omitted the native button arrow. Repairs also make a mixed
|
||||
Decline's disabled-Reveal explanation reflect its accepted obligation. The two
|
||||
failing cases pass narrowly, then the complete frozen v2 passes. Proof and
|
||||
per-file manifest:
|
||||
`/home/quintine/.local/share/dune/checkpoints/20261026-truth-mixed-traitor-proof-v2/`;
|
||||
journeys/HTML: adjacent `20261026-truth-mixed-traitor-runtime/`.
|
||||
This is local engine/SSR/actual-callback evidence, not DOM, hydration, browser,
|
||||
mobile or deployed acceptance.
|
||||
|
||||
The adapters reuse original Basic26 and actual allied Harkonnen72/Cunning77
|
||||
sources, deriving counts from inherited action arrays. Original setup/deal,
|
||||
Traitor choices, paid invasions, alliances, plans and draw/return stay genuine.
|
||||
No extra Truth, played hand/purse/clock/vote/promise is installed. The unmatched
|
||||
case labels its conserved original-card exchange as controlled rather than a
|
||||
historical acquisition claim. Two-Truth/prior-ledger histories are not invented.
|
||||
|
||||
Unrevealed future-leader questions, other action families, unknown-fact
|
||||
correlations, broader owned preparations, optional/faction/card/cross-action
|
||||
compositions and final rules/recovery/privacy/custody/browser/mobile/deployed
|
||||
acceptance remain required. No complete mode is certified. No saved-game/
|
||||
database/server/reset/restart/deployment operation is performed by this batch.
|
||||
Reference in new issue
Block a user