Lets Grind 0.9.44-DIAG

Version 0.9.44-DIAG
- Removed the synchronous OnHide handler from the Blizzard Settings canvas to prevent taint from propagating into ToggleGameMenu/ClearTarget while the Settings panel is closing.
- Settings-close detection and the TSM group-overlay refresh now run asynchronously after the Blizzard close callback has fully completed.
- Loot Tracker behavior and all tracking, pricing, resizing, and item-click features remain unchanged.

Version 0.9.40-DIAG
- Added a red bilingual warning directly below Enable Quantity X Markers whenever the feature is active.
- Enabling Quantity X Markers now requires an explicit confirmation: "I understand, enable anyway" or "Do not enable". Merely opening the settings never asks again while the option is already active.
- The warning explains that TSM may temporarily report one item too many or too few after expired auctions or collected auction mail until the Auction House is opened again, which can affect quantity-X marking and selling.
- Fully localized the Quantity X Markers section in German and English, including its heading, description, storage labels, exception count and threshold headings.
- No quantity calculation, snapshot, vendor, run, loot, achievement or ATT logic was changed.

Version 0.9.36-DIAG
- English Runs price-source menus now show only the original TSM source names. German keeps the translated description with the TSM source in parentheses. Runs now offer only DBMinBuyout through DBRegionSaleAvg.
- Removed unsuitable notification sources in both languages: Blizzard item quality, required/item level, personal min/max/average buy and sell, crafting cost, vendor buy, personal sale rate and expires since last sale.
- Fixed English Zone details for Enemy, Opened container, Chest/Object and Historically unassigned, including the historical explanatory text.
- Fully localized the quantity-X exception heading, description, enable option, excluded-item count and Clear exceptions button.
- Meta achievement details now list their required dungeon, set, treasure, pet or final-meta achievements as individual progress rows, matching the detailed presentation used by Dungeons and Across Expansions.
- No inventory counting, quantity-X calculation, selling, run tracking or loot-recording logic was changed.

Lets Grind 0.9.34-DIAG

Version 0.9.34-DIAG
- Mengen-X verwendet fuer den konkreten TSM-Itemstring jetzt den vollstaendigen Tooltip-Bestand aus Spieler, Twinks, Auktionen, Gildenbanken und Kriegsmeutenbank. Zufallssuffixe wie „of the ...“ werden von TSM intern wie im Tooltip zusammengefasst.
- Accountweite Mengen-X-Ausnahmeliste hinzugefuegt. Eine frei belegbare Taste in den Optionen schliesst die Item-ID unter dem Mauszeiger vom grossen X und vom Mengen-X-Verkauf aus oder nimmt sie wieder auf.
- Ausgeschlossene Items behalten Farbe, kleine Besitzanzahl, ATT-X und manuelle Junk-Funktionen. Die Ausnahme gilt ebenfalls fuer Mengen-X in Charakterbank, Kriegsmeutenbank und Gildenbank.
- Bei identischer Junk- und Ausnahme-Taste bleibt die Ausnahme-Taste aus Sicherheitsgruenden ungebunden.
- Keine Run-, Loot-, Zonen-, Reset- oder sonstige Verkaufslogik wurde veraendert.

Lets Grind 0.9.33-DIAG

Version 0.9.33-DIAG
- Mengen-X: Der Besitzwert wird jetzt direkt aus TSM_API.GetPlayerTotals aufgebaut und entspricht damit den vier Bestandsteilen und dem Gesamtwert, die TSM im Inventory-Tooltip anzeigt.
- Der Custom-Price-Wert NumInventory ist nur noch ein Kompatibilitaets-Fallback. Er darf keinen roten X-Plan mehr erzeugen, wenn er vom sichtbaren TSM-Tooltip abweicht.
- /lg xdebug zeigt TSM-Tooltip-Gesamt, die vier direkten Bestandsteile und den bisherigen NumInventory-Wert getrennt an.
- Keine Verkaufs-, Run-, Loot-, Zonen- oder sonstige Overlaylogik wurde veraendert.

Lets Grind 0.9.32-DIAG

Version 0.9.32-DIAG
- Mengen-X: Jede spätere Taschenöffnung beginnt nach einem Taschen-Schließen zwingend mit einem vollständig frischen Plan.
- Mengen-X: Teilen Varianten ein TSM-Inventarbudget, wird der höchste statt des niedrigsten Klassengrenzwerts verwendet.
- Mengen-X: Die konkreten TSM-Itemstrings der aktuell vorhandenen Varianten werden gegengeprüft; bei unterschiedlichen Werten entscheidet konservativ der niedrigste NumInventory-Wert.
- Diagnose: /lg xdebug zeigt Neuöffnungsstatus sowie Besitzwert und Grenze jeder eingefrorenen Auswahl.

