Commit Graph

98 Commits

Author SHA1 Message Date
Xurkon 6b9d1d548f docs: add GUID reference, object vs NPC distinction, and settings backfill prereq to verification guide 2026-03-16 22:10:26 -05:00
Xurkon b2ca8fa660 fix: backfill missing learnedData settings keys from old SavedVariables
EnsureLearnedData was using 'or' which never updates an existing table.
If learnedData was created by an older version of the code without
learnQuests/learnItems/learnObjects keys, those stayed nil (falsy),
causing every quest/item/object learn call to return immediately.

Now explicitly backfills each missing key to true so all categories
record correctly regardless of when the SavedVariables were first created.
2026-03-16 21:56:36 -05:00
Xurkon 17bc28f440 docs: update Test 2 in verification guide to reflect isNew-only debug output 2026-03-16 21:47:49 -05:00
Xurkon 003e9698c9 fix: WotLKDB plugin stats + kill tracking improvements 2026-03-16 21:37:26 -05:00
Xurkon 4e5f3ed04b fix: move plugin panel to Database tab + fix WotLKDB 0 counts
- QuestieOptionsDatabase: added 'Loaded Questie-X Plugins' section at order 7
  For pull-type plugins (WotLKDB) where plugin.stats are all 0, the panel now
  falls back to counting QuestieDB.*Data directly — this is safe because the
  name function is called after init completes (user opens the options panel)
- QuestieOptionsAdvanced: replaced full plugin panel with redirect note
  pointing users to the Database tab
2026-03-16 21:27:15 -05:00
Xurkon 893d013110 refactor: reduce QuestieLearner debug noise to signal-only output
- LearnNPC/Quest/Item/Object: only print when entry is brand new (isNew flag)
  Update calls (coord refresh, mc increment) are silent
- Remove mouseover cache log (fired on every quest giver hover)
- Remove target cache log (fired on every target switch)
- Remove network MERGE log (fired every 60s reinforcement cycle)
- Remove network NEW log (replaced by the isNew pattern above)
- Kill log kept but wording tightened to 'Kill recorded'
- Inject summary, Events registered, Initialized kept at DEBUG_INFO
  (only visible when INFO level is enabled, not default DEVELOP spam)
2026-03-16 21:24:42 -05:00
Xurkon bf2a7969df docs: v1.2.7 changelog + Research folder with verification guide and session summary
- CHANGELOG.md: added v1.2.7 entry covering WotLKDB stats fix, kill tracking
  filter, and WotLKDB Loader.lua stats population
- Research/QuestieLearner-Verification.md: 12-step in-game test guide for all
  QuestieLearner subsystems (mouseover, quest accept/turn-in, kills, loot,
  objects, export/import, plugin stats, peer sharing, quick diagnostic snippet)
- Research/SessionSummary-2026-03-16.md: full developer session log from
  plugin architecture overhaul through QuestieLearner rewrite
2026-03-16 21:18:02 -05:00
Xurkon a3eaba30fd fix: WotLKDB plugin stats + kill tracking improvements
QuestieInit:LoadBaseDB:
- Count WotLKDB records BEFORE clearing globals
- Store counts in QuestieX_WotLKDB_Counts global for Loader.lua to read

QuestieLearner:OnCombatLogEvent:
- Only record kill coords for NPCs already in QuestieDB (quest objectives)
  or that were explicitly cached via target/mouseover (known quest givers)
