v1.5.5 - Performance & Stability
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
---
|
||||
name: export-session
|
||||
description: Export session artifacts (markdown files, notes, research) to a documentation folder for review or archival. Use this when you need to save session work, create research documentation, or export artifacts from a development session.
|
||||
---
|
||||
|
||||
# Export Session Skill
|
||||
|
||||
Exports session artifacts to a documentation/research folder for later review.
|
||||
|
||||
## Instructions
|
||||
|
||||
1. **When to use**: After completing a significant coding session, bug fix, or feature implementation
|
||||
2. **Required parameters**:
|
||||
- `project`: Project name (e.g., "Questie-X")
|
||||
- `session`: Descriptive session name (e.g., "Keybind-Fix", "1.5.2-Release")
|
||||
- `source`: Source directory containing artifacts (typically the brain/artifact directory)
|
||||
- `target`: Target base directory for exports
|
||||
|
||||
## Usage
|
||||
|
||||
Run the export script from `.kilocode/skills/export-session/scripts/export_session.py`:
|
||||
|
||||
```bash
|
||||
python .kilocode/skills/export-session/scripts/export_session.py <project> "<session>" --source <source_dir> --target <target_dir> [--extensions .md .lua] [--clean]
|
||||
```
|
||||
|
||||
### Examples
|
||||
|
||||
Export markdown files from a session:
|
||||
```bash
|
||||
python .kilocode/skills/export-session/scripts/export_session.py Questie-X "Keybind-Fix" --source C:\Brain\session123 --target C:\Research --extensions .md
|
||||
```
|
||||
|
||||
Export all files from current directory:
|
||||
```bash
|
||||
python .kilocode/skills/export-session/scripts/export_session.py MyProject "BugFix-123" --source . --target ~/research
|
||||
```
|
||||
|
||||
## Output
|
||||
|
||||
Creates a folder at: `<target>/<project>/<session>/` containing:
|
||||
- All copied artifacts from source
|
||||
- A summary markdown file with session details
|
||||
|
||||
## Notes
|
||||
|
||||
- Use `--clean` to overwrite existing sessions
|
||||
- Use `--extensions` to filter file types (default: all files)
|
||||
- Use `--no-summary` to skip summary file creation
|
||||
@@ -20,6 +20,8 @@ Addressed micro-stutters and FPS drops (190 → sub-100) reported during high-fr
|
||||
- **Compression level**: `LibDeflate:CompressDeflate` level reduced from 9 (slowest/max) to 1 (fastest). For small addon message payloads the size difference is negligible but the CPU cost is substantially lower.
|
||||
- **Dedup counter**: `IsDuplicateMessage` now uses an O(1) integer counter (`messageCacheCount`) to track cache size instead of an O(n) `for _ in pairs(messageCache)` scan on every incoming message.
|
||||
|
||||
- **[Fix — Profiler UI]** Resolved an issue where the `QuestieProfiler` UI text was overlapping horizontally when function names were too long, rendering the time and call counts illegible. Lines are now appropriately spaced and function names are clamped and left-aligned.
|
||||
|
||||
## v1.5.4 (2026-03-29)
|
||||
|
||||
### Ascension Custom Zone Support
|
||||
|
||||
@@ -212,20 +212,20 @@ function QuestieProfiler:CreateUI()
|
||||
base.scrollContainer.CreateLineFrame = function()
|
||||
local label = base.scrollContainer:CreateFontString(nil, "ARTWORK", "GameFontNormal")
|
||||
label:SetText("")
|
||||
label:SetPoint("TOPLEFT", base.scrollContainer, 0, -lineCounter * 10)
|
||||
|
||||
label:SetWidth(base.scrollFrame:GetWidth() - 270)
|
||||
label:SetJustifyH("RIGHT")
|
||||
label:SetPoint("TOPLEFT", base.scrollContainer, 10, -lineCounter * 16)
|
||||
label:SetWidth(base.scrollFrame:GetWidth() - 280)
|
||||
label:SetJustifyH("LEFT")
|
||||
label:SetWordWrap(false)
|
||||
|
||||
local label2 = base.scrollContainer:CreateFontString(nil, "ARTWORK", "GameFontNormal")
|
||||
label2:SetText("")
|
||||
label2:SetPoint("TOPLEFT", base.scrollContainer, base.scrollFrame:GetWidth() - 260, -lineCounter * 10)
|
||||
label2:SetPoint("TOPLEFT", base.scrollContainer, base.scrollFrame:GetWidth() - 260, -lineCounter * 16)
|
||||
|
||||
local label3 = base.scrollContainer:CreateFontString(nil, "ARTWORK", "GameFontNormal")
|
||||
label3:SetText("")
|
||||
label3:SetPoint("TOPLEFT", base.scrollContainer, base.scrollFrame:GetWidth() - 150, -lineCounter * 10)
|
||||
label3:SetPoint("TOPLEFT", base.scrollContainer, base.scrollFrame:GetWidth() - 130, -lineCounter * 16)
|
||||
|
||||
base.scrollContainer:SetSize(base.scrollFrame:GetWidth(), lineCounter * 10)
|
||||
base.scrollContainer:SetSize(base.scrollFrame:GetWidth(), lineCounter * 16)
|
||||
|
||||
return { label, label2, label3 }
|
||||
end
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
## Interface: 30300
|
||||
## Title: |cFF5EBAF3Questie|r|cFFDAFAFD-X|r-Classic|cFF00FF00 v1.5.4|r
|
||||
## Title: |cFF5EBAF3Questie|r|cFFDAFAFD-X|r-Classic|cFF00FF00 v1.5.5|r
|
||||
## Notes: A standalone Classic QuestHelper
|
||||
## Notes-esMX: Ayundante de misiones
|
||||
## Notes-esES: Ayundante de misiones
|
||||
## Notes-ptBR: Ajudante de misiones
|
||||
## Notes-frFR: Assistant de quêtes
|
||||
## Version: 1.5.3
|
||||
## Version: 1.5.5
|
||||
## OptionalDeps: Ace3, CallbackHandler-1.0, HereBeDragons, LibDataBroker-1.1, LibDBIcon-1.0, LibSharedMedia-3.0, LibStub, LibUIDropDownMenu
|
||||
## SavedVariables: QuestieConfig, QuestieLearnerDB, QuestieCacheDB
|
||||
## SavedVariablesPerCharacter: QuestieConfigCharacter
|
||||
|
||||
+2
-2
@@ -1,11 +1,11 @@
|
||||
## Interface: 30300
|
||||
## Title: |cFF5EBAF3Questie|r|cFFDAFAFD-X|r-TBC|cFF00FF00 v1.5.4|r
|
||||
## Title: |cFF5EBAF3Questie|r|cFFDAFAFD-X|r-TBC|cFF00FF00 v1.5.5|r
|
||||
## Notes: A standalone Classic QuestHelper
|
||||
## Notes-esMX: Ayundante de misiones
|
||||
## Notes-esES: Ayundante de misiones
|
||||
## Notes-ptBR: Ajudante de misiones
|
||||
## Notes-frFR: Assistant de quêtes
|
||||
## Version: 1.5.3
|
||||
## Version: 1.5.5
|
||||
## OptionalDeps: Ace3, CallbackHandler-1.0, HereBeDragons, LibDataBroker-1.1, LibDBIcon-1.0, LibSharedMedia-3.0, LibStub, LibUIDropDownMenu
|
||||
## SavedVariables: QuestieConfig, QuestieLearnerDB, QuestieCacheDB
|
||||
## SavedVariablesPerCharacter: QuestieConfigCharacter
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
## Interface: 11200
|
||||
## Title: |cFF5EBAF3Questie|r|cFFDAFAFD-X|r-Turtle|cFF00FF00 v1.5.4|r
|
||||
## Title: |cFF5EBAF3Questie|r|cFFDAFAFD-X|r-Turtle|cFF00FF00 v1.5.5|r
|
||||
## Notes: A standalone Classic QuestHelper
|
||||
## Notes-esMX: Ayundante de misiones
|
||||
## Notes-esES: Ayundante de misiones
|
||||
## Notes-ptBR: Ajudante de misiones
|
||||
## Notes-frFR: Assistant de quêtes
|
||||
## Version: 1.5.3
|
||||
## Version: 1.5.5
|
||||
## OptionalDeps: Ace3, CallbackHandler-1.0, HereBeDragons, LibDataBroker-1.1, LibDBIcon-1.0, LibSharedMedia-3.0, LibStub, LibUIDropDownMenu, Questie-X-TurtleDB
|
||||
## SavedVariables: QuestieConfig, QuestieLearnerDB, QuestieCacheDB
|
||||
## SavedVariablesPerCharacter: QuestieConfigCharacter
|
||||
|
||||
+1
-1
@@ -11,7 +11,7 @@
|
||||
## Notes-esES: Ayundante de misión
|
||||
## Notes-ptBR: Ajudante de missão
|
||||
## Notes-frFR: Assistant de quête
|
||||
## Version: 1.5.4
|
||||
## Version: 1.5.5
|
||||
## 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, QuestieCacheDB, QuestieJourneyDB
|
||||
## SavedVariablesPerCharacter: QuestieConfigCharacter
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
<img src="docs/QuestieXlogo.png" alt="Questie-X Logo" width="320" />
|
||||
|
||||

