Allow Sapho order behind a started turn

This commit is contained in:
Quintine committed 2026-10-25 23:33:04 +11:00
1 parent 3bf7d26e80
commit 8e6602633d
17 files changed
+1121 -62

No files matched your search

+37
View File
@@ -16,6 +16,43 @@ open mode gates.
## Current checkpoint and work
**Sapho behind a started combined turn — 25 October. Prototyped / Partial.**
An unstarted holder may now provisionally reorder only later unstarted turns
behind another actor's begun combined turn. That actor finishes unchanged;
shipment/movement counters, payment, completed turns and physical storm order
remain. First means first in the waiting tail; last stays after Guild. Native
Advanced Guild retains its next-boundary choice. Preparation-only windows and
splitting the holder's own begun turn remain blocked. The public queue binds
the queued action event; owner-only `afterCurrent` metadata explains timing,
while human/bot submissions keep card/scope/event/mode only. Original movement
last protection and Semuta's exact disposal continuation retain the active
actor. [Selected policy and source](JUICE_OF_SAPHO_RUNTIME.md#order-after-a-started-combined-turn--25-october-2026).
Three disjoint lanes and root integration pass **11 files, 133/133**, types/
lint/build and **11 engine/GameTable SSR/real button-callback journeys** on
unchanged source. New helper8, controls6 and engine14 cases cover first/last,
stale/no-op/active-holder rejection, all four profiles, actual Guild Take/Wait
and Semuta claim/pass. Seven native journeys earn paid cache1 Sapho and start
the current turn with a real positive shipment: Basic46/Advanced53 source
actions; already-taken Guild55 pays its own one-spice shipment. They complete
all four turns once, using8–13 native continuations and preserving all45 cards.
Four separately labelled Basic/Advanced Homeworld supplements inherit conserved
Sapho/Semuta custody, then actually pay for shipment and use the real discard
claim/pass continuation. These do not claim native card acquisition.
Initial feedback catches the preparation-only guard gap; it is repaired without
opening pending preparations. Old blanket-started assertions now check queued
options plus unchanged current actors and stale original-quote rejection. An
older cyclic case now finishes its real public discard acknowledgement before
the next bid. Test-only type narrowing/card binding, one unused import and a
redundant array copy are corrected; no rule/start guard is weakened. Private
source-bound report/logs: `/home/quintine/.local/share/dune/checkpoints/20261025-sapho-started-lint-fixed/`;
journeys/HTML: adjacent `20261025-sapho-started-runtime/`.
No saved-room/D1/server/reset/restart/deployment or recovery operation occurs.
These are engine/SSR/callback results, not hydration, DOM/browser/mobile or
deployed acceptance. Other ordered phases, split-own-turn policy, wider valid
combinations, complete rules/modes and final assurance remain unfinished.
**Karama acquisitions reach Richese Nexus veto — 25 October. Prototyped / Partial.**
The existing preview now covers immediate ordinary Karama and private Advanced
special purchase. Uniform acknowledgements precede original costs. Under the
+44
View File
@@ -1,5 +1,49 @@
# Dune implementation status
## 25 October 2026 — Sapho reorders the waiting tail behind a started turn
**Prototyped / Partial.** An unstarted different Sapho holder may provisionally
move first/last among later unstarted combined shipment/movement turns. Retain
the active actor's entire turn, original shipment/payment/movement counters,
completed turns and physical storm order. The actual current queue binds the
action event; last protection retains original `movement:turn`. Guild keeps
native next-boundary Take/Wait, including after first; last remains after Guild.
Preparation-only windows, current-holder splitting and pending card/arrival/
payment preparations stay blocked. This selects the source review's retained-
current recommendation under14 October authority, not a publisher clarification.
[Source and boundaries](JUICE_OF_SAPHO_RUNTIME.md#order-after-a-started-combined-turn--25-october-2026).
Owner-only options add `afterCurrent` display metadata; human and minimal bot
actions explicitly submit only card/scope/event/mode. Persistent controls name
the actor who finishes. Semuta's optional continuation field binds that same
active actor through claim/pass; absent-field legacy signatures keep their path.
Three disjoint helper/controls/source lanes freeze before root integration.
Final **11 files,133/133**, types/lint/build and eleven actual engine/GameTable
SSR/button-callback journeys pass unchanged. New helper8/controls6/engine14
cases include both rules bands, actual Guild Take/Wait, stale/no-op/active-holder
rejection, all four profiles and exact Semuta disposal.
Seven native journeys earn cache1 Sapho, then actually ship one counter before
use: Basic46/Advanced53 original actions; granted Guild55 pays one spice. Each
of the four original turns finishes once, in8–13 continuation actions, keeping
all45 cards. Four separately labelled Basic/Advanced Homeworld supplements use
inherited conserved Sapho/Semuta custody, then real paid shipment and claim/pass;
their card acquisition is controlled and not claimed as native.
Initial related125/133 exposes a preparation-only guard gap, stale blanket-
started tests and an old cyclic test skipping its required public discard
acknowledgement. The guard is restored for preparation without actual shipment/
movement. Old cases now test queued options and unchanged active actors while
retaining stale original-action rejection. Types require scoped option/card
narrowing; lint removes one unused import and redundant test copy. No rule or
start guard is weakened to pass. Private source-bound report/logs:
`/home/quintine/.local/share/dune/checkpoints/20261025-sapho-started-lint-fixed/`;
journey data/HTML in adjacent `20261025-sapho-started-runtime/`.
No saved-room/D1/server/reset/restart/deployment/recovery operation occurs.
Engine/SSR/callback evidence does not prove hydration, DOM/browser/mobile or
deployed acceptance. Other ordered phases, split-own-turn interpretation,
broader combinations, full rules/modes and final assurance remain open.
## 25 October 2026 — Richese Nexus reaches original Karama acquisitions
**Prototyped / Partial.** Immediate ordinary Karama and private Advanced special
+73 -1
View File
@@ -13,6 +13,72 @@ contract supersede the earlier absence of that mode below. The
and a fixed public final opportunity in fresh Richese battles; old battles keep
their early protocol.
## Order after a started combined turn — 25 October 2026
**Prototyped / Partial.** The printed card permits first/last in a turn-ordered
phase/action. The [source review](JUICE_OF_SAPHO_SOURCE_UPDATE.md#movement-firstlast)
finds no entitlement to split an already-started combined shipment/movement
turn. Under the 14 October choose-recommendation authority, adopt its bounded
recommendation: retain that current actor and reorder only later unstarted
turns. The current actor finishes normally; the changed tail then takes effect.
This is visibly provisional online timing, not a new publisher clarification.
An unstarted holder at a clean boundary after another player's actual shipment
or movement may go first among the tail, or last including after Guild. It
cannot split its own begun turn, displace an active Guild, replay a completed
turn, reset shipment/movement counters or intervene during unresolved card,
arrival, payment or movement preparations. Existing last protection and no-op
rules remain. Advanced Guild receives its native next-boundary choice; moving
first in the tail does not consume or suppress that privilege.
The pure [movement-order quote](../game/sapho-movement-order.ts) binds the
original phase event, current actor and whole remaining public order in the
queued action event. Its returned last protection retains the original
`movement:turn` event. The owner-only option adds display metadata `afterCurrent`;
human and minimal bot actions explicitly send only card/scope/event/mode.
Persistent controls name the actor who must finish. Existing clean options and
physical storm order remain. Semuta's new optional continuation field keeps
that same current actor through the original discard claim/pass; absent-field
legacy continuation/signature bytes retain their original path.
This supersedes only the earlier blanket partly-completed-turn exclusion for
an **unstarted different holder** behind the current actor. No split-turn mode
or new ordered phase is invented. Wider combinations, full modes and final
assurance/deployed acceptance remain open.
Frozen **11 files, 133/133**, types/lint/build and eleven actual engine/
GameTable SSR/isolated button-callback journeys pass on unchanged source. New
helper8, controls6 and engine14 cases cover native Basic/Advanced first/last,
actual paid current shipment, unchanged current resources/counters, native
Guild Take/Wait, old-event/no-op/active-holder rejection, exact metadata-free
actions, all four minimal profiles and Semuta claim/pass.
Seven native journeys genuinely earn the cache1 purchase, then ship one actual
counter before intervention. Observed source prefixes are Basic46/Advanced53;
the original granted Guild source55 pays one spice for its native shipment.
All original four turns finish once in8–13 continuation actions and retain45
physical cards. Four separate Basic/Advanced Homeworld supplements inherit
explicitly **controlled conserved Sapho/Semuta custody**, rather than earning
those cards. They then make a real paid shipment, stage the used Sapho and
claim/pass through the exact current-turn continuation. Their source counts
are recorded per journey; no native acquisition is claimed for that supplement.
First related proof125/133 reveals a real preparation-only guard omission and
legacy blanket-started expectations. A Hajr/preparation without actual shipment
or movement remains blocked. Revised old tests retain stale original-quote
rejection, actor/counter/grant identity and cost preservation. A cyclic test
finishes the existing public discard response before its next bid. Test typing,
an unused import and a redundant copy are repaired without relaxing legality.
Private frozen report: `/home/quintine/.local/share/dune/checkpoints/20261025-sapho-started-lint-fixed/report.json`;
journeys/HTML: adjacent `20261025-sapho-started-runtime/`. No saved rooms,
databases, server, resets, restarts, deployment or recovery campaign is touched.
Broader combinations, complete modes, hydration/browser/mobile/deployed and
final assurance remain due. The engine/SSR evidence does not certify them.
Evidence: [native and labelled supplemental sources](../tests/fixture-sapho-started-movement.ts),
[engine cases](../tests/sapho-started-movement-engine.test.ts),
[quote cases](../tests/sapho-movement-order.test.ts),
[controls/callback cases](../tests/sapho-started-movement-controls.test.tsx).
## Extortion payer order — 18 October 2026
First/last now has a provisional adapter for native Moritani Extortion's unanswered
@@ -196,7 +262,13 @@ The [battle-order follow-up](SAPHO_BATTLE_ORDER.md) connects first/last at a cle
boundary between actual battles. It does not implement the separate aggressor
mode discussed below.
Later battle aggressor intervention, other ordered actions and partly completed movement remain unfinished. The current-lot cyclic prototype above supersedes the earlier normal/Black Market absence claim. First/Guild competing priority is guarded. Reacquiring and replaying Sapho while an existing movement protection remains is also guarded. Silent submission is simultaneous and receives no fabricated order or tie change.
Later sections supersede the earlier early-only aggressor, cyclic-auction and
blanket started-movement exclusions. Queued movement now supports an unstarted
different holder behind the active turn under the selected provisional policy.
Other ordered actions, splitting the holder's own started turn and competing
first/Guild precedence beyond the retained native choice remain unfinished.
Reacquiring and replaying Sapho while existing last protection remains is still
guarded. Silent submission stays simultaneous with its original storm tie order.
The battle audit in [the battle review](JUICE_OF_SAPHO_BATTLE_REVIEW.md) found a real Stone Burner counterexample: a plan admitted with original aggressor tie priority can become allocation-ambiguous after late Sapho. A complete implementation needs the actual allocation continuation (and a usable, possession-independent late intervention boundary), not rejection based on an opponent's hidden plan. No aggressor handler has been enabled around that defect.
+8
View File
@@ -25,6 +25,14 @@ At an actual boundary between combined turns, reorder the remaining **unstarted*
If another faction is halfway through shipment/movement, retaining that active turn and applying the order change at its completion is a defensible bounded implementation, but it must be described as a supported boundary, not a verified entitlement to interrupt that faction. Moving the active faction itself to last after shipping would split a combined turn: sources inspected do not resolve it. The current engine's `movementRemaining` membership alone cannot distinguish unstarted from partly completed. An active seat may have committed movement before shipping was skipped, used a card, or have an outstanding shipment reaction. Both flags and pending declarations matter.
The 25 October prototype selects the retained-current recommendation under
14 October authority: an unstarted different holder may reorder the remaining
tail at a clean boundary, while the started current actor finishes unchanged.
It binds the actual public queue, preserves counters and future Guild timing,
and blocks unresolved preparations and a split of the holder's own turn.
This is provisional implementation timing, not a fresh publisher ruling.
[Selected runtime](JUICE_OF_SAPHO_RUNTIME.md#order-after-a-started-combined-turn--25-october-2026).
Sapho-first versus Guild-first remains a competing-priority question. The card expressly resolves only last. Preserving a pending Guild decision, or deferring first until after Guild's resolved choice, is an implementation restriction; globally suppressing Guild is a substantive interpretation. Do not cancel an already granted Guild turn or consume its power in a silent order rewrite.
### Finite Once Around first/last
+13 -1
View File
@@ -1,5 +1,17 @@
# Rule decision index
## Sapho after a started combined turn — 25 October 2026
Under the 14 October choose-recommendation authority, select the source review's
retained-current interpretation: an unstarted different Sapho holder may change
first/last among later unstarted turns at a clean boundary. The started current
actor finishes normally with original counters/resources; the tail then follows
the changed priority. Guild keeps its native next-boundary choice and last
protection remains after Guild. Split-own-turn, unresolved preparations and
new ordered phases stay unsupported. Queued timing is visibly provisional,
not a publisher clarification or a separately answered numerical user ruling.
[Source, native continuation and limits](JUICE_OF_SAPHO_RUNTIME.md#order-after-a-started-combined-turn--25-october-2026).
## Richese Nexus before Karama acquisition costs — 25 October 2026
Apply the printed purchase veto to native immediate ordinary Karama and private
@@ -1345,7 +1357,7 @@ These are unresolved in the cited records. Do not infer an answer from elapsed t
| Harass / Stone Burner | The earlier keep-gated versus compare-after-withdrawal question is unanswered. Standing choose-recommended provisionally compares counters left after successful withdrawal. Opposing Traitor cancels the return; original fixed Occupy commitment stays. Public preflight considers possible fixed Ecaz withdrawal without hidden custody. Clean Ix priority follows its separate explicitly provisional contract; new physical commitments do not remove other profile/module limits. This is implementation interpretation, not a new publisher ruling or user answer. | [Withdrawal](HARASS_WITHDRAW_RUNTIME.md#provisional-stone-burner-timing--16-october-2026) · [Clean Ix priority](MIRROR_WEAPON_ENGINE_AUDIT.md#clean-selected-ix-composition--16-october-2026) |
| Stone mixed-force allocation timing | The older timing question remains unanswered by a source. Under 14 October choose-recommended, new original outcome-ambiguous Stone/Mirror battles provisionally commit each ambiguous side's undialed physical total after revealed modes/actual withdrawal and decisive Traitor/explosion branches. Storm-order owners choose privately; every original required value stays sealed until all commit. The eventual winner retains all legal typed casualty choices with the count. Ordinary/invariant and unstamped legacy frames keep their existing path. Publisher physical-count text and supplied Advanced physical12/logical10 casualty timing provide the numerical rules, not this online commitment convention. | [Source, versioned procedure and bounded proof](STONE_BURNER_ENGINE_AUDIT.md#outcome-changing-physical-totals--18-october-2026) |
| Recruits late accounting and rates | The earlier one/two-further-free question remains unanswered. The prototype preserves paid spice, deducts recorded free usage from the doubled current rate and all returns from the total cap: two-free/one-paid Atreides can take two more free. Clean classic Homeworlds now provisionally recheck native thresholds on separate accepted requests, retaining completed prices/classifications; this is not a numerical user ruling or newly found timing FAQ. Unknown ledgers, pending repricing, later Fremen grants and same-turn replay remain guarded. | [Source alternatives](RECRUITS_RULES.md), [current native runtime](RECRUITS_RUNTIME.md#classic-homeworld-composition--16-october-2026) |
| Sapho remaining timing | First versus unspent Advanced Guild priority, partly completed combined turns and other ordered phases remain open. Cyclic current-lot duration and the new shared final battle opportunity are explicit provisional protocols, not publisher rulings. Old battles retain early timing. | [Source audit](JUICE_OF_SAPHO_SOURCE_UPDATE.md), [current aggressor contract](SAPHO_AGGRESSOR.md), [historical battle review](JUICE_OF_SAPHO_BATTLE_REVIEW.md) |
| Sapho remaining timing | Selected queued timing retains another actor's started combined turn and reorders only later unstarted turns; Guild retains native next-boundary choice. Splitting the holder's own turn and other ordered phases remain open. Queued timing, cyclic duration and shared final battle opportunity are provisional protocols, not publisher rulings. Old battles retain early timing. | [Queued timing](JUICE_OF_SAPHO_RUNTIME.md#order-after-a-started-combined-turn--25-october-2026), [source audit](JUICE_OF_SAPHO_SOURCE_UPDATE.md), [aggressor contract](SAPHO_AGGRESSOR.md) |
| Semuta Drug | Full-hand exchange is user-approved; neutral all-seat acknowledgements remain the explicit application policy. Completed Ghola may offer its physical card before the original conditional native Tleilaxu one-spice income, including self-income; claim/pass preserves returned pieces and normal quotas, then resumes the same allow/cancel response once. This admits no unrelated response or market parent. Other producers, nested continuation coverage and full-game acceptance remain unfinished. | [Source update and selected exchange](SEMUTA_SOURCE_UPDATE_20260907.md), [privacy review](SEMUTA_PRIVACY_REVIEW.md) |
| Leader Skills edge cases | Capture/replacement eligibility, Banker escrow custody, Smuggler modifiers, Mentat empty-hand fallback, late/mirror/numeric Diplomat defenses and simultaneous optional timing remain source gaps. Owned multi-pile Smuggler/Sandmaster allocation and printed alternate/hybrid defense roles now have connected, explicitly interpreted paths. The bounded Diplomat retreat prototype chooses printed/copied strength and surviving-loser retreat before casualties; this is not an official priority clarification. | [Material boundaries and retreat](LEADER_SKILLS_RULES.md#bounded-diplomat-retreat-interpretation), [Defense limits](DIPLOMAT_DEFENSE.md#evidence-and-remaining-scope) |
| Smuggler collection strength | The older source check/question produced no numerical answer. Under the later choose-recommended instruction, provisionally cap by copied/printed disc plus declared skill bonuses and KH2, retaining reveal piles and delayed survival settlement. Actual Artillery zeroing voids collection; the base Stunner remains a projectile. Sole own Traitor bypasses weapons, so it retains collection. Printed bounty does not change; this is not a publisher ruling. Other exceptional compositions remain separate. | [Source and explicit policy](LEADER_SKILLS_RULES.md#smuggler-modifier-policy--17-october-2026), [runtime contract](SMUGGLER_BATTLE.md#provisional-modifier-policy--17-october-2026) |