TacoTip v0.7.3
What's new
[0.7.3] - 2026-08-27
Performance - 0.7.3
- Single
GetItemInfoFetch Per Item Tooltip:- Item tooltips previously called
GetItemInfoonce for the ilvl line, again insideTT_GS:GetItemScore, and a third time insideTT_GS:GetItemHunterScoreon every hover of every equippable item. - Added
TT_GS:GetItemScoreFromInfo(info)which scores from an already-fetchedGetItemInforesult table; the item tooltip hook now performs exactly one fetch shared by ilvl, GearScore and HunterScore. TT_GS:GetItemScore(link)andTT_GS:GetItemHunterScore(link, info?)remain fully backward compatible for frame overlays and other callers.
- Item tooltips previously called
- Memoized
ItemMixinAllocation inLibClassicInspector:GetInventoryItemMixinallocated a freshItemMixinper slot per call (~19 allocations on every player hover from GearScore + Pawn scoring loops).- Mixins are now memoized per cached user and slot, keyed by item identity so a gear change in the same slot rebuilds its mixin instead of returning stale data. Entries die with their cache user on FIFO eviction.
- Overlay Offset Clamping:
- Typed offset edit boxes now clamp keyboard-entered values to the ±300 slider range (
setOffsetValue), so a typo cannot push an overlay permanently offscreen. SafeSanitizeConfigrepairs out-of-range or corrupt saved offsets (including"corrupt"strings, NaN and ±infinity) back to defaults on every load.
- Typed offset edit boxes now clamp keyboard-entered values to the ±300 slider range (
Fixed - 0.7.3
- Options OnShow Lifecycle (order-dependent overwrite):
- Page builders no longer assign
panel:SetScript("OnShow"); the load-tail safeCall-wrapped handlers own that slot and already invokepanel:Refresh(). Assigning inside the builder silently replaced them after first build.
- Page builders no longer assign
- Library Hardening (
LibClassicInspector):GetTalentInfoByClassreturns nil past a tab's real talent count instead of raising "attempt to index a nil value"; the same guard was applied to both the player and inspected-unit branches ofGetTalentInfo.- The event dispatcher logs-and-continues via
geterrorhandler()when a registered event has no matching handler method, keeping the frame alive instead of erroring on first fire. - Achievement validity probes use Blizzard's documented 14th
isStatisticreturn instead of the undocumented 15th return that classic clients do not provide. addCacheUsernow returns the created user table so first-use callers (e.g.GetInventoryItemMixin) never operate on a nil cache entry.
Documentation & Testing - 0.7.3
- Accurate Backdrop Comments: Corrected stale "pre-2.5.3" notes across
main.luaand memory bank — NineSlice-equipped tooltips are verified present on all supported clients (Classic Era, TBC Anniversary, Wrath); backdrop handling is runtime-detected viatooltip.NineSlice, not build-gated. - New Regression Tests: Added
SanitizeOffsetBounds(offset repair incl. NaN/infinity) andGetItemScoreFromInfoMatchesLink(single-fetch path produces identical scoring to the link path) WoWUnit tests — run with/tttest. - Version metadata bumped to
0.7.3acrossTacoTip.toc,main.lua,options.lua,README.md,CHANGELOG.md,AGENTS.md, and memory bank.
This mod has no additional files