- Prevents every random mob kill from polluting the learner database
2026-03-16 20:52:25 -05:00
Xurkon 8bc74a488b feat: QuestieLearner comprehensive overhaul v1.2.6
- Full quest field capture (title, level, objectives, description, money, zone)
- Mouseover filter: only record NPCs with QUESTGIVER npcFlag (0x02) or known DB entries
- OnTargetChanged: cache GUID for kill tracking only, no more spurious LearnNPC calls
- Grid-bucket coordinate clustering (COORD_GRID=2.0) replaces naive radius dedup
- Object recording: detect GameObject loot, gossip, and quest giver/finisher
- Item loot: async GetItemInfo retry via GET_ITEM_INFO_RECEIVED event
- LearnQuestGiver: entityType parameter (1=NPC,2=obj,3=item) for correct wiki layout
- InjectLearnedData: uses grid clustering in all merge paths
- MergeImport: calls InjectLearnedData immediately after merge (live override injection)
- README: corrected import reload requirement description
- CHANGELOG + docs/changelog.html updated with developer detail
2026-03-16 20:49:02 -05:00
Xurkon 46a3476884 chore: push pending changes 2026-03-16 20:02:32 -05:00
Xurkon 7cf4017d40 docs: update version badge to v1.2.5 2026-03-16 19:58:48 -05:00
Xurkon b729628f32 docs: upgrade notice, ClassicDB link, QuestieLearner guide in README 2026-03-16 19:56:56 -05:00
Xurkon 989e35b9b1 docs: update changelog.html with full developer detail for v1.1.5 through v1.2.5 2026-03-16 19:54:31 -05:00
Xurkon a4aca4322a docs: update version badge to v1.2.5 2026-03-16 19:52:05 -05:00
Xurkon 4db9737a35 chore: stage all pending changes (DB cleanup, corrections, compiler, init, plugin API) 2026-03-16 19:41:52 -05:00
Xurkon aad7972814 fix: replace table.getn with # operator in XXH_Lua_Lib (string not table) 2026-03-16 19:36:16 -05:00
Xurkon c3a8d94a83 fix: replace table.getn with # operator in XXH_Lua_Lib (string not table) 2026-03-16 19:35:24 -05:00
Xurkon 1ed1f24f53 docs: link all plugin repos in README; add .gitattributes for clean release archives 2026-03-16 19:31:52 -05:00
Xurkon dcb552ab04 docs: update changelog with v1.2.5 Ebonhold DB load fix 2026-03-16 19:24:42 -05:00
Xurkon 457420f90c feat: add Database options tab with import/export/cleanup
New files:
- Modules/QuestieLearnerExport.lua: serialize/compress/encode pipeline using
  AceSerializer + LibDeflate:CompressDeflate(level=9) + EncodeForPrint.
  QxLD:<version>!<encoded> string format. Export(), ExportAll(), ValidateImport(),
  MergeImport(), DryRunPrune(), Prune().
- Modules/Options/DatabaseTab/QuestieOptionsDatabase.lua: new Database tab with:
    - Live learned data stats (per server)
    - Per-type learner toggles (NPCs/Quests/Objects/Items/Broadcast)
    - Export current server / Export all servers buttons (opens scrollable dialog)
    - Import window (paste -> Validate -> Import with diff summary)
    - Dry-run preview and Prune Now cleanup buttons
    - Full reset button (confirm-gated)
    - Contribute section with step-by-step GitHub submission instructions

Wiring:
- QuestieOptions.lua: database_tab initialized and registered in args
- All TOC files: QuestieLearnerExport.lua added before options, DatabaseTab lua added
2026-03-15 19:48:45 -05:00
Xurkon d2861d194b feat: expand QuestieLearner and QuestieLearnerComms
QuestieLearner:
- Expose QuestieLearner.data as direct ref to Questie.db.global.learnedData
- Add mc (match-count) field tracking to LearnNPC/Quest/Item/Object
- Add _Learner:BroadcastIfCommsAvailable() hook called after every write
- Add QuestieLearner:HandleNetworkData() — validates, merges, and deduplicates
  incoming network data for NPC/QUEST/ITEM/OBJECT types, including coordinate
  and item-drop list merging

QuestieLearnerComms:
- Move DebugLog definition to top of file (was called before definition)
- Fix IsDuplicateMessage fallback: table.getn(serializedData) -> string.len(),
  mod() -> math.mod() for Lua 5.0 compatibility
