File Details
v0.32.0
- R
- May 9, 2026
- 356.83 KB
- 15
- 12.0.5
- Retail
File Name
GuildBankLedger-v0.32.0.zip
Supported Versions
- 12.0.5
GuildBankLedger
v0.32.0 (2026-05-09)
Full Changelog Previous Releases
- Merge pull request #18 from RussellFeinstein/chore/log-channel-split
Split sync and sort logs into per-channel session buffers (v0.32.0) - Stamp release 0.32.0 (v0.32.0)
Bumps VERSION, .toc, Core.lua VERSION, CLAUDE.md "Current" line, moves
the CHANGELOG.md [Unreleased] block to a versioned [0.32.0] header, and
adds the matching in-game CHANGELOG_DATA entry. DEV_BUILD remains nil.
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com - Add Open Sort Log and Open Master Log buttons
Sort tab gains an Open Sort Log button alongside Preview / Execute /
Cancel / Scan bank. Sync tab gains an Open Master Log button next to
Open Sync Log. Both surface the same AceGUI MultiLineEditBox pop-up
that the corresponding slash commands (/gbl sortlog, /gbl logs) already
open via ShowSortLog / ShowMasterLog.
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com - Split sync and sort logs into per-channel session buffers
New Logger.lua module owns three channels (sync cap 2000, sort cap 1000,
system cap 500) with severity levels DEBUG / INFO / WARN / ERROR. Public
API on GBL: SyncInfo / SyncWarn / SyncError / SyncDebug, plus matching
Sort* and System* families and a lower-level LogSync(level, fmt, ...) for
runtime-computed severity. printf-style formatting wraps string.format in
pcall so a bad format string falls back to the literal pattern instead of
crashing.
Sync.lua's AddAuditEntry becomes a deprecated shim that routes plain calls
to SyncInfo and chatOnly=true to SyncDebug; GetAuditTrail stays as a
permanent alias for GetLog("sync") so the ~40 spec sites that read it keep
working without test churn. ResetSyncState swaps its syncState.auditTrail
zeroing for an explicit ClearLog("sync"). DEBUG entries drop from the
buffer entirely unless the per-channel debugChat toggle is on, which
preserves the prior chatOnly=true "do not pollute the buffer with per-chunk
noise" behavior without a separate side channel.
Producer call sites migrate by severity: WARN and ERROR sites in Sync.lua
(version mismatch, oversized chunk, ACK timeout retries / aborts, hard
timeout, receive timeout, NACK-limit aborts, sender-offline aborts) and in
SortExecutor.lua (phantom-success suspicion, pre-check failures, server
reversion, cursor-stuck, timeout). SortPlanner switches to SortInfo for
its three diagnostic lines. Core.lua and UI/LayoutEditor.lua move to
SystemInfo for their two/one attribution lines. The ~70 remaining INFO
sites in Sync.lua keep using AddAuditEntry through the shim; behaviour is
identical because the shim routes to SyncInfo and the buffer cap matches.
Surface is slash-command only. UI/SyncStatus.lua's RenderAuditTrail panel
is removed; the always-visible 20-line panel was re-rendering on every tab
switch and audit write for a diagnostic artifact nobody was actively
reading. Core.lua refactors ShowSyncLog into a channel-parameterized
ShowLog(channel, opts) with thin wrappers for sync / sort / system /
master, and adds /gbl sortlog, /gbl logs, /gbl logs dump [N], /gbl logs
clear sync|sort|system|all, and /gbl logs debug sync|sort|system on|off.
GetMasterLog k-way merges the three channels by timestamp.
Tests cover per-channel routing, severity recording rules, chat mirroring
gates, printf fallback, ring-buffer caps and FIFO, master-log merge order,
ClearLog isolation, and the AddAuditEntry / GetAuditTrail compat shims
(spec/logger_spec.lua, 30 cases). The three sort-channel asserts in
spec/sortexecutor_spec.lua move from GetAuditTrail() to GetLog("sort"),
and the two AddAuditEntry chatOnly tests in spec/sync_spec.lua are
rewritten for the new debugChat semantics. Full suite: 1192 / 1192 passing,
luacheck clean.
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com