# Murloc Minder Changelog

## 0.2.1 - 2026-03-14

### Fixes
- Fixed maintenance-release regressions in the achievement category navigation, egg progress display, and chat-event safety handling.
- Bumped addon metadata and visible UI versioning to `0.2.1`.
- Updated MM to the latest shared launcher/minimap integration.
- Added support for shared launcher override selection so MM can drive the shared icon, tooltip, and primary click action when chosen.
- Kept the launcher override behavior from reordering the shared addon list in settings.

## 0.2.0 - 2026-03-09

### Highlights
- Introduced a full in-addon `Achievements` experience as the core `0.2.0` feature set.
- Added unlockable murloc `Titles` tied to end-tier achievements and integrated title usage across the full addon UI/activity text.
- Refactored major UI initialization/layout paths to support the expanded achievements/title systems while keeping behavior stable.

### Achievements
- Added a complete Murloc Minder achievement catalog (imported from `Documentation/MurlocMinder_Achievement_Catalog_Feasible_v0.1.10_REFRESHD_20260309-133339.ods` feasible entries) with persistent per-achievement progress and unlock state.
- Added a Blizzard-style achievements tab using official kit assets (`Interface\\AchievementFrame\\...`) while remaining fully self-contained (no WoW achievement API integration).
- Added category and subcategory structure with collapsible/expandable navigation behavior aligned to the official achievements panel style.
- Added `Summary` behavior with:
  - newest-unlocked ordering
  - `Almost Completed` subsection sorted by nearest-to-complete achievements
- Added clamped progress rendering so completed achievements do not overrun visual targets (for example `33/25` now displays as complete state).
- Added per-tier achievement points and persistent total points.
- Added achievement unlock toasts with queue/stack behavior and improved readability/styling.
- Added toast interaction to open Murloc Minder and focus the related achievement entry.
- Added achievement-earned activity log entries using the achievement accent color for consistency.

### Titles
- Added 16 achievement reward titles (end-tier unlocks).
- Added title selection UI to `Customization`:
  - 4x4 title grid
  - locked/unlocked visual state
  - hover tooltip showing source achievement
- Added active-title formatting across addon surfaces:
  - main pet identity display
  - tracker name display
  - activity text name insertion paths
- Preserved no-title behavior (name only) when no title is active.

### UI / UX
- Reworked achievements panel layout/alignment to match Blizzard achievement readability conventions:
  - improved title/icon placement
  - left-nav styling/justification
  - updated scroll behavior/visuals
  - corrected background slicing/alignment issues
- Updated top-tab ordering and spacing to:
  - `Habitat | Store | Achievements | Customization | Information | Dev`
- Updated shell presentation to icon-first display with tooltip summary details and consolidated shell visibility behavior in panel header flows.
- Updated tracker header handling for long titled names:
  - whitespace-safe line wrap behavior
  - dynamic header spacing compensation
  - rarity-color name display parity with main panel
- Enforced new pet-name input cap at 20 characters (including spaces) across naming flows.

### Store / Trinkets
- Added `Abyssal Transmutation Orb` (trinket, `100000` shells):
  - consumes on use
  - rerolls murloc form from the model pool constrained to `Rare+` (`Rare`, `Epic`, `Legendary`, `Rarest`)
  - preserves murloc name and owned inventory/customization progress
- Updated reroll model refresh handling so transmutation applies the newly rolled display model immediately (not rarity text only).

### Audio / Sound Pass
- Added a broad UI sound pass to improve tactile feedback across primary interactions.
- Added distinct sound intents for UI interaction types (`tab`, `toggle`, `apply`, `thud`, `purchase`, `popup_open`, `popup_close`, `error`) and routed handlers accordingly.
- Changed customization background `Apply` to use a non-purchase apply cue (no coin sound), while keeping coin feedback for actual purchases.
- Added/standardized sound hooks for:
  - main frame close button
  - tracker collapse/expand/mode controls
  - top navigation tab changes
  - challenge reroll/reload actions (main panel and tracker)
  - scavenging send/recall action button
  - large Shop button
  - popup open/close/confirm flows

### Refactor / Stability
- Refactored `InitializeUI` and related UI wiring to reduce complexity/local-variable pressure and keep the expanded panel feature set maintainable under Lua 5.1 limits.
- Consolidated achievement rendering/evaluation paths and tied evaluation into tick/activity/economy/challenge/stat update flows.
- Hardened achievement and title persistence logic to survive resets/deletions where intended.

