lightweight tag fcd39ad4b7f83f9ab6a0a327f256c849bcd90072 v2026.06.10.1
Author:	BAThomp24 <bathomp24@gmail.com>
Date:	Wed Jun 10 22:25:48 2026 -0400

commit fcd39ad4b7f83f9ab6a0a327f256c849bcd90072
Author: BAThomp24 <bathomp24@gmail.com>
Date:   Wed Jun 10 22:25:15 2026 -0400

    remove minimap button + harden ApplySwaps and the dungeon-suggest popup
    
    * Remove minimap icon entirely (Minimap.lua, TOC entry, /zz minimap
      help). The build panel is reachable via /zz, the talent UI button, and
      the settings panel; the floating minimap button was redundant.
    * ApplySwaps rewrite (UI.lua): refund every drop with canRefundRank=true
      first, then attempt every pick, then roll back refunds that didn't fund
      a purchase. The previous per-pick refund-and-retry left orphan unspent
      talent points when a downstream pick couldn't be purchased even after
      freeing a point.
    * SwapsAlreadyApplied (UI.lua): match ApplySwaps' decision model exactly
      -- only flag picks as actionable if canPurchaseRank or canRefundRank
      can plausibly fund them. Stops the popup nagging about swaps that can
      never apply (cross-pool data, hidden prereqs, etc).
    * Persisted dungeon-suggest debouncer (Suggest.lua) so /reload inside a
      dungeon doesn't re-pop the suggestion every time. Per-character
      session suppression also added for swaps where ApplySwaps returns 0
      applied (unsatisfiable recommendation).
    * 1.5s delay on PLAYER_ENTERING_WORLD so the talent API has time to
      populate before isAlreadyOnBuild and SwapsAlreadyApplied check it;
      also skip the popup entirely if a CHALLENGE_MODE key is already
      active (talents are locked anyway).
    * New DumpLastSwapState diagnostic (UI.lua) -- printable per-pick state
      to help triage data quality issues end-to-end.
    
    Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

