v4.12.5
What's new
Caerdon Wardrobe
v4.12.5 (2026-11-02)
Full Changelog Previous Releases
- Bump to v4.12.5: fix 12.1.5 API removal, tooltip scanning and load failures
- Replace removed GetDetailedItemLevelInfo global with C_Item version and
move other legacy globals to C_Item / C_AddOns (#61, #62) - Scan typed Use/Equip/Learn tooltip lines so equip-effect protection and
Use:-based learnable checks work again on 12.x - Guard quest data loads to avoid synchronous QUEST_DATA_LOAD_RESULT
under addon taint (#60) - Deliver item/quest load failures to callers and stop re-requesting
source items the server refuses; richer debug output for failures - Add ruRU localization (#53) and 12.1.7 interface version
Co-Authored-By: Claude Fable 5.1 noreply@anthropic.com
- Replace removed GetDetailedItemLevelInfo global with C_Item version and
- Scan typed Use/Equip/Learn tooltip lines so equip-effect and Use: checks run again
Since 12.0 the "Use:", "Equip:" and "Use: Teaches you" tooltip lines are
typed ItemSpellTriggerOnUse / ItemSpellTriggerOnEquip /
ItemSpellTriggerLearn rather than None. GetTooltipData only read text
from None, ItemEnchantmentPermanent and ItemBinding lines, so
hasEquipEffect was never set and the Use:-based checks (re-learn,
reputation items, map markers, customization unlocks, artisan study
items) never matched. That let collected trinkets, legendaries and
cosmetic equip-effect pieces fall through to "sellable".
Include the typed lines in the scanned set and set hasEquipEffect
directly from the OnEquip type, keeping the text match as a fallback for
11.x clients where those enum entries don't exist.
Co-Authored-By: Claude Fable 5.1 noreply@anthropic.com - Report item load failures with context, cache refused source items
Load-failure debug messages now say which source item failed, whether the
client knows the item, the source and appearance it came from, and the
parent item being processed (or the quest and reward slot for quest
rewards). Sources with no item ID and quest rewards with no item ID are
skipped instead of requested.
Source items the server refuses to load (typically unreleased variants
sharing an appearance) are remembered for the session so later bag
refreshes don't re-request them, and each is reported only once.
Add explicit no-op branches for the FlavorText, ErrorLine and
DisabledLine tooltip line types so they stop triggering the
"TOOLTIP PROCESSING NEEDED" debug output.
Co-Authored-By: Claude Fable 5.1 noreply@anthropic.com - Use CaerdonAsyncCallbackSystemMixin so item/quest load failures reach callers
CreateListener built the Caerdon listeners from Blizzard's
AsyncCallbackSystemMixin, whose AddCallback takes a single callback. Every
caller passes a failure callback as well, so a failed ITEM_DATA_LOAD_RESULT
or QUEST_DATA_LOAD_RESULT silently dropped both and left LoadSources /
ContinueOnItemLoad waiting forever. The Caerdon mixin (unused until now)
tracks success and failure callbacks separately and fires the right set.
Since the failure callbacks now actually run, gate their chat prints
behind the Debug option so normal users don't see load-failure spam.
Co-Authored-By: Claude Fable 5.1 noreply@anthropic.com - Fix 12.1.5 GetDetailedItemLevelInfo removal, guard quest loads, add ruRU
Replace the removed GetDetailedItemLevelInfo global with
C_Item.GetDetailedItemLevelInfo (fixes #61, supersedes #62) and move the
remaining bare legacy globals (GetItemInfo, GetItemQualityColor,
IsAddOnLoaded, LoadAddOn) to their C_Item / C_AddOns equivalents so the
next client removal doesn't break item processing or the debug frame.
Skip the quest event listener when HaveQuestData is already true in
ContinueOnItemLoad, ContinueWithCancelOnItemLoad and the quest log
rewards hook. RequestLoadQuestByID fires QUEST_DATA_LOAD_RESULT
synchronously for cached quests, which runs Blizzard's own
QuestEventListener callbacks under addon taint (related to #60).
Add localization/ruRU.lua from #53 (translator ZamestoTV) and load it
from the TOC.
Co-Authored-By: Claude Fable 5.1 noreply@anthropic.com
This mod has no additional files