### Data Persistence / Reset Rules
- Updated murloc deletion behavior to:
  - keep shells
  - keep owned customizations/habitats/titles/achievement state
  - reset food/store progression as intended for a fresh pet lifecycle
- Ensured customization application paths continue to work during egg stage when ownership conditions are met.

### Versioning
- Updated addon version metadata/display/telemetry fallback to `0.2.0` (`v0.2.0` in the main panel title).

## 0.1.11 - 2026-03-09

### Fixes
- Fixed instance detection normalization so scenario/delve-style content is treated as instance mode for decay freeze and age-tick pause logic.

### Features
- Added fixed-point need tracking (`0-1000`) and surfaced point values on need bars alongside percent-based UI.

### Balance
- Reworked the need-drain model into a simpler flat-value pass around the fixed-point system, including updated per-trait drain deltas.
- Set scavenging drain pressure to a flat `+50%` multiplier across needs.
- Rebalanced core care-item values and penalties (including reduced negative penalties on play/rest tiers).
- Updated basic care actions so base buttons apply only positive effects to their own target need.
- Rebalanced reusable care-item power tiers to:
  - `T1: 80`
  - `T2: 120`
  - `T3: 180`
  - `T4: 240`
  - `T5: 300`
- Rebalanced reusable care-item pricing tiers to:
  - `T1: 50`
  - `T2: 240`
  - `T3: 400`
  - `T4: 750`
  - `T5: 1000`

### Changes
- Updated store/quick-buy effect formatting to show final applied value deltas in a unified four-need order (`Hunger`, `Joy`, `Energy`, `Cleanliness`) with need-color text.
- Updated tooltips/store descriptions to reflect trait-adjusted and value-system-adjusted results more consistently.
- Refined fully-collapsed tracker need cards with slightly desaturated need-color panels to reduce visual intensity.
- Added a thin outline pass to fully-collapsed tracker percent labels for readability.
- Updated addon version metadata/display/telemetry fallback to `0.1.11` (`v0.1.11` in the main panel title).

## 0.1.10 - 2026-03-06

### Changes
- Full release for coordinated shared-launcher/live testing updates.

## 0.1.9 - 2026-03-02

### Features
- Added shared settings registration scaffolding so Murloc Minder now participates in the `Kagrok's Addons` settings tree using the same template path as Cursor Ring and ACA.
- Added a shared launcher `Hide minimap button` action at the bottom of the `Shared` section so the entire shared minimap stack can be hidden or restored from one place.

### Changes
- Unified the per-addon settings label to `Show Minimap button` so Murloc Minder matches Cursor Ring and ACA.
- Updated addon version metadata/display to `0.1.9` (`v0.1.9` in the main panel title).

## 0.1.8 - 2026-03-02

### Fixes
- Fixed `Delete This Murloc` so unnamed pets can be deleted again by using fallback confirmation phrases instead of requiring a custom name first.
- Fixed delete confirmation matching to be more forgiving by normalizing casing and extra spaces before comparison.
- Fixed template-media path drift by moving Murloc Minder’s reusable module assets under `Templates/Media/` and wiring the addon to use those internal template-owned paths.
- Fixed shared launcher tooltip routing so the highest-priority registered addon now controls the minimap tooltip even when multiple Kagrok addons are installed.

### Features
- Added a reusable shared minimap launcher module with:
  - one global minimap button across participating Kagrok addons
  - priority-sorted addon sections in the right-click menu
  - shared menu-item deduplication into a single `Shared` section
  - shared icon behavior (`addon icon` for a single addon, `pfp` for multi-addon installs)
  - shared button position persistence via `KagrokLauncherDB`
- Added a full shared settings page for Murloc Minder that matches the ACA/Cursor Ring settings layout and moved these controls into it:
  - `Show Tracker`
  - `Show Minimap Button`
  - `UI Scale`
  - `Tracker Scale`
  - `Delete This Murloc`
- Added `X-KagrokLauncherPriority` TOC metadata support so each addon can declare launcher priority directly in its manifest.
- Extracted the custom `Developer Info` panel, button, and social-link copy popup into a reusable module and switched Murloc Minder to consume that module.
- Added self-contained template packages under `Resources/templates/` for:
  - `Developer Info Panel`
  - `Kagrok Shared Launcher`

### Changes
- Reorganized Murloc Minder’s internal reusable modules under `Templates/` for consistency:
  - `Templates/DevInfoModule.lua`
  - `Templates/KagrokLauncherModule.lua`
