Skip to content

Releases: mikigraf/AutoSellPlus

v3.8.1

12 Mar 19:23

Choose a tag to compare

AutoSellPlus

v3.8.1 (2026-03-12)

Full Changelog Previous Releases

  • add readme

v3.8.0

12 Mar 07:54

Choose a tag to compare

AutoSellPlus

v3.8.0 (2026-03-12)

Full Changelog Previous Releases

  • docs: update docs for AH protection, Safe Mode, and destruction system
    Update CHANGELOG, FEATURES, and CurseForge description with new v3.5
    features: AH value protection, Safe Mode template, destruction system v1,
    centralized AH lookups, and friendly self-test messages.
  • feat: add Safe Mode template and friendly self-test messages
    New profile template for new users: grays only, all protections on. Wizard
    defaults to Safe Mode when no template or profile is selected. Self-test
    messages are now user-friendly and reassuring instead of technical.
  • feat: add AH value protection with popup row coloring
    Protect items worth more than a configurable threshold on the AH from being
    auto-sold. Requires TSM or Auctionator. Popup rows where AH value exceeds
    a configurable multiplier of vendor price are color-coded, with a tooltip
    showing "Worth listing: AH Xg, vendor Yg (Nx)".
  • feat: add destruction system v1
    Complete rewrite of the auto-destroy feature with separate destroy filters
    (quality, ilvl, max vendor value), a never-destroy list, countdown confirmation
    popup, and a bag pressure valve that auto-triggers when free slots drop below
    a configurable threshold. Items are destroyed one per tick with cursor
    verification for safety. Migrates old autoDestroy* settings to new destroy*
    keys (DB version 2 → 3).
  • refactor: centralize AH value lookups into Helpers.lua
    Replace duplicated TSM/Auctionator price queries in Overlays, PopupFilters,
    and Popup with ns:GetAHValue(itemID, itemLink) and ns:HasAHAddon() helpers.

v3.7.0

11 Mar 21:01

Choose a tag to compare

AutoSellPlus

v3.7.0 (2026-03-11)

Full Changelog Previous Releases

  • docs: update changelog and features for tooltip status and compact mode
  • fix: replace removed GetServerTime global with C_DateAndTime fallback
    GetServerTime() was removed as a global in Midnight 12.0. The wrapper
    in Helpers.lua now uses C_DateAndTime.GetServerTimeLocal() with time()
    as a safe fallback. All bare GetServerTime() calls across Core, History,
    MinimapButton, and Overlays now route through the wrapper.
  • feat: add tooltip item status and compact mode
    Tooltip status: adds a colored classification line to item tooltips
    showing how ASP will handle each item (sell, protected, skipped).
    Driven by new ClassifyItem() which mirrors ShouldSellItem priority chain.
    Compact mode: condensed popup showing item count, total value,
    per-quality breakdown, and one-click Sell. Toggle via /asp compact,
    settings panel, or button on either popup.
  • fix: use dynamic bag frame count in BagAdapters
    Replace hardcoded loop bound of 13 with NUM_TOTAL_EQUIPPED_BAG_SLOTS + 1
    so the adapter scales if Blizzard changes bag slot count.
  • Merge pull request #7 from mikigraf/3.6
    3.6
  • Update docs for sell collected transmog, known collectibles, and relative ilvl
    Add changelog entries and feature documentation for the three new features:
    sell collected transmog, sell known collectibles, and relative ilvl threshold.
  • Add relative ilvl threshold mode
    New settings (useRelativeIlvl, relativeIlvlPercent) that compute an ilvl
    threshold as a percentage of the player's average equipped ilvl. When enabled,
    this single threshold replaces all per-quality ilvl sliders. Modifies
    CheckQualityFilter and ApplyFilters to use relative threshold, adds checkbox
    with slider/editbox to popup filter section, grays out quality ilvl controls
    when active, and shows computed threshold in avgIlvlText.
  • Add sell known collectibles filter
    New setting (sellKnownCollectibles) that marks already-known mounts, pets, and
    toys for selling. Adds IsKnownMount, IsKnownPet, IsKnownToy, and
    IsKnownCollectible helpers to Protection.lua using C_MountJournal, C_PetJournal,
    and C_ToyBox APIs. Integrates into ShouldSellItem, BuildDisplayList,
    ApplyFilters, and popup UI with checkbox and settings overlay entry.
  • Add sell collected transmog filter
    New setting (sellCollectedTransmog) that marks items with already-collected
    transmog appearances for selling. Adds IsCollectedTransmog helper to
    Protection.lua, integrates into ShouldSellItem sell criteria, BuildDisplayList
    item data, ApplyFilters auto-check logic, and popup checkbox with settings
    overlay entry.

v3.6.0

10 Mar 15:58

