promotional bannermobile promotional banner

Loot & Baloot

Loot & Baloot — Play Saudi Baloot (بلوت) inside World of Warcraft. A four-player trick-taking card game over the party addon channel. Host with friends or play solo against bots, with full Hokm / Sun rules, melds, escalations, and SWA claims.

File Details

v3.1.14

  • R
  • May 11, 2026
  • 5.14 MB
  • 12
  • 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

  • tests: add AZ.25e + AZ.25f contract-replaced suppress tests for LocalFour + LocalGahwa
    Parity hardening per Codex v3.1.14 verify notes — completes the
    contract-replaced suppress coverage that AZ.23f (LocalDouble) and
    AZ.24d (LocalTriple) already had. LocalFour and LocalGahwa already
    use the same post-apply identity guard introduced in v3.1.14, so
    this is test-only coverage with no shipped-code changes.
    Test-only commit — no version bump. The tests/ directory is
    excluded from the CurseForge archive via .pkgmeta (v3.1.11).
    Tests: 1060/1060 (was 1058, +2).
    Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com
  • 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