Allow late Sapho priority before final battle settlement

Fresh Richese-roster battles support clean aggressor changes after plans and revelation. Both combatants explicitly finish a public final opportunity regardless of held cards or result; an actual Sapho use clears both marks with a fresh event. Close priority before physical Stone allocation and other outcome settlement. Preserve plans, votes, participants, Habbanya priority and reserved physical cards. Keep old unstamped timing and discard signature bytes. Route all final vote exits through native Homeworld defense first. Add persistent controls and finite minimal bot readiness.

Validation:16-file177/177, types/lint/build and eight original-action/rendered-table programmes. Actual cache1 and paid forces use40 Basic/47 Advanced source actions; genuine Stone1 turn1/Sapho1 turn2 uses86. Ordinary and mixed count2 ties change through sealed-plan/final-window Sapho, explicit revised acknowledgements and native losses. Sixteen minimal proposals are legal; controlled reservation and pure window/control cases are separate. Bounded review fixed the Harkonnen Nexus final-vote route; frozen feedback corrected four historical fixture assumptions. All checks then passed together.

Final-window protocol is provisional. Direct late Semuta claim/capture, combined World/Nexus/Sapho, wider combinations, full modes, final assurance and browser/deployed acceptance remain open. No saved-room/database/reset/restart/deployment operation.
This commit is contained in:
Quintine committed 2026-10-18 13:46:00 +11:00
1 parent cb13a4d674
commit 84200ebc74
24 files changed
+1023 -40

No files matched your search