Version 0.9.31-DIAG
- A bag opening now owns one immutable slot plan until every bag is fully closed. Vendor sales no longer invalidate it, hide all overlays or create a replacement X distribution.
- Repeated Junk-button clicks consume only still-matching entries from that original plan. Empty sold slots are completed; different or replacement items in those slots are never added or sold.
- The Junk button is re-enabled after each small sale batch while original planned entries remain, allowing Blizzard-throttled sales to be continued by repeated clicks.
- Red X markers stay on the original selected slots and are never moved to another identical copy. Remaining color, count, ATT and junk visuals are redrawn from the same opening snapshot after each batch.
- Fresh NumInventory results must remain stable across multiple passes before a new X snapshot is frozen, with a longer stabilization window while a merchant is open.
- Every quantity-X sale is additionally blocked when a fresh TSM NumInventory check is below its configured threshold; Inventory 4 with threshold 5 can therefore never be sold by the X plan.
- The snapshot is deleted only after Blizzard confirms that all bags are closed. The next real opening always clears the ownership cache and creates a new plan.
- No run tracking, loot database, zone gold, popup or unrelated feature was changed.


Lets Grind 0.9.30-DIAG

Version 0.9.30-DIAG
- Red quantity-X selection is now created directly from the frozen bag slots, TSM owned count and the configured class threshold. Item GUID availability no longer blocks the visible X plan.
- Fixed the incorrect ItemLocation method call which caused every diagnostic slot to report GUID=nil. GUIDs are again collected when WoW provides them and are used as an additional sale-safety identity.
- Automatic selling uses the exact frozen X slots. Before selling, the complete bag signature plus item ID, full item link and stack size are validated; GUID is checked additionally when available.
- A missing GUID therefore cannot hide valid red X markers, while changed or mismatching bag contents still abort the complete sale before the first item is sold.
- No run tracking, loot database, zone gold, popup or unrelated overlay behavior was changed.


Lets Grind 0.9.29-DIAG

Version 0.9.29-DIAG
- Fixed the 0.9.28 regression where every bag overlay was hidden until the immutable automatic-sale snapshot became ready. Color overlays, ATT markers and owned-count numbers now render independently while the sale snapshot is pending.
- A missing item GUID on an unrelated, non-actionable bag item no longer blocks the complete snapshot. Only items that would actually be sold/destroyed, plus quantity-X selections, require a unique GUID.
- A temporarily missing owned-count value for an unrelated display-only item no longer blocks the sale snapshot; exact counts remain mandatory for every item type participating in quantity-X.
- Automatic selling remains fail-closed: a missing or duplicate GUID on any actionable item keeps the Junk action disabled and never falls back to item ID, link or slot.
- Snapshot diagnostics now expose the exact pending reason. Initial creation receives two additional bounded retries at 1.8 and 3.0 seconds without adding a ticker or recurring scan.
- A genuinely invalidated open-bag snapshot still hides all Lets Grind bag visuals until every bag is closed and opened again, preserving the 0.9.28 safety contract.


Lets Grind 0.9.28-DIAG

Version 0.9.28-DIAG
- Bag overlays and automatic junk sales now use one immutable GUID-based snapshot created after two identical complete bag passes.
- The red quantity-X display and its vendor entries are generated from the exact same frozen selections; VendorSell no longer independently rebuilds a quantity sale list.
- Every occupied bag slot must have a unique item GUID before the snapshot becomes ready. Missing or duplicate identities keep overlays and automatic sales disabled instead of falling back to item ID, link or slot.
- Before the first sale, the complete bag signature plus every manifest GUID, item ID, full item link and stack size are validated. Any mismatch aborts the whole sale before an item is sold.
- Pure slot moves keep the snapshot because items are followed by GUID. Adding, removing, combining or changing an item invalidates it and hides all Lets Grind bag visuals until every bag is closed and opened again.
- After a vendor sale, no replacement X plan is built while the same bag opening remains active. Repeated clicks cannot sell newly recalculated remaining copies.
- Manual junk, Blizzard poor-quality junk, first-class selling and quantity-X selling share the same frozen sale manifest. Each entry records its exact visible sale reason for diagnosis.
- Entering bag-search text immediately hides all color overlays, owned-count numbers, ATT markers, quantity X markers and junk coins. Only Blizzard search matches are redrawn from the frozen snapshot.
- Automatic junk selling is disabled while bag-search text is active and resumes from the unchanged snapshot after the search is cleared.
- Clearing or changing manual junk markings invalidates the open-bag snapshot and requires a close/reopen before automatic selling.


