docs(changelog): add 2026-06-09 bug fix entries

This commit is contained in:
Xurkon
2026-06-08 21:57:04 -05:00
parent 1629352eb6
commit 53dc151cc0
+7
View File
@@ -35,6 +35,13 @@
- **[QuestieLearner - AscensionDB Spawn Deference (Sunstrider pin placement)]** For NPCs whose spawn data AscensionDB hand-curates (e.g. Sunstrider's Mana Wyrm 15274 on quest 8325), the learner now **defers entirely** to the curated coords instead of mixing in its own — even in learner mode. The learner's Sunstrider coordinates are frequently stored under the wrong map/zone (a kill mis-recorded under zone `1445` rendered as a pin in the NE corner of the map), and `_MergeOverride` deep-merges spawn tables, so in learner mode (where `rawdata` is the learner record) those bad zones survived because AscensionDB had no matching entry to displace them. Fixes: (1) `QuestieDB.GetNPC` now uses the curated override spawns **only** for AscensionDB-owned NPCs, discarding merged learner zones; (2) `InjectLearnedData`'s spawn restore and (3) `_MergeSpawnEvidence`'s Sunstrider guard both use a new mode-independent `AscensionOwnsNpcSpawns()` check instead of `IsAscensionProtected()` (which returns false in learner mode). This restores the protection commit `e80a008` documented and commit `0f20ea8` had silently bypassed with a `(not learnerLiveMode)` condition.
- **[Options - Tab Table Vararg Typo]** Five Options files initialized their tab tables with `{ ... }` instead of `{}` (`QuestieOptions.tabs` plus the Arrow, General, Keybinds, and Tracker tabs). At chunk scope WoW passes `...` = `(addonName, addonTable)`, so each table was seeded with two stray junk entries (`[1]="Questie"`, `[2]=<addonTable>`) instead of being empty, and the `{ ... }` expression is also a hard parse error under strict Lua 5.0. Changed all five to `{}`.
### Bug Fixes (2026-06-09)
- **[QuestieLearner - Learner-Only Spawn Isolation]** Fixed learner-only mode showing AscensionDB-curated coords instead of learner data. `GetNPC` now discards `npcDataOverrides` in learner mode (where `_Asc_MergeInto` had written curated coords), returning only the learner record. Three-mode spawn-merge semantics: learner uses learner data exclusively, auto fills gaps with learner while protecting curated spawns, static uses base DB only. Also hardened the object-spawn live-injection path with the same three-mode pattern using a new `AscensionOwnsObjectSpawns()` helper. Removed the `allowSpawnMerge` bypass that was the original hole letting learner coords leak into curated spawns in auto mode.
- **[QuestieLearner - Kill Position Attribution]** Fixed the learner recording the local player's position for other players' kills. `OnCombatLogEvent` now only calls `GetCurrentPlayerPosition()` for credited kills (your own kills or mobs you damaged within 60 seconds). Non-credited party/raid kills still update the NPC's learned name and zone but no longer pollute the spawn map with the wrong coordinates.
- **[QuestieLearner - Area 52 Compat]** Fixed `HasQuestReferences` crashing with `attempt to index local 'entry' (a number value)` on Area 52. Some quest records store `qData[2][3]` as a flat number instead of a table-of-tables; the inner loop now normalizes with a type check before comparing.
- **[Tooltip - Remove Misleading Source Line]** Removed the `Source:` attribution line from both world-map pin tooltips and unit/object hover tooltips. Per-pin provenance tracking across static DB, AscensionDB plugin, learner, and comms would require changing every spawn registration site; until that infrastructure exists the label was misleading.
### Tooltip
- **[Tooltip - Data Source Attribution Line]** Objective tooltips and world-map icon tooltips now append a greyed-out `Source:` line listing where the data came from — `Static DB` or `Learner` depending on the active data-source mode, plus `Comms` when remote player data exists for that key. This makes it clear at a glance whether a pin/objective is backed by the shipped database, runtime-learned evidence, or another player's broadcast. The objective-tooltip path also corrects an internal `QuestieDB:GetQuest` colon call to the dot form `QuestieDB.GetQuest`.