Files
Dune/docs/NEXUS_GUILD_CUNNING_RUNTIME.md
Quintine 561152d58e Compose Guild Cunning with physical Ornithopter movement
Provisionally let either physical card mode replace an earned unused Hajr movement after the second shipment. Keep active group rights separate from actual completed credits and original movement counts. Add v3 original-count receipts while preserving old formats; abandon partial flights through a bound discard suffix before Cunning resumes. Connect persistent controls and minimal legal bot candidates.

Validation: frozen13-file125/125, types/lint/build and eight original-action/rendered-table continuations. Public ready/start, cache1/Hajr1 purchases, real worm/alliance/Guild Nexus draw and paid first2/second1 shipments cover both modes, earlier flights and Basic early endings. Eight minimal policy proposals are legal. No frozen repair; bounded continuation review found no concrete defect. New Semuta grammar lacks direct combined claim/capture proof. Wider combinations, complete modes, final assurance and browser/deployed acceptance remain open. No saved-room/reset/restart/deployment operation.
2026-10-18 13:10:12 +11:00

18 KiB
Raw Permalink Blame History

Guild Nexus Cunning runtime

This checkpoint follows the Guild source contract: native Guild can spend Cunning when finishing its ordinary Shipment and Movement turn to obtain one second shipment. It preserves one combined turn and the actual history of the first shipment and movement. It does not implement Guild Secret Ally, Betrayal or complete Nexus play.

Physical Ornithopter composition — 18 October 2026

The printed Guild face grants only one second shipment; Hajr remains necessary for later movement. Under the standing recommended-composition policy, the physical Ornithopter may replace one earned unused Hajr allowance after that shipment. This is an explicit provisional interaction, not a new publisher FAQ or a free ordinary move.

Range-three mode consumes that allowance once. Two-group mode retains both original distinct groups even after the first consumes the underlying Hajr allowance; only actually completing both groups earns the extra physical-move credit. Original movement counters still count every group. Earlier completed flights retain their earned credit when Cunning is declared. A spent Hajr cannot be reused merely by playing either card.

Declaring Cunning during an unfinished ordinary flight abandons its remaining optional group and discards the physical card before resuming the original Cunning response. The new bounded ornithopterDiscard source cunning parks that response rather than ending the turn. Ordinary early ending after Cunning uses the existing end-turn suffix and completes the Cunning lifecycle. Neither early ending earns the abandoned group's credit. Existing discard consumers, including Semuta's supported-suffix grammar, retain the actual saved response. This alone does not certify every capture/claim combination.

New v3 receipts bind the original completed Ornithopter count as well as actual Hajr plays. Optional signed lifecycle snapshots retain final earned counts after phase resets. Exact v1/v2 receipt bytes and unstamped lifecycle signatures keep their original meanings; an older active receipt can acquire a genuinely earned new credit without rewriting its original history. The pure helper never invents rights for an unfinished flight; the engine retains that flight's own ceiling.

Controls keep the Hajr prerequisite and provisional interpretation visible; all four minimal policies can propose legal first/second card groups. Strategic AI refinement, wider combinations, full modes and final assurance remain open. The frozen batch passes 13 files125/125, types/lint/build and eight finite original-action/rendered-table continuations. Two genuine public ready/start programmes use81 Basic/93 Advanced source actions: cache Ornithopter1 and normal Hajr1 purchases, turn2 worm and reciprocal Richese/Emperor alliance, actual closing Guild Nexus draw from the unopened deck and paid reserve shipment2. Each real second reserve shipment pays1; six to eight continuation actions cover both modes, completed earlier flights and Basic early endings. Eight first/ second-group policy proposals are legal. Another original-action regression rejects the held card with no earned Hajr or with its grant already spent. Nine new pure cases cover original credits, earned/completed counts, safe bounds, strict v3 shapes and exact old receipt bytes/defaults.

All frozen checks passed without repair. Actual GameTable views and isolated controls with accepted drafts render; no select/submit browser click. A bounded read-only continuation/count review found no concrete defect. Prior Semuta Homeworld/disposal regressions pass, but the new Cunning suffix itself has native response proof rather than direct combined Semuta claim/capture evidence. No complete modes, wider combinations, strategic calibration, final assurance or visual/browser/deployed acceptance is claimed. No saved-room/database/reset/ restart/deployment operation.

Private artifacts: /home/quintine/.local/share/dune/checkpoints/20261018-guild-cunning-ornithopter/. frozen-integrated/report.json binds source base 7fe84ff and tree 80097576d1033dad38a08cf85814664bd604bc76d623780e51a1b82d024ed395. runtime-smoke.json and private rendered HTML record the actual controls and original actions. Final checkpoint prose/reference evidence is a documented post-proof overlay; documentation-overlay.json/git-result.json bind that reviewed overlay and pushed checkpoint. Relevant source, controls, helpers and tests remain identical to the frozen proof.

Classic core payment acknowledgement — 18 October 2026