Lets Grind 0.9.27-DIAG

Version 0.9.27-DIAG
- Zone, dungeon and Lockboxes entries now show all gold looted in that location instead of only gold assignable to one NPC, object or container source.
- Item attribution remains unchanged and continues to track the exact NPC, object or container source.
- Gold is stored in a separate location-level ledger, so AoE loot and multi-source loot can no longer disappear from zone totals.
- Existing source-assigned gold is migrated to its known location. Older globally unassigned gold is preserved in one visible historical entry because its original location cannot be reconstructed.
- Money-only loot windows without a readable source GUID still create a location gold entry.
- Source deletion no longer removes location gold, while clearing the whole loot database still resets both items and gold.


Version 0.9.24-DIAG
- Entering a supported dungeon or raid immediately creates a visible live session in the Runs tab with the status "waiting for first loot".
- The first confirmed item or gold loot promotes that session to a real live run and assigns its run number as soon as a concrete copy ID is available.
- The Runs tab updates event-driven after entry, confirmed loot, gold and exit; no OnUpdate loop, permanent scanner or recurring poll was added.
- Re-entering the same copy ID resumes and live-merges into the existing run instead of displaying a duplicate record.
- A new copy ID closes the previous copy and starts a separate run regardless of whether ResetInstances was called through Lets Grind, Blizzard's player-portrait menu, a macro or another group leader.
- PLAYER_LEAVING_WORLD only pauses the current time segment. Reload, logout, death and teleports no longer finalize a run or add offline/loading time.
- RunTracker and the reset, bag-space and unlock warnings now consume the same confirmed outside-instance transition.
- Delayed exit callbacks are rejected when they belong to an older visit, preventing a newly entered waiting session from being discarded.
- Empty entry sessions disappear on exit and do not count as runs. Loot with no readable copy ID remains visible as unresolved and is saved under a unique fallback key instead of being deleted.
- The loot pipeline now records raw item count, chat-confirmed count, finalization status and RunTracker dispatch status for diagnosis.
- New loot cycles are no longer discarded solely because they repeat the same source/item fingerprint; LOOT_READY and LOOT_OPENED duplicates are already merged inside one cycle and duplicate chat lines are filtered by line ID.
- /lg rundebug and /lg rundebug all print the live state, time segment, copy ID, run number, raw/chat-confirmed loot and RunTracker handoff trace.
- /lg lootraw prints the latest pipeline status and raw-versus-confirmed quantities.
- Scarlet Monastery of Old remains on the normal dungeon copy-ID path with no four-wing session rules.
- Includes the quantity-X and TSM Groups fixes from 0.9.22-DIAG.

Version 0.9.20
- TSM classification, ownership counters and quantity-X now share one item-level identity.
- Random stat suffixes such as Aurora and Fireflash are grouped together.
- Differently scaled versions of the same item ID remain separate, matching the visible TSM tooltip.
- The small account-wide count, quantity-X budget and X-marked vendor list use the same TSM query representative.

Lets Grind 0.9.18

- Uses TSM NumInventory as the single authoritative base-item ownership total for the small count, quantity-X selection and X-marked vendor sales.
- Removed the custom sum of character, alt, auction, Guild Bank and Warband Bank subtotals that could double-count copies.
- Bag changes no longer modify the cached account total locally; Lets Grind waits for a fresh NumInventory result before any new exact quantity-X decision.
- If NumInventory is temporarily unavailable, quantity-X and its sell selection remain blocked instead of guessing a total.
- A complete stack is never X-marked when selling that stack would exceed the exact NumInventory excess quantity.

Lets Grind 0.9.17

- All TSM lookups now intentionally use the base item string (`i:itemID`).
- Random suffixes, bonus IDs, crafted variants and item-level variants share one color classification, one account-wide owned count and one quantity-X budget.
- The small owned-count number in the top-left corner now also shows the combined base-item total.

Lets Grind 0.9.16