Choose a tag to compare

AutoSellPlus

v3.6.0 (2026-03-09)

Full Changelog Previous Releases

  • Remove Bindings.xml from TOC to fix XML parsing errors
    WoW auto-loads Bindings.xml by filename. Listing it in the TOC causes
    WoW to also parse it as UI XML, which doesn't recognize Binding element
    attributes (name, runOnUp), producing Unrecognized XML attribute errors.
  • Merge branch '3.5'

    Conflicts:

    .luacheckrc

    AutoSellPlus/Selling.lua

  • Rewrite CHANGELOG.md with full release history
    Organized by release version (v1.0.0 through v3.3.0) plus unreleased
    3.5 changes. Each version documents its fixes, features, performance
    improvements, and breaking changes.
  • Update CHANGELOG.md with all recent fixes and features
  • Add tooltip fallback for warband detection
    GetItemInfo bindType is unreliable for many warband items (reagents,
    trade goods). Falls back to scanning tooltip data via C_TooltipInfo
    using Blizzard's own localized binding globals (ITEM_BIND_TO_BNETACCOUNT,
    ITEM_BNETACCOUNTBOUND, ITEM_ACCOUNTBOUND, ITEM_BIND_TO_ACCOUNT) for
    locale-safe detection of all warband and account-bound items.
  • Include legacy Bind to Account (bindType 7) in warband detection
    Many warband items still report as bindType 7 (ToWoWAccount) through
    the API despite displaying as "Binds to Warband" in tooltips. Now
    detects all three account-bound types: 7, 8, and 9.
  • Rename warbound to warband to match official WoW terminology
    Blizzard uses "Binds to Warband" in-game. Renames protectWarbound to
    protectWarband, IsWarbound to IsWarband, and the checkbox label to
    Protect Warband throughout.
  • Add warbound item protection with toggleable checkbox
    Detects warbound items via bindType 8 (ToBnetAccount) and 9
    (ToBnetAccountUntilEquipped) from Enum.ItemBind. Adds a Protect
    Warbound checkbox to the popup filter section. Defaults to off.
  • Defer AH value lookup to visible items only
    Move TSM/Auctionator price queries from BuildDisplayList to
    ApplyFilters so they only run for items that pass visibility filters.
    Reduces unnecessary pcall overhead for filtered-out items.
  • Use CanIMogIt constants for locale-safe transmog detection
    Replace hardcoded English string matching ("Cannot", "Collected")
    with CanIMogIt's own NOT_COLLECTED constants for proper localization
    support. Fixes false positives/negatives for non-English clients.
  • Add cursor verification before destroying items
    ClearCursor before pickup, then verify GetCursorInfo matches the
    expected itemID before calling DeleteCursorItem. Prevents accidentally
    destroying the wrong item if the player is dragging something or the
    bag slot changed between scan and destroy.
  • Add unit tests for GetMaxBagID and GetServerTime helpers
  • Add row pooling to confirm list for better performance
    Reuses hidden row frames instead of creating new ones each time the
    confirm list is shown. Rows are pooled by type (item vs divider) and
    recycled on subsequent opens.
  • Add dynamic bag ID and server time helpers, use throughout
    Adds GetMaxBagID() using NUM_TOTAL_EQUIPPED_BAG_SLOTS for reagent bag
    support and GetServerTime() with C_DateAndTime fallback. Replaces all
    hardcoded bag 0-4 loops and direct GetServerTime calls. Also improves
    undo buyback matching to use full item link instead of name substring.
  • Fix mount equipment classID: Miscellaneous (15) not Armor (4)
    Mount equipment items like Light-Step Hoofplates are classified as
    Miscellaneous (classID 15, subclassID 6), not Armor (classID 4).
    Also adds missing WoW API globals to luacheckrc.
  • Add mount equipment protection with toggleable checkbox
    Mount equipment (Armor classID 4, subclassID 6) is now protected from
    selling by default. A Protect Mount Equipment checkbox in the popup
    filter section allows toggling this on or off. Also reuses the
    GetItemInfoInstant classID in ShouldSellItem and BuildDisplayList to
    avoid redundant API calls.
  • Fix Bindings.xml parsing error by removing invalid header attribute
    WoW auto-loads Bindings.xml and the header attribute is not valid on
    Binding elements. The section header is already provided by the
    BINDING_HEADER_AUTOSELLPLUS global in Core.lua.
  • Merge pull request #5 from mikigraf/v31
    V31
  • Fix selling, undo, and auto-destroy safety and correctness issues
    Selling safety:
    • /asp sell and /asp undo now require a merchant to be open
    • Guild auto-repair checks CanGuildBankRepair before claiming success
    • Priority sell queue sorts ascending so valuable items stay in buyback
    • Sell All Junk cancel only reverts force-checked items, not all
    • Drag-to-sell checks isMerchantOpen before UseContainerItem
    • Sell queue builders propagate quality field for confirm list colors
    • Expansion filter cycle uses dynamic CURRENT_EXPANSION
      Undo improvements:
    • Buyback matching iterates in reverse to handle index shifting
    • Uses name+count lookup to avoid double-buying same item
      Auto-destroy fixes:
    • Respects equipment set, transmog, BoE, and refundable protections
    • Re-verifies bag slot contents before each deletion
    • autoDestroyMaxValue=0 now means no limit instead of blocking all
    • Stack limit check uses total bag count instead of per-slot count
      Instance profiles:
    • Only fires when instance type actually changes, not every load screen
      Other:
    • Invalidate equipped ilvl cache on PLAYER_EQUIPMENT_CHANGED
    • Reuse animation groups in FlashSellButton and undo toast
  • Fix wizard template and profile section Y overlap
    When saved profiles exist, the template quick-apply section started at
    the same Y coordinate as the profile picker, causing visual overlap.
    Offset the template section down when profiles are present.
  • Fix session report net loss missing minus sign
    Net gold change was showing losses without a minus sign (e.g. "50g"
    instead of "-50g") because the negative prefix was empty string.
  • Fix transmog source protection and wire up addon integration
    IsUncollectedTransmogSource was passing itemID directly to
    GetAllAppearanceSources which expects a visualID. Now correctly gets
    the appearance ID via GetItemInfo first. Also wire up the previously
    dead IsTransmogProtectedByAddon function into ShouldSellItem so
    AllTheThings and CanIMogIt collection data is used for protection.
  • Fix bag item flash texture and animation group leak
    FlashBagItem created new textures and animation groups on every call
    without reusing them. Use an object pool so textures and their animation
    groups are recycled after the flash completes.
  • Fix ALT+click hook and loot auto-mark item link extraction
    ALT+click hook now only marks items when at a merchant or in bulk mark
    mode, preventing interference with normal item use (eating food, opening
    lockboxes). CHAT_MSG_LOOT handler now correctly extracts the item link
    from the chat message string before passing to GetItemInfoInstant and
    GetEffectiveItemLevel.
  • Use dynamic expansion detection instead of hardcoded ID
    Replace hardcoded CURRENT_EXPANSION = 12 with GetExpansionLevel() so
    trade goods protection automatically tracks the correct expansion
    without code changes when a new expansion launches.
  • Fix keybind support by re-adding Bindings.xml to TOC
    The Bindings.xml file was removed from the TOC to fix a loading error,
    which left the keybind system completely non-functional. Re-add it so
    the Key Bindings UI entry appears and the keybind works.

