ItemRack Anniversary

Anniversary Version of ItemRack Classic Ported to support Era, HC, Sod and BCC.
Back to Files

ItemRack Anniversary 4.45

File nameItemRack-anniversary-4.45.zip
Uploader
Bl4ut0Bl4ut0
Uploaded
Sep 13, 2026
Downloads
25.8K
Size
221.4 KB
Flavors
Classic TBCClassic
File ID
8869543
Type
R
Release
Supported game versions
  • 2.5.6
  • 1.15.9

What's new

ItemRack Anniversary v4.45

Stable release

Bug Fixes & Improvements

  • Spec Event Opt-In Default: Linking a gear set to a talent specialization (Primary/Secondary Spec) no longer automatically sets the associated Event to enabled by default. This prevents unexpected double set swaps when equipping a spec-changing set, while allowing users to explicitly enable the spec event in the Events tab if desired.
  • Script Event Consent Boundary: Saving valid Script events through ItemRack's editor now records interface approval for their exact name, trigger, and Lua source. Scripts introduced or changed outside that interface remain disabled until the player deliberately enables and accepts them through a warning prompt; unchanged packaged defaults remain privately trusted.
  • Injected Script Fail-Closed Guards: Event registration, deferred-trigger detection, final dispatch, and logout persistence independently reject unapproved source before compilation or SavedVariables output. Rejected or invalid new events are removed, while rejected changes restore the last approved version disabled.
  • Deterministic Large-Profile Test Suite: Added production-Lua workloads that model users with 64 overlapping sets, a 96-entry event/queue context, 931 migrated queues, and 97 multi-slot equipment transactions. Seeded buried removal, shared/repeated sets, atomic queue provenance, hostile SavedVariables shapes, lock contention, destination rejection, and exact rollback now run in the standard npm test gate.
  • Same-Event Generation Replacement: The expanded suite found that replacing an event with a narrower newer generation removed logical ownership but could leave old-only gear physically equipped. Event-frame replacement now coalesces the old Pop and new Activate plans, restores dropped slots, preserves the correct lower prior, and avoids briefly restoring retained targets.
  • Cumulative Beta Publication Notes: Generated GitHub and CurseForge notes for beta2 and later now include every earlier beta from the same version line, newest first. Repository changelog sections remain separate so eventual stable consolidation does not duplicate fixes.
  • Primary Reliability Overhaul: This release is the consolidated remediation from the v4.24-to-development audit of historical source, release packages, GitHub reports, and all available CurseForge comments. It replaces accumulated symptom guards in event restoration, equipment mutation, queues, cooldowns, bindings, and visual buttons with explicit ownership/state boundaries and production-Lua regression coverage.
  • Canonical Event Ownership and Restoration: Replaced the shared per-set live restore graph with ordered event frames and per-slot prior values. Shared-set Ghostwolf/Mounted ownership, buried removal, repeated X → Y → X sets, manual slot release, Zone-under-Mounted rebasing, and stale generations now reconcile without a lower event overwriting higher or manually selected gear.
  • Recoverable Legacy Event Upgrade: Captures legacy EventStack, active flags, mappings, and referenced old/oldset history before defaults are refreshed. Ordered evidence is migrated once; ambiguous unordered multi-event state is backed up and left unowned rather than guessed, and unknown future schemas suspend automatic swaps without rewriting data.
  • Observed Equipment Transactions: Set, popup, AutoQueue, deferred, empty-slot, and two-hand moves now share a serialized transaction coordinator with exact source/destination identities, preflight space checks, observed completion, bounded retry, and one cleanup path for cursor and reservations. ItemRack no longer changes the client-wide Sound_EnableSFX setting.
  • Atomic Queue Policy and Versioned Migration: Queue owner, list, and enabled state are resolved together without mutating event or manual state. Direct upgrades recover legacy ItemRackItems metadata across every entry, preserve pre-migration backups and unknown fields, quarantine corrupt values, insert a fail-closed stop boundary at unsafe gaps, and never downgrade unknown future schemas.
  • Intent and Specialization Precedence: Deferred automatic work carries its authorizing generation and is cancelled when that owner disappears. Newer manual set choices or an explicit toggle-off win over pending automatic and specialization work—even when queue readiness, casting, or locks delay the action—and a forced same-spec refresh cannot consume that intent.
  • Generation-Aware Cooldowns and Coalesced Refresh: One cooldown authority feeds buttons, popups, queue decisions, and notifications while preventing stale arena data from being re-adopted. Inventory-driven UI work and protected post-combat layout updates are coalesced instead of rebuilding repeatedly for the same change burst.
  • ItemRack-Owned UI Templates: Docked, popup, and options item buttons no longer inherit Blizzard action-button templates or their action-slot count, macro, flashing, and dispatcher state. Slot 20 remains a visual set control, and tooltip augmentation no longer forces an insecure GameTooltip:Show().
  • Set-Binding Safety Containment: Bound set buttons now use an empty protected click carrier and a single captured set-level intent. Requests made while protected are reconciled after combat; ItemRack no longer synthesizes /equipslot [combat] macros or promises arbitrary in-combat set swaps, and startup/deletion cleanup preserves unrelated bindings.
  • Deferred Script Events and Rune Identity: Script triggers held during loading or zone settlement replay once with their original arguments, while built-in state is reconciled separately. Rune-specific items retain exact-first identity across queues, physical swaps, tooltip membership, and engraving event order.
  • Candidate-First Release Flow: Stable promotion is split into a locally installed production-branch candidate and a separately approved public finalization. Packages are rebuilt from the exact committed/tagged Git tree, verified against their manifest, and fail when no local client target is installed.

Please include the output of /itemrack dump with any bug report.

This mod has no additional files