Skip to content

Releases: mk418/HelloLog

v0.4.0

17 May 14:46

Choose a tag to compare

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

17 May 09:31

Choose a tag to compare

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

17 May 00:00

Choose a tag to compare

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
  • 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
  • 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
  • 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

v0.1.0

15 May 23:22

Choose a tag to compare

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:
    1. Create the project on CurseForge and copy its project ID.
    2. Add "## X-Curse-Project-ID: " to HelloLog.toc.
    3. Add a CF_API_KEY repo secret (https://www.curseforge.com/account/api-tokens).
    4. 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