Skip to content
This repository was archived by the owner on Oct 11, 2026. It is now read-only.

Release V2.14

Choose a tag to compare

@gennro gennro released this 12 Sep 13:51
· 66 commits to main since this release

2026-09-12

  • Canonical Version Bump to 2.14 (TAC/lua/triune.lua, README.md, tests/test_pure_logic.lua).

    • Bumped canonical suite version to 2.14 across TAC/lua/triune.lua and README.md.
    • Updated test assertions across Suites 77, 78, 79, and 81 in tests/test_pure_logic.lua (2,432 tests passing).
  • Release Archive Packaging at Archive Root (.github/workflows/release.yml, README.md).

    • Flatten Archive Directory Structure: Changed git archive packaging in .github/workflows/release.yml to target tree HEAD:TAC instead of repository root paths, placing lua/, config/, and resources/ directly at the root of TriuneAutocombat-full.zip and TriuneAutocombat-Update.zip.
    • Root Documentation Inclusion: Included README.md and CHANGELOG.md at the root of the generated release archives using --add-file.
    • Purged Deprecated Bridge Paths: Removed deleted bridge scripts (TAC/triune_llm_bridge.py, start_bridge.*) from the release archive file list, resolving CI archive generation failures.
    • Updated Installation & Update Instructions: Updated release notes and README.md Quick Start instructions to direct users to extract the archive directly into the MacroQuest folder without navigating or dragging out of a subfolder.
  • Auto AA Minimum 5 AA Bank Slider & Auto-Purchase Reliability (TAC/lua/triune.lua, tests/test_pure_logic.lua).

    • Enforce 5 AA Minimum on Bank Slider: Updated the Auto AA bank reserve slider in UI.drawAutoAATab (##autoAaThresh) to enforce a minimum of 5 AA (range 5 to 100), updated tooltips accordingly, and sanitized ctrl.auto_spend_aa_threshold to a minimum of 5, preventing rapid continuous re-evaluation that caused micro-pauses in the main script loop.
    • Early Low-Point Evaluation Bypass (checkAutoSpendAA): Added an early check (if unspent < 5 then return false end) to immediately exit evaluation when points are below 5, eliminating unnecessary AA window querying and evaluation pauses.
    • Multi-Character Repeatable Spender Reliability (Alternately Advanced Fireworks): Resolved an issue where Alternately Advanced Fireworks auto-spent on one character but stalled on another by whitelisting Special tab abilities (runtime.isSpecialTabAA) and ctrl.auto_spend_aa_name from cross-class stub rejection in isAAAllowedForPlayer, assigning synthetic maxRank = 1 in recordScannedAA, and persisting Special tab abilities once discovered.
    • Window Trainer Substring Matching Safety: Removed dangerous substring overmatching in findAAInWindowLists (cleanTarget:find(cleanRow)), preventing unintended shorter abilities from incorrectly intercepting selection of longer target abilities.
    • Class AA Tab Routing: Added class abbreviation detection and ability database cross-referencing in startAATrainWorkflow to route Class-specific AAs directly to Tab 3 (Class) rather than falling back to Tab 1 (General).
    • Search Box Filter Cleanup: Added automatic clearance of leftover in-game search filter text in AAW_SearchBox during window preparation to prevent search filter interference during list selection.
    • Added Unit Test Suite 84: Added comprehensive tests in tests/test_pure_logic.lua validating the 5 AA minimum slider, low-point evaluation gating, Special tab repeatability, and safe window list matching (2,447 tests passing).
  • Remove Popout Character Stats, Inventory & Currency Window (TAC/lua/triune.lua, README.md, tests/test_pure_logic.lua).

    • Eliminated Popout Character Window (TriuneCharacterWindow): Removed the embedded Character Stats, Inventory & Currency popout window and its rendering routine UI.drawCharacterWindow(), streamlining the main engine codebase while preserving the dedicated standalone triune_inv.lua module.
    • Removed Associated Configuration & State: Purged character window configuration keys (show_character_window, char_lock, char_alpha, char_show_zerocur, char_alt_filter, char_slots_per_row) from defaultCtrl, and removed transient cache fields (cachedInvStats, statSyncRequested) from runtime.
    • Removed Toolbar Buttons & Commands: Removed the Character button from the main header toolbar, the Char button from the Compact Mini-Window toolbar, window manager entry (character), and the /ac char slash command and help documentation.
    • Pruned Redundant Background Loops: Eliminated background equipment changes polling (runtime.checkWornItemsChanged), inventory stats window scraping (runtime.scanStatsFromInventoryWindow), and the pending currency action loop from the main combat coroutine.
    • Preserved Shared Vector Primitives: Retained UI.col32 and UI.toVec vector drawing primitives required by the Popout Spellbook and Popout Spell Gem Bar windows.
    • Canonical Version Bump: Bumped version to 2.13 across TAC/lua/triune.lua, README.md, and test suites (2,438 pure logic tests passing).
  • Hours Formatting for Effects & Songs Popout Window and Buff/Ability Timers (TAC/lua/triune.lua, tests/test_pure_logic.lua).

    • Updated fmtSec to format durations of 3600 seconds or greater using hours and minutes (e.g. 45h, 45h 5m, 1h 30m, 1h), preventing long-duration buffs, GM auras, and potion effects from cluttering progress bars and hover tooltips with unwieldy minute counts like 2700m.
    • Added unit test coverage in tests/test_pure_logic.lua across both the fmtSec core logic suite and Suite 77 (Popout Effects & Songs Window) validating exact hour/minute formatting and long duration buff edge cases.
  • Fix Spell Recast Timer Countdown in Popout Spell Gem Bar (TAC/lua/triune.lua, tests/test_pure_logic.lua).

    • Smooth Real-Time Recast Interpolation: Fixed a bug where math.abs((nowClock + querySec) - endAt) > 1.2 repeatedly re-anchored runtime.gemCooldownEnd against static or 6-second discrete tick query values, causing the recast countdown to freeze and continuously display the initial recast delay instead of counting down.
    • Cast Completion & GCD Alignment: Recast countdowns are now primed during active casting and begin immediately upon cast completion. While cooling down (rem > 0), the timer decrements continuously frame-by-frame (10 -> 9 -> ... -> 1 -> 0) without periodic mid-cooldown resets.
    • Gem Swap & Memorization Invalidation (runtime.gemCooldownSpell): Tracks the scribed spell name for each slot, immediately invalidating stale cooldown anchors if a gem is memorized with a different spell.
    • Enhanced Query Parser & Overlay Formatting: Upgraded UI.getGemCooldownSec to leverage parseDurationSec and proper MQ property extraction, and added hours support (%dh) to gem button overlay text for extreme recast abilities.
    • Automated Verification: Added discrete tick anti-freeze and continuous countdown simulation assertions to Suite 79 in tests/test_pure_logic.lua (2,496 tests passing).
    • Static Analysis Fixes: Fixed undefined isCastingThis variable scoping within the gem cooldown calculation block and removed redundant timer = 0 reassignments, achieving 0 warnings across all files in Luacheck.
  • CI Test Suite & Satellite Theme Check Updates (tests/test_pure_logic.lua, tests/check_theme_consistency.sh).

    • Guarded Quest Database File Loading: Updated Suite 57 in tests/test_pure_logic.lua to only assert and load quest catalog, expansion, and zone data files when present on disk, resolving unit test failures following the removal of TAC/resources/triune_quest/.
    • Updated Theme Consistency Canonical & Satellites: Set triune_cursor.lua as the canonical satellite module and pruned deleted modules (triune_buttons.lua, triune_test.lua) from tests/check_theme_consistency.sh, bringing the theme consistency check to 100% passing.

📦 Installation & Updating Instructions

🆕 New Installation

  1. Go here and grab the latest macroquest release https://github.com/macroquest/macroquest/releases and extract under your user folder.
  2. Download TriuneAutocombat-full.zip below and extract directly into the root of your MacroQuest folder.
  3. If running windows add an exception to your MQ folder before running.
  4. Start MacroQuest.exe before launching EverQuest.

🔄 Updating an Existing Installation

  1. Download TriuneAutocombat-Update.zip from the Assets below.
  2. Extract directly into the root of your MacroQuest folder (overwrite files if prompted).
    Note: Your personal settings and saved loadouts in triune_loadout.lua are preserved and will never be overwritten.