- Reorganized the reusable module assets to live beside their modules under:
  - `Templates/Media/Social`
  - `Templates/Media/Launcher`
- Updated the resource template examples and README files to document the intended `Templates/Media/...` workflow for future addon integrations.
- Updated the shared launcher settings hub to use structured section panels and addon cards with the same width language as the addon-specific settings pages.
- Consolidated minimap-launcher settings access into a single shared `Open settings` entry that opens `Kagrok's Addons` when multiple Kagrok addons are registered and opens the addon page directly when only one settings page exists.
- Updated addon version metadata/display to `0.1.8` (`v0.1.8` in the main panel title).

## 0.1.7 - 2026-02-28

### Fixes
- Fixed first-run onboarding flow so the main panel auto-opens and the tracker stays hidden until the tutorial is finished.
- Fixed the `Info` tab summary area by making the left-side details pane scrollable.
- Fixed panel scaling stability by reanchoring the main frame and forcing a full layout refresh after UI scale changes.
- Reduced unnecessary UI refresh work by gating/caching heavy Dev, Store, and Info-tab rebuild paths.
- Fixed a heavy activity-log refresh path that could trigger `script ran too long`/FPS drops by caching activity-line color classification, limiting rendered history, and skipping hidden-tab rebuild work.
- Fixed the `Info` tab action-row layout and scroll-region bounds so summary text no longer overlaps buttons or neighboring panels.
- Fixed the minimap right-click menu open path so the first right click opens reliably instead of being swallowed by initial frame visibility state.
- Fixed telemetry version reporting by resolving addon version text through shared metadata/title fallbacks instead of a single raw metadata call.
- Fixed hatch-state initialization so newly hatched adolescent murlocs now begin at `100%` `Hunger`, `Joy`, `Energy`, and `Cleanliness`.
- Fixed egg-stage tooltip leakage by hiding pre-hatch trait/personality and scavenging details until hatch time.

### Features
- Added a native minimap button:
  - anchored to the minimap edge
  - drag-to-move along the minimap ring
  - colored need-value tooltip (`Hunger`, `Joy`, `Energy`, `Cleanliness`)
  - left-click panel toggle
  - right-click options menu (`Toggle tracker`, `Telemetry`, `Developer Info`)
- Added a `Show Minimap Button` toggle beside `Show Tracker` on the main panel footer.
- Added a custom `Developer Info` panel with social links, profile image, slash access (`/mm devinfo`), and a matching `Dev Info` footer button on the main panel.
- Added a dedicated flat social-link copy popup with per-site title/icon treatment and one-line auto-select URL field.
- Added drain telemetry via `/mm telemetry` and `/mm telem`.
- Added a dedicated `Telemetry` button to the `Info` tab action row beside the delete/rename controls.
- Added dismiss-on-left-click behavior for the minimap right-click menu so it closes when clicking elsewhere.
- Added egg-stage tooltip variants:
  - egg/model identity tooltip now uses `I wonder what's inside?!`
  - minimap tooltip now shows pink `Hatch Progress` while in egg stage
- Expanded tooltip/debug visibility:
  - live zone-state line (`Overworld`, `Rested XP`, `Instance`)
  - live scavenging-state line
  - telemetry now includes addon version, zone/scavenge state, ownership summaries, challenge state, and effective decay totals

### Changes
- Instanced content (`dungeons`, `delves`, `raids`, and other instances) now freezes passive need decay and disallows scavenging while leaving challenge progression available.
- Updated shared pet tooltips to show the current zone and scavenging state dynamically instead of static explanatory text.
- Added helper text to the fully expanded tracker footer: `Type /mm, or click to open main panel`.
- Refined the developer-facing panels/popups to use a custom flat dark shell with neutral borders and pink/blue accent styling derived from my pfp.
- Moved telemetry access from the main footer into the `Info` tab action row and added a separate custom-styled `Dev Info` footer button on the far left side of the main panel.
- Updated addon version metadata/display to `0.1.7` (`v0.1.7` in the main panel title).

## 0.1.6 - 2026-02-26

### Fixes
- Fixed addon-wide sound playback reliability by hardening fallback call paths across `PlaySound`, `PlaySoundKitID`, and `PlaySoundFile` variants.
- Fixed a Lua error in channel fallback generation (`table index is nil`) that could break dev sound playback.
- Fixed assignment index resolution instability by making the murloc sound list deterministic and file-backed for dev preview and runtime mapping.

