File Details
1.6-release
- R
- Mar 29, 2026
- 637.72 KB
- 22
- 12.0.1
- Retail
File Name
CombatAnalytics-1.6-release.zip
Supported Versions
- 12.0.1
tag 3a8052e972f63425100406365109f8a35ef5949c 1.6-release
Author: Lazar Dilov <ldilov@yahoo.com>
Date: Mon Mar 30 00:50:11 2026 +0300
Release v1.6
commit a98233b4920fbda03bf250bda10a2ff89e8482ad
Author: Lazar Dilov <ldilov@yahoo.com>
Date: Mon Mar 30 00:48:39 2026 +0300
Removed garbage
commit 17de0e80702f70134c8cba5aee2ea2d48e23943e
Author: Lazar Dilov <ldilov@yahoo.com>
Date: Mon Mar 30 00:32:52 2026 +0300
fix: builds page layout — text overflow, badge positioning, vertical spacing
commit aa9dae5f8dd892a5d4fe8677e9d255328bef6ad7
Author: Lazar Dilov <ldilov@yahoo.com>
Date: Mon Mar 30 00:23:18 2026 +0300
chore: ignore .claude/worktrees/ in git
commit 17de0e80702f70134c8cba5aee2ea2d48e23943e
Author: Lazar Dilov <ldilov@yahoo.com>
Date: Mon Mar 30 00:32:52 2026 +0300
fix: builds page layout — text overflow, badge positioning, vertical spacing
commit 492c4f339cb4c47aa2677f58b9f1e52dff0473ba
Author: Lazar Dilov <ldilov@yahoo.com>
Date: Mon Mar 30 00:28:44 2026 +0300
fix: replace unicode arrow in Swap button — WoW fonts don't render U+2194
commit 131395becbb732be126e93aa1a5af4ab491b6c2e
Author: Lazar Dilov <ldilov@yahoo.com>
Date: Mon Mar 30 00:28:11 2026 +0300
fix: post-import spell backfill distributes unaccounted damage to cast-only spells
commit 3dec9911a13637f7c257aed623b3261f63e7a0f7
Author: Lazar Dilov <ldilov@yahoo.com>
Date: Mon Mar 30 00:25:46 2026 +0300
fix: getExpectedDamageTotal falls back to session.totals.damageDone
commit 07170c496b36809609989dce29bff4d4a1f1354f
Author: Lazar Dilov <ldilov@yahoo.com>
Date: Mon Mar 30 00:25:04 2026 +0300
fix: relax DM session baseline filter — include at-baseline sessions for dummy/PvE
commit 6ca3cb37c366b7e1b1c4dee7482f595389c78974
Author: Lazar Dilov <ldilov@yahoo.com>
Date: Mon Mar 30 00:24:28 2026 +0300
fix: re-snapshot DM data during import — captures settled data for short-lived sessions
commit aa9dae5f8dd892a5d4fe8677e9d255328bef6ad7
Author: Lazar Dilov <ldilov@yahoo.com>
Date: Mon Mar 30 00:23:18 2026 +0300
chore: ignore .claude/worktrees/ in git
commit f5efa5036957e4a883aa3f8483642f271d2ce140
Author: Lazar Dilov <ldilov@yahoo.com>
Date: Sun Mar 29 23:55:41 2026 +0300
fix: UI polish — friendly badges, cast counts, label overflow, unicode
- Centralize formatDisplayLabel into Widgets.lua with 40+ enum mappings
covering CONTEXT, SESSION_CONFIDENCE, MATCH_RESULT, PROVENANCE_SOURCE
- Summary badges now show "Training Dummy" instead of "TRAINING_DUMMY",
"State + DM" instead of "STATE_PLUS_DAMAGE_METER", "Log" instead of
"UNKNOWN" for non-PvP contexts
- Confidence badge colors now align with CONFIDENCE_BADGE_COLORS for v6+
SESSION_CONFIDENCE values
- MergeSpellTotals: floor castCount from hitCount when CLEU didn't
provide cast data (fixes "Casts 0" on all DM-imported spells)
- BuildComparatorView: replace broken UTF-8 sequences (U+22A0, U+2286)
with ASCII-safe alternatives; add width constraint + truncation to
panel.label; hide Build B label in single-build empty state
commit d7004b21688ec4b7d10258b29a40267ba9443c1a
Author: Lazar Dilov <ldilov@yahoo.com>
Date: Sun Mar 29 23:26:36 2026 +0300
fix: arena damage pipeline — seed identity before DM import, relax scoring, extend fallbacks
Root cause: CopyStateIntoSession ran after DM import, leaving collectExpectedOpponentGuids
with an empty GUID set during scoring. Combined with -18 penalty for GUID mismatch,
no valid candidate was selected → Damage 0, Unknown opponent, VISIBLE_CC_ONLY confidence.
Changes:
- ArenaRoundTracker: add SeedSessionIdentity() — lightweight slot identity seed
(GUIDs, names, specs) without pressure scoring, callable before DM import
- CombatTracker: call SeedSessionIdentity before DamageMeter import in FinalizeSession;
add pre-import diagnostic trace (session.pre_import); T021 post-finalize re-import
listener for late-arriving DM events (capped at 1 retry, 10s window);
SetImportAuthority helper for consistent authority tracking
- DamageMeterService: relax GetOpponentFitScore — return neutral/positive score
for arena/BG when expected GUID set is empty (secret values); extend enemy
damage fallback gate to ARENA/BATTLEGROUND contexts; call ApplyPrimaryOpponent
on cached and current fallback paths (not just historical success path);
enrich opponent spec from session.arena.slots first, ArenaRoundTracker fallback;
add arena-aware GetContextFitScore scoring; add opponent_fit trace
- UI/BuildComparatorView: show captured build name in single-build empty state
commit 342f1fdbb12323d119224f35b75268fe30ba7c41
Author: Lazar Dilov <ldilov@yahoo.com>
Date: Sat Mar 28 22:43:32 2026 +0200
feat: build comparator overhaul — canonical identity, catalog, scoped comparison, diff, migration
Implements all 31 tasks from specs/003-build-comparator-overhaul (FR-001–FR-048, US1–US7).
Core changes:
- Constants.lua: SCHEMA_VERSION=7, BUILD_IDENTITY_VERSION=1, SNAPSHOT_FRESHNESS, CONFIDENCE_TIER enums
- Utils/BuildHash.lua: ComputeBuildId() and ComputeLoadoutId() — slot-stable canonical identity
- SnapshotService.lua: stamps buildId/loadoutId/snapshotFreshness; wires TRAIT_CONFIG_UPDATED refresh
- CombatTracker.lua: attaches buildId/loadoutId/snapshotFreshness to session snapshots
- CombatStore.lua: v6→v7 migration gate; build catalog persistence API; scoped session query with cache
- BuildCatalogService.lua (new): catalog CRUD, live build detection, alias management, display labels
- BuildComparisonService.lua (new): scoped comparison, confidence classification, metric aggregation, diff
- UI/BuildComparatorView.lua: full redesign — scrollable selector, search/sort, scope banner, confidence
badges, diff panel (compact/expanded), quick actions (Swap, vs-Previous, vs-Best, vs-Most-Used),
freshness warning, single-build and empty-scope states
- Core.lua: extended /ca debug export with buildId, loadoutId, freshness, catalog summary
Post-analysis remediations (speckit.analyze findings):
- C1: added 'vs Most Used' quick-action button completing all 4 FR-035 quick actions
- I2: GetDisplayLabel now appends first user alias in brackets when present (FR-039)
- I1: FR-010 wording clarified to distinguish persisted flags from scope-derived properties
commit 342f1fdbb12323d119224f35b75268fe30ba7c41
Author: Lazar Dilov <ldilov@yahoo.com>
Date: Sat Mar 28 22:43:32 2026 +0200
feat: build comparator overhaul — canonical identity, catalog, scoped comparison, diff, migration
Implements all 31 tasks from specs/003-build-comparator-overhaul (FR-001–FR-048, US1–US7).
Core changes:
- Constants.lua: SCHEMA_VERSION=7, BUILD_IDENTITY_VERSION=1, SNAPSHOT_FRESHNESS, CONFIDENCE_TIER enums
- Utils/BuildHash.lua: ComputeBuildId() and ComputeLoadoutId() — slot-stable canonical identity
- SnapshotService.lua: stamps buildId/loadoutId/snapshotFreshness; wires TRAIT_CONFIG_UPDATED refresh
- CombatTracker.lua: attaches buildId/loadoutId/snapshotFreshness to session snapshots
- CombatStore.lua: v6→v7 migration gate; build catalog persistence API; scoped session query with cache
- BuildCatalogService.lua (new): catalog CRUD, live build detection, alias management, display labels
- BuildComparisonService.lua (new): scoped comparison, confidence classification, metric aggregation, diff
- UI/BuildComparatorView.lua: full redesign — scrollable selector, search/sort, scope banner, confidence
badges, diff panel (compact/expanded), quick actions (Swap, vs-Previous, vs-Best, vs-Most-Used),
freshness warning, single-build and empty-scope states
- Core.lua: extended /ca debug export with buildId, loadoutId, freshness, catalog summary
Post-analysis remediations (speckit.analyze findings):
- C1: added 'vs Most Used' quick-action button completing all 4 FR-035 quick actions
- I2: GetDisplayLabel now appends first user alias in brackets when present (FR-039)
- I1: FR-010 wording clarified to distinguish persisted flags from scope-derived properties
commit 0901563469ca159bb0c8162963e06345ceb9aef2
Author: Lazar Dilov <ldilov@yahoo.com>
Date: Sat Mar 28 19:27:38 2026 +0200
chore: add speckit specs and dev tooling for features 001-002
- specs/001-midnight-compliance-overhaul/: full spec/plan/tasks/research/
data-model/contracts/quickstart for the compliance overhaul
- specs/002-pvp-session-hardening/: full spec/plan/tasks/research/
data-model/quickstart for pvp reliability hardening
- .specify/: speckit workflow state, scripts, templates, memory
- .agents/: agent skill wrappers (speckit, engineering-assistant)
- .hforge/: Harness Forge runtime, library, and manifest
- .claude/: Claude Code project runtime config
commit 0901563469ca159bb0c8162963e06345ceb9aef2
Author: Lazar Dilov <ldilov@yahoo.com>
Date: Sat Mar 28 19:27:38 2026 +0200
chore: add speckit specs and dev tooling for features 001-002
- specs/001-midnight-compliance-overhaul/: full spec/plan/tasks/research/
data-model/contracts/quickstart for the compliance overhaul
- specs/002-pvp-session-hardening/: full spec/plan/tasks/research/
data-model/quickstart for pvp reliability hardening
- .specify/: speckit workflow state, scripts, templates, memory
- .agents/: agent skill wrappers (speckit, engineering-assistant)
- .hforge/: Harness Forge runtime, library, and manifest
- .claude/: Claude Code project runtime config
commit a174bc4717d79f2bcab127e34694dc7e5980ae0e
Author: Lazar Dilov <ldilov@yahoo.com>
Date: Sat Mar 28 19:27:26 2026 +0200
feat: midnight compliance overhaul + pvp session reliability hardening
001 - Midnight Compliance Overhaul:
- Rework core pipeline for WoW Midnight (no CLEU): SpellAttributionPipeline
now drives all damage/heal/aura tracking via C_DamageMeter and PvP APIs
- Add TimelineProducer: structured event lanes (DM_ENEMY_SPELL, ARENA_CC,
PLAYER_ABILITY) for death-recap and replay
- Add ArenaScoutService, CCCoachService, OpenerLabService: pre-match intel,
CC family tracking, opener recommendation
- Add DuelLabService, PracticePlannerService, MatchupMemoryService,
TradeLedgerService: extended coaching and opponent history modules
- Expand SessionClassifier for Solo Shuffle round detection
- Expand Constants with new context/subcontext/timeline enums (SCHEMA_VERSION=3)
- Add RatingView, ArenaScoutView, TradeLedgerView; overhaul all existing
UI views (SuggestionsView, HistoryView, MatchupDetailView, Widgets, etc.)
- Register all new modules in CombatAnalytics.toc and Core.lua
002 - PvP Session Reliability Hardening:
- ArenaRoundTracker: add evidence-based pressure scoring via
ApplySessionPressure (bySource attribution + death-recap timeline);
add findSlotByGuid + ensureSelectionEvidence helpers; update
GetPrimaryEnemy with stable 5-tier ranking + 85% sticky GUID rule;
export className/specName/specIconId + full selection diagnostics
- DamageMeterService: add GUID-overlap candidate scoring via
GetOpponentFitScore (+28 primary match, +10/overlap capped +30,
-18 zero-overlap penalty, context source-count fit, -20 duration
mismatch >15s); return enemySources from snapshot collector;
emit opponentFitScore/enemySourceCount on all import paths including
fallbacks
- CombatTracker: move CopyStateIntoSession to pre-classifier position
so metrics, suggestions, and identity sync consume hardened opponent;
stage preMatchRatingSnapshot on matchRecord.metadata at
PVP_MATCH_ACTIVE time; inherit snapshot at CreateSession for
late-created sessions; preserve direct-session path (no regression)
commit 23959de26fcfd3f19f3897f0e492b56d46541423
Author: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Date: Mon Mar 23 06:22:27 2026 +0000
chore(seed): auto-update seed data 2026-03-23

