promotional bannermobile promotional banner

Ka0s WhatGroup

Notifies you of group details after joining via Premade Group Finder

File Details

1.2.0-release

  • R
  • May 3, 2026
  • 1.92 MB
  • 32
  • 12.0.5+2
  • Retail

File Name

WhatGroup-1.2.0-release.zip

Supported Versions

  • 12.0.5
  • 12.0.1
  • 12.0.0

tag a29bb5e68175fa6f186cdc241386acad4332ac9a 1.2.0-release
Author:    Tushar Saxena <tushar.saxena@gmail.com>
Date:    Sun May 3 23:01:19 2026 +0530

commit 54c262847a8574b8de42ea03ffd9e271ff5d2dd3
Author: Tushar Saxena <tushar.saxena@gmail.com>
Date:   Sun May 3 17:30:29 2026 +0000

    Move teleport spells to data/, refresh table, sync docs and history

    Extract WhatGroup.TeleportSpells out of WhatGroup.lua into a dedicated
    data/TeleportSpells.lua loaded after the core file via the TOC. Refresh
    the table against current dungeon data: correct Siege of Boralus, promote
    The MOTHERLODE!! to a candidate list, reassign mapID 2526 to Algeth'ar
    Academy, move Pit of Saron under Wrath, add raid placeholders.

    Sync ARCHITECTURE, file-index, and common-tasks to the new file layout.
    Standardize the README Version History table with dates and tightened
    per-release notes.

commit a1164a1b31c12fc19956188d0ec846a008904df8
Author: Tushar Saxena <tushar.saxena@gmail.com>
Date:   Sun May 3 09:52:09 2026 +0000

    Bump version to 1.2.0

    Bumps TOC ## Version, WhatGroup.VERSION, the /wg help sample line in
    docs, and adds a Version History row covering the 27 commits since
    1.1.0-release: Ace3 + schema-driven Settings panel, /wg config family
    of slash commands, popup teleport button, atlas-chevron breadcrumb
    header, Logout-taint and stale-notify-timer fixes, and the WipeCapture
    consolidator.

commit 5bebb174f1a8841a6b1c0f9840cc5fdd41d02ed9
Author: Tushar Saxena <tushar.saxena@gmail.com>
Date:   Sun May 3 09:45:48 2026 +0000

    Docs: sync settings-system breadcrumb description to atlas chevron

    Code switched to |A:common-icon-forwardarrow:16:16|a in 0671680, but
    the settings-system doc still cited the old "Ka0s WhatGroup  |  Page"
    pipe form. Update the two breadcrumb mentions and note the separator
    is a real inline-atlas texture (font/locale-agnostic), not a glyph.

commit 06716803b1611b73596805fbb359202a94e5d770
Author: Tushar Saxena <tushar.saxena@gmail.com>
Date:   Sun May 3 09:38:54 2026 +0000

    Settings: replace pipe breadcrumb separator with atlas chevron

    The "Ka0s WhatGroup | <Page>" header used a literal pipe glyph, which
    looks harsh and depends on whatever font the FontString resolves to.
    Swap to an inline atlas (|A:common-icon-forwardarrow:16:16|a) so the
    separator is a real texture — font-agnostic, locale-safe, and a nicer
    visual breadcrumb cue.

commit f77fbc2b9b0931987c69a1cdea150f8a687d7c76
Author: Tushar Saxena <tushar.saxena@gmail.com>
Date:   Sun May 3 07:29:51 2026 +0000

    Sync docs to landed M-series changes; renumber review artifacts

    Doc-sync: ARCHITECTURE/CLAUDE/docs now reflect WipeCapture as the
    consolidated reset (group-leave + master-switch off-flip), notifyGen
    generation-counter cancellation, combat-defer for the secure popup
    (ConfigureTeleportButton stash, ShowFrame first-build queue,
    Settings.Register self-guard), Helpers.Set as the orchestrated single
    write-path with RawSet/onChange/RefreshAll plus _refresherOrder for
    deterministic iteration, and the label-anchored teleport-button
    offsets replacing the previous magic numbers.

    Reviews: rename REVIEW_*.md to NN_*.md (01_FINDINGS, 02_PROPOSED_CHANGES,
    03_SMOKE_TESTS, 04_EXECUTION_PLAN, 05_FINAL_SUMMARY) so the file order
    matches the read order; internal cross-references rewritten to match.