- Added a General setting to show or hide the minimap button.
- The minimap button remains enabled by default and updates immediately when the option changes.

Lets Grind 0.9.15

- Expanded automatic unlock-item detection through Midnight.
- Added Thalassian Skeleton Key (260232), Ghostly Skeleton Key (82960), Writ of Grave Robbing (173065), and Jeweled Lockpick (130250).
- The existing Scroll of Unlocking and all previously supported skeleton keys remain supported.
- This update changes only the static item-ID list and adds no scanner, timer, or background work.

Lets Grind 0.9.14

- Prevents recent lockbox candidates from overwriting real Creature, Vehicle or GameObject loot sources.
- Normal dungeon loot is no longer excluded from run tracking by a false ItemContainer classification.
- Removes the speculative delayed-run-finalization change from 0.9.13.

Lets Grind
Version 0.9.18
Author: Slashdot

Lets Grind records personal loot and farming runs and can be used without any other addon.


VERSION 0.9.13
- Run finalization now waits through the Loot Database chat-confirmation grace period before removing the active dungeon run.
- This prevents the final loot window from arriving after a Scarlet Monastery of Old wing was already finalized and creating a stranded, invisible active run.
- Re-entering an instance or logging out safely flushes a pending run immediately, so the delay cannot merge two real entrances or lose saved data.
- Existing stranded active runs are finalized by the normal outside-world startup recovery after installing/reloading this version.

VERSION 0.9.12
- Opened lockboxes are captured from the bag button before Blizzard consumes or moves the item, so the Loot Database and Lockboxes Opened achievement no longer depend on a post-use slot read.
- The pre-click capture is event-driven and attached lazily to Blizzard bag buttons; it adds no permanent bag scanner or OnUpdate loop.
- A confirmed recent loot-container click is used for LOOT_READY as well as LOOT_OPENED, restoring the virtual Zones > Lockboxes source and achievement progress even when WoW omits isFromItem.
- The TSM Groups button no longer permits the permanent idle ticker to run EnumerateFrames scans. Expensive root discovery is restricted to short login/loading bursts, while reopen handling uses cached frame OnShow hooks and cheap named-frame checks.
- This removes the periodic multi-thousand-frame scans introduced by the stale-root recovery in 0.9.10, which could cause small CPU spikes while farming with TSM closed.

VERSION 0.9.11
- Every real opening of the player bags now starts a fresh quantity-X evaluation; a stale session can no longer survive closing the bags or a loading screen.
- Quantity-X decisions use the actual bag-slot data and wait until visible item buttons and item links are ready, so an early empty UI frame is never frozen as the final result.
- Character Bank, Warband Bank and Guild Bank snapshots are cleared on every new window session and wait for a stable tab layout before being frozen.
- Loading screens and world transitions explicitly discard all quantity-X snapshots for bags and storage.
- The TSM Groups button now drops stale hidden TSM root frames and rediscovers a rebuilt Groups window after farming, zoning or loading screens.

VERSION 0.9.9
- Achievement and progress item tooltips now continuously suppress equipped-item comparison panels and show only the tracked item tooltip.
- Achievement notifications remain visible while hovered and close immediately after a successful click-through to the matching achievement.
- Achievement set-piece rows support Shift-click chat linking and Ctrl-click dressing-room previews through Blizzard's normal modified item-click handling.
- Treasures, Feats of Strength and Pets now show a full clickable item row in the detail pane, matching the set-piece presentation.
- Completed item rows use their native Blizzard item-quality text color.
- Across Expansions cards now use the same three-rank bronze, silver and gold presentation as Classic dungeon cards and remain gray until their first tier is completed.

VERSION 0.9.8
- Removed the explanatory paragraph below Choose an Expansion so the overview now contains only its heading and expansion buttons.
- Achievement and set-progress notifications now use their matching dungeon artwork, set-piece icon, set icon, treasure icon, pet icon, or Feat of Strength item icon.
- Set-piece names and tracked rare-item names use their native Blizzard item-quality colors in achievement notifications.
- Toasts pause during loading screens and resume shortly after the loading screen has finished, preventing dungeon achievement alerts from expiring unseen.
- Achievement and progress notifications are clickable and open the Achievement window directly on the matching dungeon, set, treasure, pet, Feat of Strength, account statistic, or meta achievement.

