Skip to content

Releases: sgade/WarbandMeDowns

0.6.0

Choose a tag to compare

@github-actions github-actions released this 20 Aug 14:12
54c29a4

WarbandMeDowns

0.6.0 (2026-08-20)

Full Changelog Previous Releases

0.5.0

Choose a tag to compare

@github-actions github-actions released this 20 Aug 11:37

WarbandMeDowns

0.5.0 (2026-08-20)

Full Changelog Previous Releases

  • ci: add CurseForge deployment
  • chore: add project icon
  • refactor: rename project to WarbandMeDowns
  • feat: make Pawn score authoritative over item level when installed (#4)
    Item level alone can't distinguish a same-slot Intellect item from a
    Strength one, so a higher-ilvl item with the wrong main stat could
    outrank a lower-ilvl item with the right one. Now, when Pawn is
    installed and a scale resolves for the character, its score decides
    the comparison outright instead of only breaking exact item-level
    ties. Item level remains the fallback when Pawn isn't installed, the
    spec is unknown, or Pawn can't score one of the two items being
    compared.
    • Pawn.lua: new Pawn.CompareItemValuesForScale is the authoritative
      comparator; Pawn.GetPawnItemValue now memoizes per (scale, item)
      since the removed early-break scans candidates more often.
    • Assignment.lua: CompareItemsForCharacter tries Pawn first; drop the
      now-unsafe item-level sort/early-break in favor of a full scan for
      the true best candidate; BuildUpgradeInfo's statOnlyUpgrade now also
      covers Pawn picking a lower-ilvl item.
    • Tooltip.lua: new wording for "better stats despite lower item
      level", distinct from the existing same-ilvl case.
    • docs/DATA_SOURCES.md: describe Pawn as authoritative, not a
      tie-breaker.
      Co-authored-by: Claude Sonnet 5 noreply@anthropic.com
  • ci: validate lua syntax
  • chore(readme): update readme with screenshot

0.4.0

Choose a tag to compare

@github-actions github-actions released this 19 Aug 19:37
442d89f

HandMeDowns

0.4.0 (2026-08-19)

Full Changelog Previous Releases

  • feat: precompute a global warband assignment instead of per-hover recomputation (#3)
    Replaces the per-tooltip-hover recomputation with a precomputed, lazily
    refreshed global assignment engine. One pass over the whole warband settles,
    per character and equipment slot, which item they should end up with -
    letting a spare in one alt's bag cascade down to a lower-priority alt -
    instead of asking "is this hovered item an upgrade?" from scratch every time.
    • Assignment.lua: the new engine. Every item falls into one of three
      buckets (equipped = permanent floor, unsendable spare = floor, sendable
      spare = movable pool); settling a (slot-class, target equip location)
      pair is lazy and memoized per generation, so hovering many items of the
      same slot-class only pays for it once. A dirty flag + debounced
      out-of-combat background recompute keeps the engine warm, with hovering a
      tooltip as the guaranteed synchronous fallback.
    • Tooltip.lua: lifecycle + GameTooltip hook, now with a "sell it" line for
      items confirmed to be an upgrade for nobody.
    • Characters.lua: warband enumeration/eligibility, now memoized per
      (character, classID, subclassID) instead of per item. Character priority
      ordering moved to a standalone, swappable comparator
      (CharacterPriorityComparator) as a marked extension point for a future
      alternate ordering - only the existing default is implemented.
    • Data.lua / Pawn.lua: item taxonomy and Pawn integration, relocated with
      unchanged bodies.
    • HandMeDowns.lua: trimmed to bootstrap + shared Util.
    • HandMeDowns.toc, README.md, docs/DATA_SOURCES.md: updated load order and
      behavior description; weapon/spec data and Pawn integration facts
      untouched.
      Co-authored-by: Claude Sonnet 5 noreply@anthropic.com

0.3.0

Choose a tag to compare

@github-actions github-actions released this 19 Aug 17:45
f03d2f3

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

0.2.0

Choose a tag to compare

@github-actions github-actions released this 18 Aug 07:44

HandMeDowns

0.2.0 (2026-08-18)

Full Changelog Previous Releases

  • feat: narrow twink suggestions to spec-favored weapons and shields (#1)
    CanCharacterEquipItem previously gated purely on class, so it would
    suggest e.g. a Staff to an Enhancement Shaman or a Shield to a Fury
    Warrior just because the class can technically equip those. It now
    also checks the character's known specialization (via the optional
    DataStore_Talents module) against a per-spec favored weapon/shield
    table sourced from Blizzard's own ChrSpecialization game data, with
    graceful fallback to the union of a class's specs when the spec isn't
    known. Includes the new Midnight-era Devourer Demon Hunter spec.
    Also invalidates the recommendation cache on PLAYER_SPECIALIZATION_CHANGED
    and adds DataStore_Talents as an OptionalDeps entry in the .toc.
    Co-authored-by: Claude Sonnet 5 noreply@anthropic.com

0.1.1

Choose a tag to compare

@github-actions github-actions released this 12 Aug 15:25

HandMeDowns

0.1.1 (2026-08-12)

Full Changelog Previous Releases

  • Support WoW 12.1
    Drop the 12.0.5 and 12.0.7 interface versions. No API changes in 12.1
    affect the item, tooltip, or event APIs this addon uses.
    Co-Authored-By: Claude Opus 5 noreply@anthropic.com
  • Support WoW 12.0.7
  • Add GitHub releases badge

0.1.0

Choose a tag to compare

@github-actions github-actions released this 28 May 19:13

HandMeDowns

0.1.0 (2026-05-28)

Full Changelog Previous Releases

  • Merge branch 'vibe-coded'
  • Consider weapon items as well
  • Cache tooltip results
  • Recognize shields
  • Evaluate current character first
  • Fix tooltip not shown
  • Implement addon logic
    Changed:
    - Sort eligible alts by DataStore:GetCharacterLevel descending, then
    DataStore:GetAverageItemLevel descending.
    - Check equipped items, bags, and mail for equal-or-better item level before
    recommending an alt.
    - Treat missing comparable gear as an upgrade from item level 0.
    - Keep required item level out of eligibility.
    - Tighten tradable bind checks to BoE and account/warband-style binds.
    - Use DataStore’s non-localized class token and WoW item class/subclass
    constants for armor compatibility.
    - Added DataStore_Characters to required dependencies.
    - Updated README.md with usage behavior and requirements.
    Validation:
    - Ran luac -p HandMeDowns.lua successfully.
    I referenced the current DataStore/DataStore module structure from GitHub
    while aligning the calls: https://github.com/Thaoky/DataStore.
  • Update for WoW 12.0.5

0.0.4

Choose a tag to compare

@github-actions github-actions released this 08 Sep 16:25

HandMeDowns

0.0.4 (2025-09-08)

Full Changelog Previous Releases

  • Catch "compare number with nil"
    When you are very fast with your mouse, one of the two item levels can be nil for some reason,
    and then the comparison fails.

0.0.3

Choose a tag to compare

@github-actions github-actions released this 08 Sep 15:45

HandMeDowns

0.0.3 (2025-09-08)

Full Changelog Previous Releases

  • Remove logs from production

0.0.2

Choose a tag to compare

@github-actions github-actions released this 02 Sep 08:35

HandMeDowns

0.0.2 (2025-09-02)

Full Changelog Previous Releases

  • Prepare automated releases