commit d539c0bc062dffe82783f1e059d10a09b00a1876
Author: Tushar Saxena <tushar.saxena@gmail.com>
Date:   Sun May 3 06:37:50 2026 +0000

    Add 2026-05-02 review smoke-test and final-summary artifacts

    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

commit a019b1453906b40784c4e8f5bca56188ffc57f32
Author: Tushar Saxena <tushar.saxena@gmail.com>
Date:   Sun May 3 05:47:05 2026 +0000

    Anchor teleport button from label geometry, drop magic offsets

    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

commit e03d7fbd2c2825c202c42f7508a830b1430c27ba
Author: Tushar Saxena <tushar.saxena@gmail.com>
Date:   Sun May 3 05:40:28 2026 +0000

    Consolidate playstyle and group-type labels under WhatGroup.Labels

    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

commit 46fecf78fd75bd50cf5b1447cfe1ba88ccf58809
Author: Tushar Saxena <tushar.saxena@gmail.com>
Date:   Sun May 3 05:34:11 2026 +0000

    Cancel stale notify timers and wipe capture on master-switch off

    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

commit 335a5318695f4e28b985d814f146277a1fc30a60
Author: Tushar Saxena <tushar.saxena@gmail.com>
Date:   Sun May 3 05:29:43 2026 +0000

    Defer secure-button config, frame build, settings register past combat

    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

commit 6e5d52d328b95b90c038fd211b9506040fc1a6f3
Author: Tushar Saxena <tushar.saxena@gmail.com>
Date:   Sun May 3 05:26:25 2026 +0000

    Orchestrate Helpers.Set, split low-level write into RawSet

    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

commit b503562edcca823892d3f829acc91bfacc7e83e9
Author: Tushar Saxena <tushar.saxena@gmail.com>
Date:   Sun May 3 05:01:36 2026 +0000

    Drop dead fallbacks, unify accessors, deterministic refresh order

    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

commit c954ebf42efea774f7f2ca201a6cdbef2283367d
Author: Tushar Saxena <tushar.saxena@gmail.com>
Date:   Sun May 3 04:46:57 2026 +0000

    Fix stale comments on Settings.Register caller and SecureHook references

    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

commit 4297ffeb6a7e1cbd8a895e5efbd5977979fc8274
Author: Tushar Saxena <tushar.saxena@gmail.com>
Date:   Sat May 2 21:47:05 2026 +0000

    Add 2026-05-02 principal-engineer review artifacts