VERSION 0.9.7
- Dungeon entries now show three compact rank medals for the 10, 100 and 1,000 run achievements.
- A dungeon entry remains fully gray until at least one achievement tier is actually completed; ordinary progress such as 7 / 10 does not color the card.
- Completed ranks are shown as bronze, silver and gold medals while unfinished ranks remain gray.
- After the first completed tier, the dungeon card shows completed tiers and progress toward the next tier directly in the list.

VERSION 0.9.4
- Added the Across Expansions achievement collection.
- Added Chests Looted milestones at 100, 1,000 and 10,000 lootable world-object sessions.
- Added Lockboxes Opened milestones at 100, 1,000 and 10,000 opened item containers.
- Added Looted Item Value milestones at 10 million, 100 million and 1 billion gold.
- Looted Item Value uses TradeSkillMaster DBRegionMarketAvg, is recorded only for confirmed self-loot, and clearly states that TSM is required.
- Existing compatible loot history is imported once into the new permanent statistics without replaying achievement notifications.
- Added Flintrock Shoulders as a Feat of Strength; Feats of Strength remain outside all meta-achievement requirements.
- Added a new TradeSkillMaster settings section for quantity X markers based on Lets Grind color groups.
- Quantity X markers use every configured Lets Grind color group except the first gray/junk group; user-added groups appear automatically.
- Color-group thresholds keep following the same group when it is renamed or reordered.
- Quantity X markers are withheld until TSM confirms the exact total across the current character, alts, auctions, Guild Bank and Warband Bank.
- Only visible copies above the configured keep amount receive the large full-slot X; a TSM fallback estimate can never authorize a marker.

VERSION 0.9.2
- The Achievement window now raises above the Loot Database whenever it is opened or clicked.
- Added Shift-left-click on the minimap button as a direct Achievement shortcut.
- Added overall and per-collection completion counters.
- Added an expansion overview with Classic active and future Burning Crusade and Wrath of the Lich King collections prepared in the same window.
- Added centered, cropped Adventure Guide artwork for supported dungeon achievements without stretching the original images.

VERSION 0.9.1
- Added an Achievements button directly beside Runs in the Loot Database main window.
- Restored the minimap button to left-click Main Window and right-click Settings.
- Locked achievements and unfinished set/item entries are visibly grayed out and desaturated until completed.
- Achievement list and detail scrollbars are shown only when their content exceeds the visible area.
- Added configurable completed-achievement and silent set-progress notifications in General settings.
- Achievement alerts use a separate bottom-center stack close to Blizzard achievement alerts, while loot notifications remain in their existing position.
- New set-piece progress notifications appear only for the first self-looted copy of a missing piece, never for dungeon-run progress, and never play a sound.
- Added test buttons for completed-achievement and set-progress notifications.
- Added Selfmade Achievements to the first-start feature overview.

VERSION 0.9.0
- Added the account-wide Selfmade Achievement system for Vanilla dungeon runs, transmog sets, treasures, Feats of Strength, and rare pets.
- Achievement progress is stored separately from deletable loot and run history.
- Only confirmed self-looted items count; mail, trade, auction purchases, banks, and quest rewards do not.

VERSION 0.8.23
- Unified the Scarlet Monastery of Old reset counter and run grouping into one shared per-character session.
- Changing the required Scarlet exit count now starts a clean session instead of carrying an old partial count into the new setting.
- Manual Blizzard instance resets and the Lets Grind reset button both clear the shared Scarlet counter and run session.
- Empty dungeon exits no longer create visible run records; at least one recorded item or looted gold is required.
- Cached unit prices and per-run totals for the Runs tab for 30 seconds, and only builds a run's item rows when that run is expanded.
- Debounced bursts of item-info events so the Loot Database is refreshed once instead of repeatedly.

VERSION 0.8.22
- Renamed the add-on to Lets Grind while keeping the existing add-on folder and SavedVariables name so current installations and recorded data can be updated safely.
- Replaced the old startup message with a one-time, scrollable German or English feature overview.
- Added /letsgrind and /lg while keeping the existing slash commands.
- Made the General, All The Things, and TradeSkillMaster settings content responsive to the actual panel width so long descriptions and checkbox labels wrap instead of being cut off.

VERSION 0.8.19
- Added an optional ATT + TSM setting that remembers item IDs after their first ATT loot notification and suppresses later ATT notifications while ATT still considers the item uncollected.
- The remembered list is account-wide and only affects Lets Grind's ATT notification; ATT X markers, ATT collection state, loot tracking, and TSM class notifications remain unchanged.
- If an item triggers both integrations, the first combined notification remembers it even when TSM has notification priority.
- Added a settings counter and reset button for the remembered ATT item IDs.

