Skip to content

Commit 89f7eb2

Browse files
authored
Merge pull request #143 from ssdeanx/develop
feat: update package dependencies and configurations
2 parents 43625bf + 54d4eb6 commit 89f7eb2

13 files changed

Lines changed: 2207 additions & 583 deletions

File tree

memory-bank/activeContext.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,17 @@
1+
# Active Context Update (2026-04-17 - weavingapi TBC timing cleanup)
2+
3+
- Reworked `src/mastra/public/workspace/weavingapi.md` to use Vanilla/TBC-only shaman spell ranks, removing WotLK-only `Lava Burst` / `Hex` IDs from the weaving path.
4+
- The weaving timing logic now caches resolved spell ranks, keeps the explicit spell-ID table as the first hot-path gate, uses `GetTimePreciseSec()` when available, refreshes `GetNetStats()` on every prediction pass, and keeps world latency as the primary offset with home/realm latency as fallback.
5+
- Spell haste is refreshed from `UnitSpellHaste()` on every prediction pass, and the active tracked spell is re-predicted during casts so aura and rating changes update immediately.
6+
- The swing-timer contract through `aura_env.setSwingState(...)` remains unchanged, and `SWING_TIMER_WILL_CLIPPED` still receives the original cast-duration payload.
7+
- The shared spellcast handler now tracks the current spell during casts and clears stale casting state on stop/interrupt paths, including an explicit clear update when an untracked cast starts, so the aura does not get stuck in a false casting state when a spell ID is missing.
8+
9+
# Active Context Update (2026-04-17 - swingtimer precise-clock and aura refresh)
10+
11+
- `src/mastra/public/workspace/swingtimer.md` now primes `_G.GetTimePreciseSec` (with `GetTime` fallback) and uses that precise clock together with the frame-cached latency value for melee swing timing; the changelog/version was bumped to reflect the final delta-correction and reset-safe behavior.
12+
- The swing timer now seeds latency on load, refreshes latency every frame, and prefers world latency over home latency so combat timing tracks the world connection first.
13+
- `UNIT_AURA` now drives direct swing-speed rescaling immediately, `PLAYER_TALENT_UPDATE` resyncs melee speed after talent swaps, the swing delta event is now wired into real swing resets/speed changes, the main/off delta correction now tracks the observed swing error instead of staying at zero and zeros itself during equipment resets, `ResetTimers()` now exists for equipment changes, the duplicate latency helper/shadowed cache path was removed, and the parry-specific handling was left unchanged.
14+
115
# Active Context Update (2026-04-16 - technical-analysis diagnostics fully clean)
216

317
- `src/mastra/tools/technical-analysis.tool.ts` is now clean under VS Code `get_errors` after correcting the accidentally leaked return-type annotations and forcing the MACD/ADX result mappings to return explicit local types.
@@ -928,6 +942,11 @@
928942

929943
# Active Context
930944

945+
## Active Context Update (2026-04-17 - weavingapi nil-safety and haste-aware prediction)
946+
- Reworked `src/mastra/public/workspace/weavingapi.md` so it now resolves the highest valid rank per spell family, avoiding nil `castTime` crashes when a WotLK-only rank is missing on a TBC/Classic client.
947+
- Added live cast prediction based on `GetSpellHaste()` / `UnitSpellHaste()` with `GetHaste()` fallback, plus latency-aware timing, while keeping `swingtimer.md` untouched.
948+
- Kept the WeakAuras event contract intact (`WEAVING_UPDATE_STATUS` / `SWING_TIMER_WILL_CLIPPED`) and added safe guards around `GetSpellInfo`, `UnitAttackSpeed`, and swing-state updates.
949+
931950
## Active Context Update (2026-04-05 - auth event typing and premium auth UI)
932951
- `app/login/page.tsx` and `app/login/signup/page.tsx` now use the native submit-event typing via `SyntheticEvent<HTMLFormElement, SubmitEvent>` instead of the deprecated `FormEvent` alias.
933952
- Both auth screens were redesigned into split-layout, glassmorphism-style views with stronger hierarchy, clearer onboarding copy, and better large-screen presentation.