commit dbad05875a481acb761c7758e50215d20741a4df
Author: Tushar Saxena <tushar.saxena@gmail.com>
Date:   Sat May 2 21:36:19 2026 +0000

    Add smoke-test checklist and sync docs to current code state

    Two related doc-only changes.

    A new docs/smoke-tests.md captures the manual in-game test suite the
    addon has always relied on instead of automated tests. Nine sections —
    boot health (with the GameMenu Logout regression test as §1.3), slash
    commands, settings panel, /wg test, real LFG flow with debug-trace
    expectations, persistence, patch-day, lib-refresh, plus a Quick
    reference checklist for the 80% pass. Cross-references added from
    CLAUDE.md, ARCHITECTURE.md, README.md (new "For contributors"
    section), and wow-quirks.md (taint section points to §1.3); the
    inline test blurbs in common-tasks.md ("After refresh: 1. /reload
    2. open Settings 3. /wg test" and the Interface-bump variant) are
    collapsed into pointers to the new doc.

    The rest of the doc sync catches up to commit be41816's behaviour
    changes that previous docs hadn't yet absorbed: hooks now install at
    file-load top-level (not OnEnable), Settings.Register is lazy from
    runConfig, StaticPopupDialogs is lazy via Settings.EnsureResetPopup,
    WhatGroupFrame is created lazily inside buildFrame, and the join
    trigger is now WhatGroup:_TryFireJoinNotify(reason) called from both
    the GROUP_ROSTER_UPDATE transition AND the inviteaccepted handler
    (retail can deliver those in either order), gated by a notifiedFor
    identity flag against double-firing. Updates land in
    ARCHITECTURE.md (data-flow diagram + invariants + lifecycle),
    CLAUDE.md (session-state list), file-index.md (per-file rows +
    docs index), capture-pipeline.md (state table + diagram + "Why the
    dual-path trigger" section + teleport-button parenting), and
    frame.md (two stale "at file-load" references → "inside
    buildFrame()").

    No code changes; behaviour is unchanged.

commit be418166b62979d30a95e6d95ac2272fb02a0ebd
Author: Tushar Saxena <tushar.saxena@gmail.com>
Date:   Sat May 2 21:22:59 2026 +0000

    Fix Logout taint and reliably fire notify on real LFG joins

    Two unrelated bugs converged on the same set of changes.

    GameMenu Logout was firing ADDON_ACTION_FORBIDDEN ... 'callback()' and
    the action wouldn't proceed. Every addon-author write to a
    Blizzard-protected surface during the boot window leaks taint into the
    closures GameMenu builds for its buttons. Fixed by deferring or
    relocating each one: hooksecurefunc calls moved from OnEnable to
    file-load top-level; Settings.Register (RegisterCanvasLayoutCategory /
    RegisterAddOnCategory) deferred to first /wg config;
    StaticPopupDialogs["WHATGROUP_RESET_ALL"] deferred to first Defaults
    click or /wg reset; WhatGroupFrame, the secure teleport button, and
    UISpecialFrames entry deferred to first ShowFrame via buildFrame.
    AceHook-3.0 removed from libs/ and the NewAddon mixin list — its
    SecureHook/RawHook wrappers add a per-invocation closure that itself
    taints the secure-execute chain.

    Real LFG joins were silently producing no chat or popup. In retail,
    GROUP_ROSTER_UPDATE fires before LFG_LIST_APPLICATION_STATUS_UPDATED
    with inviteaccepted, so the old "fire only on the inGroup transition
    when pendingInfo is non-nil" gate missed because pendingInfo wasn't
    set yet at the moment of transition. Replaced with
    _TryFireJoinNotify(reason), called from both event paths and gated by
    a notifiedFor identity flag so the same join can't fire twice.

    Debug logging trimmed from ~20+ lines per apply to ~7-9 lines per real
    join. The per-key info-table dump and no-op ROSTER_UPDATE ticks are
    gone; the remaining lines are one-per-event and tagged with the event
    name.

    Docs (ARCHITECTURE, CLAUDE, docs/*) synced to reflect the new boot
    path, lazy registration, and AceHook removal.

commit 2ed6e53ce776e2417cc852c037210f0461a2b12d
Author: Tushar Saxena <tushar.saxena@gmail.com>
Date:   Sat May 2 18:20:27 2026 +0000

    Fix popup teleport and playstyle for real-world LFG joins

    CaptureGroupInfo now captures mapID from actInfo and the playstyle
    in three forms (generalPlaystyle enum + playstyleString localized
    text + playstyle legacy alias). Without mapID the teleport lookup
    always missed; without the right playstyle field/enum the popup row
    always rendered empty.

    The activity-info table can be partial at apply time for keystone
    groups, so the inviteaccepted branch re-captures fresh and picks the
    more-complete capture (preferring whichever has mapID). TeleportSpells
    rebuilt keyed by mapID with verified TWW S3 + Midnight S1 entries; the
    old activityID-keyed table had duplicate keys that silently shadowed
    each other and spell IDs that didn't match their comments.

    The popup teleport button is now SecureActionButtonTemplate parented to
    UIParent — CastSpellByID from a non-secure click fires
    ADDON_ACTION_FORBIDDEN in retail, and protected frames can't anchor to
    non-secure regions. Position mirrors a non-secure proxy via
    syncTeleportButton, called on Show, drag-stop, and combat exit.

    Chat-link clicks on a stale link (pendingInfo cleared by group-leave or
    /reload) now print a hint instead of opening an empty "No data" popup.

    /wg debug now traces the full pipeline: CaptureGroupInfo result,
    GetTeleportSpell HIT/MISS, inviteaccepted fresh-vs-queued resolve,
    schedule + timer-fire pendingInfo identity, ShowNotification, ShowFrame,
    ConfigureTeleportButton, chat-link click, and group-leave clearing — so
    the next intermittent failure can be pinpointed end-to-end.

commit c530430bff84af1b6f502dd387c70de547da21fc
Author: Tushar Saxena <tushar.saxena@gmail.com>
Date:   Sat May 2 16:20:11 2026 +0000

    Make /wg config land on parent and unfold the subcategory tree

    The parent canvas already shows real landing content (logo + TOC notes
    + slash command list) since the panel rebuild, so /wg config now opens
    there instead of skipping straight to General. After the open, it
    reaches into SettingsPanel:GetCategoryList():GetCategoryEntry(parent)
    :SetExpanded(true) — the same path the expand-arrow click handler
    takes — so the General subcategory shows unfolded in the sidebar
    tree rather than collapsed. The whole expansion call is wrapped in
    pcall because that traversal is private Blizzard API: if a future
    patch refactors the tree internals, the panel still opens; we just
    lose the auto-unfold instead of throwing. The slash command also
    refuses to open during InCombatLockdown — the Settings UI uses secure
    templates and opening it mid-combat can taint other addons' secure
    handlers. Pattern lifted from Ka0s Absorb Tracker, where it's been
    proven across patches. Docs (README, ARCHITECTURE, scope, slash-
    dispatch, wow-quirks, settings-system) updated to describe the new
    behavior.

commit 745a37bcab39a1c9d09cda7e8383685c814b8f64
Author: Tushar Saxena <tushar.saxena@gmail.com>
Date:   Sat May 2 15:26:45 2026 +0000

    Drop four dead public exports and sync stale doc references

    Removes the WhatGroup:HideFrame method, the WhatGroup._dbg alias, and
    the Helpers.Resolve / Helpers.AttachTooltip aliases — all four had zero
    callers anywhere in the addon's own .lua files and weren't documented
    as deliberate external API. The corresponding local functions stay; the
    frame's Close button and ESC key remain the only hide paths. The doc
    sweep that surfaced these also fixed leftover drift from the panel
    rebuild: the README's General/Notify breakdown now reflects that
    notify.delay moved to Notify and that the page header carries a
    Defaults button; ARCHITECTURE.md's lazy-build and parent-page
    invariants describe both panels and the actual landing-page contents;
    scope.md drops the "go to General hint" wording for the real layout;
    wow-quirks.md's KickCD-pattern diff acknowledges WhatGroup now uses
    afterGroup and panelKey.

commit 864f1fce35a4e65c9264187eb7b8768cbeb875ed
Author: Tushar Saxena <tushar.saxena@gmail.com>
Date:   Sat May 2 15:07:02 2026 +0000

    Rebuild settings panel with KickCD-style header and scrollable body

    Both the parent landing page and the General sub-page now share a
    unified header (breadcrumb-prefixed gold title + tinted divider) and an
    always-visible AceGUI scrollbar so margins stay symmetric and content
    never clips at low UI scale. The General sub-page gains a "Defaults"
    button at top-right that routes through a new WHATGROUP_RESET_ALL
    StaticPopup confirm, shared with /wg reset so both code paths fire the
    same OnAccept body. Test moves out of the schema into an afterGroup
    InlineButton callback, leaving the schema settings-only; notify.delay
    moves into the Notify group. Adds Helpers.ValidateSchema for typo
    diagnostics, makes attachTooltip tolerant of raw Blizzard frames, and
    routes panel chat-error paths through WhatGroup._print.

commit d44a388c89e7dd004f0a044d5a7f40c271b76ab0
Author: Tushar Saxena <tushar.saxena@gmail.com>
Date:   Sat May 2 14:05:35 2026 +0000

    Replace parent settings subtitle with a scrollable logo + commands page

    The parent category page was a one-line subtitle hint. It now stamps
    the addon logo (300x300 .tga, left-aligned), the TOC Notes one-liner,
    a separator, and the live /wg slash-commands list — all inside a
    UIPanelScrollFrameTemplate so the body scrolls if the panel is short.

commit 5697f52a31bbfcb55e97cddab9c05104e685692e
Author: Tushar Saxena <tushar.saxena@gmail.com>
Date:   Sat May 2 10:40:37 2026 +0000

    Drop README "Contributing" section

    The section was just an inline pointer to ARCHITECTURE.md, which is
    already discoverable via the doc tree and isn't a contribution
    process by itself. Cleaner to let Issues stand on its own.

commit 7224a3a99db95a4ab6faca5b32be47146ac3aad7
Author: Tushar Saxena <tushar.saxena@gmail.com>
Date:   Sat May 2 10:31:16 2026 +0000

    Split docs into docs/* topic chunks (ConsumableMaster shape)

    Move topic detail out of CLAUDE.md and ARCHITECTURE.md into a new
    docs/ tree of 8 read-on-demand chunks. Top-level files become
    navigators with index tables that point at the right chunk for the
    question being asked. Mirrors the structure already used in Ka0s
    ConsumableMaster.

    Top-level slim-down:
    * ARCHITECTURE.md: 232 -> 84 lines. What-it-does, subsystem
      diagram, subsystems table, invariants, deps, load order.
    * CLAUDE.md: 183 -> 55 lines. Rules + working env + style + doc
      index. Keeps the /wow-addon:commit carve-out and the no-version-
      bump rule verbatim.

    New docs/:
    * file-index.md       per-file responsibility map
    * scope.md            in / out of scope + resolved decisions
    * capture-pipeline.md LFG state machine, FIFO queue, RawHook
    * settings-system.md  schema, panel renderer, db.profile
    * slash-dispatch.md   COMMANDS table + /wg UX
    * frame.md            popup dialog
    * wow-quirks.md       Blizzard-API gotchas
    * common-tasks.md     recipes (add setting / command / teleport)

    No code touched.

commit 7d28f1eb6078b79a8e50fd122cbcd47ac8fb797e
Author: Tushar Saxena <tushar.saxena@gmail.com>
Date:   Sat May 2 09:41:38 2026 +0000

    Add /wow-addon:commit carve-out to no-auto-staging rule

    The slash invocation + y confirmation is itself the explicit
    per-turn instruction the rule requires. Without this carve-out,
    /wow-addon:commit deadlocks against the rule even when the user
    has explicitly asked.

    Carve-out is narrow: only applies when /wow-addon:commit (or plain
    "commit this") is in the current turn. The no-auto-commit rule
    otherwise stays in full force.

commit fdb2845882dec591343486f6fb37b89f4c9320a2
Author: Tushar Saxena <tushar.saxena@gmail.com>
Date:   Sat May 2 09:37:34 2026 +0000

    Add ARCHITECTURE.md and normalize docs to KickCD shape

    ARCHITECTURE.md: new single-file architecture reference covering
    module map, boot, capture pipeline, settings system, slash dispatch,
    saved variables, and conventions.

    README.md: rewrite to mirror KickCD — Usage / Slash commands /
    Settings panel / FAQ / Troubleshooting / Version History as tables;
    trimmed technical depth in favor of pointers to ARCHITECTURE.md;
    added Contributing section.

    CLAUDE.md: drift fixes against current code — corrected library load
    order to match WhatGroup.toc, documented wasInGroup module-local,
    replaced stale buildBody() reference with renderSchema() + makeField
    dispatch.

commit 6c1f812c51b44a760b0d71fa315f52bbbcf35e86
Author: Tushar Saxena <tushar.saxena@gmail.com>
Date:   Sat May 2 07:26:43 2026 +0000

    Add .gitattributes (CRLF on disk) and forbid auto-staging in CLAUDE.md

    Pin every text file to CRLF on disk (`* text=auto eol=crlf` plus
    explicit per-extension rules) and normalize the index to LF, so every
    contributor gets the same CRLF working tree regardless of their
    core.autocrlf setting. The 39 library files committed previously as
    CRLF, plus LICENSE and README, are renormalized to LF in the index.

    Augment the existing "do not auto-commit/push" guidance in CLAUDE.md
    to also forbid `git add` / `git stage` without explicit user
    instruction.

    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

commit aab4b27cfe6399508a805b7b3158a4339e2d37b8
Author: Tushar Saxena <tushar.saxena@gmail.com>
Date:   Sat May 2 07:12:41 2026 +0000

    Adopt Ace3 + schema-driven settings panel and slash dispatch

    Promote WhatGroup to an AceAddon (AceConsole/AceEvent/AceHook/AceDB/AceGUI)
    and add a `WhatGroup.Settings.Schema` table where each row drives both a
    panel widget and the new `/wg list|get|set|reset` commands — adding an
    option becomes a one-row change. Mirrors the Ka0s KickCD pattern at a
    smaller scale.

    The General page renders Enable / Auto Show / Print to Chat / Notification
    Delay / Test / Debug in a two-column flow layout; the Notify subsection
    exposes per-line gates for the chat notification including a new Show
    Teleport toggle (prints C_Spell.GetSpellLink with a "(not learned)" tag
    when the player lacks the spell). `enabled` acts as a master gate that
    short-circuits OnApplyToGroup. Settings are persisted via WhatGroupDB
    (AceDB default profile); capture/pending state stays session-only.

    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

commit 475c6ea9a5d4e5595889360a9bcd7ae2ed8d3418
Author: Tushar Saxena <tushar.saxena@gmail.com>
Date:   Fri May 1 21:21:36 2026 +0000

    Document /wg config, [WG] chat prefix, and Settings API trap

    CLAUDE.md: add WhatGroup._settingsCategory and CHAT_PREFIX to the
    architecture list, a new Slash Commands section covering the full
    /wg subcommand surface, and a Settings-API note warning that
    category.ID must remain the framework-assigned integer.

    README.md: split /wg (help) from /wg show, add /wg config, and
    note that every line of chat output is prefixed with a cyan [WG]
    tag.

    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

commit eb40807b6acb9a9ff77dde211faef5549ad204bb
Author: Tushar Saxena <tushar.saxena@gmail.com>
Date:   Fri May 1 21:11:37 2026 +0000

    Rework slash commands and unify chat output prefix

    - Bare /wg now prints help; /wg show explicitly opens the dialog
    - New /wg config opens the Ka0s WhatGroup Settings panel via
      Settings.OpenToCategory(category:GetID()); drop the manual
      category.ID = displayName overwrite that broke the integer-ID
      validator
    - Route every chat print through a single cyan CHAT_PREFIX = [WG],
      including the dbg() logger ([WG] [DBG] ...) and the join
      notification body
    - Color-code help output: yellow for slash commands, white for the
      surrounding explanatory text
    - Mirror the new slash list in the Settings panel body

    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

commit 2b06b705ea776b26addd96e2087923637b288cd7
Author: Tushar Saxena <tushar.saxena@gmail.com>
Date:   Fri May 1 20:40:31 2026 +0000

    Register Settings panel as "Ka0s WhatGroup"

    Add a canvas-layout category via Settings.RegisterAddOnCategory so the
    addon appears under ESC > Options > AddOns with the Ka0s prefix and a
    small help blurb listing slash commands. Guarded against missing API
    and re-registration.

    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

commit 9454d8574ab1b699e881ba306129851ea3360418
Author: Tushar Saxena <tushar.saxena@gmail.com>
Date:   Fri May 1 20:26:39 2026 +0000

    Add MIT license, screenshots, and README polish

    Add LICENSE file and bundle screenshot assets locally under media/.
    Update README with version/WoW/license badges and refreshed formatting,
    and bump TOC metadata (version 1.1.0, DefaultState, Category, X-License).

    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>