docs: update learner acceptance notes
This commit is contained in:
@@ -8,6 +8,7 @@
|
||||
- **[QuestieLearner - Bystander Kill Suppression]** Changed visible nearby `UNIT_DIED` handling so kills from other players can update short-lived correlation evidence without immediately running full learner injection or pin refresh work.
|
||||
- **[QuestieLearner - PARTY_KILL Event-Order Fix]** Fixed an edge case where a `UNIT_DIED` debounce entry could suppress a later authoritative `PARTY_KILL` for the same GUID. The debounce now tracks event type and allows the player's/group's kill event through while still suppressing true duplicates.
|
||||
- **[QuestieLearner - Immediate Spawn Pin Rendering]** Learner kill evidence now becomes spawn coordinates immediately in learner mode so learned NPC kills can spawn map pins without waiting for the later confidence merge path.
|
||||
- **[QuestieLearner - Quest Accept Resolver Hardening]** Removed the learner `QUEST_ACCEPTED` last-resort quest-ID fallback that could invent impossible quest IDs from raw event arguments. Accepted quests now only learn when the ID resolves back to a real quest-log entry, which prevents bogus keys from being persisted in learner SavedVariables or live overrides.
|
||||
- **[QuestieLearner - Live Performance Options]** Added Advanced-tab controls for learner intensity, pin refresh delay, maximum pin refresh wait, minimum kills before learned pins, and live NPC update delay so users can tune the system for low-end PCs or heavy-activity zones.
|
||||
- **[QuestieComms - User-Controlled Intensity]** Added Advanced-tab QuestieComms controls, including a full disable switch and live throttles for queue processing, quest-state broadcasts, and bulk sync pacing.
|
||||
- **[QuestieComms - Disable Gate Fix]** Scoped the comms enable helper so the disable switch no longer calls a nil global and every send/process entry point consistently respects the setting.
|
||||
|
||||
+2
-1
@@ -182,6 +182,7 @@
|
||||
<li><strong>[QuestieLearner — Bystander Kill Suppression]</strong> Changed visible nearby <code>UNIT_DIED</code> handling so kills from other players can update short-lived correlation evidence without immediately running full learner injection or pin refresh work.</li>
|
||||
<li><strong>[QuestieLearner — PARTY_KILL Event-Order Fix]</strong> Fixed an edge case where a <code>UNIT_DIED</code> debounce entry could suppress a later authoritative <code>PARTY_KILL</code> for the same GUID. The debounce now tracks event type and allows the player's/group's kill event through while still suppressing true duplicates.</li>
|
||||
<li><strong>[QuestieLearner — Immediate Spawn Pin Rendering]</strong> Learner kill evidence now becomes spawn coordinates immediately in learner mode so learned NPC kills can spawn map pins without waiting for the later confidence merge path.</li>
|
||||
<li><strong>[QuestieLearner — Quest Accept Resolver Hardening]</strong> Removed the learner <code>QUEST_ACCEPTED</code> last-resort quest-ID fallback that could invent impossible quest IDs from raw event arguments. Accepted quests now only learn when the ID resolves back to a real quest-log entry, which prevents bogus keys from being persisted in learner SavedVariables or live overrides.</li>
|
||||
<li><strong>[QuestieLearner — Live Performance Options]</strong> Added Advanced-tab controls for learner intensity, pin refresh delay, maximum pin refresh wait, minimum kills before learned pins, and live NPC update delay so users can tune the system for low-end PCs or heavy-activity zones.</li>
|
||||
<li><strong>[QuestieComms — User-Controlled Intensity]</strong> Added Advanced-tab QuestieComms controls, including a full disable switch and live throttles for queue processing, quest-state broadcasts, and bulk sync pacing.</li>
|
||||
<li><strong>[QuestieComms — Disable Gate Fix]</strong> Scoped the comms enable helper so the disable switch no longer calls a nil global and every send/process entry point consistently respects the setting.</li>
|
||||
@@ -196,7 +197,7 @@
|
||||
<li><strong>[Tooltip Data Precedence]</strong> Updated tooltip handling so QuestieLearner defers to AscensionDB-owned tooltip/objective data instead of hiding or replacing server-plugin data for active quests.</li>
|
||||
</ul>
|
||||
<div class="important">
|
||||
<strong>Release status:</strong> The most complete performance candidate is not yet a single branch. Merge <code>questie-learner-comms-improvements</code> with <code>phase3-measured-perf</code>, remove or revalidate the stale reverted <code>QuestieMap.ProcessQueue</code> profile-local commit, fix the unrelated Arrow asset test mismatch, and validate in game before stable release. Test learner-only/static-only switching, immediate spawn pin rendering, and available-quest scanning during real kill/loot gameplay.
|
||||
<strong>Release status:</strong> The most complete performance candidate is not yet a single branch. Merge <code>questie-learner-comms-improvements</code> with <code>phase3-measured-perf</code>, remove or revalidate the stale reverted <code>QuestieMap.ProcessQueue</code> profile-local commit, fix the unrelated Arrow asset test mismatch, and validate in game before stable release. Test learner-only/static-only switching, immediate spawn pin rendering, available-quest scanning, and quest accept / NPC / item learning during real kill/loot gameplay.
|
||||
</div>
|
||||
|
||||
<h2 id="v163">[v1.6.3] — Arrow Redesign, Minimap Pin Drift Fix (Live API + Corrected Pixel Math), Sunstrider Isle Arrow Distance, Map Pins, Tooltip Schema Fixes, QuestData String Safety</h2>
|
||||
|
||||
+2
-1
@@ -12,6 +12,7 @@ Current branch work includes:
|
||||
- Bystander `UNIT_DIED` suppression so nearby players killing mobs do not force local learner pin redraws.
|
||||
- A `PARTY_KILL` event-order fix so legitimate local/group kills are not skipped after an earlier `UNIT_DIED`.
|
||||
- Immediate learner spawn pin rendering so kill evidence can become map pins right away in learner mode.
|
||||
- A hardened learner `QUEST_ACCEPTED` resolver so bogus quest IDs from raw event arguments are no longer persisted when they do not map back to a real quest-log entry.
|
||||
- Learner-aware DB reads that can fall back to `Questie.dbLearner.global.*` when static data is missing.
|
||||
- Advanced-tab performance controls for QuestieLearner, QuestieComms, and Arrow throttles.
|
||||
- A full QuestieComms disable switch with live queue/broadcast/sync throttles.
|
||||
@@ -19,7 +20,7 @@ Current branch work includes:
|
||||
- Available quest draw-thread guarding so missing quest IDs skip safely instead of crashing redraws.
|
||||
- A measured phase 3 branch with additional localization, quest eligibility, tooltip/map, cache, and allocation hot-path reductions.
|
||||
|
||||
Remaining before stable release: integrate the learner/comms branch with the measured phase 3 branch, remove or revalidate the stale reverted `QuestieMap.ProcessQueue` profile-local commit, fix unrelated Arrow asset test expectations, and validate in-game in heavy kill/loot zones with the minimap open, learner-only/static-only switching, and repeated loot/object objective testing.
|
||||
Remaining before stable release: integrate the learner/comms branch with the measured phase 3 branch, remove or revalidate the stale reverted `QuestieMap.ProcessQueue` profile-local commit, fix unrelated Arrow asset test expectations, and validate in-game in heavy kill/loot zones with the minimap open, learner-only/static-only switching, repeated loot/object objective testing, and the new quest-accept / NPC / item learning paths.
|
||||
|
||||
## Highlights
|
||||
|
||||
|
||||
@@ -6153,3 +6153,33 @@ full-precision grouping key in `_MergeSpawnEvidence` (`Modules/QuestieLearner.lu
|
||||
disables proximity merge, and a larger radius widens merging.
|
||||
`Tests/QuestiePinClustering_spec.lua` asserts the knob wiring (default + UI +
|
||||
cache-clear redraw).
|
||||
|
||||
### Pass-54 - Quest accept resolver hardening and current NPC/item ID investigation (2026-06-06)
|
||||
|
||||
The learner was logging impossible quest IDs from `QUEST_ACCEPTED` because the
|
||||
accept handler still had a last-resort `questId = firstArg` fallback. On this
|
||||
client/server combination the raw event arguments can be misaligned, so that
|
||||
fallback was persisting bogus quest keys such as `615514513` instead of waiting
|
||||
for a real quest-log entry. The fix now resolves accepted quests only through a
|
||||
real quest-log index / quest-log selection / quest ID that actually exists in
|
||||
the log, and skips learning entirely if none of those resolve.
|
||||
|
||||
- `Modules/QuestieLearner.lua`
|
||||
- Added a strict accepted-quest resolver that only accepts IDs that map back
|
||||
to a real quest-log entry.
|
||||
- Removed the raw-argument last-resort quest-ID fallback.
|
||||
- `Tests/QuestieLearnerDataSourceMode_spec.lua`
|
||||
- Added a regression proving a garbage accepted-quest value resolves from the
|
||||
real quest log instead of being used directly.
|
||||
- Added a regression proving impossible quest IDs are ignored when they do
|
||||
not resolve to the quest log.
|
||||
|
||||
### Open follow-up
|
||||
|
||||
The current live logs also show a separate learner issue where NPC IDs can be
|
||||
mis-read from Ascension GUIDs (`Arcanist Helion` learning as `168` instead of
|
||||
`15297`), and item IDs are not yet being learned reliably from the same flows.
|
||||
That points to a GUID / source-ID extraction issue in the learner capture path,
|
||||
not the quest accept resolver above. The next pass should trace the exact GUID
|
||||
parsing and item-source events used by the live client so those IDs are learned
|
||||
correctly before any static export work continues.
|
||||
|
||||
Reference in New Issue
Block a user