v3.5.0

09 Mar 14:37

Choose a tag to compare

AutoSellPlus

v3.5.0 (2026-03-09)

Full Changelog Previous Releases

  • Remove Bindings.xml from TOC to fix XML parsing errors
    WoW auto-loads Bindings.xml by filename. Listing it in the TOC causes
    WoW to also parse it as UI XML, which doesn't recognize Binding element
    attributes (name, runOnUp), producing Unrecognized XML attribute errors.
  • Merge branch '3.5'

    Conflicts:

    .luacheckrc

    AutoSellPlus/Selling.lua

  • Rewrite CHANGELOG.md with full release history
    Organized by release version (v1.0.0 through v3.3.0) plus unreleased
    3.5 changes. Each version documents its fixes, features, performance
    improvements, and breaking changes.
  • Update CHANGELOG.md with all recent fixes and features
  • Add tooltip fallback for warband detection
    GetItemInfo bindType is unreliable for many warband items (reagents,
    trade goods). Falls back to scanning tooltip data via C_TooltipInfo
    using Blizzard's own localized binding globals (ITEM_BIND_TO_BNETACCOUNT,
    ITEM_BNETACCOUNTBOUND, ITEM_ACCOUNTBOUND, ITEM_BIND_TO_ACCOUNT) for
    locale-safe detection of all warband and account-bound items.
  • Include legacy Bind to Account (bindType 7) in warband detection
    Many warband items still report as bindType 7 (ToWoWAccount) through
    the API despite displaying as "Binds to Warband" in tooltips. Now
    detects all three account-bound types: 7, 8, and 9.
  • Rename warbound to warband to match official WoW terminology
    Blizzard uses "Binds to Warband" in-game. Renames protectWarbound to
    protectWarband, IsWarbound to IsWarband, and the checkbox label to
    Protect Warband throughout.
  • Add warbound item protection with toggleable checkbox
    Detects warbound items via bindType 8 (ToBnetAccount) and 9
    (ToBnetAccountUntilEquipped) from Enum.ItemBind. Adds a Protect
    Warbound checkbox to the popup filter section. Defaults to off.
  • Defer AH value lookup to visible items only
    Move TSM/Auctionator price queries from BuildDisplayList to
    ApplyFilters so they only run for items that pass visibility filters.
    Reduces unnecessary pcall overhead for filtered-out items.
  • Use CanIMogIt constants for locale-safe transmog detection
    Replace hardcoded English string matching ("Cannot", "Collected")
    with CanIMogIt's own NOT_COLLECTED constants for proper localization
    support. Fixes false positives/negatives for non-English clients.
  • Add cursor verification before destroying items
    ClearCursor before pickup, then verify GetCursorInfo matches the
    expected itemID before calling DeleteCursorItem. Prevents accidentally
    destroying the wrong item if the player is dragging something or the
    bag slot changed between scan and destroy.
  • Add unit tests for GetMaxBagID and GetServerTime helpers
  • Add row pooling to confirm list for better performance
    Reuses hidden row frames instead of creating new ones each time the
    confirm list is shown. Rows are pooled by type (item vs divider) and
    recycled on subsequent opens.
  • Add dynamic bag ID and server time helpers, use throughout
    Adds GetMaxBagID() using NUM_TOTAL_EQUIPPED_BAG_SLOTS for reagent bag
    support and GetServerTime() with C_DateAndTime fallback. Replaces all
    hardcoded bag 0-4 loops and direct GetServerTime calls. Also improves
    undo buyback matching to use full item link instead of name substring.
  • Fix mount equipment classID: Miscellaneous (15) not Armor (4)
    Mount equipment items like Light-Step Hoofplates are classified as
    Miscellaneous (classID 15, subclassID 6), not Armor (classID 4).
    Also adds missing WoW API globals to luacheckrc.
  • Add mount equipment protection with toggleable checkbox
    Mount equipment (Armor classID 4, subclassID 6) is now protected from
    selling by default. A Protect Mount Equipment checkbox in the popup
    filter section allows toggling this on or off. Also reuses the
    GetItemInfoInstant classID in ShouldSellItem and BuildDisplayList to
    avoid redundant API calls.
  • Fix Bindings.xml parsing error by removing invalid header attribute
    WoW auto-loads Bindings.xml and the header attribute is not valid on
    Binding elements. The section header is already provided by the
    BINDING_HEADER_AUTOSELLPLUS global in Core.lua.
  • Merge pull request #5 from mikigraf/v31
    V31
  • Fix selling, undo, and auto-destroy safety and correctness issues
    Selling safety:
    • /asp sell and /asp undo now require a merchant to be open
    • Guild auto-repair checks CanGuildBankRepair before claiming success
    • Priority sell queue sorts ascending so valuable items stay in buyback
    • Sell All Junk cancel only reverts force-checked items, not all
    • Drag-to-sell checks isMerchantOpen before UseContainerItem
    • Sell queue builders propagate quality field for confirm list colors
    • Expansion filter cycle uses dynamic CURRENT_EXPANSION
      Undo improvements:
    • Buyback matching iterates in reverse to handle index shifting
    • Uses name+count lookup to avoid double-buying same item
      Auto-destroy fixes:
    • Respects equipment set, transmog, BoE, and refundable protections
    • Re-verifies bag slot contents before each deletion
    • autoDestroyMaxValue=0 now means no limit instead of blocking all
    • Stack limit check uses total bag count instead of per-slot count
      Instance profiles:
    • Only fires when instance type actually changes, not every load screen
      Other:
    • Invalidate equipped ilvl cache on PLAYER_EQUIPMENT_CHANGED
    • Reuse animation groups in FlashSellButton and undo toast
  • Fix wizard template and profile section Y overlap
    When saved profiles exist, the template quick-apply section started at
    the same Y coordinate as the profile picker, causing visual overlap.
    Offset the template section down when profiles are present.
  • Fix session report net loss missing minus sign
    Net gold change was showing losses without a minus sign (e.g. "50g"
    instead of "-50g") because the negative prefix was empty string.
  • Fix transmog source protection and wire up addon integration
    IsUncollectedTransmogSource was passing itemID directly to
    GetAllAppearanceSources which expects a visualID. Now correctly gets
    the appearance ID via GetItemInfo first. Also wire up the previously
    dead IsTransmogProtectedByAddon function into ShouldSellItem so
    AllTheThings and CanIMogIt collection data is used for protection.
  • Fix bag item flash texture and animation group leak
    FlashBagItem created new textures and animation groups on every call
    without reusing them. Use an object pool so textures and their animation
    groups are recycled after the flash completes.
  • Fix ALT+click hook and loot auto-mark item link extraction
    ALT+click hook now only marks items when at a merchant or in bulk mark
    mode, preventing interference with normal item use (eating food, opening
    lockboxes). CHAT_MSG_LOOT handler now correctly extracts the item link
    from the chat message string before passing to GetItemInfoInstant and
    GetEffectiveItemLevel.
  • Use dynamic expansion detection instead of hardcoded ID
    Replace hardcoded CURRENT_EXPANSION = 12 with GetExpansionLevel() so
    trade goods protection automatically tracks the correct expansion
    without code changes when a new expansion launches.
  • Fix keybind support by re-adding Bindings.xml to TOC
    The Bindings.xml file was removed from the TOC to fix a loading error,
    which left the keybind system completely non-functional. Re-add it so
    the Key Bindings UI entry appears and the keybind works.

