diff --git a/CHANGELOG.md b/CHANGELOG.md index 235f0f8..c421dc0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,28 +1,13 @@ # Changelog -## v1.4.4r6 — Questie-X Network Deserialization Fix +## v1.4.5 — Network & Taint Stability Update - **[Network Fix]** Resolved a critical crash ("`Usage: AceSerializer:Deserialize(str): str must be a string, got table`") occurring in QuestieLearnerComms and Export functions. This was caused by a lightweight, customized `AceSerializer-3.0.lua` implementation in Questie-X that lacked proper `self` parameter handling for standard colon-syntax method calls (`:`). As a result, method calls were serializing/deserializing the library table itself instead of the intended payload string. We patched `AceSerializer` natively to dynamically support both dot (`.`) and colon (`:`) syntax seamlessly without dropping arguments, while ensuring `Deserialize` correctly yields `(success, result)` tuples expected by the calling functions. - -## v1.4.4r5 — Comprehensive LibDeflate Taint Fix - - **[Network Fix]** Expanded the previous LibDeflate network crash hotfix: completely purged all 71 instances of unsafe `#` -> `table.getn` replacements injected by earlier vanilla compatibility automation throughout `LibDeflate.lua`. These have been wrapped with a custom dual-typed safe access function that flawlessly determines whether to compute properties natively via `string.len(x)` for strings or the standard `table.getn(x)` for structured tables—guaranteeing 100% stable networking cross-client from 1.12 to 3.3.5 and upwards. - -## v1.4.4r4 — LibDeflate Network Crash Fix - - **[Network Fix]** Fixed a critical Lua error (`bad argument #1 to 'getn' (table expected, got string)`) occurring during data-sharing via the hidden `questiecomm` addon channel. A legacy string length method (`table.getn`) was mistakenly used in `LibDeflate` string decoding; this has been restored to the universally compatible `string.len`. - -## v1.4.4r3 — Legacy Client Initialization & Learner Fixes - - **[Init Fix]** Fixed an issue where the database loader would silently abort on custom 3.3.5 / legacy client setups due to false-positive modern client detection. The `isModernClient` safeguard now uses a bulletproof `tocversion` range check to flawlessly differentiate between original legacy engines and modern Classic counterparts. - **[QuestieLearner Fix]** Resolved an `attempt to index global 'l10n' (a nil value)` error that triggered when accepting a new quest, caused by a missing module import at the top of `QuestieLearner.lua`. - -## v1.4.4r2 — Cached Load Taint Fix - - **[Taint Fix]** Resolved lingering `ADDON_ACTION_BLOCKED` taint on `ActionButton` and `StaticPopup` that occurred when Questie loaded data from its cache rather than manually recompiling. The `_G` namespace cleanup for `Questie-X-WotLKDB` globals now runs accurately during cached loads (via `UpdateWotLKDBStats`), ensuring the taint vector is closed and additionally freeing ~20MB of redundant cached memory. - -## v1.4.4r1 — WotLKDB Global Namespace Taint Fix - - **[Taint Fix]** Resolved `ADDON_ACTION_BLOCKED` errors caused by `Questie-X-WotLKDB` leaving tainted global variables in `_G` after initialization. `QuestieInit._pullGlobal` now sets `_G[globalName] = nil` immediately after copying each WotLKDB table reference into `QuestieDB`, removing the taint vector while keeping all data fully accessible through `QuestieDB`. ## v1.4.4 — AceGUI Pool & Event Handling Fixes diff --git a/Questie-X-Classic.toc b/Questie-X-Classic.toc index 4e3a07b..6226add 100644 --- a/Questie-X-Classic.toc +++ b/Questie-X-Classic.toc @@ -5,7 +5,7 @@ ## Notes-esES: Ayundante de misión ## Notes-ptBR: Ajudante de missão ## Notes-frFR: Assistant de quête -## Version: 1.4.4 +## Version: 1.4.5 ## RequiredDeps: ## OptionalDeps: Ace3, CallbackHandler-1.0, HereBeDragons, LibDataBroker-1.1, LibDBIcon-1.0, LibSharedMedia-3.0, LibStub, LibUIDropDownMenu ## SavedVariables: QuestieConfig diff --git a/Questie-X-TBC.toc b/Questie-X-TBC.toc index 093d9fd..d887bc7 100644 --- a/Questie-X-TBC.toc +++ b/Questie-X-TBC.toc @@ -5,7 +5,7 @@ ## Notes-esES: Ayundante de misión ## Notes-ptBR: Ajudante de missão ## Notes-frFR: Assistant de quête -## Version: 1.4.4 +## Version: 1.4.5 ## RequiredDeps: ## OptionalDeps: Ace3, CallbackHandler-1.0, HereBeDragons, LibDataBroker-1.1, LibDBIcon-1.0, LibSharedMedia-3.0, LibStub, LibUIDropDownMenu ## SavedVariables: QuestieConfig diff --git a/Questie-X-Turtle.toc b/Questie-X-Turtle.toc index 43c61ff..4c469a9 100644 --- a/Questie-X-Turtle.toc +++ b/Questie-X-Turtle.toc @@ -5,7 +5,7 @@ ## Notes-esES: Ayundante de misiones ## Notes-ptBR: Ajudante de misiones ## Notes-frFR: Assistant de quêtes -## Version: 1.4.4 +## Version: 1.4.5 ## RequiredDeps: ## OptionalDeps: Ace3, CallbackHandler-1.0, HereBeDragons, LibDataBroker-1.1, LibDBIcon-1.0, LibSharedMedia-3.0, LibStub, LibUIDropDownMenu, Questie-X-TurtleDB ## SavedVariables: QuestieConfig diff --git a/Questie-X.toc b/Questie-X.toc index 7a08057..2df9b7d 100644 --- a/Questie-X.toc +++ b/Questie-X.toc @@ -11,7 +11,7 @@ ## Notes-esES: Ayundante de misión ## Notes-ptBR: Ajudante de missão ## Notes-frFR: Assistant de quête -## Version: 1.4.4 +## Version: 1.4.5 ## RequiredDeps: ## OptionalDeps: Ace3, CallbackHandler-1.0, HereBeDragons, LibDataBroker-1.1, LibDBIcon-1.0, LibSharedMedia-3.0, LibStub, LibUIDropDownMenu, Questie-X-WotLKDB, Questie-X-ClassicDB, Questie-X-TBCDB, Questie-X-TurtleDB, Questie-X-AscensionDB, Questie-X-EbonholdDB ## SavedVariables: QuestieConfig, QuestieLearnerDB diff --git a/docs/changelog.html b/docs/changelog.html index 5b9ca79..367c84c 100644 --- a/docs/changelog.html +++ b/docs/changelog.html @@ -348,45 +348,15 @@
-

