DigitalLarynxCompanionApp-v3.8.0.zip
What's new
# Changelog — Digital Larynx Miner (WoW Addon)
All notable changes to `DigitalLarynxMiner` from first creation through the
current release. Versions follow the `## Version:` field in
`DigitalLarynxMiner/DigitalLarynxMiner.toc`.
The format is based on [Keep a Changelog](https://keepachangelog.com/).
---
## [3.8.0] — 2026-10-16
### Added
- `npc_id` parsed from `UnitGUID` (`Creature-…` / `Vehicle-…`) on
`npc` / `questnpc` / `target` / `mouseover` / `focus`.
- `npc_id` stored on capture records and remembered in `DLMiner_NpcData`
for demographic / voice-trait pipelines.
---
## [3.7.0] — 2026-10
### Added
- `DLMiner_Meta` SavedVariables block: `tocversion`, client version/build,
addon version, and last-updated timestamp (via `GetBuildInfo()`).
- `DLMiner_NpcData` — persistent demographics keyed by NPC name.
- Per-capture fields: `sex` (`UnitSex`), `race` (`UnitRace`),
`creature_type` (`UnitCreatureType`), `toc`, and open-pane `quest_id`
(`GetQuestID()`), so Retail / Classic data can be partitioned and NPC
speech can feed casting / voice traits.
---
## [3.6.1] — 2026-10
### Changed
- Packaging / auto-sync bump for the Digital Larynx app’s bundled addon
copy (installer + launch-time version check). Feature set matches 3.6.0.
---
## [3.6.0] — 2026-10-14
### Added
- `QUEST_GREETING` capture via `GetGreetingText()`.
- Dedicated `DLMiner_GossipData` SavedVariables table keyed by NPC name
(`gossip` / `greeting` lines with region, location, time, lastSeen, count;
100 distinct texts per NPC; reopening bumps `count`).
- Gossip text from `C_GossipInfo.GetText` with `GetGossipText` fallback.
### Changed
- Gossip no longer appended to `DLMiner_AmbientLog` (legacy ambient gossip
rows remain readable by the Script Miner).
---
## [3.5.0] — 2026-10
### Added
- `DLMiner_ErrorLog` SavedVariables diagnostics (timestamp, event, message,
`debugstack()`, repeat `count`; newest 200 kept).
- Brief once-per-session chat notice:
`[DL_ERROR]: <event>: <message> (stack in DLMiner_ErrorLog)`.
- Dungeon / instance quest ID fallbacks: quest-log selection when titles
match, else title-derived surrogate keys (≥ 1e9, `surrogate = true`).
- Zone fallbacks: `GetZoneText` → `GetInstanceInfo` → `C_Map` map name,
all guarded.
### Changed
- Capture handlers, barcode draw, and hide timer run under `xpcall`
(no UI error popup; capture continues).
---
## [3.4.2] — 2026-10
### Changed
- `## Interface:` TOC bump for the current WoW Forever / classic beta
client so the addon no longer flags as out of date.
---
## [3.4.1] — 2026-10
### Fixed
- Null-safety for `CHAT_MSG_MONSTER_YELL` / related broadcasts in
instances: missing text skipped; missing sender → `Unknown Boss`.
- Secret / protected client values (`issecretvalue`) skipped safely with a
one-time `[DL]` notice.
---
## [3.4.0] — 2026-10
### Added
- Protected execution (`pcall` / chat `[DL_ERROR]`) around monster /
raid-boss capture and sanitization so a nil boss name or parse failure
cannot crash the addon mid-instance.
---
## [3.3.0] — 2026-10
### Changed
- **Y-split data routing:**
- Stream A (pixel barcode) — flattened raw text with the real player
name / class / race for live TTS.
- Stream B (SavedVariables) — same flatten plus `{Player}` / `{Class}` /
`{Race}` scrub (`{Player}` case-insensitive, whole-word).
---
## [3.2.0] — 2026-10
### Added
- Full quest-phase capture:
- `QUEST_DETAIL` → `text` / `speaker` (`GetQuestText`)
- `QUEST_PROGRESS` → `progress` / `progress_speaker` (`GetProgressText`)
- `QUEST_COMPLETE` → `completion` / `completion_speaker` (`GetRewardText`)
- Phases fill missing fields only; later windows never overwrite earlier
dialogue.
---
## [3.1.0] — 2026-09/10
### Fixed
- Restored dual-path capture after the barcode pivot had dropped mining:
- SavedVariables: `DLMiner_QuestData`, `DLMiner_AmbientLog`,
`DLMiner_ItemData` (init only in `ADDON_LOADED` via `or {}`).
- Persistence always runs first; barcode is `pcall(EmitBarcode, …)` so
draw failures cannot block DB writes.
- Hide/clear only toggles textures — never mutates stored strings.
---
## [3.0.0] — 2026-09/10
### Added
- Gamma-safe **pixel barcode** TTS bridge (replaces whisper routing):
- `TOOLTIP` frame at `UIParent` `BOTTOMRIGHT`, 5×5 cells, 48 columns.
- 3-bit pure R/G/B/C/M/Y/W/K palette.
- Stream: `SYNC(M C Y W ×2)` + packed `[len16][payload][xor]`.
- Payload: `[DL_TTS]::{Speaker}::{Text}`.
- Auto-hide after 5 seconds (timer resets on a new payload).
### Removed
- Whisper / `SendChatMessage` self-route and chat-frame TTS emission.
---
## [2.1.0] — 2026-09
### Added
- Server-routed TTS via whisper-to-self with 255-byte chunking and index
fractions for the external chat-log tailer.
---
## [2.0.0] — 2026-09
### Changed
- Pivot from passive SavedVariables-only mining toward a real-time TTS
trigger: serialize captures as `[DL_TTS]::{Speaker}::{…}::{Text}` and
emit to the default chat frame for external tailing.
---
## [1.2.0] — 2026-09
### Added
- `ITEM_TEXT_READY` capture → `DLMiner_ItemData` (title + body + place +
time) for books, letters, and plaques (voiced as Narrator downstream).
---
## [1.1.0] — 2026-09
### Added
- Ambient NPC speech: `CHAT_MSG_MONSTER_SAY` / `YELL` / `EMOTE` (and later
raid-boss emotes) → `DLMiner_AmbientLog`.
- Region / location context via `GetZoneText()` / `GetSubZoneText()`
(early builds also kept `DLMiner_ZoneMap`; place is now stored on each
capture row).
- Gossip window capture into the ambient log (later moved to
`DLMiner_GossipData` in 3.6.0).
---
## [1.0.0] — 2026-09
### Added
- Initial `DigitalLarynxMiner` addon (`.toc` + `.lua`).
- `DLMiner_QuestData` SavedVariables capture on `QUEST_DETAIL` /
`QUEST_PROGRESS`: quest id, title, body, NPC name, region / location.
- Export path:
`WTF/Account/<Account>/SavedVariables/DigitalLarynxMiner.lua`
for the Script Miner Lua ingester.
---
## SavedVariables at current release (3.8.0)
| Table | Role |
|-------|------|
| `DLMiner_QuestData` | Quest offer / progress / completion |
| `DLMiner_AmbientLog` | Monster say / yell / emote / raid-boss emote |
| `DLMiner_ItemData` | Books / letters / plaques |
| `DLMiner_GossipData` | Gossip + quest-greeting flavor (by NPC) |
| `DLMiner_ErrorLog` | Protected-call diagnostics |
| `DLMiner_NpcData` | Cached NPC demographics + `npc_id` |
| `DLMiner_Meta` | Client / addon version stamp |
## Interface support (current)
`## Interface: 16001, 120100, 120001, 40402, 11509` — multi-client TOC so
the same folder works across supported Retail / Classic / Forever builds.
This mod has no additional files