|
||||

|
||||
[](https://github.com/Xurkon/Questie-X/releases)
|
||||
[](https://xurkon.github.io/Questie-X/)
|
||||
[](https://www.patreon.com/Xurkon)
|
||||
|
||||
+13
-1
@@ -169,13 +169,25 @@
|
||||
<h1>Questie-X Documentation</h1>
|
||||
<p class="subtitle">Complete history of changes, fixes, and additions.</p>
|
||||
<div style="display: flex; justify-content: center; gap: 10px;">
|
||||
<code>Version: v1.5.4</code>
|
||||
<code>Version: v1.5.5</code>
|
||||
<a href="index.html"
|
||||
style="background: var(--bg-tertiary); color: var(--accent-blue); text-decoration: none; padding: 2px 6px; border-radius: 4px; font-size: 0.9em; border: 1px solid var(--border-color);">← Back to Documentation</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="container">
|
||||
<h2 id="v155">v1.5.5 — Performance & Stability</h2>
|
||||
<ul>
|
||||
<li><strong>[Performance — Position Caching]</strong> Implemented a 50ms cache for <code>GetPlayerWorldPosition</code> and <code>GetPlayerZonePosition</code> in <code>Compat/HBD.lua</code>. This drastically reduces C API overhead which was the #1 hotspot, with automatic cache invalidation on zone transitions.</li>
|
||||
<li><strong>[Performance — Arrow DB Optimization]</strong> Overhauled <code>ZoneDB:GetAreaIdByUiMapId</code> to use an O(1) reverse-mapping cache instead of an O(n) linear scan, eliminating a significant CPU bottleneck triggered hundreds of times per minute by the directional arrow.</li>
|
||||
<li><strong>[Performance — Tooltip Throttling]</strong> Throttled the <code>GameTooltip</code> <code>OnUpdate</code> hook to run at 10Hz (100ms) and added a text-change cache, preventing redundant and expensive tooltip recalculations every single frame.</li>
|
||||
<li><strong>[Performance — Network Refactor]</strong> Refactored <code>QuestieLearnerComms</code>: reduced compression overhead (negligible size difference but massive CPU savings), slowed processing ticker to match output rate limits, and optimized duplicate detection to O(1).</li>
|
||||
<li><strong>[Performance — Arrow Closures]</strong> Hoisted heavy inner closures out of the hot <code>QuestieArrow:UpdateNearestTargets</code> loop to module-level functions, eliminating persistent memory allocation spikes and Garbage Collection (GC) pressure.</li>
|
||||
<li><strong>[Fix — Profiler Display]</strong> Fixed textual overlap and vertical spacing issues in the <code>QuestieProfiler</code> UI. Function names are now properly left-aligned, and horizontal spacing ensures metrics remain legible regardless of function name length.</li>
|
||||
</ul>
|
||||
|
||||
<hr>
|
||||
|
||||
<h2 id="v153">v1.5.4 — Dedicated Keybinds Tab</h2>
|
||||
<ul>
|
||||
<li><strong>[Feature — Dedicated Keybinds Tab]</strong> Added a new Keybinds options tab with configurable keybinds for:
|
||||
|
||||
+1
-1
@@ -210,7 +210,7 @@
|
||||
<img src="QuestieXlogo.png" alt="Questie-X Logo" width="400" />
|
||||
<p class="subtitle">A universal WoW quest-helper with a plugin architecture for any private server.</p>
|
||||
<div style="display: flex; justify-content: center; gap: 10px;">
|
||||
<code>Version: v1.5.4</code>
|
||||
<code>Version: v1.5.5</code>
|
||||
<a href="changelog.html"
|
||||
style="background: var(--bg-tertiary); color: var(--accent-green); text-decoration: none; padding: 2px 6px; border-radius: 4px; font-size: 0.9em; border: 1px solid var(--border-color);">View
|
||||
Changelog</a>
|
||||
|
||||
Reference in New Issue
Block a user