v1.0.22-Release
What's new
# Changelog
## 2026-08-14 - v1.0.22-Release
### Changes
- **Recruitment invite-outcome detection now catches messages Blizzard wraps in link/color markup**, and pre-filters the busy system-message channel with a cheap substring check before running the real pattern match, instead of testing every pattern against every message unconditionally. Behavior for the common case (unwrapped text) is unchanged.
- **Guild Paragon now marks a guildmate online the instant they speak in guild or officer chat**, instead of waiting for the next roster scan. This specifically helps during combat/Mythic+/rated PvP, where roster scans are deliberately paused but chat isn't — a guildmate already online and chatting mid-pull will now show as online right away instead of only after the pull ends. Inactive-return Event Log entries and the roster's "online since" tracking behave identically whether a scan or a chat message caught the transition first.
### Fixes
- **Roster scans now protect against the guild panel's "Show Offline Members" checkbox being off.** `GetNumGuildMembers()`/`GetGuildRosterInfo()` are filtered by that setting — with it off, a scan would only see online members. Roster scans now force it on for the duration of the scan and restore the user's own setting immediately afterward, exactly once, regardless of whether the scan completes normally, is skipped for missing data, or is aborted mid-scan by combat/protected content.
- **Fixed several places that could throw a Lua error concatenating a nil realm name.** `GetNormalizedRealmName()` can briefly return nil for a moment after login before the realm resolves; a few call sites building a "Name-Realm" key didn't guard against that. Affected: Event Log entry IDs, two Guild Sync full-log-replacement request paths, Guild Sync's own-message detection, legacy guild-key migration, and the Macro Tool and post-kick modules' "who am I" lookups. Player-name call sites now go through one shared, nil-safe helper; the legacy guild-key migration uses its own nil-safe realm guard because it builds a `GuildName-Realm` key instead.
### Known issues
- None.
This mod has no additional files