- Add mutedUntil table and implement 5-minute timed mute on 3 strikes
  (previously the 3-strike branch was an empty if body with no effect)
- Remove duplicated nil-check + DebugLog block in ProcessRawMessage
2026-03-15 19:10:35 -05:00
Xurkon a89dbddb58 fix: add XXH load to TBC toc and guard plugin.stats nil access 2026-03-15 19:07:43 -05:00
Xurkon 984b9f9a68 fix: correct select() polyfill in QuestieLoader to not use arg table
The previous implementation used 'arg' (Lua 5.0 implicit vararg table) which
is nil inside a fixed-parameter function. Replace with the explicit index-chain
pattern matching the QuestieCompat.lua version.
2026-03-15 19:04:01 -05:00
Xurkon b8594c9782 fix(p2): restore plugin status UI, C_QuestLog/C_Map shims, QuestieServer init
- QuestieOptionsAdvanced.lua: restore compat_header, plugin_header, plugin_status_desc
  blocks showing loaded Questie-X plugins with stats in the Advanced options tab
- QuestieCompat.lua: add C_QuestLog shim (GetNumQuestLogEntries, GetQuestLogTitle,
  GetAllQuestIDs, GetQuestObjectives, IsQuestFlaggedCompleted, GetQuestPlayerQuestLink),
  C_Map shim (GetPlayerMapPosition, GetBestMapForUnit, GetMapInfo),
  GetTrackedAchievements, IsAchievementCompleted, and LibUIDropDownMenu shims
- QuestieInit.lua: import QuestieServer module, add QuestieServer:Init() call with nil
  guard, wrap HBDHooks:Init() in nil guard
2026-03-15 18:33:41 -05:00
Xurkon d5a0db953d Fix: MinimapIcon initialization crash due to nil GetIcon method 2026-03-15 18:28:58 -05:00
Xurkon 17fa3932f2 UI: Rebrand minimap tooltip to Questie-X and update associated localizations 2026-03-15 18:23:25 -05:00
Xurkon f859e46881 feat: add mmapIcon.tga as minimap button with circular mask for all clients
- Icons/mmapIcon.tga: new minimap button icon
- MinimapIcon.lua: use mmapIcon.tga as LDB icon; apply circular mask
  (AddMaskTexture for Retail, SetMask+pcall for Classic/WotLK/1.12 vanilla)
2026-03-15 18:17:43 -05:00
Xurkon 5c825f8914 [docs] Sync HTML changelog and remove deprecated monorepo/junction mentions 2026-03-15 18:07:28 -05:00
Xurkon 6b4a7b7786 [docs] Sync HTML changelog with CHANGELOG.md and remove monorepo/junction mentions 2026-03-15 17:56:38 -05:00
Xurkon be6d522bf8 [docs] Remove monorepo and NTFS junction documentation as they are no longer used 2026-03-15 17:54:03 -05:00
Xurkon 6d3189b608 fix(p1): restore Lua 5.0 polyfills, hooksecurefunc, C_Timer, LibDeflate, and XXH load lines
- QuestieLoader.lua: add table.getn, math.mod, string.match, string.gmatch, select polyfills
- QuestieCompat.lua: add string.match, select, math.mod shims; hooksecurefunc polyfill;
  full C_Timer polyfill; fix Is335 to use do/end block safe for Lua 5.0