Original classic base33 or selected independent36 Nexus, optionally all14, now preserves Cunning through the same original Guild fee gate. A pending second reserve/cross frame remains the actual signed Cunning shipment while the fee waits; first payment, movement and queue never reopen. The card is already spent, so an actual rival holds another face and has only neutral Pass, not a fabricated second Guild card. Native cancellation still preserves the first shipment and consumes its attempted Cunning card.

Genuine reserve/cross/return groups each pay1 once in the new core producer. Actual390px declaration, original Karama allowance, separate native return permission, wrong-face Pass and Finish Guild turn end at spice4/reserves15 without ordinary movement. Other native/module and physical Ornithopter boundaries remain separate. Source-bound combined proof.

Native permission opportunity scope — 15 October 2026

Cross/return permission is now a separate prepayment counter before native price. Its conservative provisional denial scope is the original shipment opportunity, not every later turn or signed Cunning grant. A denied second opportunity retains original shipped history and first payment, permits a legal ordinary reserve replacement, and grants no ordinary extra movement. Conversely, an ordinary denial followed by an actual paid ordinary replacement does not revoke the newly earned Cunning opportunity. Two controlled source transitions and an actual controlled runtime prove these distinctions; they are not original action-only histories. Current source contract.

Typed Homeworld and module rate composition — 15 October 2026

The later native composition removes the blanket physical-module rate exclusions and connects Cunning's typed Homeworld second shipment. Its exact pending world frame binds the rate event and final price; unaffordable release clears only that uncommitted frame and retains the full-price second attempt. Original shipped history, first payment and movement never reopen. Three controlled Homeworld allow/cancel/unaffordable cases and matching runtime paths use the older explicitly staged final-setup fixture; they are not represented as an original action-only chronology. Current native composition, source separation and proof.

Native rate response integration — 15 October 2026

Without Homeworlds, Skills, Discovery, Tech or Strongholds, the second native reserve/cross shipment now retains ordinary Guild rate cancellation in expansion/Nexus games. Its original shipped history stays true; the shared source-aware allowance validates both rate paths. The reserve frame follows its exact pending rate event and actual settled price. Unaffordable cancellation releases only that uncommitted attempt, permitting a full-price second attempt without granting another first turn, ordinary move or Nexus.

Six controlled original-grant engine cases cover reserve/cross allow, cancel and unaffordable replacement in the existing final-setup fixture. The actual 390px reserve journey allows Guild's own interception, cancels half2 to full3, retains the first five at Arrakeen, places three at Carthag and finishes the original Guild turn at14 spice/12 reserves. No overflow/browser errors. Current rate contract, provenance and remaining module gates.

Opportunity and controls

The shared consumer helper binds the private native holder, unallied card, current turn, actor and projected event. The table offers an explicit “Finish ordinary turn and declare Guild Cunning” action alongside ordinary finishing. It spends the card and opens the existing Karama response mechanism. A cancellation ends the original turn without undoing its committed shipment or movement; allowance offers the separate shipment.

The original player's shipped flag remains unchanged. Source-aware availability recognizes only the current signed second-shipment stage, and the existing reserve, Guild Homeworld and cross-shipment consumer quotes use that shared availability. They retain their physical source, price, typed-counter, storm and destination checks. The native cross-shipment validator and preview now also reject returning to the same territory, a pre-existing mismatch that bots already avoided. The extra shipment uses ordinary action fields; the engine associates them with the durable grant. No consumer clears flags or invents custody.

The player can skip only the second shipment and retain the separate unused Hajr choice, or decline the shipment and finish the whole turn. Existing responses and decisions block a new shipment even while its original stage remains active for restoration. Opponents receive no private offer or actionable owner descriptor. Public entry, payment and cancellation controls preserve their existing information boundaries.

Saved state and authoritative settlement

A signed original receipt records the native owner, turn, roster and first shipment/movement/Hajr status. A separate lifecycle record keeps the original combined-turn queue, stage, consumed extra movement, and exact second-shipment frame. The latest-outcome marker prevents partial deletion from reopening a used grant. These are consistency checks, not cryptographic authentication of arbitrary replacement saves.

The original counters remain history. A shared server shipment-opportunity helper allows only the signed second-shipment stage; the normal reserve, cross/return and typed Homeworld adapters still perform custody, legality and payment. Pending reserve or Homeworld shipment binds its actual Guild interception decision. Completing or stopping that shipment reaches the Hajr step without restoring another shipping right. Declining only the second shipment records a distinct nonphysical outcome and preserves the original counters.

Being unallied is required when declaring Cunning. An alliance legally formed by a later shipment-entry effect does not revoke the played card’s remaining continuation. A real Moritani placement, next-turn second shipment, saved alliance reply and subsequent Hajr movement verify that distinction.

A completed lifecycle no longer pins later funds, forces, alliances or turn order. A live lifecycle retains the exact original owner and combined-turn queue, including Advanced out-of-order Guild timing. Printed Karama cancellation and paid BG Worthless conversion both preserve this source; countering the conversion restores the original Cunning response.

