Post-sort holes were caused by the planning phase, not the execution
phase. When GetContainerItemInfo/Link transiently returns nil for an
occupied slot during server lag, CreateBagFromID marks it <EMPTY>, the
sort algorithm moves real items into that "destination", and we end up
with literal gaps where the misclassified items used to be.
Validate the read against GetContainerNumFreeSlots before sorting; if
counts disagree, print a chat warning and abort instead of corrupting
the layout. User retries after a moment.
DoContainerMoves dropped moves entirely when PickupContainerItem didn't
land on the cursor — on a laggy server this fires constantly because
the previous swap's client state hasn't propagated yet, leaving items
un-sorted. Retry up to MAX_PICKUP_RETRIES (8 * 150ms = 1.2s) before
giving up. Also bump CONTAINER_SWAP_DELAY 50ms -> 150ms; the inline
comment already pointed at this as the knob to raise on desyncs.
- Bagnon_Forever: silence "Unknown Bank Type" for regular guild banks; mirror
IsPersonalBank/IsRealmBank from BANK_PERMISSIONS_PAYLOAD onto GuildBankFrame
and broadcast GUILDBANK_TYPE_DETECTED so other modules pick up the bank type
- TitleFrame: show "Personal Bank" / "Realm Bank" instead of always "Guild Bank";
re-render on GUILDBANK_TYPE_DETECTED to handle event-ordering races
- LibItemSearch: full-tooltip text scan (substring across every line, cached);
bare-text search now falls back to it at 3+ chars so typing "Agility" or
"Strength" finds matching gear. Explicit prefix tt:<text> also works
- SortBtn: rewrite DoContainerMoves to use the 3-pickup swap pattern with
client-side cursor verification and an explicit 50ms inter-swap delay;
much faster than the old link-verify loop without outpacing the realm
server and desyncing after ~10 moves
* fix(db): 🐛 Fixes an issue where personal and realm bank information wouldn't get updated
Introduce the "Blizzard_GuildBankUI" addon in constructor, ensuring that the `GuildBankFrame` is loaded for bank type detection.
Hide the Blizzard Guildbank to avoid both Bagnon and Blizzard banks being shown at the same time.
This breaks the red color from the bank tabs
* refactor(db): ♻️ Use old implementation for personal and guild bank detection
* fix: 🐛 Fix issue where personal and realm bank wasn't identified on guild bank change event
* fix(db): 🐛 Fixes an issue where only current guild bank tab would be added to db
Use `QueryGuildBankTab` to preload items in guild bank tabs and identify trigger in GUILDBANKBAGSLOTS_CHANGED event to update bags when items are ready
* fix(db): 🐛 Correctly index realm and personal banks on initial load