VERSION 0.8.18
- Opened lockboxes and other item containers now appear under a dedicated Lockboxes group in the Zones tab.
- Each lockbox type is shown by its localized item name, with the item ID used as a fallback until item data is available.
- Clicking a lockbox type shows the combined items, quantities, drop events, rates, and looted gold from every opened box of that type.
- Lockbox loot is no longer assigned to the physical zone or instance where the box was opened and is excluded from dungeon/raid run totals.
- Existing item-container history is migrated away from its old opening-zone contexts into the virtual Lockboxes context.
- Unlocking remains completely separate: only the later right-click that actually opens and loots the box matters for recording.

VERSION 0.8.17
- Added a localized "Withdraw highlighted items" button to the guild bank.
- The guild-bank button withdraws only the red snapshot selections from the currently open tab and stops cleanly on missing permissions, withdrawal limits, full bags, tab changes, or closing the bank.
- Guild-bank withdrawals use Blizzard's normal AutoStoreGuildBankItem path and preserve the per-tab snapshot, so no replacement copy starts glowing during the sequence.
- Locked lockboxes and other lootable containers are now explicitly excluded from auction-status highlights, including valuable lockboxes that TSM classifies into a selling class.
- Lockbox detection uses the actual localized item tooltip (Locked / Verschlossen) with container and lootable-item fallbacks.
- No permanent scanner or OnUpdate loop was added.

VERSION 0.8.16
- Reworked the bag-lockbox mouse handling so both interactions work at the same time.
- A secure helper now sits over only the hovered locked bag slot and handles physical RightButton clicks directly.
- LeftButton, MiddleButton and auxiliary mouse buttons pass through to Blizzard's original bag item button, preserving click-to-pick-up and drag-and-drop.
- Removed the unreliable pre-click BUTTON2 override from the active lockbox path; the first right-click activates Pick Lock / the key and the second right-click targets the exact bag slot on the same secure button.
- No polling scanner or OnUpdate loop was added.

VERSION 0.8.14
- Added the built-in WoW coin / money sound (SoundKit 891) as "Auction Sale (Coins)" for TSM class loot notifications.
- Removed "Collection Log Completed" from the normal TSM loot-notification sound list; it remains available only for All The Things collection notifications.
- Existing TSM loot settings that selected Collection Log Completed are migrated to the new coin sound.

VERSION 0.8.13
- Auction-status markers now group random-suffix and bonus variants by the TSM base item string, so only one copy of the same base item is highlighted.
- Current-character bag and auction checks now use the same base item string.
- Warband-bank and guild-bank marker selections are snapshots taken when a tab is opened; withdrawing an item no longer briefly highlights a replacement copy.
- Native gray-quality items are included when Lets Grind classifies them into a higher selling class, while actual junk-class items remain excluded.
- Added a localized "Withdraw highlighted items" button to the Warband bank, positioned left of Blizzard's deposit-all button.
- The button withdraws the currently highlighted items from the open Warband-bank tab in a bounded event-driven sequence and does not affect the guild bank.

VERSION 0.8.12
- Fixed the bag-lockbox right-click helper no longer activating Pick Lock / the configured unlocking item after the 0.8.8 left-click preservation change.
- BUTTON2 is now routed with SetOverrideBindingClick directly to the secure lockbox helper while hovering a locked player-bag slot.
- Added a SecureHandler SetBindingClick compatibility fallback instead of the previous textual CLICK binding command.
- The helper registers the same key-down or key-up edge used by the player's ActionButtonUseKeyDown setting, preventing a physical right-click from being missed or processed twice.
- No mouse-enabled overlay is placed over the bag slot, so left-click pickup and drag-and-drop remain fully handled by Blizzard.

VERSION 0.8.11
- Added an event-driven auction-status marker for bags and storage.
- Warband bank and guild bank are enabled by default; player bags and character bank are optional.
- Uses TSM's current-character auction quantity and exact TSM item strings.
- In storage, no marker is shown when the current character already has that exact item in bags or on the auction house.
- For duplicate copies in the currently displayed storage view, only one slot receives the neon-red marker.
- Moving the marked copy into the character's bags removes the marker from all remaining storage copies on the next bag event.
- The glow can optionally pulse through a Blizzard AnimationGroup and has no polling scanner or OnUpdate loop.
- Added complete German and English settings text.

