promotional bannermobile promotional banner

NosyKeys

A lean Mythic+ keystone broker

File Details

v1.0.0

  • R
  • May 14, 2026
  • 40.32 KB
  • 5
  • 12.0.5
  • Retail

File Name

Broker_NosyKeys-v1.0.0.zip

Supported Versions

  • 12.0.5

NosyKeys

v1.0.0 (2026-05-14)

Full Changelog Previous Releases

  • v1.0.0: first stable release
    Bundle of the unreleased v0.9.3-beta → v1.0.0 work:
    • Alt-hold reveal: hold Alt while hovering to temporarily show all
      stored guild keys, bypassing both the online-only filter and the
      Show guild keys toggle. Tooltip header annotates with (online only)
      while the filter is active, and a hint line surfaces the feature.
    • Settings: one-click Wipe button for stored guild data.
    • Guild broadcasts are now stored on receipt regardless of toggle, so
      Alt-hold reveal has data available even when display is gated off.
      Weekly-reset wipe still runs.
    • Fix: outer enableGuild gate suppressed Alt-hold reveal; consolidated
      visibility decision into GetGuildEntries.
    • Fix: CreateSettingsButtonInitializer requires non-nil addSearchTags
      in Midnight 12.x; passing true.
    • README/CHANGELOG polished to match Broker_PlayerCoords quality bar:
      Alt-hold feature and Wipe button documented in Features / Config,
      click-interactions preamble added, v1.0.0 changelog entry written.
  • v0.9.3-beta: end-to-end publishing pipeline verification
    No source changes from v0.9.2-beta. First tag with CurseForge and Wago.io
    API tokens wired into repo secrets, so the BigWigs packager uploads to all
    three platforms (GitHub Releases + CurseForge + Wago.io) in a single run.
  • v0.9.2-beta: realm-race fix, taint isolation, publishing IDs
    • CharLabel() returns nil when GetNormalizedRealmName is briefly empty
      during early addon-load. RecordSelf refuses to write a bare-name key;
      read-side callers tolerate the nil. Cleans up the root cause of the
      duplicate Artherio / Artherio-Elune row.
    • One-time SavedVariables migration drops pre-existing bare-name entries
      from db.alts and db.guildKeys on next load.
    • Contain WoW 12.x keystone-API taint into a private GameTooltipTemplate
      frame instead of the shared GameTooltip, so C_MythicPlus reads don't
      leak taint into Blizzard's tooltip handling.
    • Wire X-Curse-Project-ID (1542362) and X-Wago-ID (XKqAbwKy) into TOC
      so the packager publishes to both platforms on tag push.
  • fix: private tooltip + alts-key migration
    Two unrelated fixes bundled — both surfaced after the Broker_MidnightEvents
    investigation that traced the 12.x "addon apocalypse" taint pattern.
    1. Private tooltip frame for taint containment
      Reading C_MythicPlus.GetOwnedKeystoneLevel and C_ChallengeMode.GetMapUIInfo
      returns values that, in 12.x's protected-data model, taint our Lua control
      flow when compared or formatted. Writing the resulting strings to the
      SHARED GameTooltip propagates that taint globally — Blizzard's own
      tooltips, our Hide, widget cleanup, all start erroring with "attempt to
      compare a secret number value".
      Containment: render to a dedicated GameTooltipTemplate frame
      ("BrokerNosyKeysTooltip") instead. Identical look + AddLine/AddDoubleLine
      behaviour, but Blizzard never touches it, so our taint stays scoped to
      our own UI. Mechanical change — every GameTooltip:METHOD() in OnEnter /
      OnLeave swaps to Tooltip:METHOD() against the new local.
    2. Alts list current-char filter
      The current character was sometimes appearing in the Alts section
      alongside its proper "You" entry — observed on Artherio-Elune with a
      legacy "Artherio" (no realm) key in db.alts.
      CharLabel() returns "Name-Realm" once GetNormalizedRealmName() is
      populated. Older addon-load timings let CharLabel() return just "Name"
      (realm function returned ""), and that key landed in db.alts. The
      GetAltEntries filter if charKey ~= me is exact-match — "Artherio"
      doesn't equal "Artherio-Elune", so the legacy key stays in the list.
      One-shot migration in RecordSelf: after writing the proper "Name-Realm"
      entry, look up the same player's bare-name key and nil it out if present.
      Cleans the SV on the next login for any affected char.
  • v0.9.1-beta: polish from first in-game test
    • Footer: show "dev" instead of literal "@project-version@" in raw
      source checkouts (packager substitutes the real tag on build)
    • Guild section: deduplicate party members when Party is rendered, so a
      guildmate currently in your party doesn't appear in both lists
    • Smart sort: add rating as deterministic tiebreaker when two guildmates
      are equidistant from the reference level and share the same key level
    • Default "Show guild keys" flipped on; guild visibility is the whole
      point of the addon and opt-in was over-cautious. "Hide my key from
      guild" remains the actual privacy lever.
  • Initial public beta: v0.9.0-beta
    Lean LibDataBroker plugin showing mythic+ keystones for you, your party,
    your alts, and (opt-in) your guild — in a single broker tooltip. Speaks
    LibKeystone for party/guild interop with BigWigs and other LibKeystone-
    aware addons. No custom comm protocol, no separate window UI.