Riftbound engine - status board

generated 2026-09-09 19:27 UTC · source tip 67712c68 · private, unlisted
20 open · 95 fixed · 174 quirks · 85 board items

Single-writer board (lane 1 maintains; rigs never edit). State as of 2026-09-08 ~13:00 ET.

Riftbound engine

Trunk: feat/rust-port + wip/r8-merge + wip/cycle2-merge-backup @ f496aeda (S3 L1-L4 + unit-activation + UNL-213 landed). 1.0.0 BAR LOCKED by Tai 09-08 02:48: rules-complete = 1.0.0, XP system + generic-op class in scope (02:51). ETA reported to Tai: 2-3 weeks, Sep 22-29 base case.

Cycle-5 boundary (B5+statics-2 batch + full-corpus redraw, 09-08 PM) 30
  • IN FLIGHTcoordinator

    UNL-091 L6 COST LEG LANDED (UNL-035 queue, 09-09 ~15:25, coordinator): statics.ts self_cost_this branch now derives BOTH UNL-091 legs - the plain L6 "This costs 2 less" gated all[level 6, not level 11] via the existing costLegThresholds instead-chain encoding, composing with the L11 instead leg so exactly one is live at any pool (6-10: -2E; 11+: -4E; volatile re-arm on band drop). levelSegmentFullyDerived gained the plain shape, so UNL-091 conditional_buff marker suppresses (funnel 2: derivation and marker never both live). Catalog regen carries both legs; Rust calculate_cost_modifier_set consumes unchanged (L6 consumer). Pins: TS xp-s3-l7l8 2-mod shape + chain shape + volatile band walk, xp-s3-level-gate census block; Rust catalog_carries_l6_play_cost_level_gates (UNL-091 1->2 legs) + unl091_self_cost_level_eleven_l6 (walk 5/6/10/11/drop-8). Gates: tsc clean; targeted xp 56/56 + statics/catalog/classifier/cost 326/328 (both failures standing baseline names); cargo 215/215; golden 1517-set BYTE-IDENTICAL. Full suite in flight at commit time. REMAINING QUEUE: ##184 (UNL-059/059A L16 choose-denial); ##186 (B3) inbound; UNL-095 grant merge parked.

  • PARKEDcoordinator

    Level 7/8 card restrictions now check live XP in the Rust engine - the XP stack is fully live in Rust.

    Status & technical detail

    S3 L7/L8 PRECONDITION RUST CONSUMERS LANDED (09-09 ~14:25, coordinator): op_precondition_allows gains level/not_level arms reading the RESOLVING player live pool (TS evaluateEffectPrecondition parity) - covers UNL-031 dual buff legs (+3 level6/+1 not_level6) and UNL-038 stun leg via the exported effectProfile op preconditions (both op paths, chain-item :8641 and ability-ops :12218, already routed through the gate). activate_gear now refuses the unmet leg of UNL-049 ability-level metadata.precondition pair BEFORE the activationCondition check (TS activateGearAbility mirror, live pool at commit). NEW model.rs level_gated_window_min_xp (TS levelGatedWindowMinXp mirror: squash + positional [Level N][>] match) + fire_triggers_ctx L8 gate skipping level-gated windows while owner live pool < N (UNL-040 play trigger suppressed below 6). No export/catalog change needed - op/ability-level preconditions were never quenched (quench is staticMods-only; export comment updated to say so). Pins (5): unl049_level_gate_refuses_unmet_leg_at_activation + unl049_level_gate_opens_at_threshold (behavioral, Honeyfruit leg split), l7_l8_op_precondition_level_arms_read_live_caster_pool, catalog_carries_l7l8_preconditions (export surface), level_gated_window_min_xp_matches_ts_semantics. Gates: cargo --lib 215/215; golden 1517-set BYTE-IDENTICAL; full suite 2143/2154 with the 9 baseline names byte-identical + 2 replays-route timeout flakes (51s/62s under box starvation) that pass 6/6 in isolation (environmental, same class as worker-SIGKILL). XP S3 Rust consumer stack now COMPLETE for landed TS families (enter_ready, keyword_grant, might, play_cost, preconditions). REMAINING QUEUE: UNL-035 L6 leg (costLegThresholds + instead-chain); ##184 (UNL-059/059A L16 choose-denial); ##186 (B3) inbound; UNL-095 grant merge parked.

  • IN FLIGHTcoordinator

    Level-6 XP costs now work in the Rust engine; dashboard tooling moved to trunk.

    Status & technical detail

    S3 L6 COST RUST CONSUMER + DASHBOARD TOOLING ON TRUNK (09-09 ~14:00, coordinator): 485f1489 dashboard generator+deploy script+README cherry-picked from feat/kanban-dashboard (39a24f9f+fe103c72, parent-approved; generated index.html gitignored, stays off trunk) - first deploy live at https://riftbound-kanban-preview.pages.dev (current through f89e37c7). L6: calculate_cost_modifier_set now heads sources with the PLAYED CARD itself (UNL-059/059A self cost ladder legs) and gates via gate_live_with_env per-source-owner live pool (caster env for self legs; in_combat snapshot preserved); 'play_cost' un-quenched; catalog carries UNL-091 level(11) -4E + UNL-059/059A bands (3-5: -2E/-1calm, 6-10: -4E/-2calm, 11+: -6E/-3calm); quench count 15 -> 2. Pins: catalog_carries_l6_play_cost_level_gates + behavioral unl059_self_cost_ladder_follows_caster_live_pool_l6 (band walk incl. volatile drop 11->5 falls back a band) + unl091_self_cost_level_eleven_l6. Gates: tsc clean; cargo 210/210; xp-s3+cost 82/82; golden 1517-set BYTE-IDENTICAL (4 traces reference UNL-059/091, none shifted). Full suite in flight at commit time. REMAINING QUEUE: L7/L8 precondition consumers; UNL-035 L6 leg (instead-chain); ##184; ##186 (B3) inbound; UNL-095 parked.

  • IN FLIGHT

    Fixed the 16 cards that had phantom buff effects from flavor text (##187).

    Status & technical detail

    ##187 CLASS C LANDED 83c76b87 (09-09 ~13:50, F2 patch absorbed clean via git am --3way onto post-L3/L4 tip 1ace8193): sentence-level buff-noun/debuff-reduce guards in matchEffectClasses + ACTION_CLASS_MAP fallback no longer resurrects buff without verb basis. Buff class off 15 records, debuff off 6, zero gains; true positives pinned (OGN-207, SFD-101/101-P, OGN-164/SFD-232/VEN-SP4, UNL-102/162/201, OGN-078/153). Gates at absorb: tsc clean; quirks-187 4/4; card-catalog+classifier-regressions+xp-s3 296/298 (both failures = standing baseline pair); cargo 207/207; golden 1517-set BYTE-IDENTICAL; Class A re-verify 76 ops all magnitude-carried (OGN-147 op dropped per F2 seam note 1 - its 'buff me' shares the spend-a-buff sentence, flagged for a later-lane proper parse; old +2 was wrong anyway). Full suite in flight. QUIRKS ##187 flipped FIXED. OGN-065 extra catch noted. Baked enriched JSON stale for the 21 dropped records until next enricher regen (same arrangement as prior classifier fixes).

  • IN FLIGHTcoordinator

    Level 3/4 might boosts now work in the Rust engine.

    Status & technical detail

    S3 L3/L4 MIGHT RUST CONSUMER LANDED (09-09 ~13:45, coordinator): static_might_bonus now self-scoped (scope.self===true, TS staticMightBonus mirror) with gate_live_with_env carrying the controller LIVE pool; NEW aura_might_stat_sum (TS auraMightStatSum mirror: board creatures/artifacts + legend slot EXT-3 via aura_sources, scope.self != true, gate env live pool, tokens_only + empowered_only honored, aura_scope_covers zone/board) wired into calculate_stat_modifiers after the self block; legacy aura_buff text scan skipped when the source carries might aura descriptors (TS carriesMightAuraMods guard). StaticScopePredicate gains empoweredOnly (VEN-130). 'might' un-quenched in RUST_LEVEL_CONSUMER_AFFECTS; catalog regen carries exactly the 11 level-gated might carriers (UNL-016/016-P/047/047-P/075/075-P level 3, UNL-094/191/231/231-STAR level 6, UNL-098 level 11 +4); quench count 26 -> 15. Pins: catalog_carries_l3l4_might_level_gates (11 carriers, gate/amount/scope) + behavioral level_self_might_follows_live_pool_l3 (UNL-016 volatile below/at/drop/regain) + level_aura_might_unl191_legend_slot_live_pool_l4 (legend slot scan; source covered - catalog type 'creature' normalizes to unit, TS mirror) + level_aura_might_unl231_board_source_covers_units_l4. Gates: tsc clean; cargo --lib 207/207; xp-s3 52/52; golden 1517-set BYTE-IDENTICAL (68/1537 traces reference the carriers, none shifted). Full suite in flight at commit time. REMAINING QUEUE: Rust consumers L6 cost + L7/L8 preconditions; UNL-035 L6 leg; ##184; ##186 (B3) + ##187 (F2) patches inbound; UNL-095 grant merge parked.

  • IN FLIGHTcoordinator

    Level-5 keyword grants work in Rust; 41 buff cards now default to +1 per their printed text.

    Status & technical detail

    L5 RUST CONSUMER ecb5a875 + CLASS A BUFF-41 FIX LANDED (09-09 ~12:40, coordinator): ecb5a875 card_has_mechanic_full self_live arm reads controller LIVE xp via gate_live_with_env + xp_pool env; 'keyword_grant' un-quenched in RUST_LEVEL_CONSUMER_AFFECTS; catalog regen; 3 pins (catalog_carries_l5_keyword_grant_level_gates, level_self_keyword_grant_follows_live_pool_l5, level_self_keyword_grant_unl113_dual_at_six). CLASS A (Tai ruling 'Fix the 41 now', iMessage 2026-09-09 12:09, phonemsg-01M23EX4KPG49WP8BEPM76CN1Q): 41 records whose buff-verb ops parsed with no magnitude - buff class template now carries magnitudeHint:1 (explicit printed +N still overrides) + scoped buff-verb fallback in the buildEffectProfile magnitude pass for ops whose winning class is grant/give; equal-to guard keeps the 4 Class B records unset (visibly-wrong at handler default, own lane ##186/B3); Class C spurious-op records filed as ##187/F2. No handler/Rust-code change (hint rides exported ops; ##185 addBuffCounter default-1 stays as defense in depth). Gates: tsc clean; targeted xp-s3+gear-observers 67/67 + buff-adjacent (card-catalog/classifier/long-tail/stats/battlefield) 326/328 with both failures byte-identical to standing baseline names; cargo 203/203; golden 1517-set BYTE-IDENTICAL (no trace shifted; 173/1537 traces reference the 41 ids). Full suite in flight at commit time. REMAINING QUEUE: Rust consumers L3/L4 might, L6 cost, L7/L8 preconditions; UNL-035 L6 leg; ##184; ##186 (B3) + ##187 (F2) patches inbound via parent; UNL-095 grant merge parked.

  • DONEcoordinator

    UNL-102/162 gave +2 might instead of the printed +1; fixed (##185).

    Status & technical detail

    ##185 FILED + FIXED TS-first (09-09 ~11:40, coordinator; Tai ruling via parent): UNL-102/UNL-162 "[Buff] me" applied +2 might vs printed +1 - parser emits no magnitude, stats.ts buff arm defaulted 2 (B2 pin corrected 2 -> 1). TS fix + Rust port (addBuffCounter no-magnitude default) in one commit; 426.1 binary idempotency + 2 XP cost already correct, unchanged. Corpus: buff-activating traces shift frames (old TS recorded +2) - attributable, rides the open combined redraw window. Flagged out of scope: general modify_stats no-magnitude default (stats.ts amount / Rust unwrap_or(2)) keeps its pinned 2.

  • QUEUEDcoordinator

    XP levels 1-2, unit activated abilities, and UNL-213 grants landed in both engines.

    Status & technical detail

    XP S3 L1/L2 + UNIT-ACTIVATION + UNL-213 + L3/L4 LANDED (09-09 ~05:45, coordinator absorbs): 314c9fff L1/L2 level-gated enter-ready TS+Rust (coordinator; 'level' un-quenched affects-scoped to enter_ready; 269ae381 a1 pin flip follow-up - a1 was accidentally left unstaged in 314c9fff, caught + repaired same morning) + dde71d85..e6d29209 B2 unit-activation (UNL-102/162 buff-self shim, UNL-126 class-wide grant, activateUnitAbility + activate_unit bot arms TS+Rust enumeration) + c4558219 F2 UNL-213 grant half (activatedAbilitiesOf merged query; coordinator wired the resolveChainedAbility seam: unit sources merged re-read, gear raw) + 1c07720c A2 L3/L4 might auras + UNL-059/A cost instead-legs (unified Level derive block; census 14 carriers incl. UNL-151; quench made level-affects-scoped). Gates at tip: tsc clean; targeted 156/156; cargo 192/192; golden 1517-set byte-identical through every absorb incl. catalog regen (UNL-102/126/162/213 content + null->[] quench churn; all corpus exposure already in the port-lag class). ##184 FILED (UNL-059/059A L16 always-gated choose-denial, pre-existing, own lane). QUEUED: L5/L7/L8 + UNL-091 L6/L11; Rust consumers for L3/L4/L6 (un-quench per family); B2 follow-ons (Rust actions.rs activate_unit dispatch :19096 mirror, UNL-102 catalog pin); UNL-095 grant merge Rust port still parked; F2 caveat - grantedUnitAbilities frame key flips 6 corpus files at next TS redraw unless Rust serializer mirrors first. Perf-lane flag noted: genesis_parity (2) + replay_smoke (1) FAIL identically on pristine - cycle-6 redraw did not refresh those fixtures (known artifact class, no action).

  • BLOCKEDCoordinatorcoordinatorredraw lane

    XP levels 7-8 and UNL-091's cost discount landed in the TS engine.

    Status & technical detail

    S3 L7/L8 + UNL-091 LANDED 1fce3a19 (09-09 ~09:47, A2 3bc50f60 absorbed by coordinator): L7 UNL-031 buff-instead dual-op split (+3 level(6) / +1 not_level(6), dispatcher precondition picks exactly one), L7 UNL-049 gated ability pair via metadata.precondition (activateGearAbility refuses the unmet leg; enumerator stays over-approximate per convention; restores the rainbow-rune gain the pinned snapshot dropped), UNL-091 L11 cost-instead via new self_cost_this kind (L6 leg deliberately NOT derived - UNL-035 queue contract: costLegThresholds + instead-chain, gate lands as all[level 6, not level 11]; 6-10 XP gets no reduction until then, record was XP-blocked, no regression), L8 UNL-038 stun leg level(6) precondition (move ungated), L8 UNL-040 trigger-window gate on live owner pool. evaluateEffectPrecondition level/not_level arms (volatile live-pool per Tai ruling). No Rust export change (family-scoped quench). Coordinator conflict resolutions vs 793d5f58: statics.ts union (L5 keyword + L7/L8 resolution-leg shapes), census pins 17 carriers both files. Gates: tsc clean; targeted 125/125 (9 XP suites); cargo 199/199; golden 1517-set byte-identical; full suite 2141/9 with 9 test names + 6 suites BOTH byte-identical to pristine baseline (no OOM extra this run; 201s on warm caches). REDRAW EXPOSURE (A2): 59 golden trace files reference the 5 carrier ids; 9 verified - carrier suite traces FAIL TS replay (Level legs live in replay now), baseline seeds 21/25 PASS 53/84 FAIL; remaining 50 candidates enumerated at /tmp/exposure78.txt on A2's box (request via parent if the redraw lane wants it). XP S3 STACK NOW COMPLETE TS-side (L1-L8); REMAINING QUEUE: Rust consumers per family (L3/L4 might, L5 keyword_grant, L6/UNL-091 cost, L7/L8 precondition arms - un-quench per family); UNL-035 L6 leg; UNL-059 L16 choose leg (##184, own lane); addBuffCounter Rust port; UNL-095 grant merge (parked).

  • IN FLIGHTRIG 6coordinator

    Level-5 keyword grants and unit-ability activation landed in Rust.

    Status & technical detail

    S3 L5 + ACTIVATE_UNIT RUST FOLLOW-ON LANDED (09-09 ~08:20, coordinator): 36d0caee F2 L5 keyword grants absorbed clean (UNL-047/047-P Deflect(3), UNL-075/075-P Ganking(3), UNL-113/113A Deflect+Ganking(6); kwGrants consumer reads live xpPool - intentional behavior change from ungated legacy scan, mid-turn revocation pinned; 6 records drop conditional_buff; census pins 14 -> 16, L1/L2 pin rows gain keyword_grant affects; TS-only, no catalog/regen churn). a95d59bf activate_unit Rust dispatch (TS activateUnitAbility mirror: own-ability list, recycleSelf closed, killSelf paid to trash, XP validated pre-payment, timing gates, zone-agnostic ability-link resolution) + activate_gear XP validate-before-pay ordering fix + UNL-102 catalog pin. Gates: tsc clean (L5); targeted 28/28 + 63/63; full suite 9 failed tests byte-identical to baseline names + effects/combat suite-level worker SIGKILL (OOM, environmental; same class as B2-boundary score-reasons kill); cargo 198/198; golden 1517-set byte-identical. QUEUED: L7/L8 (A2 in flight) + UNL-091 L6/L11; Rust consumers for L3/L4 might + L5 keywords + L6 cost (un-quench per family); Rust addBuffCounter modify_stats port (no corpus exposure yet - golden identical); UNL-095 grant merge Rust port still parked; grantedUnitAbilities frame-key Rust serializer mirror before next TS redraw. QA RIG 6 CAVEAT (parent relay 08:15): fleet probe covers 'offered and playable from hand' only - XP gains/spends, level gates, enter_ready timing NOT covered; bucket stability is not proof the new XP mechanics fire; behavioral coverage needs a targeted scenario driver (unassigned). SANDBOX DUTY-CYCLE NOTE (parent runbook relay 08:15): task-agent sandboxes suspend between agent turns - detached background loops (full jest suites, sweeps) get CPU only during live turns; throughput = wake cadence x turn length; 'silent 45 min' is not wedge evidence. At 07:35-07:52 a full-suite run starved this box so hard that even builtins timed out (119s x 9 probes); suite still completed (2422s vs 916s prior, suspension-distended) with results intact. Lesson: start detached suites, then keep turns short and let wake cadence drive polls instead of rapid in-turn probing.

  • QUEUEDcoordinatorlane-1

    The whole XP system (gain and spend) now works in the Rust engine.

    Status & technical detail

    RUST XP PORT LANDED 40eab5ea (09-09 ~05:09, coordinator lane-1): S1 gain ops (gain_xp arms both op ladders - flat/per_friendly_unit/optionalEnergyCost pay-when-able - + per-kill bracket UNL-192 gainXpPerKill) + S2 spend gates ('Spend N XP' head parse on ChampionAbilityCost + Equip/Empower costs; validate+pay wired into activate_legend/activate_gear/equip_gear/try_pay_additional_cost; duel-log spend strings byte-matched to TS) + level-gate machinery (StaticEvalEnv.xp_pool closure, level arm live-read fail-closed absent env, wired through enter_ready_env). GameState xp pool + xp_gained_this_turn ledger, begin_turn reset. Gates: cargo 189/189 (5 new acceptance pins: champion/equip Spend-leg parse, level-gate env live-read, pool+ledger+begin_turn, UNL-201 legend end-to-end spend incl. pool-short clean reject); golden_traces 1517 diverged set byte-identical to cycle-6 baseline - NO flips, XP parity not yet gate-visible (XP-active suites diverge at seq 0 pre-existing). PARKED: UNL-095 grant_ability + granted-ability merge on combat_win not yet ported. NEXT: TS L1/L2 (Level enter-ready descriptors + legacy ungated scan narrowing, atomic, per xp-s3-level-gate-spec), then S3 lanes A (L3/L4) land on top.

  • DONEredraw lane

    Re-recorded all 1,536 reference games after the combat and trigger changes; 1,520 changed.

    Status & technical detail

    CYCLE-5 REDRAW ABSORBED 2fd22cfc (base af44c3c5, redraw lane): 1520/1536 traces changed, determinism clean, catalog zero-drift, no churn outside tests/traces. Committed-harness reproducibility spot-verified byte-exact (seeds 10/13/28 regenerated == package digests). Gate 1517 FAIL / 19 PASS - informative-RED port-lag, my run's divergence set byte-identical to the lane's fail-seqs log.

  • PARKEDRedraw lane

    False alarm during a corpus review: a replay misread bot picks as game events.

    Status & technical detail

    INTEGRITY INCIDENT + RESOLUTION: absorb initially held when my instrumented replay picked play_card where the new trace had advance_phase. Redraw lane bisected the churn to f748d08b (##169 legend gate) and exonerated its runner. My replay had measured the bot PICK, not the emitted EVENT - the harness reject-guard converts a rejected pick to advance_phase, and the ##169 gate correctly rejects legend plays from hand. Lesson: bisect at the emitted-event level, not the bot-pick level.

  • DONE

    All 87 odd trace changes traced to legend plays now correctly rejected.

    Status & technical detail

    ATTRIBUTION: 87x play_card->advance_phase = legend plays (VEN-143 class) now correctly rejected; f748d08b corpus-neutrality claim RETRACTED (pickPlayableCards admits legends into the deck pool - always did). ##175 FILED (deck-pool + enumerator hygiene, rides next redraw). 3 winner flips ##139 gear activations (seed-17 OGN-120, seed-48 OGN-204, seed-99 SFD-078); 2 terminator flips to infinite_loop (seed-17/31); remainder downstream of the legend-gate class. Nothing untraceable left.

  • QUEUEDredraw lane

    Cycle-6 re-record of all reference games absorbed; the parity freeze lifted.

    Status & technical detail

    CYCLE-6 REDRAW ABSORBED f7357db7 (09-09 ~04:57, redraw lane delivery on 2f0fd0c8): combined window closed - 1535/1536 traces + catalogs (1423, byte-identical to tip-scripts regen at absorb; 10-record XP delta verified per-record). Golden gate 1517 FAIL == pre-redraw port-lag baseline byte-identical / 19 PASS; 7 action changes + 22 winner flips individually attributed (5 UNL legend suites = S2 spend gates gating seq-0 activation); determinism clean. DEFERRED-PARITY WINDOW CLOSED. Freeze LIFTED: behavioral TS absorbs resume - queued: S3 Level gates L1-L8 (L1 + legacy enter-ready narrowing ATOMIC), unit activation, UNL-213 grant. Rust XP port (S1/S2 spend gates + gates) is now the top port-lag class.

  • PARKEDcoordinatorlane Fredraw lane

    XP tracking added to game state; Wily Newtfish's conditional Ganking fixed.

    Status & technical detail

    XP S0 + UNL-108 LANDED (09-09 ~01:15, coordinator + lane F): d79c0b6d S0 (xp frame key both engines + per-turn gain ledger + UNL-095 ability payload frames; golden 1517->1539 by design, 22 previously-green files flip on the key, deferred-parity window per redraw-checklist 0.5) + 44a838b2/2263519d UNL-108 conditional-static consumer on the ledger (##183 FILED+FIXED: pre-existing unconditional-Ganking text-scan leak). COMBINED REDRAW WINDOW TS-COMPLETE (##179 + 4a + XP frames) - offered to parent 01:02, redraw lane decision pending. Remaining XP: S3 Level-gate consumers (volatile per Tai), B2 gaps UNL-102/126/162/135/213.

  • QUEUEDcoordinatorlane A

    Clean stat auras (phase 4a) plus XP gain and spend landed in TS.

    Status & technical detail

    STATICS-4A + XP S1+S2 ABSORBED (09-09 ~00:55, coordinator): lane A stat-auras 4a ae5104d0 (11 records - 7 scoped + Darius OGN-243/a + SFD-236/STAR text-identical INCLUDED per coordinator adjudication; OGS-013 global-read behavior fix riding; gates tsc clean / p4a 11/11 / adjacent 90/90 / full-suite failure set == pristine 0356bda9 / traces 1517 identical) + B2 XP S1+S2 stack 94636cab..b511976a (7 commits: contract shim + gain_xp flat/scale, Hunt synthesis all 19, play gains UNL-092/034/158, UNL-053/136/107, F10 killSelf, UNL-157, UNL-116/A, UNL-143/A enemy_alone_here, UNL-095 grant_temp_ability op, UNL-192 per-kill deaths ledger, UNL-109 pay-when-able; S2 'Spend N XP' in activated-cost grammar paid in gear + champion-legend + Equip paths, cost.xp unfail-closed at 3 gates; xp suite 45/45; 14d86107 coordinator test-strictness hygiene). GAPS NOT BUILT (B2-reported): unit-activation entry point (UNL-102/126/162), UNL-135 hand-pick, UNL-213; UNL-108 excluded pending S0 per-turn gain ledger. NEXT: S0 (TS PlayerState.xp + per-turn gain ledger + serializer frame key + Rust mirror same window) - frame-key change flips golden traces BY DESIGN, paired with combined redraw (##179 66-seed + 4a seeds 2/3/41 + XP frames).

  • PARKED

    'Enter ready' machinery done in both engines; all acceptance suites green.

    Status & technical detail

    STATICS-2 COMPLETE: enter_ready machinery (8 gates, engine-private deaths ledger) + all 4 rig acceptance suites absorbed (62/62 + modal 4/4 = 66/66 scoped). ##173 FIXED TS-first (spawned-token aura bypass; corpus exposure seeds 21/61 folded into this redraw). ##174 LANDED 09-08 ~midnight (##181): Rust enter_ready consumer live at deploy (b4de6618 foundation + bb3d1b9f B2 deaths ledger + defbcd5b consumer incl. legend-zone aura scan per Tai ruling); 184/184 lib, traces 1517-set identical, 7 phase-2 gate types un-quenched (14 mods land). ##171 FILED (UNL-122 spell-history precondition, deferred XP-class). ##172 FILED (promo parenthetical breaks exact-name consumers, systemic).

  • DONElane D

    Modal 'choose one' dispatch fix absorbed (Aphelios class).

    Status & technical detail

    ##102/##111 MODAL DISPATCH absorbed 8d61e8d6 (lane D; corpus-neutrality independently verified - zero modal carriers in 119 traces; judgment call on source-fallback drop reviewed + accepted). Residue: OGN-157 Udyr activated-path modal, named.

  • DONElane A

    Rust regex cache landed: 88 sites, 79% faster on the bot bench.

    Status & technical detail

    ##170 REGEX SWEEP absorbed 12a0dd17 (lane A; Rust-only LazyLock pattern cache, 88 sites; A/B -79% on bot::bench; lib 126/126; gate unchanged 1517). MERGE NOTE: overlaps perf lane's lwh_regex cache on feat/rust-perf - decide which cache survives when perf merges.

  • IN FLIGHTLANE-FLane-F

    Older 'fixed' entries re-checked; one real residue found and filed (##176).

    Status & technical detail

    LANE-F RESIDUE VERIFICATION DONE (bodies vs tip): one LIVE parity residue -> ##176 FILED (Rust OGN-277 Back-Alley Bar fires no buff observers; Simian repro). Lane-F follow-up FIRED: committed jest+cargo regression matrices for the six FIXED-partial dispatches (##93/96/105/112/113/114), ##93 repro included.

  • DONE

    The search bot's 2x slowdown is more game content, not an engine bug.

    Status & technical detail

    PERF FLAG RESOLVED: search-bot 2x slowdown = behavioral expansion (+35% actions/game, +20% turns, per-action cost flat ~0.22-0.25s both eras) - more live effects post-regen landing on MCTS budget. No engine change; bot-side budgeting is the knob.

  • IN FLIGHT

    Prep for statics phase 3: 7 genuine grant-keyword auras confirmed.

    Status & technical detail

    STATICS-3 PREP STARTED: B2 census absorbed 3894d5b2 (7 records / 5 bases verified genuine grant-keyword auras). Design inputs recorded: legend-zone aura source enumeration (Lucian/Rumble), two-hop equipment grants (Lucian), new source_in_showdown gate (Syndra, fail-closed), sameLocationAsSource live scope (Taric), Accelerate grant consumer = play/add-cost pipeline (Rek'Sai). Phase-3 arms purely additive - no corpus-churning narrowing (probe-verified).

  • DONElane 2lane Alane F

    Lane roster update: several lanes released, others reassigned.

    Status & technical detail

    Lane roster: G/H/rig-2 released; B1+B2 on phase-3 prep; lane 2 on its 4 requiresSelection suspects; lane A delivered ##170; lane F on regression matrices; redraw lane idle post-delivery, corpus lock released.

  • IN FLIGHT

    Queue: power-cost Rust port, castmatrix triage, the XP system, and more.

    Status & technical detail

    QUEUED: ##165 Rust port; castmatrix triage; XP system IN FLIGHT (Tai fired the build 09-08 11:39 PM; rulings: volatile Level auras, legend-zone scan DONE in ##174, all-65 floor; slices S0-S4 per docs/xp-system-implementation-spec-2026-09-08.md); UNL-035 self-cost-reduction (cost-statics phase); "expire temporary effects via beginTurn" pre-existing flake triage; jest141 slim fixture now LANED (agent fired 09-08 ~13:00 off 64a905c3, target: suite green in-sandbox under 2GB, assertion-identical, CI workflow still passing).

  • DONELANE-2

    Checked 4 suspect cards: all correctly gated; reasoning logged.

    Status & technical detail

    LANE-2 TRIAGE LOGGED (4 requiresSelection suspects, all gates CORRECT - whitelist declined for the right reason): (a) analyzeSpellTargeting needs a 'player'/opponent-scope branch + opponent-hand pick op (VEN-085/OGN-156; preps UNL-101 Call to Battle rider) - both engines via _spellTargeting regen; (b) UNL-103 Disposal Order rides the modal family (##111 residue) + graveyard multi-pick; (c) UNL-013 Lotus Trap rides a damage-modifier op family (damage-doubling rider has no op today).

  • QUEUEDcoordinator

    Statics phase 3 batch 1: 11 aura records now derive from card text.

    Status & technical detail

    PHASE-3 BATCH 1 LANDED a931c3cc (coordinator machinery, 09-08 PM): derivation arms + aura query points for the 11 batch-1 records (UNL-041, OGN-015, SFD-071, SFD-054/054A, SFD-183/241, SFD-029, SFD-181/240, OGN-074). Catalog sweep clean (only batch-1 records rederive). P3-1 (Farron self-Assault) + P3-3 (Jax self-Quick-Draw) FIXED via generalized carrier replacement; Taric innate Shield restored (text have/gain guard had nulled it). Acceptance 17/17 + census pins flipped 21/21; full TS suite failure set identical to baseline (9 known flakes). DEFERRED: UNL-146 Repeat (NO generic Repeat consumer exists - keyword_repeat is a marker-only handler; same shape as D-1 Vision) and Rek'Sai's Accelerate consumer (only non-hand play path is effect-driven play_from_graveyard, costs ignored - no election point); Rek'Sai's descriptor IS derived with parsed cost payload. 'here' adjudicated uniform = source's current location. NEXT: Rust port of the phase-3 arms + aura query (per per-phase loop), then batch-2 scoping.

  • DONElane-1

    19 spells the engine wrongly rejected now cast legally (TS side).

    Status & technical detail

    CASTMATRIX TRIAGE LANDED adc4ce5e (09-08 ~22:10, lane absorb): ##179 - gear-scope enumeration arms + requiresTarget play-gate carve-out fix all 19 valid-leg records TS-side; full-suite failure set 9 (strict subset of baseline 10). Corpus: 66/141 exposed seeds flip by design, rides next redraw window. FOLLOW-UPS: Rust gear-arm mirror + ##167 reaction-class direct-dispatch probe DONE same-day (lane-1; pins landed, 164/164, traces 1517-set unchanged). OPEN: OGN-180 over-offer quirk candidate.

  • QUEUEDcoordinatorlane-1

    Statics phase 3 batch 1 mirrored into the Rust engine.

    Status & technical detail

    PHASE-3 BATCH 1 RUST PORT LANDED (coordinator adjudication lane-1, 09-08): rust-engine mirrors the phase-3 arms + aura query (##178) - scope/keywordCosts schema, gate_live_with_zone, aura_keyword_membership/value_sum, card_has_mechanic_full, assault_bonus_value_full; consumers wired incl. quick-draw hand-zone read + ganking move gates. cargo test --lib 160/160 (8 new); golden traces 1517 identity set unchanged; catalog regen 12 cards, quench count unchanged. NEXT: batch-2 scoping.

  • PARKEDcoordinator

    Design calls for phase 3: gear grants land on the equipment card.

    Status & technical detail

    PHASE-3 DESIGN CALLS (coordinator, 09-08): Q-1 gear-grant conferral = option (a) - grant lands on the Equipment card; unit-side keyword query consults attached equipment's grants (single confer point, matches B2's Lucian two-hop finding). D-1: Vision SCOPED OUT of the first phase-3 batch (no generic Vision consumer exists; SFD-065/OGN-100 deferred). EXT-1 sameBattlefieldAsSource, EXT-2 zone 'hand' grants, EXT-3 legend-zone aura source scan all APPROVED for phase-3 machinery. P3-1: descriptor REPLACEs carrier text read (Kayle ruling convention). P3-3 Jax enricher mis-parse ("Draw" inside "Quick-Draw") -> enricher regen review.

Cycle-4 boundary (##165 power-cost corpus redraw + wave-1 absorb, 09-08 AM) 10
  • DONEredraw lane

    Cycle-4 re-record: printed power costs changed 1,520 of 1,536 reference games.

    Status & technical detail

    CYCLE-4 REDRAW ABSORBED d74ac2b0 (base 252d680, redraw lane): 1520/1536 gated traces changed, determinism clean (sharded == single-process byte-identical), 17 unchanged plausible (no power-costed openers). Gate 1519 FAIL / 17 PASS - entire RED is port-lag class (Rust needs ##165 port); zero fails on unchanged traces. Flags adjudicated: 1502 same-action state deltas (power pools recorded from game start), 17 seq-0 action changes (opening play now illegal under power payment, individually named), 40 full-baseline winner flips, 1 terminator flip (seed-102 victory_points -> timeout/infinite_loop at 13-turn recorder bound; pacing change, spot-verified). Nothing untraceable.

  • DONElane-Alane-Glane-H

    Wave-1 stack landed: bogus targets are now zero in both engines.

    Status & technical detail

    WAVE-1 STAGED STACK LANDED (all verified individually + combined): lane-G ##167/##168 (6 commits; castmatrix: TS 378 bogus-accepted -> 0, Rust 4961/519 -> 0, 0 valid-leg diffs), lane-A ##151 (TS Flow enumeration arm + canPlayCardFromTrash probe; Rust bot targets:[] mis-target fix - 8 of 18 Flow printings), lane-H ##139 (TS gear-activation enumeration arm). Combined gate at 2de82710: tsc clean, cargo 124/124, jest quirk suites 56/56 x3 runs. Corpus churn class for A/H arms rides the NEXT redraw (baseline-bot action space where Flow cards sit in trash / gear activations).

  • DONELane-F

    Closed out ##107-109 with 30 regression tests in both engines.

    Status & technical detail

    Lane-F ##107/##108/##109 closeout LANDED c88762b7 (QUIRKS FIXED + 30 regression tests both engines; jest.transpile.cjs committed as the in-repo isolatedModules override).

  • DONE

    Legends can no longer be cast from hand (Tai ruled it a bug).

    Status & technical detail

    ##169 legend gate FIXED f748d08b (Tai ruling: bug, Side A - type gate both engines + test; corpus-neutral, 0 legend ids in 1536 trace decks). ##170 FILED 7b1a9841 (per-call regex compilation sweep, 155 sites; perf-lane hot arms cached on feat/rust-perf da00bf2).

  • QUEUEDlane-J

    Sweep refreshed stale QUIRKS statuses (7 fixed, 8 partial, 1 superseded).

    Status & technical detail

    QUIRKS header sweep 26f6bcba (lane-J): FIXED ##87-92/142, FIXED-partial ##93/96/105/110-114 with residues in body, ##94 superseded by ##145. Residual FIXED-partial sweep queued post-first-wave.

  • DONE

    Fixed a coin-flip test that used wall-clock randomness.

    Status & technical detail

    ##165 P1 test flake FIXED 2de82710: rune-pool refresh assertion used prefix match on an unseeded (Date.now()) engine shuffle - ~50% flake pre-existing on c88762b7; exact-id match, 10/10 green.

  • DONE

    Lesson logged: rebuild scopes must re-verify against live code, not stale notes.

    Status & technical detail

    WAVE-1 REBUILD OVERCOUNT NOTE: 4 of 6 lane scopes (G/H/F/A) found their core work already merged Sep 5 (cdbd781/a6d9070/2220c3b/179061d). Cause: rebuild spec mapped scopes from open-looking headers + stale picture, not re-verified bodies. Rule: future rebuild specs re-verify body state against live tip before scoping; 26f6bcba header sweep is the truth baseline.

  • PARKEDLane-G

    Rust charged runes before validating targets; reordered to match TS.

    Status & technical detail

    Lane-G side finding: Rust parked bogus casts behind optional additional-cost prompts before validating targets (TS validates first) - hoisted target-gate block to TS's position; target-rejected casts no longer pay runes first (latent divergence, corpus-neutral). Gotcha for fixture writers: committed Rust catalog snapshot already carries ##165 power costs - fixtures need domain-correct runes.

  • DONERig-6rig-6rig6

    Rig 6's repo access token rotated after upstream cleanup.

    Status & technical detail

    Infra: rig-6 PAT rotated (riftbound-engine-rig6-readonly, Oct 7 2026, vaulted; upstream revocation from orphan-token cleanup). Rig-6 re-sweep go sent at absorb-aligned tip.

  • QUEUEDlane-Aredraw lanerig 4

    Queue: the big batched re-record, a slim test fixture, castmatrix triage, residues.

    Status & technical detail

    QUEUED: B5+statics-2 batched redraw (folds ##86/##136 classifier fixes, ##150 combat_bonus magnitude, VEN-166 each-split op-modeling) - redraw lane assigned; slim-catalog jest141 fixture; castmatrix triage (205 valid:fail->ok / 19 cards + 133 in-pair / 29 cards); ##170 regex sweep; FIXED-partial residues ##93/96/105/112/113/114; lane-A Tier-8 Flow heuristic arm (declined for now, rides a later heuristic pass); VEN-113 Kennen temporary Flow grant stays open (temporary-grant machinery). (batch-A cycle-1 MERGE landed 09-07 03:41; merge = wip/batch-a 51f1fb9 + replay.rs 3a01fcf + docs; tsc clean, cargo 48/48). Gates: r21 GREEN 1521/1521; r22c replay.rs-equivalence GREEN (0 fails full corpus, seed 77 155/155). golden_traces harness regression (rig 4 flag, 04:10): e5a8efe keyed setup on (catalog, decks), so quick/scenario traces after a catalog-loading full trace replayed with catalog decks - 20 seq-0 failures; verify per-file was never affected (gates stand). Fixed 3a01fcf, full golden_traces GREEN 80.7s.

Batch A - MERGED to trunk 5a6f44c (09-07). Cycle-1 redraw COMPLETE on wip/batch-a 51f1fb9 (corpus r22: 141 traces + coverage; gate 1527 PASS / 9 FAIL) 8
  • DONElane 1

    Fixed a leak that stamped turn numbers into hashed game frames (#148).

    Status & technical detail

    #148 frame-leak fix ceac9f7 - lane 1 - SHIPPED (e33072b stamped createdTurn into hashed frames; strip at to_frame; guard corpus-neutral)

  • QUEUEDLANE 1LANE 2

    Rust log-format debt assigned to lanes 1 and 2.

    Status & technical detail

    Rust log-shape port debt from cycle-1 classification (seed 3/43/70/74/94 ##149 counter message+flag -> LANE 2 (assigned 09-07); 77/90 Emperor's Dais token msg + 27 prevention chunking -> LANE 1 (small mirrors, queued after ##137 dispatch plumbing)

  • DONE

    All 11 game-outcome flips traced to real fixes; none unexplained.

    Status & technical detail

    Winner-flip attribution CLOSED (all 11 traceable, none flagged): 10 = ##144 [Temporary] keyword-ownership (old text-regex killed Lillia/LeBlanc/Petal-Pixie-class units that only MENTION [Temporary]); seed 12 = ##150 magnitude. Cycle-1 review COMPLETE

  • DONErig 5

    Six queued fixes from the B3 pile applied (##144-150).

    Status & technical detail

    B3 pile 6/6 - rig 5 - APPLIED: ##144, ##145, ##146, ##147 (TS-only), ##148, ##150

  • DONElane 2

    Counter-spell guard fast-tracked (##149).

    Status & technical detail

    Counter un-shadow guard (##149) - lane 2 - APPLIED fast-track; 6 hash-only traces ride the redraw

  • DONErig 1

    Domain-cost enforcement now matches printed rune costs.

    Status & technical detail

    Domain-cost enforcement (F9 follow-through) - rig 1 - APPLIED 611e184 (corpus-inert; accelerate test semantics corrected to tap+recycle)

  • PARKEDrig 4

    Gear cost-parsing fixes applied; the win-condition trigger is held.

    Status & technical detail

    Gear path ##139 (OGN-242 + VEN-075 + UNL-088 cost-parse legs; win-condition trigger HELD) - rig 4 - APPLIED 71f0eab..a211c59 + test fixups 237bbc1

  • IN FLIGHTlane 2

    Counter-spell lane (##133/134) in flight.

    Status & technical detail

    Counter lane proper (##133/##134, Hard Bargain anomaly) - lane 2 - IN FLIGHT (not batch-A blocking)

Cycle-3.5 close + ##165 power-cost cycle (lane 1, 09-07 PM) 8
  • DONEredraw lane

    Cycle-3.5 re-gate: 1,531 of 1,536 reference games pass.

    Status & technical detail

    Cycle-3.5 re-gate COMPLETE on 3088931 (redraw lane, ~9:06 PM): gate 1531 PASS / 5 FAIL, all 5 redrawn-changed traces (port-lag). Corpus absorb LANDED 1bbb434 (182 changed traces + coverage, manifest verified byte-for-byte).

  • DONE

    All trace flags adjudicated; nothing unexplained.

    Status & technical detail

    Flag adjudication COMPLETE: seed-57 seq65 = ##163 verbatim-candidates (both legal, bot takes candidates[0]); seed-6 seq0 = AE-2 Cleave combat_bonus->keyword_grant migration (flip exactly at 572f886; OLD line was the implausible one). Carried cycle-3 flags 14/87/42/36 stand. R1 double-equip targeted redraw list EMPTY (0/119 traces).

  • DONE

    Rust's Ganking check was missing granted keywords; seed 26 fixed.

    Status & technical detail

    Seed-26 alignment FIXED a25bea3: Rust has_ganking lacked the ##136 granted_keywords arm (TS cardHasMechanic order: listed -> granted -> descriptor -> text); cargo 88/88, seed-26 171/171, other 4 fails byte-identical. Gate posture 1532 PASS / 4 FAIL (port-lag: suite-OGN-299 seq4, suite-OGN-249 seq80, suite-SFD-007 seq0, suite-SFD-007-P seq1).

  • DONE

    Found: the importer dropped every printed power cost (545 cards).

    Status & technical detail

    ##165 FILED 5b00be0 (9:11 PM): enricher data-drop class - transformChampionDump parseCost hardcoded powerCost/powerType null; 545 raw records carry power costs (363 units / 141 spells / 41 gear; 502 single-domain, 43 multi-domain), 0/1423 enriched did. Found via Tai's Premonition demo question (SFD-087: 2 energy + 3 Mind power).

  • DONELane ALane Blane 2

    Tai ordered the power-cost fix first; 43 hybrid-cost cards verified by hand.

    Status & technical detail

    ##165 CYCLE ORDERED FIRST by Tai (9:12 PM), ahead of the B5+statics-2 batched redraw (lever-1 batching superseded): power-cost breakage invalidates corpus traces. P0 LANDED 480930a (~9:21 PM): parseCost reads dump `power` field, powerDomains arm for multi-domain; dry-run regen validation = exactly the 502 single-domain records change, cost-only. NO catalog regen committed - waits on rig 5's 43-card overrides table (data-pinned/power-domain-overrides.json, totals must equal dump pip count). Lane A = P1 TS payment tests (quirk lane 2), Lane B = P3 rust parity prep (rig 4), both based on 480930a. Regen + full corpus redraw serialized under the lock.

  • QUEUEDRig 5redraw lanerig 4

    Power-cost payment tests landed; 43 hybrid cards confirmed as printed.

    Status & technical detail

    P3 LANDED 23ea42e (rig 4 recycle-pay allocator tests 6/6); casing trap filed ##166. Rig 5's 43-card table DELIVERED 9:30 PM with render evidence: ALL 43 print HYBRID pips (each pip payable as either domain of the pair) - joint-key encoding ({"mind/body": N}) accepted, data-pinned/power-domain-overrides.json committed. P0.5 LANDED d042a81: hybrid legs in both allocators (mirrored claim order), cargo 97/97, tsc clean, corpus-inert pre-regen. P2 REGEN COMMITTED 8bd041b (~9:36 PM, parent go 9:35): 545 records change - enriched cost fields only (502 powerCost/powerType + 43 powerDomains), rust powerCost only, 1423 both sides. NEXT: full corpus redraw (redraw lane) under the lock, expect massive cost-driven churn, all traceable to printed costs by construction.

  • QUEUEDRig 2

    Post-import cleanup: test fixtures updated; castmatrix harness landed.

    Status & technical detail

    Post-regen trunk maintenance (09-07 late): 90adc55 fixture fixup (7 champion_leader + 1 bot enumeration tests died on printed power costs - energy-only fixtures, not engine defects; cargo release 97/97); 2d4a336 redraw-checklist 0.5 ("gate green" only at absorb-aligned tips; parity-clean standard in deferred-absorb windows; answers perf lane's 822660d red-vs-own-corpus question - KNOWN ARTIFACT, no QUIRKS); 7ede7a2 weaponmaster test #[test] restore (attribute accidentally dropped by aeff25c Sep 5, latent failure exposed by ##165, fixture fixed, 98/98; dead-code sweep = no other silent tests); e84afcc+8797add castmatrix harness landed + triaged: QUIRKS ##167 (Rust play_card target-identity gap, 5468 cells/534 cards), ##168 (TS bogus-target acceptance, 378/44), ##169 (legends castable via play_card, rules-ruling candidate); 205 valid:fail->ok + 133 in-pair-fail cells queued for post-redraw per-card triage. Rig 2 silent-offer class noted: decks with zero runes of a demanded domain lose offers invisibly; all 4 committed rust decks audited SAFE.

  • DONE

    Tai approved the speed levers; statics phases 2-5 partitioned and pre-staged.

    Status & technical detail

    Accel levers 1-3 APPROVED (Tai 6:42 PM); statics 2-5 partition + B5 pre-stage + ##165 plan on wip/lane1-preplan @ c1f935f (4-rig split primary, 2-rig fallback per Tai 6:48 PM).

Cycle-3 AE merge + adjudication (lane 1, 09-07 PM) 3
  • DONE

    Temporary-grant machinery (the AE stack) merged into trunk.

    Status & technical detail

    AE stack + battlefield arm + adjudication fixes MERGED onto 822660d: 710df35 AE-1 [Temporary] machinery (##136 engine leg), 572f886 AE-2 combat keyword grants w/ 807.2/814.2 summing (##150 residue), b4a4d03 AE-3 probes + gear/unit_or_gear bot arms, c2ca429 AE-3a rb_web gkw observability, 25a2ecf battlefield scope arm, 21f5979 VEN-072 empower_count regression fix, 9364a46 ##163 explicit-candidate prompt enumeration (both bots), 2d9afef ruleRefs 713/714->807/814 housekeeping (103 cards, inert). Catalogs regenerated on merged tree: zero drift pre-housekeeping, scoped-only post.

  • DONE

    Cycle-3 trace flags adjudicated: all traced to real changes.

    Status & technical detail

    Cycle-3 redraw adjudication COMPLETE: VEN-072 = statics-merge Rust empower arm overcount (fixed); terminator flips 11/22/90 = ##163 harness wedge (fixed, ##152 NOT a regression); seed-42/36 action changes CLEAN (QUIRKS #74 Rengar occupancy deploy grant, 9213c17, printed-text traceable); port-lag seeds 52/102/81/56 all PASS on merged tip vs fresh regens (52 = AE-2 Blood Rush descriptor ahead of pre-merge corpus, resolves on re-gate).

  • PARKEDlane 1redraw lane

    Corpus absorption deferred per the sequencing ruling.

    Status & technical detail

    Corpus absorption DEFERRED per sequencing ruling (parent 14:44): redraw lane re-gates the corpus on the merged tip post-push; lane 1 absorbs the final corpus after.

Dispatch (cycle 2) 10
  • DONElane 1lane-2

    Begin/end-phase triggers for board permanents done in both engines (##137).

    Status & technical detail

    ##137 board-permanent begin/end-phase dispatch - lane 1 - CLOSED (cycle 2): TS FIXED-partial + RUST PORT d170b0e + lane-2 mirror verified equivalent (their 0006/0008 superseded; their patch caught one gap in mine - triggers-twice amplifier on the battlefield arm - fixed 5fc4da9). Mushroom Pouch facedown fails closed in Rust (hidden-card state unported; corpus-exact). Marker ledger: OGN-101/109, VEN-005/006/133, OGN-160, UNL-088

  • DONElane 2redraw lanerig-4

    Cycle-2 re-record: zero changes, all 1,536 games identical.

    Status & technical detail

    CYCLE-2 REDRAW COMPLETE 09-07 ~9:05 (redraw lane, gate 59f6cb3): ZERO CHURN - all 1536 traces + coverage.json byte-identical (whole-tree hash). Pouch-armed case never materialized. Corpus lock RELEASED. Gate on 59f6cb3: 1527 PASS / 9 FAIL = rig-4 pre-existing drift set (seeds 3/27/43/70/74/77/90/94 + suite-UNL-106), all classified stale/verified-vs-regens by lane 2. Coverage 1396/1423 (98.1%)

  • DONELane-2lane-1

    Lane-2's Rust debt sweep closed: everything stale, no real debt.

    Status & technical detail

    Lane-2 REAL_DEBT sweep CLOSED: 0007 replay terminal-event drain guard (6ec2f1f, ##160) + 0009 moonfall activation stamping (b9ea29e, ##161) applied; 0006/0008 superseded by d170b0e (##159 filed for the class). Final classification: 109 committed-golden failures all stale-class, zero real debt; debt seeds 1/25/39/96/99 PASS vs fresh trunk-TS regens (lane-1 re-verified)

  • PARKEDlane 1

    Bots no longer freeze on unaffordable mandatory choices (##162).

    Status & technical detail

    ##162 bot Stuck class FIXED 09-07: play_card parked mandatory additional-cost choices with no cost-feasibility probe (TS playCard:3011 parity) - 27/40 evo-champion seeds stalled on OGN-208 Cruel Patron; probe fix 97a0b9c (lane 1, 0/40 post-fix) + gear enumeration arm 227302e (ftc 138d6e62 cherry-pick). Invariant adopted: every FIXPASS-C validator scope needs a matching enumeration arm

  • DONE

    All 1,423 card images now load without failures.

    Status & technical detail

    Card-art pipeline closed: split/promo id sanitization db51a15 + serve_image '_' alphabet 7145a39 (ftc); all 1423 images fetch 0-fail

  • DONE

    Trunk snapshot marked as the cycle-3 base.

    Status & technical detail

    TRUNK TIP 7145a39 = CYCLE-3 BASE (parent ruling 09-07 ~9:05)

  • QUEUEDlane 2lane-1lane-2

    Cycle-2 merge stack: champion-leader Rust port, classifier cluster, and more.

    Status & technical detail

    Cycle-2 merge stack (on 12870e5, tsc+cargo 61/61 green): ##147 champ-leader Rust port (rig 1), classifier cluster COMPLETE ##143/##130/##132/##138/##138b/##129 (rig 5), ##154 Mundo/Glowstone op-fidelity + marker flip (rig 5 ops, lane-1 flip), ##135 Reflection FIXED (rig 4; copyOf-other HELD pending choice prompt - selection-prompt workstream), ##141 recordMove attribution FIXED (rig 2, playerIndexOverride), Rust 425 counter port ##133/##134+##149 mirror (lane 2; deferred-resume empty-chain caveat open). OUTSTANDING: ##151 Flow (rig 4 regenerating post-wipe), rig-2 jest141 needs canonical-env run, lane-2 full-corpus Rust regression counts

  • DONElane-1rig 4

    Nine pristine-trace failures triaged: port debt, not regressions.

    Status & technical detail

    Baseline-drift triage (rig 4 flag): 9 pristine-trunk golden failures = 5 counter seeds (425 port flips green) + 77/90 Emperor's Dais + 27 prevention chunking (lane-1 port-debt) + suite-UNL-106 unattributed

  • DONE

    New finding: Sona's ready-4-runes fires without battlefield presence.

    Status & technical detail

    NEW Sona over-fire sub-finding (OGN-073/VEN-SP2 ready-4-runes fires without battlefield presence) - QUIRKS entry pending, fix rides ##137 window-condition work

  • PARKED

    Parser windows for VEN-005/006 parked in-lane.

    Status & technical detail

    Parser windows VEN-005/006 - dispatch follow-up - PARKED in-lane

Statics arc 2
  • QUEUEDrig 2rig 6rig-1

    Statics phase 1: cost modifiers done, 35/35 acceptance green.

    Status & technical detail

    Phase 1 (Option A, cost modifiers, 7-card acceptance set per ##131) - MERGED onto cycle-3 base at 0bd7d0f (Sep 7 ~9:20 AM): gates green (tsc clean, cargo lib 81/81), 5-seed fresh-regen parity 5/5 PASS, zero catalog drift vs merged regen. Parity fix riding the merge: TS serializer now emits empowerCount conditionally (Rust already did; without it every empower_unit diverged replay) - frames now churn vs cycle-2 goldens at first empower, folded into redraw flags. Statics acceptance harness statics-acceptance.tmp.ts was never committed (rig sandbox); 17 new cargo statics tests + tsc stand as the committed gate, harness rebuild from docs/statics-phase-1-acceptance-scenarios.DRAFT.md deferred unless redraw disagrees. wip/statics-p1 @ 2befe09 (PUSHED): PHASE-1 CARD WORK COMPLETE - rig 6: schema/Marauder/Rengar/RuinRunner/Ambessa/Kayle+keyword_grant/Vex (b4276d3..ae79357), rig 2: Galio 2befe09, rig-1 domain-cost base 7e7dd5e; tsc clean, cargo lib 60/60. SCHEMA FROZEN at b4276d3. Divergence attribution done (all stale-trace, printed-text traceable; seed-24 carrier presence proven via frame dump). ACCEPTANCE GREEN: 35/35 via scripts/dev/statics-acceptance.tmp.ts on 2befe09 (all 7 cards TS-engine verified; doc corrections bd76736). NEXT: cycle-3 merge + redraw (flags: 0003/0004/0005/0006/0008 + empowerCount frame churn).

  • PARKED

    Statics phases 2-5 (about 131 cards) parked.

    Status & technical detail

    Phases 2-5 (remaining ~131 statics) - after the 4-5d window - PARKED

B5 (cycle 3) 1
  • PARKED

    Buff objects, Bard, and misc items parked for cycle 3.

    Status & technical detail

    Discrete buff objects, Bard leg, 291 look, VEN-003/105 staging (##128 residue), bogus ids - PARKED for cycle 3

Open items - LANED (Tai ruling 03:43: all ten placed, non-blocking condition) 8
  • rig 5rig-6

    Target prompts accept made-up card ids; API robustness gap (##152).

    Status & technical detail

    ##152 target-prompt selection membership never validated (10 min>0 cards + 21-card min=0 cluster; API robustness, no corpus/gate exposure) - PROPOSED rig 5 (selection surface), non-blocking; rig-6 finding 07:03

  • DONErig 5

    Classifier cluster all applied; only ##152 left.

    Status & technical detail

    Classifier cluster ##129/##130/##132/##138(+138b)/##143 + ##154 Mundo/Glowstone - rig 5 - ALL APPLIED; only ##152 left in-lane

  • DONErig 1

    Champion-leader Rust port applied; parser gaps next.

    Status & technical detail

    Rust champion-leader subsystem ##147 - rig 1 - APPLIED; NEXT parser gaps VEN-108/UNL-084

  • DONErig 4

    Mirror Image fixed and applied; Flow delivery in progress.

    Status & technical detail

    ##135 Reflection - rig 4 - APPLIED FIXED; ##151 Flow delivered, regenerating post-wipe, apply on arrival - rig 4

  • DONErig 2rig-2

    recordMove attribution fixed (##141); one test still needs a canonical run.

    Status & technical detail

    ##141 F10 recordMove attribution - rig 2 - APPLIED FIXED (QUIRKS filed); NOTE: recordmove-attribution-141.test.ts still wants a canonical-env jest run (every sandbox here OOM-kills it, exit 137 at 2GB and 6GB heaps; rig-2 tsc-clean + surgical corpus proof accepted as interim verification, per Tai/parent ruling 09-07 ~6:13 AM); NEXT phase-2 statics queue

  • DONErig 6

    Temporary keyword-grant machinery applied (AE lane).

    Status & technical detail

    AE grant-keyword machinery (##136/##150 residue) - rig 6 - APPLIED (AE-1/2/3 + battlefield arm, merged cycle-3 PM)

  • lane 1

    Win-condition ops under review (OGN-160, UNL-088).

    Status & technical detail

    Win-condition ops (OGN-160 ops:null, UNL-088 win) - lane 1, dispatch cycle-2 review

  • lane 1

    OGN-143 double-apply fix queued for the next catalog batch.

    Status & technical detail

    F-95b OGN-143 double-apply - lane 1, next catalog batch post-merge (3b)

Infra 3
  • DONERedraw laneredraw lane

    The redraw lane owns re-recording reference games; cycle 1 delivered.

    Status & technical detail

    Redraw lane (agent RB redraw lane): owns cycles 1-3 regen+gate, corpus lock via parent, sharded redraw - cycle 1 DELIVERED (determinism byte-identical; decisive-point action neutrality independently verified)

  • Fast gate tooling committed (verify + replay).

    Status & technical detail

    Fast gate standard: committed `riftbound-engine verify` + xargs (replay.rs e5a8efe) - DONE

  • QUEUEDlane 1

    The redraw procedure doc is still owed.

    Status & technical detail

    docs/redraw-checklist.md (procedure + sharding convention) - lane 1 - OWED at cycle-1 handoff

riftlens

  • DONE

    riftlens: recognition core, web app, and catalog pipeline shipped.

    Status & technical detail

    A recognition core shipped (hardening: corner precision, specular suppression); B web app + overlay live at riftlens.lol/app; C catalog pipeline done (1,423 images) - SHIPPED

  • PARKED

    riftlens: tournament ops parked.

    Status & technical detail

    D tournament ops (board-state export, match recording) - PARKED (later)