v3.3.0

09 Mar 10:12

Choose a tag to compare

AutoSellPlus

v3.3.0 (2026-03-08)

Full Changelog Previous Releases

  • Merge branch 'main' of https://github.com/mikigraf/AutoSellPlus
  • add readme
  • Merge pull request #4 from mikigraf/feat/v3
    Feat/v3
  • Improve popup filter layout, readability and UX
    Brighten ilvl labels, section labels, and item row ilvl text for better
    readability on dark background. Resize Transmog/Soulbound checkboxes to
    match quality filter rows. Add visual gaps between filter groups. Fix
    slot row padding so avg equipped ilvl text no longer overlaps buttons.
  • Add Settings tab to popup for in-vendor settings access
    Add Items/Settings tab buttons below the popup title bar so users can
    view and change all addon settings without leaving the vendor window.
    The Settings tab shows a scrollable overlay with all settings organized
    into sections (General, Automation, Protection, Marking, Display, Bag
    Maintenance, Auto-Destroy). Switching back to Items syncs filter
    controls and rebuilds the display list to reflect any changes.
  • Fix soulbound-only filter checking BoE instead of actual bound state
    The soulbound-only filter only checked IsBindOnEquip, so non-BoE items
    like grays passed through unfiltered. Now uses C_Item.IsBound to check
    if items are actually bound to the player. Fixes both popup and
    auto-sell paths.
  • Fix popup filter bugs: soulbound-only shadowed by BoE protection, quest category blocked by quest protection
    Reorder onlySoulbound check before protectBoE in BuildDisplayList so it
    takes effect regardless of BoE protection state. Remove protectQuestItems
    from BuildDisplayList eligibility so quest items appear when the Quest
    category is enabled, but default them to unchecked when protection is on.
  • Fix Bindings.xml loading error by removing it from TOC
    Bindings.xml is auto-detected by the WoW client from the addon
    folder and must not be listed in the .toc file. Listing it causes
    the UI XML parser to process it as a regular UI file, which does
    not recognize Binding elements.
  • Update FEATURES.md and CURSEFORGE_DESCRIPTION.md for new features
    Integrate new feature details into existing doc sections: sell-all
    confirmation in Confirmation Dialogs, priority sort in Selling
    Process, shift-click in Sale History, instance auto-profiles in
    Profiles, and updated Protection/Selling/Settings Panel sections.
    Update CurseForge description with all new capabilities.
  • Update documentation for competitive enhancements
    Add documentation for all 8 new features to FEATURES.md: shift-click
    history links, sell-all confirmation, soulbound-only filter, expansion
    materials protection, keybind support, instance auto-profiles, priority
    sell queue, and quest item protection. Create CHANGELOG.md.
  • Add quest item protection
    Auto-skip items in the Quest Items category (classID 12) to prevent
    accidental sales of quest objectives and quest-starting items.
    Enabled by default for safety. Respects the always-sell list
    override.
  • Add priority sell queue for buyback safety
    When enabled (default), sells highest-value items first so the 12
    buyback slots contain the most valuable items if the user needs to
    undo. Previously sold in bag order which wasted buyback slots on
    cheap items.
  • Add zone/instance auto-profile switching
    Auto-switch profiles when entering instances (raids, dungeons,
    battlegrounds, arenas, scenarios, open world). Per-character
    instanceProfiles table maps instance types to saved profile names.
    Configured via the Profiles & Templates settings panel with text
    inputs for each instance type.
  • Add keybind support to trigger selling at vendor
    Adds a bindable key via WoW's native Key Bindings UI under the
    AutoSellPlus header. The keybind opens the sell popup when a
    merchant window is open. Bindings.xml defines the binding,
    Core.lua tracks merchant state and provides the handler.
  • Add protection for current expansion trade goods
    Never sell Trade Goods (classID 7) from the current expansion
    (Midnight) when enabled. Protects valuable crafting materials
    from accidental sales. Expansion-aware material protection is a
    unique differentiator among auto-sell addons.
  • Add soulbound-only filter to skip unbound BoE items
    New toggle in Protection settings and popup filter section. When
    enabled, only soulbound (BoP or already-bound) items are eligible
    for selling. Unbound BoE items are always skipped regardless of
    other filter settings. Useful for dungeon farmers keeping BoE for AH.
  • Add confirmation dialog for Sell All Junk button
    Shows item count and total gold value before selling when clicking
    Sell All Junk. Dialog is dismissed on merchant close. Cancelling
    unchecks all items.
  • Add shift-click to insert item link from sale history
    Shift+left-clicking a history row now inserts the item link into chat,
    matching standard WoW UX patterns that players expect.
  • Merge pull request #3 from mikigraf/feat/ui-fixes
    Feat/UI fixes