VERSION 0.8.10
- Added an event-driven low-stock warning for consumable unlocking items after leaving a dungeon or raid.
- The warning threshold defaults to 5 and the popup closes after 15 seconds by default; 0 keeps it visible until dismissed.
- The popup shows the localized item link and current remaining count. Rogues using Pick Lock do not receive a consumable-stock warning.
- The last used or configured unlocking item is remembered so a count of 0 can still be reported.
- Opening a Blizzard merchant window now immediately closes the bag-space warning and cancels any pending warning from the same dungeon exit.
- Added complete German and English settings and popup text for the new warning.

VERSION 0.8.9
- Removed the unsuccessful world-chest BUTTON2-to-left-click remapping after in-game testing confirmed that WoW still treats the second right-click as normal object interaction ("Item is locked").
- Locked world chests now use the reliable flow: first right-click activates Pick Lock / the key item, then a normal left-click applies it to the chest.
- The temporary world BUTTON2 override and its secure fallback were removed completely, so the right mouse button is no longer remapped during world-object targeting.
- Bag lockboxes keep their working two-right-click flow because Lets Grind can securely target the exact bag slot.
- Updated German and English settings text to describe the actual tested behavior.

VERSION 0.8.8
- Fixed locked lockboxes blocking normal left-click pickup and drag-and-drop in bags.
- Removed the mouse-enabled transparent overlay from bag slots.
- Only BUTTON2 is now temporarily routed to the secure lockbox helper while hovering a locked lockbox; Blizzard's original bag button receives every left click unchanged.
- The two-right-click unlocking flow remains intact and still has no scanner or OnUpdate loop.

VERSION 0.8.7
- Added a second world-chest right-click experiment using the public SetOverrideBinding API after the first physical right-click has been released.
- Temporarily maps BUTTON2 to CAMERAORSELECTORMOVE only while the key / Pick Lock targeting cursor is active.
- Uses the existing secure binding owner so its combat state driver can clear the temporary binding, with five-second, cursor-change and combat cleanup retained.
- Falls back to the previous secure binding route only if the direct override API is unavailable or rejected by the client.

VERSION 0.8.6
- The instance reset popup now shows the looted item value and total run duration.
- Scarlet Monastery of Old is identified by its locale-independent instance map ID and waits for four exits by default before showing the reset popup.
- Added a setting to show the Scarlet Monastery of Old reset popup after 1, 2, 3 or 4 exits.

VERSION 0.8.5
- Added optional two-right-click unlocking for locked lockboxes in the player's bags.
- Rogues automatically use Pick Lock (spell ID 1804); non-rogues can optionally use the configured or automatically detected unlocking item.
- The first right-click activates the tool. The second right-click is securely redirected to the exact bag slot that was hovered, while a normal left-click remains available as a fallback.
- Detection uses the localized Blizzard Locked tooltip text and therefore works on German and English clients.
- The helper only hooks bag-item hover events and uses bounded one-shot timers during the two-click sequence; it has no permanent scanner or OnUpdate loop.
- Added separate German and English settings for world chests, bag lockboxes and non-rogue item use.

VERSION 0.8.4
- Changed the locked-chest assistant to an explicit two-right-click flow.
- The first right-click activates Pick Lock or the selected key item.
- Lets Grind then disables its secure overlay and temporarily maps the second right-click to WoW's left-click world action, allowing it to confirm the pending key / Pick Lock cursor on the chest.
- The helper only re-arms after the cursor has left the chest and reaches a locked object again.
- Updated the German and English settings text to describe the tested two-click behavior.

VERSION 0.8.2
- Added an optional experimental locked-chest assistant in the General settings.
- Detects locked world objects from the localized world tooltip (German "Verschlossen", English "Locked").
- A real right-click activates the rogue Pick Lock ability or an available key item through a secure action button.
- Pick Lock uses spell ID 1804 and item tools use item IDs, so the feature is independent of localized spell and item names.
- Supports a preferred custom unlocking item ID; 0 automatically checks known key items in the player's bags.
- The helper is event-driven, disabled in combat and has no OnUpdate scanner or recurring background timer.
- This is an in-game prototype: depending on how the client handles the propagated click, one additional left-click on the chest may still be required.

