Capture surviving alone BG groups at positive remote board sources and zero replacement targets. Preserve returned armies, replacement, original leader death, revelation and card cycle. Native Face Dance stays immune; consume the publicly sourced parent before one original aftermath continuation. Validation: 16 affected files201/201, types/lint/build, five native Face Dance and GameTable SSR journeys, eight existing-profile response paths. Genuine 67/66-action sources earn original Ix47, native Face Dancers and actual battle. Both conversion outcomes preserve nine returned survivors and one leader death; actual BG city income is2/0. Correct a fixture's expected deck count43 to47 without changing cards or rules. Full combinations/modes remain unfinished. Not deployed; no saved-room/D1, reset or restart operation. Runtime fingerprint 78239a9def5dd70ae404d5a614a21ea09ea615dd2a6cde7d05760715416d7401; checkpoint prose/reference overlays are reviewed separately.
410 lines
26 KiB
Markdown
410 lines
26 KiB
Markdown
# Mandatory advisor conversions
|
||
|
||
## Completed Face Dance replacement — 24 October 2026
|
||
|
||
**Prototyped / Partial.** Compose the same supplied
|
||
physical17/28 E counter with native Face Dance's return/replacement (physical38 A).
|
||
Selecting forces from remote board territories can leave surviving BG advisors
|
||
alone there. Choosing zero replacement can leave the target's advisors alone
|
||
after the winning army returns. Consider all changed source territories and
|
||
the target after the complete physical transfer, before settlement benefits.
|
||
|
||
Original battle rewards and card cleanup keep their priority. Complete the
|
||
winning army's actual return, replacement placement, original leader death,
|
||
Face Dancer revelation and any all-three card cycle first. Face Dance itself
|
||
retains its printed immunity; the new response concerns the separate BG
|
||
advantage. Canceling conversion neither replays nor reverses replacement or
|
||
reveals another Face Dancer. Retain the existing provisional continuously-alone
|
||
hold and consume the parent before resuming original battle aftermath once.
|
||
|
||
The public phase6 receipt selects the original six-field battle identity,
|
||
replacement actor/target/sector, positive physical sources, replacement amount
|
||
and actual returned counts. It contains no secret Face Dancer identity, new
|
||
drawn card or wider private battle context. Current card availability is not
|
||
rechecked after revelation/cycling. A remote advisor group may belong to an
|
||
original combatant; the battle-loss-only bystander restriction does not apply
|
||
to a different territory. Existing Homeworld/native and co-side permissions
|
||
remain in the original replacement; this response grants none.
|
||
|
||
[Native fixture](../tests/fixture-advisor-face-dance-flip.ts) starts public
|
||
Advanced BG/Tleilaxu/Atreides in that seat order, original Ix47 and no optional
|
||
module. The real final advisorSetup action deals the original three Face Dancers
|
||
from a selected permutation of unused original identities. Actual earlier
|
||
Traitor choices, starting Treachery deal and the undealt card census remain.
|
||
Tleilaxu pays3 to ship three forces into Arrakeen, then really moves two to
|
||
Basin. A real unarmed Atreides win with dial/support1 leaves nine survivors.
|
||
The remote branch moves all ten Atreides to Basin first, then replaces the
|
||
survivors using the last remote Arrakeen counter and eight reserves. The zero
|
||
branch fights in Arrakeen and replaces none. Original Atreides Karama remains
|
||
available. No played army, hand, wallet, phase, Tanks, revealed flag or receipt
|
||
is installed.
|
||
|
||
[Engine cases](../tests/advisor-face-dance-flip-engine.test.ts) cover both
|
||
conversion outcomes, original decline/immunity, completed parent mismatch and
|
||
existing profiles. Force return, actual leader death, revelation and replacement
|
||
stay committed while the response waits; Collection depends on the final stance.
|
||
Frozen **16 files201/201**, types/lint/build, five native Face Dance/response/
|
||
GameTable SSR journeys and eight existing-profile paths pass. Remote and zero
|
||
sources take67/66 original actions. Both return nine actual Atreides survivors,
|
||
kill the original leader once without bounty and reveal the original card.
|
||
Allowed conversion earns BG two actual city income; prevention earns none.
|
||
Original decline leaves the army, leader and unrevealed card intact. Standard
|
||
controls render; this is not a new callback/browser/mobile/deployed certificate.
|
||
|
||
First native feedback corrects the expected original Ix deck count43 to47,
|
||
without changing any physical card/deal or rule. Its focused case and the final
|
||
frozen batch pass. Private proof and original-action HTML:
|
||
`/home/quintine/.local/share/dune/checkpoints/20261024-advisor-face-dance-flips/`.
|
||
`frozen-integrated/report.json` binds tree
|
||
`78239a9def5dd70ae404d5a614a21ea09ea615dd2a6cde7d05760715416d7401`
|
||
on base `0b3413fcd8238301f97114171fcca2936adf51e5`. Prose/reference evidence is
|
||
reviewed and hashed separately after proof. Combined all-three cycling, Skills/Ecaz co-side/Homeworld/Nexus and other automatic producers remain
|
||
unfinished acceptance; focused proof does not open complete modes.
|
||
|
||
## Homeworld and Junction transport — 24 October 2026
|
||
|
||
**Prototyped / Partial.** Compose physical17/28 E's
|
||
existing counter with the separate Homeworld transport paths. Native Guild
|
||
Arrakis-to-Homeworld shipment and board-origin Junction transport can remove the
|
||
last outsider beside advisors. Junction can also move advisors into an empty
|
||
board territory. Capture those groups after the actual typed force transfer,
|
||
before occupation/settlement can erase their stance or grant fighter benefits.
|
||
|
||
Original transport interception, privilege, tariff, payment, custody deposit,
|
||
shipment use and income retain their order. Cancellation of the resulting BG
|
||
conversion reverses none of them. Junction's own permission/rate immunity remains
|
||
distinct from the independently counterable BG advantage, per the existing
|
||
[Junction source contract](JUNCTION_TRANSPORT_RULES.md#karama-and-offer-lifetime).
|
||
The provisional continuously-alone hold remains unchanged.
|
||
|
||
The public phase5 receipt contains only a new UUID, native/Junction kind, actor,
|
||
origin/destination and selected physical group/counts. The original declaration
|
||
event includes a private state snapshot: retain it only in the private parent,
|
||
alongside the exact optional Junction arrival. Public response and Karama source
|
||
selection never copy that original event or private funding/continuation. Check
|
||
the actual committed world deposit or board counters instead of rerunning a
|
||
pre-transfer permission, funding or shipment-availability quote.
|
||
|
||
World destinations have no arrival suffix. For board-origin Junction arrival,
|
||
consume the parent before resuming original Intrusion and territory entry once.
|
||
Native/foreign world departures that do not alter a board advisor group retain
|
||
their original flow. This does not broaden routes, start gates or transport
|
||
entitlements. Broader combinations, other special arrivals, remote Face Dance
|
||
sources and storm casualties remain unfinished.
|
||
|
||
[Native fixture](../tests/fixture-advisor-homeworld-flip.ts) starts public Advanced
|
||
BG/Atreides/Guild with Homeworlds enabled by the actual lobby action and original
|
||
base33. Actual advisorSetup shares Tuek's five Guild counters for a native return,
|
||
or Arrakeen's ten Atreides counters for Junction. Original Atreides Karama stays
|
||
held through real first-round controls. Native return costs3 for five; sponsored
|
||
own-world return costs5 for ten. A real BG reserve shipment into Basin earns the
|
||
separate destination Intrusion route, transporting ten Atreides there for10.
|
||
Another actual Junction offer moves BG's original advisor into empty Basin for1.
|
||
No played force, phase, hand, wallet, native reserve or stance is installed.
|
||
|
||
[Engine cases](../tests/advisor-homeworld-flip-engine.test.ts) cover both response
|
||
outcomes for those four routes, original native privilege prevention, private
|
||
source/arrival mismatch and minimal existing-profile participation. Original
|
||
world deposits or board counters stay transferred, shipment stays used and the
|
||
ordinary move stays unused. Frozen **18 files218/218**, types/lint/build, nine
|
||
native transport/response/GameTable SSR journeys and sixteen existing-profile
|
||
paths pass. Native return uses37 source actions, Junction return38, earned
|
||
Intrusion42 and actual BG empty arrival36. Their original costs3/5/10/1 remain
|
||
spent through both conversion outcomes. Earlier native permission prevention
|
||
keeps the original force/payment/unused shipment. Standard controls render;
|
||
this is not a new callback/browser/mobile/deployed certificate.
|
||
|
||
Initial feedback passed218/218 and types, then lint rejected two test variables
|
||
named module. Renaming only those variables passes focused lint and the final
|
||
frozen218/218, types/lint/build and runtime, without changing rule validation.
|
||
Private proof and original-action HTML:
|
||
`/home/quintine/.local/share/dune/checkpoints/20261024-advisor-homeworld-flips/`.
|
||
`frozen-integrated-2/report.json` binds tree
|
||
`5365a5d6fba829c6bcee1cb1e00977ec41769912a32180062e52af0ca59645da`
|
||
on base `d83db397c0365421034a53315c5604ae1c525177`. Checkpoint prose/reference
|
||
updates are separately reviewed and hashed after proof. Broader contributor/occupation/Nexus/Semuta compositions are
|
||
not certified by these native own-world and board scenarios.
|
||
|
||
## Battle losses before optional cleanup — 24 October 2026
|
||
|
||
**Prototyped / Partial.** Compose the supplied
|
||
Advanced source's physical17 group-flip counter with physical28 E's mandatory
|
||
conversion when alone. Ordinary battle losses can leave surviving bystanding
|
||
advisors alone even when neither combatant keeps a force. Preserve the completed
|
||
battle result, payments, deaths and actual casualty allocation. An explosion
|
||
that destroys the advisors leaves no group to convert.
|
||
|
||
The selected provisional priority is after actual casualties (including Suk
|
||
Graduate's physical rescue), original skills/substitution and mandatory Treachery
|
||
disposal, before optional winner-card cleanup and subsequent aftermath effects.
|
||
This is a composition under the 14 October recommended-policy authority, not a newly retrieved publisher
|
||
priority ruling. Resolving the occurrence before later reinforcement/replacement
|
||
avoids silently losing an already-earned conversion opportunity.
|
||
|
||
Capture immediate no-winner losses after the original battle closes, retaining
|
||
the advisor stance through mandatory disposal. Winner casualties capture the
|
||
group before skills and compulsory winner disposal; their original choices
|
||
finish before the response opens. The public phase6 source selects only the
|
||
original event, turn, territory, two combatants, winner and result, bound to the
|
||
exact surviving BG group. Cleanup cards and the winner/aftermath cursor stay in
|
||
the private parent, outside the response and Karama source selection.
|
||
|
||
After the counter, consume that parent before resuming the exact winner or
|
||
aftermath cursor once. Never call battle resolution or apply casualties again.
|
||
Preventing conversion preserves losses/costs and the existing provisional
|
||
continuously-alone hold; it neither restores armies nor skips original cleanup.
|
||
The original standard Karama/Allow controls explain this boundary. Other
|
||
withdrawals, special arrivals and matching-group conversions remain open scope.
|
||
|
||
[Native battle fixture](../tests/fixture-advisor-battle-flip.ts) starts public
|
||
Advanced BG/Atreides/Harkonnen with original base33. Original advisorSetup places
|
||
the peaceful counter beside Atreides' ten Arrakeen forces. Actual movement leaves
|
||
one Atreides there, then brings one Harkonnen counter from Carthag by city range.
|
||
Original Thufir5/dial1/support1 and Shield defeat Iakin2/dial0, leaving neither
|
||
army. A second original pre-deal Traitor permutation and actual private choice
|
||
earn mutual calls; both armies die and Shield's mandatory disposal precedes the
|
||
conversion. A third original Lasgun/Shield deal destroys the advisor too. No
|
||
played force, phase, hand, wallet, Tanks, stance or receipt is installed.
|
||
|
||
[Engine cases](../tests/advisor-battle-flip-engine.test.ts) exercise both response
|
||
outcomes and exact original cleanup, prevention holds through Collection,
|
||
public/private parent mismatch rejection, no-survivor explosion and existing
|
||
profiles. Frozen **16 files264/264**, types/lint/build, five native battle/
|
||
response/GameTable SSR journeys and eight existing-profile paths pass. Each
|
||
original source takes44 actual actions. Both battle outcomes reach actual
|
||
Collection with two BG city income when allowed, none when prevented; actual
|
||
Lasgun/Shield kills the advisor and opens no conversion. Standard existing
|
||
controls render; this is not a new callback/browser/mobile/deployed certificate.
|
||
|
||
The first frozen223/264 feedback found41 old Semuta battle cases expecting
|
||
physical disposal before the existing final battle acknowledgements. A
|
||
representative failure reproduced against unchanged base035be51 in isolated
|
||
source, without copying saved games. Four focused fixtures now acknowledge only
|
||
the original final window; two remaining direct-test callers receive the same
|
||
repair. Focused3/3 then2/2 and the final264/264 pass, preserving original card/
|
||
force/continuation assertions and all production Semuta guards.
|
||
|
||
Private reports, baseline comparison, rendered HTML and hashes:
|
||
`/home/quintine/.local/share/dune/checkpoints/20261024-advisor-battle-flips/`.
|
||
`frozen-integrated-3/report.json` binds fingerprint
|
||
`665defe51a1f46a6b5992b6e1e4b034203f91e7101acf860eb549f5bf9865151`
|
||
on base `035be5191510333951bb3be9692ecfe3a233eace`. Checkpoint prose/reference
|
||
updates are reviewed and hashed separately after proof.
|
||
Full Suk/Rihani/Caladan/Face Dance/Semuta combinations are not certified by these
|
||
native base scenarios; wider interaction and final assurance work remains due.
|
||
|
||
## Trip to Gamont before Mentat victory — 24 October 2026
|
||
|
||
**Prototyped / Partial.** Compose supplied physical29 B’s return of one other
|
||
player’s force during Mentat with physical17’s group-flip counter and physical28 E’s
|
||
alone conversion. The original Gamont declaration/counter and physical card
|
||
use/disposal finish first. The actual return, or completed empty No-Field reveal,
|
||
then creates a conversion occurrence before settlement or victory. Preventing
|
||
that conversion does not return another counter, restore the used card or undo
|
||
revelation. Earlier Gamont prevention still keeps the force/card unchanged.
|
||
|
||
A phase8 public event binds actor, target, location, elite/returned metadata and
|
||
ordinary-versus-final Mentat scope to the held BG group. Card and optional Nexus
|
||
fuel provenance stay server-side in a separate parent; neither the public receipt
|
||
nor Karama source selection copies the hidden fuel identity. Post-commit
|
||
validation does not call pre-return availability again. Old ground/transport
|
||
source shapes stay phase5-only. The existing provisional continuously-alone hold
|
||
is unchanged; setup remains automatic.
|
||
|
||
Both direct cost completion and the original Semuta disposal continuation defer
|
||
the final choamMentat chooser while the new parent owns the counter. The parent
|
||
is consumed before restoring that chooser once; ordinary Mentat receives none.
|
||
The callback does not check victory itself. Actual victory rejects unresolved
|
||
conversion parents, then evaluates only after the original final confirmation.
|
||
|
||
[Native Gamont fixture](../tests/fixture-advisor-gamont-flip.ts) starts public
|
||
Advanced BG/Atreides/CHOAM with the original CHOAM35 deck. Unopened original
|
||
cards supply Gamont/Karama. Actual BG advisorSetup at Arrakeen, a paid two-force
|
||
shipment into Carthag and a one-force city-range move to Tabr earn two BG
|
||
strongholds. Atreides really moves nine counters out of Arrakeen, leaving its
|
||
last counter beside the advisor. Actual Collection and ordinary/final Mentat
|
||
controls retain that near-win. No played army, phase, wallet, hand, advisor hold,
|
||
response or winner is installed.
|
||
|
||
[Native engine cases](../tests/advisor-gamont-flip-engine.test.ts) cover ordinary
|
||
and final timing, both conversion outcomes, earlier original-effect prevention,
|
||
parent mismatch, a fuel-free public response and existing profiles. Allowance
|
||
can earn BG’s real third stronghold and final win; prevention retains only two
|
||
and advances the turn. Pure cases include the empty-reveal metadata path; this
|
||
native fixture proves ordinary-counter return, not full No-Field/Nexus/Semuta
|
||
combinations. Frozen **18 files277/277**, types/lint/build, five native Gamont/response/
|
||
GameTable SSR journeys and eight existing-profile paths pass. Original sources
|
||
take52 ordinary/56 final actions. Two earned BG strongholds plus the allowed
|
||
Arrakeen conversion produce an actual final BG win; preventing conversion leaves
|
||
two and advances the actual turn. Earlier original Gamont prevention retains
|
||
the outsider and card. The public response contains no fuel-card ID; its private
|
||
parent records provenance. An explicit malformed-input boundary annotation is
|
||
repaired without changing runtime validation; final frozen proof passes with
|
||
no driver repairs or moving source.
|
||
|
||
Private reports, rendered HTML and hashes:
|
||
`/home/quintine/.local/share/dune/checkpoints/20261024-advisor-gamont-flips/`.
|
||
`frozen-integrated-3/report.json` records fingerprint
|
||
`3833bcfc789c1a5765b71df68ad138d529429f5b64449159a08c8febf6cdc03a`
|
||
on base `d0f52c7bae4b2df9bf6bf087770850a4681f56de`. Prose/reference evidence is
|
||
reviewed and hashed separately afterward. Standard controls render; this is not
|
||
new component-callback/browser/mobile/deployed or complete-mode acceptance.
|
||
|
||
Remaining withdrawals, casualties/aftermath, other special arrivals and matching
|
||
groups remain open. No complete mode, comprehensive assurance or release gate
|
||
opens from this prototype.
|
||
|
||
## Guild transport and reserve returns — 24 October 2026
|
||
|
||
**Prototyped / Partial.** The same physical17 counter and physical28 E mandatory
|
||
conversion now compose with committed Guild cross-shipment and reserve returns.
|
||
The original privilege, rate, settlement and payment responses retain their
|
||
order. Actual payment, force transfer, shipment use and promise/Cunning receipts
|
||
commit once before the conversion response. Ordinary ground movement is not
|
||
consumed. Canceling only this conversion neither refunds payment nor reverses
|
||
transport or revives the earlier permission/rate opportunity.
|
||
|
||
The source stores the public original route, selected physical group, amount,
|
||
elite count and a unique committed transport event. It binds to one saved parent
|
||
and the exact held advisor group. Holds are captured before board-derived
|
||
occupation observations; the response opens only after original slot bookkeeping.
|
||
An existing Guild-income response retains priority. Once all conversion outcomes
|
||
finish, the parent is consumed before original Intrusion/territory entry resumes
|
||
once. A reserve return has no arrival suffix. Hidden funding shares, hands and
|
||
wallets are not copied into that public source.
|
||
|
||
From-reserves Fremen transport and private movement-preparation projections do
|
||
not manufacture conversion events. Only changed origin/destination groups are
|
||
considered. A transported BG advisor arriving alone retains its original advisor
|
||
stance until this counter resolves. Existing source, typed-transport, No-Field,
|
||
Nexus, module and start guards remain; no new entitlement is granted. The existing
|
||
provisional continuously-alone duration is unchanged. Exact old ground receipt
|
||
shape remains accepted; new transport fields are additive.
|
||
|
||
[Native transport fixture](../tests/fixture-advisor-transport-flip.ts) starts
|
||
public Advanced BG/Atreides/Guild, actually placing the advisor beside Guild’s
|
||
original five counters at printed Tuek’s Sietch sector5. Atreides receives an
|
||
original starting Karama; real first-round controls, declined preparation and
|
||
native early Guild timing lead to the pre-transport source. Caller actions allow
|
||
original permission/rate, then stop before the post-payment conversion. No played
|
||
army, phase, hand, wallet, reserve, hold or response is installed. A separate
|
||
Intrusion source actually defers Guild, pays for one BG reserve to Imperial
|
||
Basin as a fighter, resolves original interception/income, ends BG’s turn and
|
||
takes Guild’s next early turn. The tested cross-shipment then produces the origin
|
||
conversion followed by a real destination Intrusion; it is not a synthetic
|
||
pending decision.
|
||
[Engine cases](../tests/advisor-transport-flip-engine.test.ts) cover both routes,
|
||
both outcomes, a real later ordinary move, earlier permission/rate independence,
|
||
affordable full-price return versus an uncommitted unaffordable cross declaration,
|
||
source-parent rejection and minimal existing profiles. Pure transport/legacy
|
||
cases remain in the shared quote suite. Frozen **17 files243/243**, types/lint/build, eight native transport/response/
|
||
GameTable SSR journeys and eight existing-profile paths pass. Native default
|
||
sources take36 actions; the actual paid-shipment Intrusion source takes42.
|
||
Cross costs5 and return3 before the conversion. Earlier privilege prevention
|
||
leaves pieces unchanged; an unaffordable canceled cross tariff remains
|
||
uncommitted, while a full-price return really settles before unopposed
|
||
conversion. The first241/242 feedback corrected the funding expectation without
|
||
staging spice, then added the negative branch. Two focused cases and the final
|
||
frozen243/243 pass. An existing ground consumer now narrows the strict source
|
||
union before reading its mover; no source shape is relaxed.
|
||
|
||
Private reports, rendered HTML and hashes:
|
||
`/home/quintine/.local/share/dune/checkpoints/20261024-advisor-transport-flips/`.
|
||
`frozen-integrated-2/report.json` records fingerprint
|
||
`cca2ff32114b6854c9339fff72f3384d68d1772d5539811594cd82f0c3e8d4fa`
|
||
on base `3aca64412feabae750b1adc2796a4086505a49c9`. Prose/reference evidence is
|
||
reviewed and hashed separately afterward. Standard controls are rendered; this
|
||
is no new component-callback/browser/mobile/deployed certificate.
|
||
|
||
Shipments outside this transport path, other withdrawals, casualties/aftermath,
|
||
matching-group conversions and wider interleavings remain open. This is not
|
||
complete cancellation or full Advanced/mode acceptance.
|
||
|
||
## Source and provisional duration — 24 October 2026
|
||
|
||
Status: **Prototyped / Partial**. Supplied authorized Advanced physical28 E says
|
||
advisors alone in a territory automatically become fighters. Physical17’s Karama
|
||
table permits preventing one group’s flip to or from advisors. Applying the two
|
||
connects a real counter to that mandatory conversion; automatic does not itself
|
||
confer immunity. Physical16 permits Karama only after setup/At Start, so setup
|
||
conversions remain automatic without this response.
|
||
|
||
This slice connects ground-movement producers: an advisor group entering an
|
||
empty destination and the last outsider departing its territory. The physical
|
||
move, counters, normal movement opportunity and any completed movement promise
|
||
are already committed. The ordinary advisorFlip response then permits or
|
||
prevents the conversion. Prevention cannot undo movement or spend another move.
|
||
|
||
The 14 October choose-recommended authority selects a **provisional duration**:
|
||
the prevented group remains advisors while continuously alone in that territory,
|
||
across phase and turn changes. Another faction’s presence or the physical group
|
||
becoming empty closes that occurrence. A group moving elsewhere gets its new
|
||
destination’s ordinary stance and a new conversion opportunity when applicable.
|
||
This duration is not a directly retrieved publisher ruling. Repeated normalization
|
||
cannot simply erase the canceled result or offer an immediate free retry.
|
||
|
||
## Connected behavior
|
||
|
||
- [Pure rule](../game/advisor-automatic-flip.ts) identifies current public groups,
|
||
binds a current turn/phase/mover/movement count and exact physical group, and
|
||
settles a held stance without reading cards, leaders or spice.
|
||
- [Engine](../game/engine.ts) marks each occurrence after physical ground
|
||
movement, queues its original source and opens the existing native response.
|
||
Allowance deletes the advisor stance; cancellation retains the occurrence
|
||
hold. The source is revalidated before card disposal and outcome settlement.
|
||
Multiple groups retain ordered independent responses.
|
||
- [Advisor normalization](../game/advisors.ts) and the shared
|
||
[board resolution quote](../game/board-resolution-quote.ts) retain held
|
||
advisors. Such forces still do not fight, collect, grant stronghold income,
|
||
count for victory or supply ornithopters. Ordinary arrival matching retains an
|
||
existing held group’s stance instead of silently converting it when joined.
|
||
- [Karama source selection](../game/karama-context.ts) binds the actual pending
|
||
occurrence rather than unrelated game state. The normal
|
||
[table response](../components/game-table.tsx) explains that the move is complete
|
||
and displays the provisional duration. There is no new confirmation or timer.
|
||
Existing minimal bot response handling remains, without strategy changes.
|
||
|
||
No start gate, physical inventory, save, schema or room is reset. Setup and
|
||
remaining unheld non-ground conversions keep their existing behavior. Remaining
|
||
mandatory producers beyond the transport follow-up include other shipments, withdrawals, casualties/aftermath and
|
||
other special arrivals; matching an existing fighter group and broader
|
||
interleavings also remain unfinished. This checkpoint does not claim complete
|
||
advisor-conversion cancellation or full Advanced compliance.
|
||
|
||
## Bounded verification
|
||
|
||
The [native fixture](../tests/fixture-advisor-automatic-flip.ts) starts genuine
|
||
public Advanced Bene Gesserit/Atreides/Guild. The native advisorSetup action puts
|
||
one advisor beside Atreides’ original ten Arrakeen forces. Only unopened original
|
||
Treachery/Spice order and scalar shuffle order are selected. Atreides receives
|
||
the original Karama, both Spice draws and ordinary first-round controls execute,
|
||
the original optional preparation is declined and Guild uses its timing choice.
|
||
The arrival branch stops at BG’s turn; the departure branch really skips that
|
||
turn and stops at Atreides’. No played army, phase, wallet, stance, card hand,
|
||
response or prevention receipt is installed.
|
||
|
||
[Native engine cases](../tests/advisor-automatic-flip-engine.test.ts) cover both
|
||
allowed/canceled moves, continuous hold through actual phase continuation,
|
||
an actual outsider return, changed-source rejection and existing profiles.
|
||
[Pure cases](../tests/advisor-automatic-flip-quote.test.ts) cover group selection,
|
||
settlement and exact source validation. The former empty-arrival expectation in
|
||
[advisor regressions](../tests/advisors.test.ts) is cut over explicitly.
|
||
Frozen **16 files199/199**, types/lint and production build pass. Five native
|
||
move/response/GameTable SSR journeys cover allowed/canceled arrival/departure and
|
||
an actual outsider return. Eight existing-profile paths accept legal standard
|
||
responses and continue. The original arrival source takes34 actions; departure
|
||
takes36, including the real skipped BG movement. Existing Karama/Allow controls
|
||
render, without a new component-callback or browser certificate. One redundant
|
||
import is repaired after the first passing199-case union; the final frozen
|
||
source then passes every check.
|
||
|
||
Private reports, rendered HTML and hashes:
|
||
`/home/quintine/.local/share/dune/checkpoints/20261024-advisor-automatic-flips/`.
|
||
`frozen-integrated-2/report.json` records source fingerprint
|
||
`385c4758cd118574be8431593267a3198dd570eea6960c02e45a462e23494c4c`
|
||
on base `1a505525a8aa1499bc6270da2241506baf3e5be2`. Prose/reference evidence is
|
||
reviewed and hashed separately after verification.
|
||
|
||
Comprehensive rules, combinations, saved-game/recovery/privacy/custody assurance,
|
||
browser/mobile/deployed acceptance and full AI refinement remain open.
|