v1.4.4r6 — Questie-X Network Deserialization Fix

+

v1.4.5 — Network & Taint Stability Update

- -
- -

v1.4.4r5 — Comprehensive LibDeflate Taint Fix

- - -
- -

v1.4.4r4 — LibDeflate Network Crash Fix

- - -
- -

v1.4.4r3 — Legacy Client Initialization & Learner Fixes

- - -
- -

v1.4.4r2 — Cached Load Taint Fix

- - -
- -

v1.4.4r1 — WotLKDB Global Namespace Taint Fix

-
diff --git a/release_notes.txt b/release_notes.txt new file mode 100644 index 0000000..ce0e9c2 --- /dev/null +++ b/release_notes.txt @@ -0,0 +1,3 @@ +## v1.4.4r6 — Questie-X Network Deserialization Fix + +- **[Network Fix]** Resolved a critical crash (Usage: AceSerializer:Deserialize(str): str must be a string, got table) occurring in QuestieLearnerComms and Export functions. This was caused by a lightweight, customized AceSerializer-3.0.lua implementation in Questie-X that lacked proper self parameter handling for standard colon-syntax method calls (:). As a result, method calls were serializing/deserializing the library table itself instead of the intended payload string. We patched AceSerializer natively to dynamically support both dot (.) and colon (:) syntax seamlessly without dropping arguments, while ensuring Deserialize correctly yields (success, result) tuples expected by the calling functions.