promotional bannermobile promotional banner

Mythic+ Party Shuffle

Create an event, let players join in-game, and shuffle everyone into balanced Mythic+ groups.

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
  • 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
  • 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