File Details
v0.4.0
- R
- Jun 14, 2026
- 134.93 KB
- 6
- 12.0.5
- Retail
File Name
MythicPlusPartyShuffle-v0.4.0.zip
Supported Versions
- 12.0.5
Mythic+ Party Shuffle
v0.4.0 (2026-06-14)
Full Changelog Previous Releases
- chore(openspec): sync specs and archive throttle-resilient-roster-sync
- New roster-snapshot capability spec (paged, versioned, atomic-replace,
re-request). - comm-protocol: add lean roster entry encoding; late-joiner resync delivers a
paged snapshot. - event-sync-gate: SYNCED converges on the complete paged snapshot.
- dev-roster-fixture: fake injection sends one spoofed JOIN per fake on the wire.
- Move the completed change to changes/archive/2026-06-14-...
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
- New roster-snapshot capability spec (paged, versioned, atomic-replace,
- feat(comm): lean roster entries + paged ROSTER snapshot (throttle resilience)
Reduce roster-sync cost under Blizzard's per-prefix addon-message throttle
(≈10-message burst, then 1/sec, counting messages on every transport).- Lean wire entries: drop every specId-derivable field (class/spec/role/
bloodlust/battleRez) and use short keys; the receiver re-derives them from
specId via SpecDetails on receipt, with a graceful fallback for an unknown
specId. ~3x fewer bytes per entry. The specId->{class,spec} catalog moves
from DevFixture into SpecDetails (single source of truth). - Paged ROSTER snapshot: the authoritative roster is sent as versioned pages,
accumulated by version (newer supersedes, older ignored) and applied as an
atomic replace only once complete. ROSTER_PAGE_MAX packs a typical roster into
one logical message (fewest messages = fastest under the throttle); larger
rosters page. SYNCED converges on the complete snapshot (+ SHUFFLE when the
snapshot signals one); sticky-synced unchanged. - PROTOCOL_VERSION bumped to 2 (old/new clients ignore each other).
- Fake roster: simulate n registrations joining ~simultaneously — the organizer
registers each fake locally and sends one spoofed JOIN per fake on the wire,
so a connected participant receives n real JOINs (faithful, throttle and all).
Tests: 138/138 (offline lua harness), incl. lean codec round-trip, paging,
version supersession, atomic completion, gate convergence.
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
- Lean wire entries: drop every specId-derivable field (class/spec/role/
- docs(openspec): capture fake-roster incremental drip in dev-roster-fixture
Document the realistic injection behavior shipped in v0.3.0: the organizer
announces a fake-roster change as incremental spoofed JOIN/LEAVE messages
(one per entry, staggered) instead of a bulk ROSTER snapshot. Updates the
dev-roster-fixture spec and archives the change.
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com - chore(openspec): sync specs and archive resync-loading-gate
- Add event-sync-gate capability spec (SYNCED predicate, loading gate,
bounded resolution, background keep-alive). - Append "Local reset before authoritative repull" to event-reconnect.
- Move the completed change to changes/archive/2026-06-14-resync-loading-gate.
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
- Add event-sync-gate capability spec (SYNCED predicate, loading gate,

