promotional bannermobile promotional banner

Reckoning

Official guild addon for Reckoning (Anniversary – Nightslayer Horde)

File Details

v1.1.6-bcc

  • R
  • May 25, 2026
  • 2.30 MB
  • 79
  • 2.5.5
  • Classic TBC

File Name

Reckoning-v1.1.6-bcc.zip

Supported Versions

  • 2.5.5

Reckoning

v1.1.6 (2026-05-25)

Full Changelog Previous Releases

  • fix: weekly reset (#140)
    • fix: weekly reset
    • bug fixes
    • more fixes
    • more fix
    • more fix
    • more fix
    • more
    • fix
    • fix
    • more fix
    • fix: week-0 completions silently dropped from weekly history
      currentWeek > 0 guard excluded pre-epoch completions entirely, and the
      backfill check (existing.week or 0) > 0 failed to migrate old records
      whose stored week was 0 — so both the new entry and the old-format
      backfill were silently skipped for any week-0 completion.
      Co-Authored-By: Claude Sonnet 4.6 (1M context) noreply@anthropic.com
    • fixes
    • fix
    • more
    • more
    • fix
    • fix: align week math with server, propagate weeklyPoints on broadcast
    • DatabaseUtils.GetCurrentWeek: drop DST-aware Mountain offset; match
      the server's pure-UTC week math so exports submitted shortly after
      Tuesday reset during MDT are no longer rejected as "future week".
    • DatabaseUtils.CompleteAchievement: relax outer week>0 guard to >=0
      for consistency with the backfill (week 0 = pre-launch) check.
    • GuildSyncUtils.BroadcastCompletion: include weeklyPoints in the
      COMPLETION message so peers don't see a stale total until the next
      heartbeat. OnCompletionReceived applies it monotonically and gates
      the timestamp/version overwrite to avoid regressing on out-of-order
      packets.
    • ReckoningAchievementFrame/CommandUtils: treat presence of rec.history
      as implying weekly cadence so accumulated points still show when
      Enums isn't wired up yet during early UI render.
      Co-Authored-By: Claude Sonnet 4.6 (1M context) noreply@anthropic.com
    • fix: weekly history sync edge cases
    • MergeMemberData/UpdateMemberInfo: gate weeklyPoints on lastSeen so
      corrections (correctionSync invalidations, history wipes) propagate
      downward via full sync. Out-of-order packets still take the max.
      Previously the unconditional math.max contradicted OnCompletionReceived's
      documented intent and pinned weeklyPoints at a permanent floor.
    • OnCompletionReceived: create a stub member record when we receive a
      COMPLETION from a sender we have never synced with. Previously the
      broadcast's weeklyPoints was silently dropped until the next full
      SYNC_RESPONSE arrived, so the leaderboard showed 0 weekly points for
      the sender in the meantime.
    • ExportUtils: count one per (achievementId, weekNumber) entry in wh
      so a player with multiple weekly completions sees the true award
      count in the "Exporting N achievements" message.
    • RebuildCompletedFromEngine: prefer the existing on-disk completedAt
      before falling back to time(). On guild-sync rebuilds the engine may
      not have a timestamp for an id, and the previous code silently
      rewrote the historical completedAt to "now", which would change
      correction-sync gating decisions for that record.
      Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com
    • fix: gate weeklyPoints update on broadcast freshness
      OnCompletionReceived previously applied math.max for weeklyPoints with
      no freshness check. If a correctionSync invalidation lowered a sender's
      true weeklyPoints (say 100 → 50) and the corrected total reached us via
      a fresh heartbeat, a delayed older COMPLETION broadcast carrying the
      pre-correction 100 would re-inflate member.weeklyPoints back to 100
      until the next heartbeat arrived (up to 60s of wrong leaderboard data).
      The completion-timestamp gate (ts >= existingTs) already distinguishes
      fresh broadcasts from stale ones; weeklyPoints rides on the same
      authoritative snapshot, so apply the same gate to it.
      Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com
    • fix: empty history table no longer suppresses inv fallback
      The inv-fallback branch in ExportUtils only fires when wh's weekMap is
      empty (all entries failed correctionSync). It walked rec.history first
      and only fell to rec.completedAt in an elseif — so when rec.history was
      a present-but-empty table (e.g., DebugReset cleared the last entry), the
      inner iteration found latestTs=0 and the elseif never ran, leaving no
      inv signal to the server. With a legacy character_achievements row still
      present, getLegacyWeeklyAchievementsForCharacter would silently re-credit
      the achievement on the next import.
      Run both branches sequentially: history first, then rec.completedAt as
      a second-chance source for latestTs.
      Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com
    • fix: preserve history on CompleteAchievement when weekly classification fails
      If aUtils:GetAchievement returns nil for an id (e.g., the achievement was
      removed in a content update but the local db still tracks it), or Enums
      isn't loaded yet, the weekly branch was skipped and the new entry table —
      constructed without a history field — silently destroyed any prior weeks
      on disk. Seed entry.history = existingHistory by default so the weekly
      branch is the only path that mutates it.
    • feat: schedule reset detection at exact week boundary
      PLAYER_ENTERING_WORLD covers login, reload, and zone transitions but
      misses the case of a player who logs in pre-reset and never zones
      through the boundary. A cancellable C_Timer scheduled for next boundary
      +60s slack fires CheckWeeklyReset live; re-armed by both the timer's
      own callback and each PLAYER_ENTERING_WORLD so re-arms don't pile up.

    Co-authored-by: Claude Sonnet 4.6 (1M context) noreply@anthropic.com