### Features
- Added UI sound hooks for popup interactions:
  - Name, rename, and delete dialogs
  - Trait-reroll confirmation popup
  - Customization purchase confirmation popup
  - Welcome/tutorial overlay open/close and step-advance button
- Added UI sound hooks for store interactions:
  - Quick-Buy purchase button clicks and success/failure outcomes
  - Store-tab item purchase button clicks and success/failure outcomes
  - Customization habitat buy/apply button clicks and success/failure outcomes

### Changes
- Updated addon version metadata/display to `0.1.6` (`v0.1.6` in the main panel title).
- Kept gameplay and UI sound behavior aligned with SFX settings while retaining dev-preview audio routing through the dedicated preview path.

## 0.1.5 - 2026-02-26

### Fixes
- Fixed challenge card transition visuals so a border glow pulse appears on both the main board and tracker rows (instead of rapid text flashing).
- Fixed challenge pulse cadence to a slower, readable speed.
- Fixed challenge glow layering so the pulse renders above card content.
- Expanded challenge glow bounds by 2px on each side for clearer visibility.
- Fixed `Reset To First Use` so onboarding/tutorial flags are fully reset (welcome tutorial state and egg tutorial flags/cooldowns).
- Fixed shell-milestone trait bonuses not firing from some shell grant paths by standardizing shell additions through `AddShells`.
- Fixed Customization habitat preview tiles stretching vertically by forcing atlas previews to fit card bounds (no native atlas sizing) and clipping card children.
- Fixed runaway scavenging restart countdowns on the `Scavenge` button by normalizing stale/legacy `nextStartAllowedAt` timestamps at load and at runtime reads.

### Features
- Added a guided multi-step onboarding tutorial overlay with dark mask cutouts and contextual section highlighting.
- Added a dedicated final tutorial page covering adolescent gameplay expectations, trait behavior overview, shell economy/store guidance, free first nametag reminder, and rarity-tier hinting.
- Added trait-driven challenge emote variants, including mischievous-specific rude/rested emote behavior.
- Added a broader trait reaction matrix with per-action trait effects (`feed`/`play`/`rest`/`clean`) plus shell-milestone trait triggers.
- Added murloc identity hover tooltips on name/model surfaces across UI variants, showing name, hatch description, and trait effect summaries.
- Added a full `Customization` tab implementation with a `Habitats` page and a 3-column background selection grid.
- Added purchasable habitat backgrounds in Customization:
  - `Default Habitat` (FREE)
  - `Elwynn` (1000)
  - `Twin Peaks` (1500)
  - `Murloc Habitat` (2000)
  - `Exile's Reach` (2500)
  - `Plunderstorm Harbor` (5000)
- Added persistent habitat customization state (owned backgrounds, selected customization page, and active habitat background).
- Added purchase-confirm popups for customization background purchases (`Are you sure...`).
- Added instant background apply behavior from Customization when clicking owned backgrounds.

### Changes
- Moved the tutorial message panel to the habitat section so it no longer overlaps the side or bottom UI areas.
- Updated tutorial flow to keep `Next` through the challenge step and use `Finish` only on the new final page.
- Rebalanced passive need decay for a more AFK cadence (hunger baseline retained, joy/energy/cleanliness slowed).
- Updated egg care actions (`Soothe`/`Warm`/`Clean`) to use 30s per-action cooldowns while keeping hatch progress uncapped by the old egg care cap.
- Standardized care item ownership for `play`/`rest`/`clean` to single-item ownership behavior and removed their count display in care UI (food counts remain).
- Reworked find/reward weighting to favor tier 1-2 foods, make higher-tier foods rarer, make tier 1-2 care finds uncommon, and tier 3+ care finds very rare.
- Updated find rewards to skip granting care items already owned (matching loss/ownership guard behavior).
- Updated toy challenge behavior: `use_toy` now tracks Blizzard Collections Toy Box usage instead of addon play-item usage.
- Updated toy challenge wording and tooltip copy to reflect Toy Box usage.
- Updated egg random challenge generation to exclude food-based challenge types (`feed` and `eat_food`).
- Updated store/quick-buy/care action effect presentation so trait-adjusted deltas are reflected in tooltips and item effect text using colored compact need percentages.
- Updated addon versioning metadata/display to `0.1.5` (`v0.1.5` in the main panel title).
- Updated habitat background default mapping so `Default Habitat`/`auto` resolves to `Queen's Conservatory`.
- Adjusted Customization habitat tile placement upward by 10px for improved alignment.