+30
View File
@@ -16,6 +16,36 @@ open mode gates.
## Current checkpoint and work
**Sapho late aggressor — 18 October. Prototyped / Partial.** Fresh public
Richese-roster battles permit clean intervention after commitments/reveal and
retain a fixed final opportunity for both combatants. Both explicitly finish;
an actual Sapho use clears both marks with a fresh event. Priority closes before
Stone counts and outcome settlement. Plans, votes, physical participants and
Habbanya precedence remain; the holder's sealed/inspected card stays reserved.
Old unstamped battles retain early timing and exact old discard-signature bytes.
The final acknowledgement protocol is provisional, not a publisher FAQ.
Two frozen disjoint lanes, bounded continuation review and owner integration
pass **16 files177/177**, types/lint/build and eight original-action/rendered-table
programmes. Actual cache1 and opposing paid shipments use40 Basic/47 Advanced
source actions; native Stone1 turn1/Sapho1 turn2 uses86, with accepted original
Richese circle4/Emperor circle5. Four-to-seven preparation actions and two-to-four
continuations cover ordinary ties, one opposing sealed plan, own prior final
acknowledgement and real mixed-Sardaukar count2. Sixteen minimal policy proposals
are legal. Pure lifecycle/control cases and controlled reservation probes stay
separately labelled.
Review repaired a final Harkonnen Nexus vote exit so all final-vote paths retain
native Homeworld Portable defense before the window. Frozen feedback corrected
four historical fixture assumptions: explicit legacy Stone stamping, a human
saving Sapho instead of letting a bot spend it, and Basic/Advanced pre-plan
readiness. All affected checks then passed together. Actual controls render
offered/busy/already-finished/revised states without browser clicks or visual/
deployed acceptance. Direct late Semuta claim/capture, combined World/Nexus/Sapho,
wider combinations, full modes and final assurance remain open. No saved-room/
database/reset/restart/deployment operation.
[Canonical source, protocol and proof](SAPHO_AGGRESSOR.md#late-aggressor-and-public-final-opportunity--18-october-2026).
**Sapho cyclic auctions — 18 October. Prototyped / Partial.** First/last now
works in ordinary cyclic lots and native Advanced normal Black Market under an
explicit provisional current-lot convention. Full local cycles preserve existing
+26
View File
@@ -1,5 +1,31 @@
# Dune implementation status
## 18 October 2026 — Sapho late aggressor and final battle actions
Fresh actual-Richese battles now support clean priority changes after sealed
plans/reveal and a fixed public both-combatant final opportunity. Both explicitly
finish; an actual Sapho use clears both marks with a fresh event. Priority closes
before physical Stone counts or outcome settlement. Existing plans, declarations,
participants and Habbanya priority remain; sealed/inspected physical cards stay
reserved. Legacy unstamped battles retain early timing and signature bytes.
This final online acknowledgement protocol is provisional.
Two disjoint lanes, bounded review and owner integration pass16-file177/177,
types/lint/build and eight original-action/rendered-table programmes. Public
cache1/paid forces use40 Basic/47 Advanced source actions; actual Stone1 turn1/
Sapho1 turn2 and original circle4/circle5 use86. Four-to-seven preparation and
two-to-four continuation actions cover ties, one sealed plan, revised readiness
and real mixed count2. Sixteen minimal proposals are legal; controlled reservation
and pure lifecycle/control cases remain separately labelled.
Review fixed the Harkonnen Nexus final-vote route to retain native Homeworld
Portable defense. Frozen feedback repaired four stale fixture assumptions; all
checks then passed together. [Canonical source and exact proof](SAPHO_AGGRESSOR.md#late-aggressor-and-public-final-opportunity--18-october-2026).
No browser click, visual/deployed, direct late Semuta claim/capture, combined
World/Nexus/Sapho or complete-mode acceptance. Final assurance remains due.
No saved-room/database/reset/restart/deployment operation.
## 18 October 2026 — Sapho current-lot cyclic auctions
First/last now connects ordinary cyclic lots and native Advanced normal Black
+8
View File
@@ -1,5 +1,13 @@
# Juice of Sapho battle integration review
**18 October implementation follow-up:** the original review below describes
its historical engine and blocker. Fresh Stone physical-total allocation now
permits late aggressor changes before allocation. The current shared outcome
entry owns a fixed final opportunity; all final-vote exits first retain native
Homeworld defense. See the [current contract](SAPHO_AGGRESSOR.md#late-aggressor-and-public-final-opportunity--18-october-2026).
Historical line numbers, absence claims and proposed conservative guards below
are not the current implementation or new publisher restrictions.
7 September 2026. Read-only audit of saved engine/bots/combat code. No shared source changed. Companion evidence: `/tmp/dune-sapho-stone-probe.ts` and `.jsonl`. The existing `docs/JUICE_OF_SAPHO_ENGINE_AUDIT.md` supplies the verified physical face and official CHOAM FAQ provenance; I did not discover a new timing ruling. The face allows becoming the battle aggressor and separately first/last in an ordered phase/action. It says discard after use. An unresolved current battle is the scope; completed casualties and winner cleanup cannot be reopened. Fine-grained online acknowledgement boundaries below are implementation recommendations, not quoted publisher rules.
## Smallest coherent contract
+13 -1
View File
@@ -1,5 +1,17 @@
# Rule decision index
## Provisional Sapho final battle opportunity — 18 October 2026
The printed aggressor effect has no before-plans restriction. Fresh battles
with the public Richese physical-cache producer allow clean early/late use and
a fixed both-combatant final opportunity after votes/native late defense, before
Stone counts or outcome settlement. Sapho changes priority without replaying
plans/votes; a public use clears both final acknowledgements. Existing unreserved
physical-card rules and Habbanya priority remain. Old unstamped battles keep their
early protocol. This is an explicit provisional online procedure under the
standing recommended-choice instruction, not publisher clarification.
[Canonical timing, controls and limits](SAPHO_AGGRESSOR.md#late-aggressor-and-public-final-opportunity--18-october-2026).
## Provisional Sapho cyclic lot — 18 October 2026
The printed first/last ordered-action effect does not specify cyclic duration.
@@ -904,7 +916,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, cyclic auction duration and later battle timing stay guarded. The existing pre-plan opportunity supports [early aggressor](SAPHO_AGGRESSOR.md). Prior questions remain unanswered. | [Source audit](JUICE_OF_SAPHO_SOURCE_UPDATE.md), [battle review](JUICE_OF_SAPHO_BATTLE_REVIEW.md) |
| 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) |
| Semuta Drug | Full-hand exchange is user-approved; neutral all-seat acknowledgements remain the explicit application policy. Other discard 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) |
+86 -2
View File
@@ -1,6 +1,90 @@
# Juice of Sapho: early battle aggressor
# Juice of Sapho: battle aggressor
20 September 2026. Connected partial prototype. The physical face and source
## Late aggressor and public final opportunity — 18 October 2026
**Prototyped / Partial.** The physical face permits becoming the current battle's
aggressor without a before-plans qualifier; see the
[primary-source review](JUICE_OF_SAPHO_SOURCE_UPDATE.md#aggressor-and-battle-selection-order).
The former mixed-Stone blocker is addressed by the new
[physical-total allocation](STONE_BURNER_ENGINE_AUDIT.md#outcome-changing-physical-totals--18-october-2026).
Under the standing choose-recommended instruction, this checkpoint selects the
following provisional online protocol. The acknowledgement procedure is an
implementation interpretation, not an official timing FAQ or new printed rule.
Fresh battles with an actual public Richese roster receive
`saphoTimingVersion:1`, alongside their existing public preparation window.
This follows the physical cache/Sapho producer; merely selecting the E2 family
without Richese does not create that cache or a Sapho-dependent prompt.
The canonical unreserved holder may become aggressor at a clean boundary before
the final opportunity closes, including after one/both sealed plans and revealed
weapon/Traitor declarations. Existing nested responses/decisions still finish
first. Eligibility does not inspect an opposing hand or sealed plan. The holder's
own sealed or inspected card slots reserve the physical card: Sapho cannot be
spent while used as a Planetologist Special weapon or another commitment.
After all original weapon decisions, Traitor votes/responses and any native
Homeworld invader Portable Snooper choice, both physical combatants receive
the same **Final battle actions** control. It opens regardless of actual card
ownership, tie, Traitor/explosion branch or final winner. Each chooses
**Finish final battle actions** using the current public event. This persistent
window has no timer and does not replace a suspended decision. Playing Sapho
changes public priority and creates a fresh event, clearing both finish marks;
both players must finish again. Playing does not itself finish the opportunity.
The second acknowledgement closes priority before Stone physical counts,
Smuggler/Sandmaster choices, Diplomat retreat, Jacurutu, losses and aftermath.
The closed window cannot reopen there. Plans, participants, chooser, Voice,
Prescience, Truthtrance promises and chosen weapon/Traitor declarations remain
unchanged. Habbanya still precedes ordinary aggressor tie priority on either
physical side. New discard continuations bind the late stage and public revision;
unstamped old battles retain their exact early conditions/signature format.
No existing battle is converted or reset.
The table exposes only public identity, revision and readiness. Minimal policies
use their existing server-derived Sapho option first, otherwise explicitly finish
their own opportunity. This adds legal participation, not strategy calibration.
### Checkpoint evidence and remaining limits
Frozen **16 files177/177**, types/lint/build and eight original-action/
rendered-table programmes pass. The source-bound report is retained privately at
`/home/quintine/.local/share/dune/checkpoints/20261018-sapho-late/frozen-integrated-2/report.json`:
proof base `cb13a4d6748c3b86d5b472bab8d798b49b45af28`, source tree
`54889569fdfe483bfdeaffdf85c88127a41afdbceafb32ceb7b7d9dc99a7f75f`.
Only checkpoint prose/reference evidence changes after that frozen source.
The new original-action fixtures buy Sapho for1 through the actual cache and pay
for opposing three-force Arrakeen shipments:40 Basic/47 Advanced source actions.
The Advanced mixed branch buys Stone1 on turn1, Sapho1 on turn2 and ships6/1Sard
against Richese3:86 actions, including actual original circle4/circle5 choices.
Four-to-seven plan/vote/use actions reach the final window; two-to-four actions
finish both acknowledgements, real physical count2 and original typed cleanup.
Baseline ties go to Richese; one-plan/final-window Sapho changes them to Emperor.
A use after the holder's own acknowledgement resets both marks and rejects the
old event. Sixteen minimal proposals are legal in actual held/no-card views.
Actual GameTable, Sapho and isolated final controls render offered, busy,
already-finished and revised states. Framework aliases/CSS stubs mean no browser
clicks or visual/deployed acceptance. Pure lifecycle/control tests and controlled
own-plan/Prescience reservation probes remain separate evidence; the latter do
not claim a full original Planetologist/Sapho setup. Related existing regressions
include native Stone, Homeworld defense, Harkonnen Nexus and Semuta early disposal.
Bounded review repaired the Harkonnen Nexus final-vote exit to preserve original
Homeworld invader defense. Frozen feedback corrected four obsolete fixture
assumptions: the historical Stone guard is explicitly unstamped, a human saving
Sapho uses explicit controls instead of an eager bot, and Basic/Advanced readiness
retains late timing only in fresh battles. The exact failed cases pass8/8, then
the entire affected177 pass with types/lint/build/runtime against unchanged source.
This does not certify full modes, direct late Semuta claim/capture, a combined
World/Nexus/Sapho journey, wider combinations or final assurance. Browser and
exact-revision deployed acceptance remain open. No saved-room/database, reset,
restart or deployment operation was performed.
## Historical early prototype — 20 September 2026
Connected partial prototype at that checkpoint. The physical face and source
precedence remain in the [Sapho audit](JUICE_OF_SAPHO_ENGINE_AUDIT.md); the
[battle review](JUICE_OF_SAPHO_BATTLE_REVIEW.md) separates scheduling, physical
participants and tie priority. This checkpoint implements the printed aggressor