v3.2.0

09 Mar 10:12

Choose a tag to compare

AutoSellPlus

v3.2.0 (2026-03-08)

Full Changelog Previous Releases

  • Merge branch 'main' of https://github.com/mikigraf/AutoSellPlus
  • add readme
  • Merge pull request #4 from mikigraf/feat/v3
    Feat/v3
  • Improve popup filter layout, readability and UX
    Brighten ilvl labels, section labels, and item row ilvl text for better
    readability on dark background. Resize Transmog/Soulbound checkboxes to
    match quality filter rows. Add visual gaps between filter groups. Fix
    slot row padding so avg equipped ilvl text no longer overlaps buttons.
  • Add Settings tab to popup for in-vendor settings access
    Add Items/Settings tab buttons below the popup title bar so users can
    view and change all addon settings without leaving the vendor window.
    The Settings tab shows a scrollable overlay with all settings organized
    into sections (General, Automation, Protection, Marking, Display, Bag
    Maintenance, Auto-Destroy). Switching back to Items syncs filter
    controls and rebuilds the display list to reflect any changes.
  • Fix soulbound-only filter checking BoE instead of actual bound state
    The soulbound-only filter only checked IsBindOnEquip, so non-BoE items
    like grays passed through unfiltered. Now uses C_Item.IsBound to check
    if items are actually bound to the player. Fixes both popup and
    auto-sell paths.
  • Fix popup filter bugs: soulbound-only shadowed by BoE protection, quest category blocked by quest protection
    Reorder onlySoulbound check before protectBoE in BuildDisplayList so it
    takes effect regardless of BoE protection state. Remove protectQuestItems
    from BuildDisplayList eligibility so quest items appear when the Quest
    category is enabled, but default them to unchecked when protection is on.
  • Fix Bindings.xml loading error by removing it from TOC
    Bindings.xml is auto-detected by the WoW client from the addon
    folder and must not be listed in the .toc file. Listing it causes
    the UI XML parser to process it as a regular UI file, which does
    not recognize Binding elements.
  • Update FEATURES.md and CURSEFORGE_DESCRIPTION.md for new features
    Integrate new feature details into existing doc sections: sell-all
    confirmation in Confirmation Dialogs, priority sort in Selling
    Process, shift-click in Sale History, instance auto-profiles in
    Profiles, and updated Protection/Selling/Settings Panel sections.
    Update CurseForge description with all new capabilities.
  • Update documentation for competitive enhancements
    Add documentation for all 8 new features to FEATURES.md: shift-click
    history links, sell-all confirmation, soulbound-only filter, expansion
    materials protection, keybind support, instance auto-profiles, priority
    sell queue, and quest item protection. Create CHANGELOG.md.
  • Add quest item protection
    Auto-skip items in the Quest Items category (classID 12) to prevent
    accidental sales of quest objectives and quest-starting items.
    Enabled by default for safety. Respects the always-sell list
    override.
  • Add priority sell queue for buyback safety
    When enabled (default), sells highest-value items first so the 12
    buyback slots contain the most valuable items if the user needs to
    undo. Previously sold in bag order which wasted buyback slots on
    cheap items.
  • Add zone/instance auto-profile switching
    Auto-switch profiles when entering instances (raids, dungeons,
    battlegrounds, arenas, scenarios, open world). Per-character
    instanceProfiles table maps instance types to saved profile names.
    Configured via the Profiles & Templates settings panel with text
    inputs for each instance type.
  • Add keybind support to trigger selling at vendor
    Adds a bindable key via WoW's native Key Bindings UI under the
    AutoSellPlus header. The keybind opens the sell popup when a
    merchant window is open. Bindings.xml defines the binding,
    Core.lua tracks merchant state and provides the handler.
  • Add protection for current expansion trade goods
    Never sell Trade Goods (classID 7) from the current expansion
    (Midnight) when enabled. Protects valuable crafting materials
    from accidental sales. Expansion-aware material protection is a
    unique differentiator among auto-sell addons.
  • Add soulbound-only filter to skip unbound BoE items
    New toggle in Protection settings and popup filter section. When
    enabled, only soulbound (BoP or already-bound) items are eligible
    for selling. Unbound BoE items are always skipped regardless of
    other filter settings. Useful for dungeon farmers keeping BoE for AH.
  • Add confirmation dialog for Sell All Junk button
    Shows item count and total gold value before selling when clicking
    Sell All Junk. Dialog is dismissed on merchant close. Cancelling
    unchecks all items.
  • Add shift-click to insert item link from sale history
    Shift+left-clicking a history row now inserts the item link into chat,
    matching standard WoW UX patterns that players expect.
  • Merge pull request #3 from mikigraf/feat/ui-fixes
    Feat/UI fixes

