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%).
- Delete scanInProgress lock that orphaned on recursive rescans, causing