File Details
v3.1.14
- R
- May 11, 2026
- 5.14 MB
- 3
- 12.0.5
- Retail
File Name
WHEREDNGN-v3.1.14.zip
Supported Versions
- 12.0.5
Loot & Baloot
v3.1.14 (2026-05-11)
Full Changelog Previous Releases
- v3.1.14: Codex delta review — real Local* paths for SWA deny + escalation retries
Single tag bundling two batches of audit work, plus two Codex delta-
review fixes for the same bug class hitting both batches.
Batch 1 (v3.1.13 documented section): round-2 wire-retry sweep
adding 250ms re-broadcast to 10 additional message types — MSG_MELD,
MSG_AKA, MSG_BID, MSG_CONTRACT, MSG_BELOTE, MSG_BIDCARD, MSG_DOUBLE,
MSG_TRIPLE, MSG_FOUR, MSG_GAHWA. Closes nearly all remaining items
from the v3.1.12 Codex audit's deferred P2 list.
Batch 2 (v3.1.14 documented section): two Codex delta reviews caught
the same bug class twice — "helper-level retry test misses the
Local* integration path":
Bug 1 — SWA deny: N.LocalSWAResp(false) cleared S.s.swaRequest
immediately after calling N.SendSWAResp, killing the v3.1.12 retry
guard before the 0.25s timer fired. Fix: keep swaRequest alive
through the retry window via responses[localSeat]=false, then clear
at 0.35s with identity guards. The 3s swaDenied toast is preserved
independently.
Bug 2 — Escalation chain: SendDouble/Triple/Four/Gahwa retry guards
checked pre-apply state (not contract.doubled, phase == PHASE_DOUBLE),
but LocalDouble/Triple/Four/Gahwa and bot dispatch call S.Apply*
BEFORE N.Send* — by the time the 0.25s retry fires, the flag is set
and phase has advanced. Pre-apply guard always failed in production.
Fix: switch to post-apply identity guards capturing the contract
table reference at send time, plus verifying flag set and (for
SendDouble) doublerSeat == seat. Phase guards dropped because
Apply* intentionally advances the phase.
Optional cleanup: SendContract retry guard now includes trump
equality for consistency with the (bidder, type, trump) keying
claim.
Tests: 1058/1058 pass (was 982, +76 new behavioral pins in section
AZ). AZ.23-25 replaced with integration tests starting from
N.LocalDouble/Triple/Four/Gahwa, not from N.Send* directly.
Process lesson codified: the AZ section now consistently starts from
the user-facing entry point (N.Local*) and asserts wire effects
downstream — never the inverse. Both Codex review rounds applied the
same north star ("helper-level tests miss Local* bypasses"); v3.1.14
finally applies it uniformly across the wire-retry test surface.
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com