## 0.1.4b - 2026-02-25

### Fixes
- Fixed oversized cooldown text (for example `90000`) on care actions by normalizing stale/invalid cooldown timestamps.
- Fixed egg challenge skip flow to use per-card reload buttons during egg stage.
- Fixed egg challenge cooldown lockouts caused by stale reroll timestamps.
- Fixed per-card challenge reload timers getting stuck and leaving reload buttons disabled.
- Fixed tracker egg-care cooldown behavior to mirror each matching main-panel care action independently.
- Fixed layering issues where model/chat/challenge elements could draw over Blizzard UI in unintended order.
- Fixed `TrimString` nil error during economy/pet initialization on load.

### Features
- Added tracker egg-care buttons (`Soothe Egg`, `Warm Egg`, `Clean Egg`) in the action-button area.
- Added egg tutorial starter board on new egg generation:
  - `Complete 3 care actions` (+6% hatch)
  - `Soothe the egg once` (+3% hatch)
  - `Warm the egg once` (+3% hatch)
  - `Clean the egg once` (+3% hatch)
- Added challenge card cooldown indicator text (`CD m:ss`) styled to match existing UI.
- Added first-purchase-free nametag flow in Store (first use free, then standard cost).
- Added free-nametag visibility improvements in Store (FREE label/highlight and free pricing in tooltip/confirm flow).

### Changes
- Removed floating hatch progress and hatch button from the habitat panel in egg stage.
- Kept hatch progress and hatch button only in the left-side panel.
- Resized and centered the tracker hatch progress bar within the top egg tracker section.
- Set tracker hatch progress bar height to 25% of the egg tracker top cell and centered it vertically.
- Updated tracker mini egg mode to use a single large hatch-progress value cell in place of the 2x2 need grid.
- Removed colored text treatment from egg-care tracker buttons for cleaner visual parity.
- Updated egg challenge rewards to display flat hatch bonus text (`+N%`) in hatch-pink styling.
- Expanded egg-stage random challenge generation to use adolescent challenge types while remapping care actions to egg actions (`soothe`/`warm`/`clean`), excluding non-egg-scoped `work_ticks`.
- Replaced redundant store header section text with a large persistent shell count.
- Removed the `Later` option from the post-hatch naming popup.
- Added welcome-panel callout for free first nametag use.
- Main panel now sits beneath overlapping Blizzard panels, while the pop-out tracker remains above Blizzard panels.
- Habitat model controls were returned to stable centered defaults after movement/scale experimentation.

## 0.1.3b - 2026-02-24

### Fixes
- Stopped tracking buffs during combat to avoid secret value taint.
- Resumed aura-based tracking safely after combat ends.
- Fixed gathering challenge progress hooks for fishing, skinning, herbalism, and mining.
- Fixed swim challenge responsiveness with real-time time-tracking updates.

### Features
- Added quick-use care buttons to the tracker (expanded view).
- Added tracker challenge state text updates (`Expand`/`Collapse`) for clarity.
- Added item tooltips across store rows, quick-buy cards, and care action entries.

### Changes
- Rebalanced item value changes.
- Main window now closes when pressing `ESC`.
- Converted swimming challenge goals to timed objectives (`short`/`long`) with live progress display.
- Updated food behavior:
  - Food now provides a flat joy bonus model.
  - Gluttonous trait increases food joy bonus and applies food cleanliness penalty.
  - Snack Tongs now adds a flat +2 joy to all food on top of other food bonuses.

## 0.1.2b - 2026-02-23

### Fixes
- Attempted fixes for secret-value taint issues.

### Features
- Added special trait and trait-pair weighting behavior.
- Updated tracker with a smaller percent-only stage.
- Updated tracker controls to follow expand/collapse/maximize logic.

### Changes
- Adjusted gameplay values.
- Updated the Care section to better reflect values gained from items.
- Made several small main-panel UI adjustments.
- Retained as the rollback baseline (`0.1.2b`) for live-env validation.

## 0.1.1b - 2026-02-23

### Fixes
- Removed character-level scaling from challenge requirements and challenge rewards.

### Features
- Added the pop-out tracker system.
- Added 3D model presentation support for egg and adolescent stages.

### Changes
- Refined the main addon UI layout and styling.

## 0.1.0b - 2026-02-22

### Fixes
- Initial release baseline.

### Features
- All basic core features were in place.

### Changes
- Used placeholder textures and baseline tuning values for early iteration.
