Releases: mk418/HelloLog
Releases · mk418/HelloLog
v0.4.0
HelloLog
v0.4.0 (2026-05-17)
Full Changelog Previous Releases
- Bump version to 0.4.0
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com - Move XP gain to its own line in the compact panel
The combined stats line (time/kills/deaths/money/XP) overflowed the
panel width once XP was added. Split XP onto a dedicated line between
the stats and items-value rows, mirroring the vendor/rep line pattern,
and bump the panel content offset to make room.
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com - De-duplicate PLAYER_DEAD into a single death per life
PLAYER_DEAD can fire more than once for the same death (notably after
a /reload while still a corpse), which was producing duplicate entries
in the recording. Gate recordDeath on an alive->dead transition flag,
synced from UnitIsDeadOrGhost on world-enter and re-armed by
PLAYER_ALIVE / PLAYER_UNGHOST.
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com - Raise panel frame level above action-bar flyouts
DragonflightUI and other action-bar skins create flyout buttons a few
frame levels above their parent bar, which on MEDIUM strata covered
the HelloLog window. Bumping from +1 to +100 above the minimap clears
typical flyout stacks while staying in MEDIUM.
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com - Show XP per hour in the compact stats line
Mirrors the kills/hr formatting next to the XP total so the live
panel surfaces the same rate already visible in the detail header.
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com - Track XP gained, rested bonus, and level-ups per session
Adds an XP module that records total XP via PLAYER_XP_UPDATE, the
rested portion parsed from CHAT_MSG_COMBAT_XP_GAIN, and each ding from
PLAYER_LEVEL_UP. Rendered as a new section in the detail panel and as
a compact "X XP +N lvl" piece on the stats line. Sessions with only XP
activity are no longer discarded on Stop. The section stays hidden for
level-60 characters that gain no XP and have no level transitions.
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com
v0.3.0
HelloLog
v0.3.0 (2026-05-17)
Full Changelog Previous Releases
- Bump version to 0.3.0
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com - Use book icon for minimap button
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com - Add minimap icon and AddOns settings panel
Main window now hides by default and remembers its shown state per
character. A new minimap button (left-click toggles the window,
right-click opens settings, drag to reposition) provides the entry
point, and a "HelloLog" section under AddOns settings lets you
enable or disable the icon.
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com - Add DESIGN.md with an Ideas section
Capture a future feature idea — a chronological event view that
interleaves loot/kills/deaths/zone changes/consumables/rep/etc. in
timeline order. Open questions noted for when we pick it up.
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com - Subtract traded and disenchanted items from session loot
Snapshot bag contents on TRADE_SHOW and on UNIT_SPELLCAST_SENT for
Disenchant (spell 13262). On TRADE_CLOSED / UNIT_SPELLCAST_SUCCEEDED
diff after a small settle delay and decrement matching session-loot
buckets (and their per-mob entries) by however many of each itemID
left the player's possession.
Trade cancellations and failed/interrupted disenchant casts clear the
pending snapshot so they don't fire spurious decrements. Mats from a
successful disenchant continue to land in the loot list via the
existing LOOT_ITEM_CREATED_SELF chat handler.
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com - Track consumable use during a recording
New Consumables module snapshots bag contents and watches
BAG_UPDATE_DELAYED for decreases in items of class 0 (Consumable),
recording them on the current session. Detection is suppressed while
merchant/mail/trade windows are open so vendored, mailed, or traded
items don't get logged as consumed.
A new "Consumables (N)" section in the detail view lists each used
item with quality color, count, and per-hour rate. Sessions with
consumable activity (but no kills, loot, rep, or deaths) are no
longer treated as empty by Stop.
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com - Estimate repair cost per death
Snapshot equipped items with durability on PLAYER_DEAD and approximate
each death's repair cost as 10% of their summed sell prices — the
death tax drops 10% durability and classic-era repair cost tracks
sell price closely. Display per-death cost on each row of the Deaths
section and the session total in the section header (with a "~"
prefix to flag it as an estimate). Cost is recomputed lazily if
GetItemInfo was cold-cached at death time.
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com
v0.2.0
HelloLog
v0.2.0 (2026-05-17)
Full Changelog Previous Releases
- Bump version to 0.2.0
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com - Rework Items value section and add Auctionator AH integration
- Move loot value out of the top summary into a dedicated "Items value"
section in the scroll content, between Deaths and Items. - Cover qualities 0-4 (Poor through Epic). The section renders even
when an item has no vendor sellPrice (e.g. some blue/purple drops)
as long as Auctionator has an AH price for it. - Pull AH prices via Auctionator.API.v1 (GetAuctionPriceByItemLink,
with GetAuctionPriceByItemID as fallback). Loot:HasAuctionator gates
every AH render path so AH never shows when the addon is missing. - Per-quality rows: vendor amount in white, AH amount in grey parens.
- Per-item rows: quantity, then per-hour rate, then vendor, then AH —
e.g. "Linen Cloth x12 (90/hr) 1g 20s (3g 60s)". - Compact panel: "Items value" line shows vendor total with optional
"(AH …)" suffix.
Drop the now-unused Loot:VendorValue and Loot:VendorBreakdown helpers.
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com
- Move loot value out of the top summary into a dedicated "Items value"
- Show item vendor value across compact and detail views
- Capture sellPrice from GetItemInfo when loot is recorded, with a
lazy backfill on display for items whose info wasn't cached yet. - Add Loot:VendorBreakdown(sess) returning the total plus a per-quality
table (grey/white/green only, since higher rarities typically aren't
vendored). - Detail panel: dedicated vendor line under the session summary,
showing total + per-quality split with localized labels
(ITEM_QUALITYN_DESC) and matching quality colors. Per-item rows pick
up sellPrice * count next to the count. - Compact panel: vendor value on its own line between stats and rep,
labeled "Vendor"; rep line and icon area shift down.
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com
- Capture sellPrice from GetItemInfo when loot is recorded, with a
- Polish recording lifecycle and detail-panel navigation
- Keep the paused bucket attached as the player wanders other zones, so
the compact panel keeps showing the paused timer/money instead of
going blank after a zone change. After a full Stop it's still blank. - On Close, jump the detail panel to the just-archived recording
(via Detail:ShowHistoryEntry) instead of the history list. - Hide the "Show current" button while in history list view when no
session is active; reshow on historyDetail / live views. - On expand (or right-click) while recording, force the detail panel
to the live view via Detail:ShowLive.
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com
- Keep the paused bucket attached as the player wanders other zones, so
- Default detail panel to history when no session is active
Showing "No active session" on expand was a dead-end. Snap viewMode to
historyList whenever Refresh runs in live mode with no current
session, so opening details without a recording lands on the history
list instead.
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com - Sit just above the minimap on MEDIUM strata
Pure LOW strata buried HelloLog under the chat frame; an explicit
level of 1 on MEDIUM let the minimap render over it. Anchor the level
to Minimap:GetFrameLevel() + 1 so we stay above the minimap while
still letting addon windows on MEDIUM (ThreatClassic2, etc.) and HIGH
(HelloStock, bags) render on top.
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com - Lower frame strata to LOW so other addon panels sit on top
ThreatClassic2 and other MEDIUM-strata addons were z-fighting with
HelloLog. Dropping HelloLog to LOW keeps it above world/minimap/action
bars (all BACKGROUND) while letting any addon window render above it.
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com - Lower frame strata to MEDIUM so HelloStock can sit on top
HelloStock uses HIGH strata; keeping HelloLog on HIGH meant both
windows z-fought when overlapping. MEDIUM keeps HelloLog visible but
guarantees it renders behind HelloStock when both are open.
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com - Add death tracking, history deletion, and empty-session handling
- Record deaths with timestamp, zone, and attributed hostile NPC.
Surface count in compact stats line and as a list in the detail view. - Delete individual archived recordings via × button on history rows
with a YES/NO confirmation popup. - Discard a session on Stop if no money, items, kills, rep changes, or
deaths were recorded — avoids cluttering history with empty buckets. - Idle PLAYER_ENTERING_WORLD no longer fabricates a fresh zone bucket,
so a full Stop now leaves the UI in "Record" instead of "Resume" on
next login.
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com
- Record deaths with timestamp, zone, and attributed hostile NPC.
v0.1.0
HelloLog
v0.1.0 (2026-05-15)
Full Changelog Previous Releases
- Wire toc to CurseForge project 1544304
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com - Add CurseForge release workflow
Tag pushes matching v* trigger BigWigsMods/packager, which:- packages the addon into a release zip
- creates a GitHub release using the built-in GITHUB_TOKEN
- uploads to CurseForge when CF_API_KEY is configured as a repo secret
.pkgmeta sets package-as: HelloLog so the zip folder name matches
the toc, and ignores the workflow, pkgmeta itself, README, and the
logo so they aren't shipped to clients.
To finish setup:
- Create the project on CurseForge and copy its project ID.
- Add "## X-Curse-Project-ID: " to HelloLog.toc.
- Add a CF_API_KEY repo secret (https://www.curseforge.com/account/api-tokens).
- Tag a release: git tag v0.1.0 && git push --tags
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com
- HelloLog: per-zone session log for Classic Era
A loot, gold, kill, reputation, and zone-visit tracker that records
into a single per-zone bucket per recording session.
Recording flow- Pressing Record locks the active bucket to the player's current
zone. ZONE_CHANGED_NEW_AREA only appends a timestamped visit
entry; the bucket stays attached to its starting zone until Stop
archives it or /hl wipe clears everything. - Recording state (HelloLogDB.state.recording) and the locked zone
(state.zone) persist across /reload; secondsActive is flushed
once per second so a reload loses < 1s. - Stop archives the live bucket to HelloLogDB.history with a
closedAt timestamp. New archives the current bucket and starts a
fresh one in the player's current zone.
Data captured per bucket - Loot: CHAT_MSG_LOOT parsed against LOOT_ITEM_SELF/_MULTIPLE
/_PUSHED/_CREATED with item links, counts, quality, and icons. - Money: positive deltas on PLAYER_MONEY.
- Kills: any hostile NPC damaged by a MINE|PARTY|RAID source that
subsequently fires UNIT_DIED is credited as a kill (so healers
and non-DPS roles get attribution without relying on PARTY_KILL,
which is subgroup-scoped). - Per-mob loot: drops attributed to the player's current dead
target at the moment the loot message arrives. - Reputation: CHAT_MSG_COMBAT_FACTION_CHANGE parsed against
FACTION_STANDING_INCREASED/_DECREASED into a signed delta per
faction. - Zone visits: timestamped log of every ZONE_CHANGED_NEW_AREA
while recording, plus the seed zone on Start / New.
UI - Single Blizzard BasicFrameTemplateWithInset window, 420px wide
by default, anchored TOPRIGHT to UIParent (below the minimap)
so dragging and resizing grow downward. - Compact header: Record / Stop / Details buttons, zone name,
one stats line below (time · kills (rate) · gold with dim
middle-dot separators), an optional rep line, and a quality-
bordered icon grid of looted items below. - Clicking Details widens the panel to 560 and shows an expanded
body whose mode cycles Live → History list → Back via a single
toggle button. The body has a pinned session summary above a
scrollable section stack:
Reputation — per-faction cumulative delta with /hr rate
Zones visited — timestamp · zone · duration
Items — name, count, /hr rate, quality-coloured
By mob — kill count + rate · item count + drop icons - Hovering any per-mob drop icon adds "From this mob: N/hr" to its
tooltip. Per-hour rates are suppressed for the first 30s.
Persistence (HelloLogDB, per-character) - sessions[zone] — currently open buckets
- history[] — archived buckets, sorted by closedAt desc in
the history list view - state.recording, state.zone — recording lock
- ui.point, ui.expanded — window placement and toggle
Slash commands
/hl or /hellolog: start, stop, show, detail, reset, resetpos, wipe
Files
Core.lua — addon bootstrap, event multiplexer, slash router
Session.lua — bucket lifecycle: Start/Stop/Close/New/Tick/Wipe,
zone lock, archive
Loot.lua — chat-loot parser and money delta tracker
Rep.lua — reputation parser
Kills.lua — damage→UNIT_DIED kill attribution
Detail.lua — expanded body: summary + sections + history browser
UI.lua — main frame, buttons, compact stats lines
🤖 Generated with Claude Code
- Pressing Record locks the active bucket to the player's current