promotional bannermobile promotional banner

Tempo

Tempo is a World of Warcraft addon that helps players track daily, weekly, monthly, and custom recurring activities across all their characters.

File Details

v0.1.0

  • R
  • Mar 28, 2026
  • 1.11 MB
  • 12
  • 12.0.1
  • Retail

File Name

tempo-v0.1.0.zip

Supported Versions

  • 12.0.1

Tempo

v0.1.0 (2026-03-28)

Full Changelog Previous Releases

  • v0.1.0: First-run setup wizard, MiniView enhancements, toast sound settings
    Setup wizard popup on first session with template picker and interface
    walkthrough. Players choose whether to see it per-character or once.
    MiniView now groups tasks by list with collapsible sections and has an
    "Open Tempo" button in both collapsed and expanded modes.
    Toast notifications use a configurable sound (7 options) with preview
    and repositioning controls in Settings.
    Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com
  • Add project state documentation for v0.1.0-alpha.1
    docs/STATE.md: comprehensive snapshot of what's built, known issues
    needing in-game testing, distribution status, and next steps for
    the post-feedback review session.
    Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com
  • Achievement button is now a toggle — click to add or remove
    Clicking "+ Tempo" on an achievement adds it to Tempo. Clicking
    "In Tempo" on an already-tracked achievement removes the task.
    GetTrackedAchievementIDs now returns achID -> taskID mapping so
    the toggle can find and delete the correct task.
    Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com
  • Move Track button onto each achievement, rename to "+ Tempo"
    • Button now anchored to bottom-right of each achievement row instead
      of the frame header — appears directly on the achievement
    • Hooks AchievementTemplateMixin:Set/OnClick and scroll container
      updates to attach button to each visible achievement
    • Renamed from "Track in Tempo" to "+ Tempo" (avoids confusion with
      Blizzard's built-in Track button), shows "In Tempo" when already added
    • Smaller button (80x20) to fit cleanly on the achievement row
      Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com
  • Five feedback fixes: uninstall cleanup, miniview UX, completion log
    1. Template uninstall now deletes tasks and auto-created list
      (TemplateEngine: Uninstall + DeleteUserTemplate cascade)
    2. MiniView right-click context menu with Skip/Delete options
      on task rows
    3. MiniView collapsed state shows summary line instead of tasks:
      D:3/5 W:1/4 M:1/1 O:0/2 (period-colored)
    4. Completion Log page — tracks when tasks are completed, by whom,
      and what triggered it (player/detector/addon). ScrollTable with
      Task/Character/Completed/Period/Source columns. Max 500 entries.
      Hooked into TaskManager:SetComplete and SetProgress auto-complete.
    5. Log page integrated: added to MainFrame PAGES, sidebar nav,
      tempo.toc, and DB.lua (completionLog table)
      Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com
  • Achievement search autocomplete + Blizzard UI integration
    UI/AchievementSearch.lua:
    • Background achievement cache built in 5K-ID chunks after login
    • Search by name (3+ chars, debounced 0.3s) or by numeric ID
    • Autocomplete dropdown: 8 results with icon, name, description
    • Blizzard AchievementFrame hook: "Track in Tempo" button on the
      achievement panel, creates one-time task with achievement rule
      AchievementRules.lua: paramDef changed from "number" to
      "achievementSearch" type for rich search UX
      TaskEditorPage.lua: handles "achievementSearch" param type,
      creates search widget with getValue/setValue
      Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com
  • Toast notification system — slide-in, stackable, moveable
    UI/Toast.lua: Slide-in notifications for task progress and completion.
    • 280x48 dark-themed toasts at TOOLTIP strata with Tempo icon
    • Slide-in from right edge (0.3s), stay 4s, fade out (0.5s)
    • Up to 4 stacked toasts, overflow queued, gap-fill animation
    • Triggers: TEMPO_TASK_COMPLETED (green), TEMPO_TASK_UPDATED (yellow
      progress), TEMPO_PERIOD_RESET (cyan reset notice)
    • Suppressed when main frame or mini view visible, or in combat
      (queued for PLAYER_REGEN_ENABLED)
    • Edit mode: /tempo toast edit — drag to reposition, saves to
      ns.db.settings.toastPos
    • Public API: UI:ShowToast(config) for custom notifications
      Also:
    • DB.lua: showToasts and toastPos defaults
    • SlashCommands: /tempo toast (toggle), toast edit, toast test
    • tempo.toc: Toast.lua in load order
      Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com
  • Extension-based automation rule system
    Architecture:
    • Tasks/Automation.lua: Tempo.Extensions global API + ns.Automation
      evaluation engine. Extensions (WoW addons) register rule types via
      Tempo.Extensions:Register(). Enable/disable per extension in
      SavedVariables. AND/OR compound rule evaluation.
      Built-in Rule Extensions (Data/Rules/):
    • QuestRules: quest completion, quest set (any-of)
    • AchievementRules: achievement earned + criteria progress tracking
    • CurrencyRules: currency threshold, gold threshold
    • VaultRules: Great Vault slot progress (M+/Raid/World/PvP)
    • AddonRules: external addon poll callbacks
    • DetectorRules: legacy detector backward compatibility
      Integration:
    • Tracker.lua: dual-path evaluation (automation first, detector fallback),
      dynamic WoW event registration from rule type declarations
    • TaskManager: accepts automation field on tasks
    • Field propagation: TaskList, TemplateExport, TemplateEngine
    • Migration v3: extensions table initialization
      UI:
    • TaskEditorPage: full rule builder replacing detector dropdown —
      auto-tracking toggle, rule rows with type dropdown + dynamic param
      fields, AND/OR mode selector, add/remove conditions
    • SettingsPage: Extensions section showing all registered extensions
      with enable/disable toggles and rule type listings
    • DashboardPage: auto-track indicator checks both automation and detector
      Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com
  • Rename icon files to match toc and minimap references
    Art/icon.tga → Art/tempo-icon.tga
    Art/icon.png → Art/tempo-icon.png
    Both tempo.toc (IconTexture) and MinimapButton.lua reference
    "Art\tempo-icon" — filenames now match.
    Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com
  • Player templates, detector visibility, custom recurrence, and fixes
    Phase A — Detector Visibility:
    • Detectors.lua: metadata registry with labels/descriptions on all 10
      built-in detectors; new GetMeta() and GetAllKeysWithMeta() APIs
    • TaskEditorPage: "Automation" dropdown to attach/detach detectors
    • DashboardPage: gear icon indicator on auto-tracked tasks with tooltip
      Phase B — Player-Created Templates:
    • Migration v2: stamps existing templates with source field
    • TemplateEngine: SaveAsTemplate(), GetUserTemplates(), DeleteUserTemplate()
    • TemplateBrowserPage: "My Templates" section, "Save List as Template"
      button with list dropdown, export/delete per user template
    • ListEditorPage: "Save as Template" button on list detail panel
      Phase C — Custom Recurrence:
    • PERIOD.CUSTOM with recurrence config (interval days or weekdays)
    • Time.lua: custom period key generation and reset calculation
    • TaskManager: passes task to Time calls for custom period support
    • Scheduler: per-task custom reset checking in 60s ticker
    • TaskEditorPage: interval/weekday UI fields when Custom period selected
    • Shared.lua/Sync.lua: custom period color and sort order
      Housekeeping:
    • Remove private GitHub link from SettingsPage
    • Fix page overlap on tab switch (hide all contentArea children)
    • Add Libs/ from flipqueue for local development
    • Add Art/icon.tga for minimap button
      Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com
  • Add CurseForge and Wago project IDs
    CurseForge: 1497068
    Wago: v633kn6b
    Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com
  • Phase 5+6: Public API, widget, categories, sync, and providers
    Public API (API/):
    • TempoAPI.lua: global Tempo.API table for other addons — register tasks,
      update progress, query status, subscribe to events. Validates inputs,
      pcall-protected, creates per-addon task lists automatically
    • Widget.lua: embeddable compact checklist widget via
      Tempo.API:CreateWidget() — auto-refreshes, filterable, compact mode,
      destroy cleanup
      Data Layer:
    • Categories.lua: 11 built-in task categories (dungeons, raids, pvp,
      professions, quests, reputation, world, events, collections,
      tradingpost, general) with icons and sort order
    • Providers.lua: declarative addon integration — register config with
      tasks/onLoad/onReset callbacks, auto-processes on DB init
      Task Engine:
    • Sync.lua: cross-character aggregation — GetCharacterGrid() for the
      all-characters view, GetOverallSummary() with account-scope dedup,
      GetCharacterComparison() for completion rankings
      33 Lua files, 10,941 total lines. All phases 1-6 complete.
      Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com
  • Phase 3+4: Auto-detection, template system, and template browser
    Auto-Detection (Phase 3):
    • Detectors.lua: registry with 10 built-in detectors (Great Vault M+/
      Raid/World/PvP, world boss, weekly quest, conquest cap, profession
      weeklies, trading post, delves) using C_WeeklyRewards, C_QuestLog,
      C_CurrencyInfo APIs with pcall safety
    • Tracker.lua: event-driven scan engine mapping WoW events to relevant
      detectors (QUEST_TURNED_IN, WEEKLY_REWARDS_UPDATE, CURRENCY_DISPLAY_UPDATE),
      300s periodic safety net, reset-triggered re-scan
      Template System (Phase 4):
    • TemplateEngine.lua: validate, install, uninstall templates with task
      creation via TaskManager
    • TemplateImport.lua: custom token serializer + base64 decoder for
      TEMPO:1: prefixed strings
    • TemplateExport.lua: inverse serializer, export from lists or task IDs
    • Templates.lua: 5 built-in templates (TWW Weekly/Daily, PvP Weekly,
      Trading Post, Collector's One-Time) with 20 total task definitions
    • TemplateBrowserPage.lua: browse/install built-ins, manage installed,
      import from clipboard
      Also fixes TaskManager.CreateTask to pass through source field from
      callers (was hardcoded to "user", now defaults to "user" if not provided).
      Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com
  • Phase 2: Task engine, UI shell, and all page modules (7,719 LOC)
    Task Engine:
    • TaskManager.lua: CRUD, completion tracking, progress, reset handling,
      per-character queries and summaries
    • TaskList.lua: list CRUD, reordering, duplication, default list management
    • Scheduler.lua: reset detection on login, periodic mid-session re-check
      (60s ticker), upcoming reset queries
      UI Foundation:
    • Shared.lua: theme constants, status/period colors, button/checkbox/
      progress bar factories, backdrop definitions
    • ScrollTable.lua: reusable sortable table with column resize, row pooling,
      hover effects (adapted from flipqueue)
    • MainFrame.lua: 800x600 resizable window, sidebar navigation with 7 pages,
      status bar with task summary and reset countdowns
      Page Modules:
    • DashboardPage: tasks grouped by period with checkboxes, progress bars,
      collapse toggles, and empty state
    • TaskListPage: filterable checklist with scroll table and context menus
    • AllCharactersPage: cross-character completion grid (up to 10 chars)
    • TaskEditorPage: full task create/edit form with dropdowns
    • ListEditorPage: list management with detail panel
    • SettingsPage: display/data/about sections with confirmation dialogs
    • MiniView: compact floating overlay with combat auto-hide
    • MinimapButton: LibDBIcon with task summary tooltip
    • SlashCommands: /tempo with 12 subcommands including debug tools
      Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com
  • Phase 1: Core foundation — namespace, events, time engine, DB, character info
    Establishes the six core systems that all other Tempo modules build on:
    • Core.lua: namespace, constants (PERIOD/STATUS/COLORS), print helpers,
      realm matching utilities, ID generation
    • Events.lua: central event bus (custom + WoW event bridge), ADDON_LOADED
      initialization chain
    • Time.lua: reset period calculations (daily/weekly/biweekly/monthly/
      halfyearly), period key generation, reset detection, countdown formatting
    • Migration.lua: schema versioning framework (v1 initial)
    • DB.lua: SavedVariables init (TempoDB + TempoCharDB), default settings,
      data cleanup, default "General" list creation
    • CharacterInfo.lua: character registry, class colors, login summary
      Also includes: tempo.toc, .pkgmeta, release workflow, LICENSE.
      Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com
  • Initial commit: project plan, CLAUDE.md, and icon
    Tempo: Master the rhythms of Azeroth's resets.
    Establishes repository structure with architecture plan (docs/PLAN.md),
    Claude Code configuration (CLAUDE.md, settings), and addon icon.
    Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com