memory-bank/progress.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,20 @@
1+
# Progress Update (2026-04-17 - weavingapi TBC-only cache and world latency)
2+
3+
- Updated `src/mastra/public/workspace/weavingapi.md` to a TBC-only shaman weaving implementation with cached spell-rank resolution and world-latency-aware cast timing.
4+
- Preserved the explicit spell-ID table as the hot-path gate while keeping the Vanilla/TBC Lightning Bolt, Chain Lightning, Healing Wave, Lesser Healing Wave, and Chain Heal rank groups cached once.
5+
- Switched the main timing path to `GetTimePreciseSec()` when available, with `GetTime()` fallback, and made `GetNetStats()` refresh on every prediction pass instead of using a half-second cache window.
6+
- Kept world latency as the primary offset with home/realm latency as fallback, and refreshed spell haste automatically on each prediction pass so rating and aura changes stay in sync.
7+
- Tracked the active spell during casts so `UNIT_AURA` and other refresh events can re-predict the live cast immediately instead of waiting for the next cast event.
8+
- Kept `SWING_TIMER_WILL_CLIPPED` payload compatibility by continuing to emit cast duration rather than absolute timestamps.
9+
- Left `src/mastra/public/workspace/swingtimer.md` untouched.
10+
- Hardened the shared spellcast handler so stop/interrupt events clear stale casting state, and untracked cast starts now emit an explicit clear update instead of leaving the weaving HUD stuck on a previous cast.
11+
12+
# Progress Update (2026-04-17 - swingtimer precise-clock and aura refresh)
13+
14+
- Updated `src/mastra/public/workspace/swingtimer.md` to use `_G.GetTimePreciseSec` (with `GetTime` fallback) for precise melee swing timing while keeping latency frame-cached, and bumped the swingtimer version/changelog to reflect the final delta-correction and reset-safe behavior.
15+
- Seeded the latency cache on load, removed the duplicate shadowed latency helper path, and switched combat latency to prefer the world connection so swing timing tracks the combat channel first.
16+
- Changed `UNIT_AURA` to rescale swing speed immediately, added `PLAYER_TALENT_UPDATE` so melee speed also resyncs after talent swaps, wired the swing delta event into the actual swing reset/speed-change paths, made the main/off delta correction track observed swing error instead of staying at zero and zero itself during equipment resets, and added a real `ResetTimers()` implementation for equipment changes while leaving the parry branch untouched.
17+
118
# Progress Update (2026-04-16 - technical-analysis diagnostics fixed)
219

320
- Resolved the final `get_errors` issues in `src/mastra/tools/technical-analysis.tool.ts` by correcting leaked return-type annotations, re-typing the MACD/ADX mappings, and restarting the VS Code TypeScript server.
@@ -570,6 +587,11 @@
570587

571588
# Progress
572589

590+
## Completed
591+
- Reworked `src/mastra/public/workspace/weavingapi.md` to be nil-safe for missing spell ranks, using highest-valid-rank resolution per spell family instead of hardcoded WotLK-only lookups.
592+
- Updated weaving prediction to use live spell haste, melee haste, and latency-aware cast timing while leaving `src/mastra/public/workspace/swingtimer.md` unchanged.
593+
- Preserved the existing WeakAuras event names and swing-state handoff contract, with safer guards around `GetSpellInfo`, `UnitAttackSpeed`, and swing clip checks.
594+
573595
## Completed
574596
- Replaced the deprecated `FormEvent`-style submit typing in the auth screens with native submit-event typing.
575597
- Redesigned `app/login/page.tsx` and `app/login/signup/page.tsx` into higher-polish split-layout auth experiences with better hierarchy, spacing, and feedback.

0 commit comments

Comments
 (0)