Truthtrance questions and fulfillment searches recognize the second shipment as the current unused opportunity. A previously fulfilled first-shipment answer remains fulfilled. A new accepted answer binds the actual second shipment and cannot be evaded by skipping it or moving first. Private completion witnesses reach only the respondent and support all four bot profiles.

Hajr and bot policy

No ordinary movement follows the extra shipment. Every remaining movement must come from an actually earned unused Hajr allowance. A consumed grant cannot be spent twice; a legally recovered and replayed physical Hajr adds a new grant. The same native Guild player retains that continuation. Native city range still applies normally. The physical-card composition above supersedes the earlier unavailable boundary within its named scope.

The 18 October replay checkpoint adds counted v2 declarations and current/final count snapshots, retaining exact legacy v1 receipt compatibility. Remaining movement subtracts the original ordinary slot even when it was forgone. Advanced uses the supplied fresh post-movement play window; holding or recovering Hajr alone cannot open it. Count composition has focused pure and related native regression evidence; the original paid-Box replay programme itself is a non-Nexus table.

The server supplies hajrAvailable independently of the displayed movement ceiling. Ordinary card availability uses this permission during the Cunning continuation, avoiding a false second Hajr offer when a derived ceiling happens to equal one. Controls disable movement during the second-shipment step and explain the remaining Hajr allowance afterward.

All four bot profiles keep their existing first-shipment and movement candidates, then consider declaring Cunning at the turn's end. They use the shared second-shipment availability and may play an owned Hajr only when the explicit extra-move permission allows it. This extends legal policy; it does not certify complete Guild strategy or calibration.

Verification

Nine new cases in controls and bots use the genuine setup and first-turn fixture. Coverage includes Basic/Advanced declaration, owner/stale/privacy fences, unchanged first-turn flags, second cross-shipment and Homeworld routes, no ordinary movement, Hajr availability and all four profiles. The deliberate card alias in one consumer-only Hajr check is labeled and is never submitted to the engine.

Focused verification passed 9/9 new consumer cases. Existing shipment-budget, promise, Homeworld-control, Nexus, reference and ordinary-card compatibility passed 60/60 cases. Type-aware lint passed. The final focused run includes immutable same-territory transport rejection in ordinary and Cunning routes, a new second-shipment Truthtrance promise, and a pending-response rendering check that excludes the internal event ID. Additional coverage includes seven pure receipt/movement cases, eleven authoritative engine cases, eight production SQLite recovery cases and two genuine nested cancellation cases: 37 new cases in total. The engine and recovery cases include competing replies, exact pending shipment custody, independent terminal markers and a later Moritani alliance. Existing native rate/route cancellation gaps and unsupported arrival combinations remain explicit; this addition does not claim to resolve them.

Final npm run check passed types, lint and 4,136/4,136 offline cases with no skipped tests after the response-text correction. The final production build also passed. These subsystem results do not certify complete Guild, Nexus, expansion or rules-mode play.

Isolated browser acceptance

Two fresh three-human-seat rooms used actual session IDs before genuine fixture initialization and exact state/version staging. No existing game was staged or reset. In SUVRJJFK, Advanced Guild with Homeworlds shipped five forces to Arrakeen, moved them to Hagga Basin, declared Cunning, and received an actual opponent allowance. During the second-shipment step, ordinary movement was disabled and both reserve and cross/return choices remained visible despite the original shipment already being used. The player cross-shipped five forces to Carthag for three spice, played its held Hajr, moved two to Arrakeen and finished at version 11. Fifteen reserves and fourteen spice remained; only two movements had occurred in total.

In T3YXXLKB, the Guild completed the same original shipment and movement. An opponent used the actual Karama cancellation button on Cunning. Version 7 retained the five forces at Hagga Basin, fifteen reserves and seventeen spice, and advanced to the next player's turn without an extra shipment. The Nexus remained spent.

Desktop 1440-pixel and phone 390-pixel captures were visually inspected, including second-shipment quotes, separate skip/finish buttons, Hajr and cancellation controls. Phone views had no horizontal overflow. All six private sessions refreshed with no page errors; opponent views omitted private hand, traitors and spice and all views omitted internal grant history. The read-only restoration script is /tmp/dune-guild-cunning-restore.cjs. Exact staging preserved 3,580 and 3,581 other rooms respectively; the final preservation audit confirmed all 3,580 original room hashes and versions unchanged.

Visual inspection found that the generic response notice exposed its internal event text. The current component replaces that text with the meaning of allowance/cancellation. The final pending-state rendering regression passed after the correction; the earlier live pending screenshots precede that small text change. The completed HTTP/session suite passed all 40 cases and added thirty isolated rooms. A subsequent read-only audit preserved all 3,580 opening room versions and state hashes; the database contains 3,612 rooms, including the two new browser rooms. All six Guild QA seats restored again at versions 11 and 7 without errors. The existing development server was reused; no hourly restart was due and no recurring automation was created.