File Details
v3.2.8
- R
- May 15, 2026
- 5.16 MB
- 15
- 12.0.5
- Retail
File Name
WHEREDNGN-v3.2.8.zip
Supported Versions
- 12.0.5
Loot & Baloot
v3.2.8 (2026-05-14)
Full Changelog Previous Releases
- docs(CHANGELOG): add v3.2.8 release notes
v3.2.8 entry covers:- Host-only visual turn stall fix in 4-human games: when the
player before the host played, the host UI could keep the
turn glow on that previous seat. Root cause: host's
authoritative N._HostStepPlay <4 plays branch advanced
state via S.ApplyTurn + broadcast MSG_TURN to other clients
but never called B.UI.Refresh() on the host's local UI.
Fix: add a single defensive UI refresh call after the
authoritative mid-trick turn advance, mirroring the
existing pattern in the 4-play resolution branch. - Bundled internal cleanup: stale comment line refs
(Bot.lua:4842+/4886+/2322+/~2474) replaced with named
subsystem anchors in Bot.lua and Bot/PlayPrimitives.lua.
Comment-only change, no behavior/test changes. - No protocol, saved-variable, scoring, .toc, .pkgmeta,
.github, or packaging changes.
Verification: harness 1298/0 (+1 BO.1 source-pin from v3.2.7
baseline of 1297/0), H1=11/0, H7=9/0. Pre-fix BO.1 FAILS at
1297/1 (wire-proves the Net.lua change is the cause).
Committed locally only — no push, no tag, no release until
Codex reviews.
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com
- Host-only visual turn stall fix in 4-human games: when the
- cleanup(Bot.lua): replace stale extraction line refs with named anchors
Four runtime comment sites referenced absolute Bot.lua line
numbers that became stale during the v3.2.0 cleanup batches
(especially Batch 5C which extracted helpers to
Bot/PlayPrimitives.lua, shrinking Bot.lua from ~8,428 to ~6,200
lines and shifting line numbers by ~1,150). The v3.2.0 audit
at .swarm_findings/v3_2_0_botlua_comment_audit.md §1.5 flagged
these as the highest-value lowest-risk cleanup target, then
sat untouched for ~8 tag cycles.
Fixed sites (all comment-only, no behavior change):- Bot.lua:417
Bot.lua:~2474 in baitedSuit reader
→the baitedSuit reader in pickLead's fzlokyAvoidSuit consumer - Bot.lua:819
bottom-up "want" sender (Bot.lua:4842+)
→bottom-up "want" sender (Tahreeb "want" arm in pickFollow, Sun-only) - Bot.lua:823
T-4 dump-larger sender (Bot.lua:4886+)
→T-4 dump-larger sender (Tahreeb T-4 arm in pickFollow) - Bot.lua:3674
Receiver decoder at Bot.lua:2322+ (tahreebClassify)
→Receiver decoder (tahreebClassify in Bot/PlayPrimitives.lua)— the function was
extracted to PlayPrimitives in Batch 5C and
no longer lives in Bot.lua at all. - Bot/PlayPrimitives.lua:291-294 (mirrors Bot.lua:819/823 fix)
Design rationale: named subsystem anchors over numeric line
refs prevent re-staleness from future extractions/shifts. Cross-
file refs are now explicit so a reader can grep for the function
and land in the right file immediately.
Verified zero test source-pins on any of the stale substrings
(grep "4842|4886|2322|2474" tests/→ no matches). No behavior
change. No CHANGELOG entry (per the design recommendation:
land untagged unless bundled later with a real runtime release).
Harness: 1298 / 0 (unchanged from baseline). H1/H7 smokes
clean (11/0 + 9/0). Diff: +25 / -19 across two files (slight
wording rebalancing across line wrapping).
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com
- Bot.lua:417
- fix(Net.lua): host-turn visual refresh after authoritative turn advance
User-reported bug: in a 4-human game, when the seat immediately
before the host plays a card and the next turn should be the
host's, the host's local seat-glow remained stuck on the prior
player. Other clients showed the correct turn advance.
Root cause: N._HostStepPlay's <4 plays branch at Net.lua:
2691-2698 advanced state via S.ApplyTurn and broadcast MSG_TURN
via N.SendTurn, then called N.MaybeRunBot and returned without
ever invoking B.UI.Refresh() on the host's local UI. Non-host
clients redrew on the MSG_TURN wire callback, but the host's
authoritative loop skipped the redraw step. The 4-play
resolution branch at Net.lua:2720 already had the symmetric
B.UI.Refresh() call after _HostStepAfterTrick(); this mid-trick
<4 plays branch was missing it.
Fix: add a single defensiveif B.UI and B.UI.Refresh then B.UI.Refresh() endcall after N.MaybeRunBot() in the <4 plays
branch. The defensive nil-check mirrors the existing pattern at
Net.lua:2720 so test stubs without B.UI continue to work
unchanged.
Scope check: turn logic (S.ApplyTurn / N.SendTurn / MaybeRunBot)
is untouched; networking is untouched (MSG_TURN broadcast
unchanged); timers (the 2.2s C_Timer for trick resolution) are
untouched; scoring is untouched; bot decisions are untouched.
The only change is a single redraw trigger on the host loop.
Tests: BO.1 in tests/test_state_bot.lua source-pins the v3.2.8
marker comment in Net.lua. Pre-fix harness is 1297/1 (BO.1
FAILS); post-fix is 1298/0. No behavioural test added because
the harness doesn't currently provide a B.UI mock; the
defensive nil-check guard means the new line is a no-op in the
test harness, so source-pin is the simplest regression guard.
H1/H7 smokes clean (11/0 + 9/0).
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com - docs: commit v3.2.0 Bot.lua comment-audit design doc
This is a v3.2.0-era audit / inventory pass on Bot.lua's inline
comments (651 lines, written 2026-05-12 when main was at
674de22 and v3.1.14 was the latest tag). It has been preserved
untracked across several v3.2.x releases via an inherited
"leave alone" rule; the rule has no documented rationale and the
doc itself matches the shape of the other committed v3.2.x design
docs.
Snapshot caveats:- Stats in §0 are v3.2.0-era and are not refreshed here.
- §2 source-pin table is a historical snapshot; newer BH-BN pins
have since increased the live count. - §3 line numbers may have shifted after later v3.2.x changes.
Still useful: - Appendix A contains a reusable reproducer script for future
comment-audit passes. - The stale extraction-breadcrumb finding remains a valid future
cleanup candidate.
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com