VERSION 0.8.1
- Reworked the settings layout to keep English and German texts and buttons inside the visible panel.
- Long information texts now reserve their real wrapped height instead of being clipped or overlapping later options.
- Reorganized the TSM color-class editor and moved Delete group / condition controls away from the right edge.
- Removed the large Available TSM values reference block from the settings.
- TSM sale rates in loot notifications are now shown as the original decimal values (for example 0.02 / 0,02) instead of percentages.

VERSION 0.8.0
- Added automatic German / English localization based on the WoW client locale.
- German clients use the existing German UI; every other client uses English.
- Localized settings, tabs, tooltips, buttons, dialogs, chat messages, loot notifications, run history, Loot Database and diagnostic output.
- Added locale-appropriate date, decimal and thousands formatting while accepting previously saved date formats.
- Localization is cached and event-driven; it adds no background scanner or recurring CPU work.

VERSION 0.7.14
- Fixed ATT notification priority so TSM value rows and the TSM drop counter are excluded when ATT wins a combined notification.
- Simplified ATT and TSM loot-message settings to one fixed Lets Grind design.
- Fixed notification design: 440 width, 80 minimum height, 62 icon size, 18 title size, black background, orange title/border and automatic item-quality color.
- ATT X defaults to size 12 and an orange-brown color.
- Collection Log Completed always uses the included 225% amplified sound file; volume variants and the volume slider were removed.
- TSM drop counts now appear in the upper-right corner instead of a separate Loot Database row.
- New default TSM classes use DBRegionMarketAvg thresholds of 500 / 2,500 / 10,000 / 50,000 / 100,000 gold, with gray as the fallback class.
- Default TSM overlay opacity is now 0.70.
- Raid instance-reset prompts are enabled by default and the instance-reset popup sound option was removed.

CORE FEATURES
- Personal loot database
- Dungeon and raid run tracking
- Open-world farming history
- Looted items, quantities, gold, run duration and vendor values
- Manual bag-item marking with an enable switch and configurable key
- Marked sellable items are added to Blizzard's Sell Junk button
- Marked items without vendor value can be destroyed deliberately
- Bag-space warning and instance-reset helper

OPTIONAL ALL THE THINGS INTEGRATION
- Orange-brown X on eligible items which ATT has not yet recorded as collected
- Loot notification for newly collected ATT items
- Configurable notification title, duration and sound
- Uses item IDs / item links and therefore works independently of the client language

OPTIONAL TRADESKILLMASTER INTEGRATION
- Configurable price-based item classes and bag/bank colors
- Optional item-count display
- Colored and sortable grouped / ungrouped TSM item lists
- TSM loot notifications with selectable sound and configurable TSM value rows
- Market values in run history
- Optional sale of the first configured class through Blizzard's Sell Junk button

LOOT NOTIFICATION DESIGN
- Fixed Lets Grind layout for ATT and TSM notifications
- Black background, orange title and border
- Item names always keep the automatic WoW quality color
- TSM drop count is shown in the upper-right corner
- Selectable sounds: off, classic WoW level-up, WoW achievement or the included loud Collection Log Completed sound

SETTINGS
- Separate General, All The Things and TradeSkillMaster tabs
- Configurable priority when ATT and TSM would notify for the same item

DEPENDENCIES
All The Things and TradeSkillMaster are optional. Lets Grind loads and keeps its core features when either or both are missing.

DATA MIGRATION
The existing SavedVariables name TSMBagValuesDB is intentionally retained so previous settings, manual markings, loot history and run history are preserved after upgrading from TSM Bag Values.

INSTALLATION
Copy the LetsGrind folder into World of Warcraft/_retail_/Interface/AddOns and restart the game or use /reload after updating.

SLASH COMMANDS
/lootjournal
/lj
/lj stats
/lj runs
/lj status
/lg achievements

Version 0.9.0 - Achievements
----------------------------
- Separate, account-wide achievement progress that is not deleted with run history.
- Dungeon milestones at 10, 100 and 1,000 valid runs for Vanilla-era Retail dungeons.
- Meta achievements for every dungeon tier.
- Broad Classic transmog set catalogue with per-piece lifetime loot counters.
- Curated attainable treasure achievements and treasure metas.
- Ultra-rare Uldaman/Gnomeregan/Old Scarlet drops are Feats of Strength and never block a meta.
- Rare old-world pet drop achievements and pet metas.
- Final meta achievement: The Grind Never Ends.
- Only loot confirmed through the player's own loot window counts. Mail, trades, Auction House, guild bank and quest rewards do not count.
- Open with /lg achievements, the Achievements button beside Runs, or Shift-left-click on the minimap button.


