Guild Bank Ledger

*BETA* - Persistent guild bank transaction logging with automatic multi-player sync.

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