- embeds.xml: add LibDeflate lib.xml include
- Questie-X.toc, Questie-X-Classic.toc, Questie-X-Turtle.toc: add XXH_Lua_Lib load line
2026-03-15 17:50:50 -05:00
Xurkon 5582f310eb chore: update Credits tab logo and changelog for v1.1.4 2026-03-15 17:46:43 -05:00
Xurkon 20d0b8fe98 Fix Credits tab logo by converting to TGA and updating path 2026-03-15 08:20:00 -05:00
Xurkon b5dadb3089 Add Questie-X logo to Credits tab 2026-03-15 08:13:58 -05:00
Xurkon fcec22881f Rebrand to Questie-X and add Credits tab 2026-03-15 08:08:08 -05:00
Xurkon 03e9f27f03 docs: standardize documentation, align version to 1.1.4, and cleanup legacy TOC files 2026-03-15 07:44:48 -05:00
Xurkon 2be3953cf5 docs: credit Majed (3majed) for Ascension dataset 2026-03-14 17:26:21 -05:00
Xurkon 89cca086f9 docs: remove all WoW version/Classic references from README, keep generic 2026-03-14 17:19:12 -05:00
Xurkon 3c4a89e085 docs: fix version badge to show Questie-X v1.1.4 2026-03-14 17:15:30 -05:00
Xurkon 484c63cc96 docs: remove title from header, drop version-specific WoW badge 2026-03-14 17:15:10 -05:00
Xurkon 8c80a4f562 docs: revise README - remove title, generic plugin docs, detailed fixes 2026-03-14 17:13:43 -05:00
Xurkon 280cc3e1ef docs: remove Turtle from install info, add Ascension plugin example 2026-03-14 06:33:59 -05:00
Xurkon 29edeceedb fix: remove black background from QuestieXlogo.png (color-to-alpha) 2026-03-14 06:25:13 -05:00
Xurkon 4600b95649 chore: remove workflow folder from tracking, add to gitignore 2026-03-14 06:24:42 -05:00
Xurkon c4d003e58f feat: Questie-X v1.1.4 - plugin architecture, monorepo, rebranding
- Repoint remote to Xurkon/Questie-X
- Add QuestiePluginAPI, QuestieServer, QuestieLearnerComms modules
- Add Questie-X.toc, Questie-X-Classic.toc, Questie-X-TBC.toc, Questie-X-Turtle.toc
- Remove embedded Database/Ascension and Database/Ebonhold (migrated to plugins)
- Add Plugins/ directory with NTFS junctions for Questie-X-AscensionDB and Questie-X-EbonholdDB
- Add LibDeflate, XXH_Lua_Lib, LibDBIcon-1.0, LibDataBroker-1.1
- Update README: Questie-X branding, logo, plugin install guide, plugin API docs
- Update CHANGELOG: v1.1.4 entry documenting all architectural changes
- Update .gitignore: exclude plugin junctions, __pycache__, .agents, debug files
- Various module updates: corrections, map, tracker, tooltips, quest, options
2026-03-14 06:10:17 -05:00
Xurkon 89c3b3173d v9.9.2 — Final pre-refactor release: update version, changelog, docs, and README 2026-03-04 22:15:23 -06:00
Xurkon 87d0b0c3bc fix: Add full Tanaris spawn data for Sandstone Giants NPCs 5467 and 5470
- NPC 5467 (Deep Dweller): Replace single spawn point with 28 locations
  scraped from Wowhead covering the eastern Tanaris coast area
- NPC 5470 (Raging Dune Smasher): Was nil in all databases, added 23
  spawn locations in the Abyssal Sands (southwest Tanaris)
- Fixes added to both classicNPCFixes.lua and tbcNPCFixes.lua
- Quest 50006 (Sandstone Giants) killCreditObjective already updated in
  previous commit to include all 4 giant NPCs (5466, 5467, 5469, 5470)

All four giant types now have correct spawn data for minimap pin display.
2026-03-04 17:38:09 -06:00
Xurkon 4ccce374d7 Docs: add loot bot tracking fix to v9.9.0 changelog 2026-03-04 16:36:58 -06:00
Xurkon a97c1daa2f Fix: loot bot item tracking - debounce BAG_UPDATE_DELAYED with follow-up scan 2026-03-04 16:31:33 -06:00
Xurkon 320a040a48 Docs: add map pins fix note to v9.9.0 changelog 2026-03-04 07:43:56 -06:00