Enchant Check Updated

Enchant Check allows you to quick-check your gear.

File Details

v12.0.5-2

  • R
  • May 11, 2026
  • 70.04 KB
  • 343
  • 12.0.5
  • Retail

File Name

EnchantCheck-v12.0.5-2.zip

Supported Versions

  • 12.0.5

EnchantCheck

v12.0.5-2 (2026-05-11)

Full Changelog Previous Releases

  • Delay socket rescan so the equipped link has time to update (#34)
    SOCKET_INFO_SUCCESS fires before GetInventoryItemLink reflects the
    newly-applied gem, so the immediate rescan read the stale link and the
    missing-gem overlay stayed lit. A 0.5s deferred rescan lets the slot
    settle; the gen token in CheckGear absorbs any duplicate triggers.
  • Rescan on SOCKET_INFO_SUCCESS for live gem updates (#33)
    Socketing a gem into an equipped item modifies the item link but does
    not fire PLAYER_EQUIPMENT_CHANGED, so the missing-gem overlay stayed
    lit until something else triggered a scan. SOCKET_INFO_SUCCESS fires
    after Blizzard applies the gem, with the link already updated.
  • Update RU locale (#32)
    • Update EnchantCheck_Mainline.toc
    • Update EnchantCheck.toc
    • Update ruRU.lua
  • Bump Interface to 120005 to match current WoW patch
  • Silent async item loading, drop LibItemUpgradeInfo, simplify warning rules (#31)
    • Fix taint at UNIT_INVENTORY_CHANGED, localize overlay tooltips
    • Filter UNIT_INVENTORY_CHANGED to unit == "player" early, dropping
      UnitIsUnit/IsVisible chain that hit secret-boolean errors when the
      event fired for "targettarget" etc.
    • Move overlay tooltip strings (Missing enchant, Missing gem, Low item
      level, Can add socket) from constants.lua into the locale tables so
      they translate.
    • Drop unused L["SCAN"], L["RESCAN"] keys.
    • Silent async item loading, drop LibItemUpgradeInfo, simplify warning rules
    • Replace the rescan polling loop in CheckGear with Item:ContinueOnItemLoad
      and a per-frame generation token, so stale callbacks from older scans
      cannot overwrite fresh overlays. Removes the rescanCount setting and the
      SCAN_INCOMPLETE locale string.
    • Read player ilvl via C_Item.GetCurrentItemLevel(ItemLocation) instead of
      LibItemUpgradeInfo. The lib mis-scaled Legion Remix gear (bonus_id 13572)
      to ilvl 655 vs the actual 102, inflating the mean and false-flagging every
      other item as low. Inspect targets fall back to GetDetailedItemLevelInfo.
    • Drop LibItemUpgradeInfo-1.0 entirely: replace IsArtifact() with a rarity-6
      check, delete CleanCache() call, remove from toc/embeds, delete Libs dir.
    • Drop the content-type smart-notification system (DetectContentType,
      CONTENT_TYPES, CONTENT_ILVL_REQUIREMENTS, minItemLevelForWarnings,
      suppressLevelingWarnings, enhancedDungeonChecks). ShouldWarnAboutSlot now
      only fires on epic+ non-heirlooms.
    • Give each overlay issue type a fixed corner (enchant TL, gem TR, ilvl BL,
      upgrade BR) instead of dynamically packing them BOTTOMRIGHT.
    • Swap LOW_ILVL icon Spell_ChargeDown -> Misc_ArrowDown.
    • Use PLAYER_EQUIPMENT_CHANGED for live overlay updates
      UNIT_INVENTORY_CHANGED fires before WoW finishes swapping the slot data,
      so CheckGear read the old GetInventoryItemLink and re-applied stale
      overlays — the icons only refreshed when the character pane was closed
      and reopened (which retriggers via PaperDollFrame:OnShow).
      PLAYER_EQUIPMENT_CHANGED fires after the slot has been updated and is
      player-only by definition, so the unit filter goes away too.
  • Strip generic-software cruft, fix scan retry race
    Audit removed patterns that don't fit a single-threaded synchronous WoW
    addon, then fixed the underlying scan-retry race that was masked by the
    deleted re-entrancy lock.
    Bug fixes:
    • Delete scanInProgress lock that orphaned on recursive rescans, causing
      spurious "Scan already in progress" / "Previous scan timed out" errors.
    • Make rescan async-aware: replace in-frame spin loop with one request
      pass + ScheduleTimer(0.2s) so server has time to respond. Bump
      rescanCount default 2 -> 10. Cancels timers in OnDisable.
    • Fix GetColorForSeverity gating on a never-defaulted setting that made
      all severity colors render as RESET (white).
      Removals:
    • Delete modules/cache.lua (363 lines): TTL+LRU cache with periodic
      collectgarbage, dead ScanCache API, latent crash on validation
      failure, and an enableCaching setting that did nothing visible.
    • Drop API fallback ladders for C_Item.* / C_AddOns.* — all guaranteed
      on Interface 120001.
    • Drop pcall wrappers around APIs that don't throw.
    • Delete unused tooltip helpers from removed hook system, dead constants
      (EXPANSIONS, SPEC_ROLES, STAT_STRINGS, OFFHAND_REQUIRED), unused
      IsValidSlot, stale MAX_LEVEL fallback, ValidateModuleDependencies.
    • Drop LibBabble-Inventory-3.0 (unused).
    • Reduce GetSetting/SetSetting to one-liners; trim defensive nil-chains
      on guaranteed-initialized state.
    • Replace 4-pattern GetItemLinkInfo with single-regex ParseEnchantAndGems.
    • Collapse CheckGear two-pass scaffold into single loop.
    • Remove "Debug - Profile keys" output from /ec config.
      Docs:
    • CLAUDE.md: delete driftable facts (interface, max level, expansion,
      hardcoded slash command list, stale tag examples). Keep rule-shaped
      sections (manifest validation, init order, dependency names).
    • docs/patterns.md: remove cache docs, /ec fixhead reference, batch-
      processing claim.
      Net change: ~929 lines removed (-42%).