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
- Button now anchored to bottom-right of each achievement row instead
- Five feedback fixes: uninstall cleanup, miniview UX, completion log
- Template uninstall now deletes tasks and auto-created list
(TemplateEngine: Uninstall + DeleteUserTemplate cascade) - MiniView right-click context menu with Skip/Delete options
on task rows - MiniView collapsed state shows summary line instead of tasks:
D:3/5 W:1/4 M:1/1 O:0/2 (period-colored) - 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. - 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
- Template uninstall now deletes tasks and auto-created list
- 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
- Tasks/Automation.lua: Tempo.Extensions global API + ns.Automation
- 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
- Detectors.lua: metadata registry with labels/descriptions on all 10
- 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
- TempoAPI.lua: global Tempo.API table for other addons — register tasks,
- 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
- Detectors.lua: registry with 10 built-in detectors (Great Vault M+/
- 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
- TaskManager.lua: CRUD, completion tracking, progress, reset handling,
- 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
- Core.lua: namespace, constants (PERIOD/STATUS/COLORS), print helpers,
- 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