v3.0.0

08 Mar 07:01

Choose a tag to compare

AutoSellPlus

v3.0.0 (2026-03-08)

Full Changelog Previous Releases

  • Merge branch 'main' of https://github.com/mikigraf/AutoSellPlus
  • add readme
  • Merge pull request #4 from mikigraf/feat/v3
    Feat/v3
  • Improve popup filter layout, readability and UX
    Brighten ilvl labels, section labels, and item row ilvl text for better
    readability on dark background. Resize Transmog/Soulbound checkboxes to
    match quality filter rows. Add visual gaps between filter groups. Fix
    slot row padding so avg equipped ilvl text no longer overlaps buttons.
  • Add Settings tab to popup for in-vendor settings access
    Add Items/Settings tab buttons below the popup title bar so users can
    view and change all addon settings without leaving the vendor window.
    The Settings tab shows a scrollable overlay with all settings organized
    into sections (General, Automation, Protection, Marking, Display, Bag
    Maintenance, Auto-Destroy). Switching back to Items syncs filter
    controls and rebuilds the display list to reflect any changes.
  • Fix soulbound-only filter checking BoE instead of actual bound state
    The soulbound-only filter only checked IsBindOnEquip, so non-BoE items
    like grays passed through unfiltered. Now uses C_Item.IsBound to check
    if items are actually bound to the player. Fixes both popup and
    auto-sell paths.
  • Fix popup filter bugs: soulbound-only shadowed by BoE protection, quest category blocked by quest protection
    Reorder onlySoulbound check before protectBoE in BuildDisplayList so it
    takes effect regardless of BoE protection state. Remove protectQuestItems
    from BuildDisplayList eligibility so quest items appear when the Quest
    category is enabled, but default them to unchecked when protection is on.
  • Fix Bindings.xml loading error by removing it from TOC
    Bindings.xml is auto-detected by the WoW client from the addon
    folder and must not be listed in the .toc file. Listing it causes
    the UI XML parser to process it as a regular UI file, which does
    not recognize Binding elements.
  • Update FEATURES.md and CURSEFORGE_DESCRIPTION.md for new features
    Integrate new feature details into existing doc sections: sell-all
    confirmation in Confirmation Dialogs, priority sort in Selling
    Process, shift-click in Sale History, instance auto-profiles in
    Profiles, and updated Protection/Selling/Settings Panel sections.
    Update CurseForge description with all new capabilities.
  • Update documentation for competitive enhancements
    Add documentation for all 8 new features to FEATURES.md: shift-click
    history links, sell-all confirmation, soulbound-only filter, expansion
    materials protection, keybind support, instance auto-profiles, priority
    sell queue, and quest item protection. Create CHANGELOG.md.
  • Add quest item protection
    Auto-skip items in the Quest Items category (classID 12) to prevent
    accidental sales of quest objectives and quest-starting items.
    Enabled by default for safety. Respects the always-sell list
    override.
  • Add priority sell queue for buyback safety
    When enabled (default), sells highest-value items first so the 12
    buyback slots contain the most valuable items if the user needs to
    undo. Previously sold in bag order which wasted buyback slots on
    cheap items.
  • Add zone/instance auto-profile switching
    Auto-switch profiles when entering instances (raids, dungeons,
    battlegrounds, arenas, scenarios, open world). Per-character
    instanceProfiles table maps instance types to saved profile names.
    Configured via the Profiles & Templates settings panel with text
    inputs for each instance type.
  • Add keybind support to trigger selling at vendor
    Adds a bindable key via WoW's native Key Bindings UI under the
    AutoSellPlus header. The keybind opens the sell popup when a
    merchant window is open. Bindings.xml defines the binding,
    Core.lua tracks merchant state and provides the handler.
  • Add protection for current expansion trade goods
    Never sell Trade Goods (classID 7) from the current expansion
    (Midnight) when enabled. Protects valuable crafting materials
    from accidental sales. Expansion-aware material protection is a
    unique differentiator among auto-sell addons.
  • Add soulbound-only filter to skip unbound BoE items
    New toggle in Protection settings and popup filter section. When
    enabled, only soulbound (BoP or already-bound) items are eligible
    for selling. Unbound BoE items are always skipped regardless of
    other filter settings. Useful for dungeon farmers keeping BoE for AH.
  • Add confirmation dialog for Sell All Junk button
    Shows item count and total gold value before selling when clicking
    Sell All Junk. Dialog is dismissed on merchant close. Cancelling
    unchecks all items.
  • Add shift-click to insert item link from sale history
    Shift+left-clicking a history row now inserts the item link into chat,
    matching standard WoW UX patterns that players expect.
  • Merge pull request #3 from mikigraf/feat/ui-fixes
    Feat/UI fixes

