File Details
v0.24.1
- R
- Jun 24, 2026
- 242.12 KB
- 5
- 12.0.7
- Retail
File Name
MythicPlusPartyShuffle-v0.24.1.zip
Supported Versions
- 12.0.7
Darkmoon Party Shuffle
v0.24.1 (2026-06-24)
Full Changelog Previous Releases
- docs(openspec): archive community-reachability-fixes
Sync the spec deltas for the participant-side reachability fixes:- comm-protocol: lean codec carries the debug-only community sim
c; observed-over-
guild reachability requires sender authenticity. - dev-roster-fixture: the community sim is specified and rides the wire so participants
classify fakes correctly. - hand-popup: the popup re-renders reachability markers live on a membership change.
community-reachability-nudges is unchanged — the code was re-aligned to it.
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
- comm-protocol: lean codec carries the debug-only community sim
- fix(community): correct participant-side reachability marker + live popup refresh
Three defects surfaced once the in-hand reachability marker was tested from a
PARTICIPANT (not the organizer):- A member acting as inviter wrongly flagged every cross-faction/cross-realm peer.
On a participant the organizer-localfake/hasCommunityflags are stripped by
the SHUFFLE/GROUPMAP lean round-trip, so peerInCommunity fell back to scanning the
community directory for a fake that cannot resolve there -> guaranteed false warn.
Fix: SpecDetails:ToLean/ExpandLean carry the fixture's community sim as a debug-only
cfield (present ONLY on fakes; real entries never set it), and peerInCommunity
keys on the presence ofhasCommunityrather thane.fake, so organizer and
participant read the same membership truth. - Every fake collapsed to the GUILD tier on a participant. The fixture spoofs each
fake's JOIN from the organizer over the GUILD broadcast (sender=organizer, src=fake);
_guildSeen then marked every fake guild-reachable. Fix: _handle(env, dist, sender)
marks _guildSeen only when the chat sender authenticates src (new _senderIs helper);
a sender-less direct call (harness) trusts the distribution as before. - The standalone hand popup never refreshed its markers when membership flipped
(the CLUB_ADDED/CLUB_REMOVED event fires before GetSubscribedClubs settles). Fix:
while shown, the popup watches IsMember() on a 0.5s ticker and re-renders live on a
change; cancelled on hide.
Also restores the member-side info-only marker (DirectoryHas/EnsureDirectoryFresh and
the iAmMember branch) that the progressive-disclosure pass had dropped, re-aligning the
code with the community-reachability-nudges spec.
Tests: +2 roster-codec (community sim round-trip), +1 comm-whisper (spoofed GUILD does
not grant guild-reachability). 303 tests green. DEV_BUILD reset to 0 for release.
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
- A member acting as inviter wrongly flagged every cross-faction/cross-realm peer.
- feat(community): restore member-side reachability warning (info-only)
A community member acting as group inviter again flags whisper-tier peers
(opposite faction / non-connected realm, not guild) who are absent from the
community directory — these are the seats the in-game InviteUnit cannot reach.
The marker is informational: a member cannot force the community on a peer, so
the seat carries no click action ("it's up to them to join").
This restores the directory-backed detection (CommunityGate:DirectoryHas /
EnsureDirectoryFresh and the iAmMember branch in unreachableInvitees) that the
prior progressive-disclosure pass had collapsed into a non-member-only signal —
which left a false-negative gap: a peer reaching the host via guild/channel and
relayed onward could be whisper-tier and non-member relative to the inviter, yet
went unflagged. The non-member case (clickable join CTA) is unchanged, and the
live CLUB_REMOVED refresh in Setup() is kept.
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com

