Skip to content

v2.0.0

Choose a tag to compare

@github-actions github-actions released this 02 Oct 08:10
· 95 commits to main since this release

LevelTimer

v2.0.0 (2026-10-02)

Full Changelog Previous Releases

  • Note roadmap items released in v2.0.0
  • Merge pull request #8 from Noobygames/feature/roadmap-next
    Roadmap: charts, journals, death recap, info bar and more
  • Fit settings and history layout to localized text
    Settings size their toggle columns and width from the label widths, so
    long French/Spanish labels and the language row no longer overlap or
    overflow. History sub-tabs wrap into extra rows and push the content
    down. Column charts cap the column width, so a single value no longer
    fills the whole chart.
  • Add horizontal bar layout for the timer window (roadmap 25)
    Setting horizontalLayout (/lt bar) chains tabs, play time and stat rows
    on one line with the XP bar below, like an info bar. Works together with
    compact mode and all existing window settings. Also ticks off roadmap 21
    and 24.
  • Read death cause from the death recap (roadmap 24)
    Retail-API clients (Retail, WoW Forever) hide the combat log from addons.
    When the combat log gives no cause, take the killing blow (first event)
    from C_DeathRecap.GetRecapEvents(), retrying once if the recap is not
    ready yet. The test stub queues C_Timer.After callbacks for wow.runTimers().
  • Upload releases to Wago and WoWInterface (roadmap 21)
    The packager uploads to each platform once its .toc ID (X-Wago-ID,
    X-WoWI-ID) and its secret (WAGO_API_TOKEN, WOWI_API_TOKEN) exist;
    without them the upload is skipped.
  • Add French and Spanish (roadmap 23)
    • frFR and esES translations; esMX uses Spanish; default language
      follows the client
    • Language chooser offers all four languages; .toc notes translated
    • locales_test checks that every language has every key with the same
      %s/%d placeholders as English
  • Add LibDataBroker data text (roadmap 19)
    • Data object for Titan Panel, ElvUI, Bazooka and similar displays:
      play time and XP/h, tooltip with all enabled values, same clicks
      as the minimap button
    • Uses LibDataBroker only when another addon provides it; no bundled
      libraries
  • Add compact window mode (roadmap 18)
    • Compact mode shows only play time, XP bar and XP/h, without tabs
    • Toggle in the window settings or with /lt compact
  • Export history tables as CSV (roadmap 16)
    • "Export" button on every table opens a window with the visible rows
      (filter and sort applied) as CSV, selected for Ctrl+C
    • Separator per language (; for German, , for English), fields quoted
      when needed, color codes and link markup removed
    • Tests find table views via a shared stub helper
  • Sort and filter history tables (roadmap 15)
    • Click a column header to sort, again to reverse; formatted columns
      (durations, gold, dates) sort by their raw value
    • Filter box above every table searches all columns, case-insensitive,
      ignoring color codes and link markup
    • Total row covers the filtered rows only
  • Add XP bar with rested bonus to the window (roadmap 14)
    • Bar under the play time: progress in the level, rested bonus as a
      lighter segment; hidden at max level
    • Toggle "XP bar" in the window settings
  • Track near deaths (roadmap 12)
    • NearDeath.lua: health below 10 % that recovers above 30 % without
      dying counts as a near death (hysteresis avoids double counting)
    • Journal entry with lowest health, cause (last hit), level and zone
    • Optional "Near deaths" row and journal sub-tab
  • Count elite and rare kills (roadmap 11)
    • Classification.lua remembers enemy classification by name from
      target, mouseover and nameplates; works without the combat log
    • New counters and optional rows "Kills (elite)" / "Kills (rare)"
    • Kill journal stores the classification; the type column shows
      elite, rare, rare elite or boss
  • Add loot journal (roadmap 10)
    • Loot.lua logs rare and better items with time, quantity and a likely
      source (last quest within 5 s or last kill within 60 s)
    • Quality from item info, falling back to the link color (old and new
      link formats)
    • Chat format parsing moved to ChatPatterns.lua, shared with kills
    • "Loot" sub-tab in the journal
  • Track dungeon, raid and scenario runs (roadmap 9)
    • Instances.lua records each run with duration, XP, kills and deaths;
      /reload inside continues the run, a long break closes it
    • "Instances" sub-tab in the journal with the running run on top and
      a total row over all runs
  • Add quest journal (roadmap 7)
    • Every quest turned in is logged with time, name, XP, gold, level
      and zone (newest 2000)
    • Name from C_QuestLog where available, otherwise the title of the
      open turn-in dialog
    • "Quests" sub-tab in the journal
  • Keep daily totals for long-term charts (roadmap 6)
    • Daily values also count kills, deaths and XP, so charts survive
      the journal limit
    • Character schema 5 seeds daily kills and deaths from the journal
    • "Kills/day" reads daily totals and covers 30 days; daily series
      share one helper
  • Chart the XP timeline of the session (roadmap 5)
    • Session tallies gained XP in 5-minute steps (xpTimeline, not kept
      for archived sessions)
    • "XP timeline" chart shows the last 3 hours; breaks appear as gaps
    • Death causes sub-tab shortened to "Causes" so all charts fit
  • Chart play time per day and week (roadmap 4)
    • Daily.lua keeps per-day values; play time is split at midnight
    • Character schema 4 seeds past sessions into their start day
    • Charts "Time/day" (14 days) and "Time/week" (8 weeks, from Monday)
    • Shorter chart sub-tab labels so all charts fit one row
    • Schema version is public so the migration test follows bumps
  • Track statistics per zone (roadmap 3)
    • Zones.lua: play time, XP, kills and deaths per zone, time booked on
      zone change and logout
    • Stats.OnIncrement lets modules tally counters elsewhere
    • "Zones" tab sorted by XP/h with a total row, plus an
      "XP/h per zone" chart (stays under 5 minutes are skipped)
  • Compare all characters side by side (roadmap 2)
    • New "Compare" tab: one row per character in class color with
      level, levels gained, average time per level, XP/h, kills, deaths
      and gold; fastest leveler first, characters without data last
    • Table views accept an optional rowColor
  • Group history views into tabs with sub-tabs
    • Views sharing a group get one tab and appear as sub-tabs:
      Levels (overview, timeline), Journal (kills, deaths), Charts
    • Each chart is its own view; history window is wider for the
      upcoming views
  • Add roadmap, level-up summary, forecast, timeline, data deletion and PR tests
    • ROADMAP.md with planned features; done: 1, 8, 13, 17, 22
    • Chat summary on level-up (toggle in settings)
    • "Max level in" row: rest of current level plus average of recent levels
    • Timeline tab: level reached, date, total /played and level duration
    • Delete a character's statistics from the history window; the
      logged-in character restarts tracking immediately
    • test.yml runs vet and tests on every PR and push to main;
      workflows on checkout@v7 / setup-go@v7 with go.sum cache path
  • Add history charts and lazy-loaded journal tables
    • Charts tab: time and XP/h per level, kills per day, top enemies
      and death causes (Analysis.lua data, Charts.lua texture charts)
    • Rank charts use the available height, show rank, share and a
      background track; tooltips show truncated names in full
    • Tables render only visible rows and refill on scroll, so the
      journal keeps 5000 kills and 1000 deaths
    • Own slim scrollbar and smaller close button; text columns left
      aligned; journal times with seconds
    • HistoryWindow split into frame, table views and chart view