Support Sapho ordering during Advanced Revival

This commit is contained in:
Quintine committed 2026-10-26 10:48:38 +11:00
1 parent 011b6aa096
commit 82370d906f
15 files changed
+1092 -28

No files matched your search

+60 -1
View File
@@ -53,6 +53,65 @@ the engine owns phase lifecycle, transactions and projection. Controls use
controls. Minimal AI follows the same projected availability. No action kind,
database migration or saved-game conversion is added.
## Sapho first/last — 26 October 2026
The printed card permits first/last in a phase/action taken in player order;
the [existing source review](JUICE_OF_SAPHO_SOURCE_UPDATE.md) records that face.
The new Advanced Revival qualifies through supplied physical9/printed7. Basic
and already-opened unstamped Revival remain concurrent and receive no fabricated
first/last opportunity.
At a clean boundary, an owned physical Sapho changes an unfinished opportunity
to first or last. Existing completed participants, requests, quotas and physical
First Player order stay. The standing choose-recommended instruction selects
the same provisional started-tail protocol as movement: a current participant
who has made a native request finishes unchanged, while another unstarted holder
may go first behind it or last. Splitting the holder's own started opportunity
and consuming the card for an unchanged position are rejected.
Actual use upgrades only that phase frame to version2. Public use history binds
the original turn/order, completed prefix, current remaining queue, started
participant and revision. Replay advances exact completed opportunities and
never unlocks a started participant before completion. Native start/finish retain
that history. Original version1 creation and bytes remain unchanged; no phase
is converted merely by viewing it. Real recovered-card reuse is allowed when
the new position changes; no once-per-phase limit is invented.
The engine discards once and updates the current player from the changed queue.
The new `saphoRevivalDiscard` continuation permits existing opted-in Semuta
claim/pass before play resumes. Its original current/remaining/completed state,
requests, allowances and native resources are bound across the discard. Semuta
may move the used card; it cannot replay the queue change or turn completion.
The human action uses only existing card/scope/event/mode fields. Optional
`afterCurrent` is display guidance, not submitted authority. Existing minimal
policies already consume the shared server-derived Sapho options.
Focused evidence uses `tests/sapho-revival-order.test.ts`,
`tests/fixture-sapho-revival-order.ts`,
`tests/sapho-revival-order-engine.test.ts` and
`tests/sapho-revival-order-controls.test.tsx`.
Frozen **16 files,211/211**, types/lint/build and **ten runtime paths** pass,
with18 GameTable SSR renders and actual selected-props Sapho/Finish callbacks.
Eight paths are native: original public R/A/E/G +choam setup and paid cache1
acquisition use44 source actions. Actual normal1 shipment2 into the next Storm
sector, later card1 death and a free1 return use101. Clean/started first/last
retain the current return, original quotas, physical order and45 Treachery
identities; four minimal profiles each use one card plus four Finish actions.
Two controlled conserved-card Semuta supplements execute actual discard pass/
claim and continuation, without a played acquisition claim.
Original legal first-Storm dials keep Richese First Player through the next
card1; no phase, queue or physical force is installed to earn the native start.
Related feedback completes Basic's existing Semuta window before Extortion
payer answers, fixes empty name selections and narrows control-test types.
Report/manifest:
`/home/quintine/.local/share/dune/checkpoints/20261026-sapho-revival-order-proof-v3/`;
journeys/HTML: adjacent `20261026-sapho-revival-order-runtime/`. No saved-room/
D1/server, reset/restart, deployment or recovery operation. This is engine/SSR/
callback evidence; browser/mobile/deployed, combinations and complete-mode
acceptance remain open.
## Evidence and remaining scope
Focused cases are `tests/revival-order.test.ts`,
@@ -83,7 +142,7 @@ journeys/HTML are adjacent `20261026-advanced-revival-order-runtime/`.
This is SSR/selected-props callback evidence. No saved-room/D1/server, reset,
restart, deployment or recovery operation occurs.
Sapho's new Revival adapter, broader combinations, full rules review,
Broader Sapho and module combinations, full rules review,
save/recovery/privacy/custody assurance, browser/mobile and exact-revision
deployed acceptance remain due. Existing games, the local PDF and hosting
configuration are preserved. No mode/publication gate opens.