v2.2.0

07 Mar 15:59

Choose a tag to compare

AutoSellPlus

v2.2.0 (2026-03-07)

Full Changelog Previous Releases

  • Update feature docs for transmog protection and Allow Transmog checkbox
  • Add Allow Transmog checkbox to popup filter section
    When checked, disables both protectUncollectedTransmog and
    protectTransmogSource, allowing uncollected appearance items to
    appear in the sell list. Rebuilds display list on toggle since
    transmog filtering happens during item scanning.
  • Fix transmog protection incorrectly filtering out trinkets, rings, and necklaces
    PlayerHasTransmog returns false for non-moggable accessories (they have
    no visual appearance), causing them to be treated as "uncollected transmog"
    and excluded from sell lists. Add HasTransmogAppearance() that checks
    equipLoc to skip transmog checks for INVTYPE_NECK, INVTYPE_FINGER, and
    INVTYPE_TRINKET slots.
  • Update feature documentation for UI/UX improvements
    • Document history row tooltips and clear confirmation dialog
    • Note auto-repair shows needed vs available gold
    • Note profile auto-load chat notification and delete confirmation
    • Note template apply resets all settings to defaults
  • Fix visual layout: close buttons, context menu, column widths, minimap border
    • Increase close button size from 18x18 to 22x22 in popup, history, and wizard
    • Change context menu strata from TOOLTIP to FULLSCREEN_DIALOG
    • Remove duplicate SetPoint("CENTER") on minimap border texture
    • Widen item name column from 170px to 200px in popup rows and headers
    • Shift ilvl and AH header positions to match new column layout
    • Add item tooltips on hover to sale history rows
  • Add confirmation dialogs for clearing history and deleting profiles
    • Clear sale history button now shows a confirm/cancel dialog
    • Delete profile button in settings UI now shows a confirm/cancel dialog
    • Slash command profile delete remains direct (no dialog)
  • Improve chat feedback messages for clarity and helpfulness
    • Auto-repair shows needed vs available gold when insufficient
    • Profile auto-load on login prints visible chat message instead of debug-only
    • Template apply message mentions that all settings are reset to defaults
    • "Nothing to sell" messages now hint about filters and ALT+Click marking
    • Dry run empty result says "nothing matched current filters"
    • Help command lines use dim color for commands, default color for descriptions
  • Merge pull request #2 from mikigraf/feat/v2-1-0-sell-confirmations
    Feat/v2 1 0 sell confirmations

