0.3.0
HandMeDowns
0.3.0 (2026-08-19)
Full Changelog Previous Releases
- feat(pawn): compare items using secondary priorities from Pawn (#2)
- Unify current-character priority with alts, add secondary-stat tie-breaking
The current character was previously special-cased: it was always checked
first and won automatically if the item was any upgrade for it, before alts
were ever considered. Fold it into the same level-then-avg-ilvl priority
list used for alts instead, and walk that single list to find the best
recipient - if the current character comes first, the tooltip recommends
keeping the item, exactly like it would recommend an alt.
Upgrade decisions were also item-level-only, so two comparable items of
equal ilvl were never distinguished even when one clearly suited a
character's spec better. Add a tiered secondary-stat priority table per
spec (sourced from Wowhead's per-spec stat-priority guides for patch 12.1
"Midnight", documented in docs/DATA_SOURCES.md alongside the existing
weapon-table sourcing method) and a single CompareItemsForCharacter
comparator - item level first, secondary stats only on an exact tie - reused
by both "what does this character already have" and "is this hovered item
better." This also fixes same-ilvl items dangling false recommendations
against each other for the same slot.
Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com - Delegate secondary-stat tie-breaking to Pawn instead of a hardcoded table
The hand-transcribed SpecSecondaryStatPriority table (sourced from Wowhead
guides) needed manual re-transcription every patch and only ever encoded
rough tiers, not real weights. Pawn already does this exact calculation for
a living, and exposes it through genuine global functions other addons are
meant to call - confirmed by reading Pawn's actual source directly (a
fetch-and-summarize tool hallucinated fake function bodies on the first
attempt, so everything here was re-verified against the raw files) and by
its own ArkInventory-rule integration using the same functions.
CompareItemStatsForCharacter now resolves a Pawn scale for the character
(mapping our global spec ID to Pawn's local 1-4 spec index via the existing
SpecsByClass ordering) and compares both items' Pawn scores directly - no
more tiers, since Pawn's score is already a weighted scalar. Every call is
defensive: type-checked before calling, pcall-wrapped, and the return type
validated, so a missing Pawn install, a renamed function, or an internal
Pawn error all degrade silently to "no opinion" (item level only), exactly
like today's unknown-spec fallback. Nothing else in the recommendation flow
changes - same priority sort, same equip/eligibility checks.
Pawn is a new optional dependency. docs/DATA_SOURCES.md documents the exact
functions relied on, the Pawn version verified against (2.13.16), and how
to re-verify them if a future Pawn update changes shape.
Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com
Co-authored-by: Claude Sonnet 5 noreply@anthropic.com - Unify current-character priority with alts, add secondary-stat tie-breaking