EMS-Changelog

GRIP-EMS v1.9.1

Released April 12, 2026. 29 entries in the author's notes.

Every entry

The author's own words, complete. Long sections are sorted into areas by LazyGrip.

Added

19
Variables and recommendations5
Tempo Advisor (Faster/Slower)#

TempoAdvisor engine (Engine/TempoAdvisor.lua): per-sequence click rate analysis with 3-tier model -- theoretical GCD timing, per-sequence stored recommendations, adaptive learning from ExecutionTracer play data

#

TempoOverlay HUD (UI/TempoOverlay.lua): movable dark-themed overlay showing Faster/Slower guidance, live CPS, recommended MS, off-GCD step count, confidence level (Estimated vs Calibrated), and sparkline history

#

Audio alerts on tempo mismatch (too fast / too slow, opt-in)

#

Human-readable text export for forum/Discord sharing (metadata, numbered steps, KeyPress/KeyRelease, variables with event names)

#
Macros, export, import and sharing4

Legacy import preserves Interval from Repeat actions as node property (no more data loss on import)

Import Quality

#

Sequence disable toggle: disabled sequences import as dormant, show \[Disabled\] suffix and 0.3 alpha icon, right-click Enable/Disable in sequence list context menu

#

Pet ability (/cast) and Toy (/use) sub-type import branches

#

MetaData (Author, SpecID, Icon) now read on clipboard import path

Other

#
Resets and modifiers3

/gems fs slash command (status/on/off/reset)

Interleave / Weave

#

Pause field names corrected (MS/Clicks matching source format, GCD-string values default to 2 clicks)

#

/gems resetui: reset window position and size to defaults

#
Repair and spell warnings2

Empirical calibration after 30 play samples (0.7 theory / 0.3 empirical blend with CLEU staleness detection)

#

Checksum validation on import (DJB2 hash, non-blocking warning on mismatch, nil checksums skipped)

#
Everything else5

Settings panel: Faster/Slower section with mode selector, buffer slider, Hold Mode CVar toggle

#

Interval property on Action nodes -- interleave a spell every N steps at compile time

#

ActionCompiler two-phase weave (works inside Loop blocks)

#

StepListView detail pane: interleave checkbox + interval spinner (2-50 range) with inline \[IL:N\] row indicator

#

Migration report distinguishes dormant vs active sequence counts

#

Fixed

10
Variables and recommendations3

TempoAdvisor CPS source: use Engine:GetButtonPressRate() instead of CLEU spell timestamps (\~0.3/sec vs actual \~2.8/sec)

#

StoreRecommendation: field-by-field merge instead of table replace (was wiping empirical blendedMs/totalSamples data)

#

blendedMs overwrite guard in StoreRecommendation merge loop

#
Resets and modifiers1

/gems resetui persistence: empty table instead of nil so OnHide saves the reset position correctly (BUG-057)

#
Saving, naming and editing1

Faster/Slower clickTimes threshold: 10 -> 3 (CLEU only yields 4-6 entries per 10s window, old threshold was unreachable)

#
Combat and the Options pages1

SetPropagateKeyboardInput taint: pcall wrapper in SequenceEditor OnKeyDown prevents ADDON_ACTION_BLOCKED in combat

#
Everything else4

CvarProfileManager IsCVarSecure: unpack GetCVarInfo positional returns instead of table indexing (was always returning false)

#

Phantom eng.activeSequence: replaced with eng.\_lastClickedSequence in PrintStatus, LDB tooltip, and UpdateBroker

#

Micro-stutter: UNIT_SPELL_HASTE player-only filter (was firing for all nearby units), reusable tables in AnalyzeSequence, OnUpdate replaced with C_Timer.NewTicker, incremental GC

#

Hold to Cast CVar description: clarified native ActionButton scope

#

Grab it

Release notes written by Sataana and reproduced here with his permission.