v2.1.0

07 Mar 09:33

Choose a tag to compare

AutoSellPlus

v2.1.0 (2026-03-07)

Full Changelog Previous Releases

  • Merge branch 'main' into feat/v2-1-0-sell-confirmations
  • Add comprehensive feature documentation
    Full documentation of all settings, defaults, data structures,
    event flow, protection priorities, competitive analysis, and
    vNext roadmap with community references.
  • Add CurseForge addon description
    Standalone description optimized for the CurseForge author portal,
    without GitHub-specific elements like badges, HTML, or dev docs.
  • Rewrite README for CurseForge optimization
    Developer-to-player voice, features by gameplay purpose, updated
    project structure, added unit test docs, removed Wago references.
  • Update TOC for ConfirmList, Tests, and WoWUnit OptionalDeps
    Add ConfirmList.lua between PopupFilters and Popup in load order.
    Add Tests.lua after Core.lua. Replace X-Wago-ID with OptionalDeps
    for WoWUnit test framework.
  • Add WoWUnit test suite with 100+ in-game tests
    Comprehensive test coverage for formatting, config, DB migration,
    protection priorities, filters, sorting, session tracking, history,
    profiles, templates, marking, transmog, and confirm list. Tests are
    guarded by if-WoWUnit and have zero overhead when WoWUnit is absent.
  • Add confirmation item list panel below sell dialogs
    Show a scrollable item list below StaticPopup confirmation dialogs
    (epic, high-value, auto-sell, eviction) so players can see exactly
    which items will be sold. Items beyond the 12-item buyback limit
    are flagged with a red divider and tinted rows.
  • Update README.md