Skip to content

RaidKit

Changelog

Every release across the tools, newest first.

  1. Raid Ledger2026-09-12
    • Private reports open through the viewer's own Warcraft Logs connection: public and unlisted reports still use the site client, a not-found is retried with your token, and cached private data is served only after Warcraft Logs confirms your access on that request.
    • Report header now records visibility and owner; private reports never appear in Recent reports.
    • User tokens refresh through the refresh-token grant near expiry; a refused refresh asks you to reconnect.
    • Error notices show the next step beside the message: Sign in, Connect Warcraft Logs or Reconnect Warcraft Logs.
  2. Raid Ledger2026-09-11
    • Connect Warcraft Logs: an OAuth provider for warcraftlogs.com, Continue with Warcraft Logs on the sign-in page (for accounts that already connected it), and Settings > Connections with Connect, Reconnect and Disconnect.
    • Only Warcraft Logs tokens are stored (with your username there); disconnecting deletes them and is refused if it would remove the only way into the account.
    • RaidKit branding: site name, header wordmark and a homepage that leads straight into Raid Ledger with a plain form that works before JavaScript loads.
    • Report cache and the first pages: three database models cache the report header, per-fight snapshot and whole-report consumables lines; reports that ended in the last day are re-checked so a log loaded mid-raid does not stay frozen.
    • /ledger takes a report URL, /ledger/<code> lists boss fights, and /ledger/<code>/sr, /gear and /consumables run the engine on the server and hand a finished table to a sortable client table.
    • Race and talent settings come from the seed files until guild settings exist.
    • Warcraft Logs client in TypeScript, verified live: report header with trash flagged and ability names, fight snapshot from the Summary table and CombatantInfo events, and whole-report consumables lines with the boss-snapshot and trash-carry-forward rule.
    • One token source serves both the site's own client and a signed-in user's token; the live smoke test reproduces the Python numbers.
    • Engine ported from the wow-audit Python tool to TypeScript with parity tests: the Anniversary rules module, offline item, enchant and gem data (wowsims dump plus Anniversary extras), roster normalization and the three audits as pure modules.
    • Fixtures are the Python tool's own; the parity tests hold both implementations to the same numbers (174 gear SR and 244 buffed for one character's in-game sheet).
    • Kit sync, no version bump: the addon's UIKit.lua copy re-synced to the shared kit 1.4.0 (adds an EditBox control built for another addon). No GPB behavior change; test suites green.
  3. BrokenDice2026-09-09
    • UIKit.lua copy re-synced to kit 1.4.0 (adds UIKit.EditBox, built for GrudgeList). No BrokenDice behavior change; test suites green.
  4. Grudge Listv0.1.02026-09-09
    • First build; verified headless (79 checks and a 9-step UI smoke test, run with sh test/run_all.sh under Lua 5.1; the runner also checks the bundled UIKit copy against the shared 1.4.0 source), not yet seen in-game.
    • The list: add by name, by target, or from the Recent tab; six fixed categories plus a free-text reason edited in place; remove with /grudge undo as the session-only safety net.
    • Group watching: roster diff records every groupmate (name, realm, class, GUID, zone, party or raid, time; cap 60) and warns once per join for listed players; every loading screen re-warns for anyone already present; party invites are checked by name before you accept.
    • Warnings: chat line with class-colored name, category, reason, date and "on N lists"; raid-warning banner; raid-warning sound; each on its own toggle. Reasons are pipe-scrubbed before any chat or banner output.
    • Matching by lower-case name-realm, then by GUID for renamed characters.
    • Sharing: versioned text export (GRUDGELIST 1) with escaped fields; import merges, never removes, never overwrites your own reason, upgrades Other to a real category, records every source and who imported each entry, and refuses a higher format number.
    • Window on the shared UI kit 1.4.0: 760x500 by default, resizable, Esc to close, List / Recent / Settings tabs, Export / Import / Add Target footer, accent presets persisted.
  5. Gargul Persistence Bonusv0.25.62026-09-03
    • Script only: the Raid Night Digest's PB earned section is reconciled against the live ledger. A grant zeroed in game after Add Raid, or an item won later the same night, is dropped from the digest and a note says how many lines were left out.
    • Addon files carry only the version bump.
  6. Gargul Persistence Bonusv0.25.52026-09-02
    • Loot History views (By Player, By Item, Locked Slots) open in the text window with a Back button returning to the view picker.
  7. Gargul Persistence Bonusv0.25.42026-09-02
    • Every window is now on the shared UIKit: the Which raid picker, Craft dialog, Export and Import windows, SR Check window and Roll Monitor. Only Blizzard's StaticPopup confirmations and the scrollbar art remain stock.
    • The PHASE stat lists the phase's raids inline, with full names and the start date in the tooltip.
    • Tooltips hide on click so a footer button's tooltip no longer hangs over the popup it opened.
    • Roll Monitor's Close is now the window's X; closing still mutes the monitor for that roll-off only.
  8. Gargul Persistence Bonusv0.25.32026-09-02
    • Roster column headers centered over their controls; PB gets its own column header.
    • Status strip replaces the faint caption: INCREMENT and PHASE as two labeled facts with tooltips; the increment is changed under Menu > Settings.
    • Friends-list class source for non-guild regulars, plus /pb class to view or set a remembered class by hand.
    • Menu, Add Raid PB dialog and the Loot History, Team and Sync pickers re-skinned on UIKit; behavior unchanged.
  9. Gargul Persistence Bonusv0.25.22026-09-02
    • Class colors now work outside raids: classes are learned from the guild roster, the live group and imported sheets, and remembered once seen.
    • Brighter button text, headers and borders.
    • New class-lookup test suite (8 checks).
  10. Gargul Persistence Bonusv0.25.12026-09-02
    • Fixed invisible column headers in 0.25.0.
    • New default accent gold (#D9A340) on a neutral charcoal base; /pb accent switches presets live.
    • Hover tooltips on every roster window control, including exactly when to run Add Raid PB.
    • Roster window is resizable (665x420 to 1100x900) and the size persists.
  11. Gargul Persistence Bonusv0.25.02026-09-02
    • Roster window re-skinned on the shared UIKit: flat dark chrome, title block with the team name, on/off toggles for the four settings, By Player / By Item tab bar, and a footer with Add Raid PB as the primary action. Behavior unchanged.
    • Class-colored player names from the live group or the imported SoftRes sheet.
    • New UIKit smoke test suite and a check that fails if the addon's UIKit.lua drifts from the shared source.
  12. BrokenDicev0.10.02026-09-02
    • Window rebuilt on the shared UIKit toolkit with a title block, version tag, close button, Esc-to-close, and Host / Boards / Ledger / Settings as a tab bar.
    • Host tab: modes and join window as button groups, OPEN GAME as the primary action, Cancel in the danger style, live status and roster on a card, rules tooltips on every mode button.
    • Boards, Ledger, and Settings re-skinned; net gold in accent or red by sign; the three Settings sliders became kit sliders and test mode became a switch.
    • Names are class-colored when the player is in your group. Hover tooltips added across the window; the changelog says every control, but the Boards paging buttons and the Settings alt-name boxes have none.
    • Test harness: shared widget mock replaces the inline one; the 9-step UI smoke suite drives the new window.
  13. Gargul Persistence Bonusv0.24.32026-09-01
    • Fix: disenchants are no longer treated as a player. Gargul's DE pseudo-winner no longer reaches PB points or session awards; DE loot rows are still recorded, ownerless, for drop totals and kill dates.
    • Login self-heal removes any existing disenchant entries from points, ineligibility, friends and session awards.
    • New /pb activeraids list|add|remove|clear (alias /pb raidset), the first way to take a raid back out of the active set; add also records the raid for sheet-tab archiving.
    • New test/run_all.sh runs the whole battery (38 checks).
  14. Gargul Persistence Bonusv0.24.22026-09-01
    • Fix: a member whose last PB reset to zero no longer vanishes from the Google Sheet; empty roster stubs are kept as membership.
    • New optional Watch-PB.ps1: watches the SavedVariables file and runs the pipeline when a new Add Raid receipt appears, holding split nights until the closing unfiltered Add Raid. Logs to Watch-PB.log, rotated at 2 MB.
    • First micro-suite kept in the repo (test/test_setpoints_stub.lua) with verbatim extraction of the functions under test.
  15. BrokenDicev0.9.22026-09-01
    • Roster refresh for the phrase table: new per-character entries, a new matchup, and spelling aliases, with keys verified against real in-game names recorded from actual raids rather than Discord handles.
    • Departed members kept as inert entries; nothing removed. Content only, no logic changes.
  16. Raid Ping2026-09-01
    • Repository consolidated into the development workspace as a live git clone; deployment is now commit and push instead of web-editor pastes.
    • Canonical 50-check test_local.py committed, replacing the original 17-check version.
    • CLAUDE.md, CHANGELOG.md, MIGRATION.md, and docs/ moved into the repository so it is self-contained for handoff.
    • README rewritten for the three-tier ladder, collapse, shared rosters, the external trigger as primary with the string-inputs gotcha, the webhook three-link chain, and dry-run defaults.
    • Reconciliation with the live repository: nag.py confirmed byte-identical to the tested 2026-08-10 baseline; the 50-check suite passes against it.
    • Workflow confirmed: backup cron 17,47 * * * *, checkout@v5, both webhook env lines present.
    • Config confirmed: 120/72/24 ladder on both team entries with one template per tier; server_events_url present and empty.
    • state.json shows three weeks of live history across 10 events, four of them completing the full natural 120, 72, 24 ladder.
  17. Gargul Persistence Bonusv0.24.12026-08-26
    • No-track windows: turning Track loot on this character off records a timestamped window; /pb importwins skips history inside it and /pb histaudit labels those entries as skipped.
    • Login prints a loud warning while loot tracking is off.
  18. Gargul Persistence Bonusv0.24.02026-08-26
    • Add Raid persists a night receipt (granted, awarded, ineligible, filtered, absent); same-day runs merge, a new day replaces.
    • Pipeline posts one Raid Night Digest instead of the full embed walls; posting is idempotent; -FullEmbeds restores the old streams.
    • Old-phase PB filtered from all posted output (Discord, sheet PB tab, PB.csv); values remain in the addon.
  19. Gargul Persistence Bonusv0.23.72026-08-26
    • Zul'Aman reclassified into phase 3 with Black Temple and Hyjal Summit; Sunwell Plateau renumbered to 4. Prevents a ZA-only sheet from triggering a second phase transition mid-phase. Superseded the same day by 0.24.x.
  20. Raid Ping2026-08-10
    • Multi-stage reminder engine: a per-team reminders list replaces the single deadline; the most urgent unfired due stage fires; moot larger tiers are marked done (collapse) when an event is first seen inside a smaller window.
    • State moves to per-event stages_done lists, with a shim treating pre-stage entries as fully handled. Legacy single-deadline configs still work.
    • Live config restructured to the 120/72/24 ladder, each tier with its own templates. A missing-comma JSONDecodeError established the dry-run-as-validator practice.
    • Test suite grown to 50 checks, including the three-tier ladder end to end with time travel.
  21. Raid Ping2026-08-06
    • GitHub Actions cron had produced near-zero scheduled runs over two days, matching community reports of 2026 degradation.
    • cron-job.org wired as the primary trigger: hourly POST to the workflow-dispatch API with a fine-grained token and explicit string inputs, failure notifications on.
    • The first test dispatch returned 204 and delivered a real backlog ping for an open, unclaimed window, as designed.
    • A 401 during setup traced to header placement and the Bearer prefix; documented in the operations notes.
  22. Raid Ping2026-08-05
    • Shared named rosters: a top-level rosters table that team entries reference by name; inline lists still accepted.
    • Second team entry added for the second raid night, with its own signup channel and its own webhook secret and env line.
    • Roster reference spreadsheet created with a Text-formatted id column to avoid Excel's digit truncation.
    • checkout action bumped from v4 to v5.
  23. Raid Ping2026-08-04
    • Build day: stdlib-only nag.py, hourly workflow with dry-run and ignore-window manual inputs, state dedupe, state.json committed back by CI, and a 17-check offline harness.
    • Raid-Helper endpoint saga: legacy raid-helper.dev routes returned 404; snowflake-dating diagnostics, endpoint fallback chains, the raid-helper.xyz v4 routes, and the server_events_url override all landed.
    • First live-fire fixes: a malformed webhook secret, then Discord's HTTP 403 against Python's default User-Agent, fixed with a custom User-Agent on every request.
    • First successful live ping the same evening; an exposed API key was rotated immediately and secrets-only-in-the-secret-store became the rule.
    • The pipe fix: removed | characters from the five game-open templates and the Pit Report separators after the first live use crashed on open and silently wedged the outgoing chat queue.
    • Every outgoing message is now scrubbed of | and every send is wrapped so one bad line cannot stall the queue.
    • New charsafe regression suite (5 tests) scanning every phrase pool and running a full-flavor game end to end.
    • Documented the no-pipes rule for custom phrase lines. Verified in-game: loads and opens games cleanly.
    • Initial release: five game modes, house rules engine, phrase system with per-character lines and matchups, stats and leaderboards, debt ledger with netting, session tracking, four-tab UI, host controls, test mode.
    • Headless Lua 5.1 test harness with a 47-scenario main suite, 12 stress scenarios, and a 9-step UI smoke test.
    • Two bugs caught by the harness before shipping: a login crash from sliders reading saved variables too early, and a prophecy that could announce more than once per bracket.