Cerebro-Support

Automated sync test harness for Cerebro sync

File Details

v1.0.2

  • R
  • Apr 14, 2026
  • 46.46 KB
  • 6
  • 12.0.1+1
  • Retail

File Name

Cerebro-Support-v1.0.2.zip

Supported Versions

  • 12.0.1
  • 11.2.7

Cerebro Support

v1.0.2 (2026-04-14)

Full Changelog

  • Merge pull request #8 from Shezzannn/ci/curseforge-release-workflow
    ci: add CurseForge release workflow (BigWigs packager on v* tags)
  • ci: add CurseForge release workflow
    Mirrors the strategy used by the Cerebro repo: BigWigsMods/packager
    runs on every v* tag push, packages the addon per .pkgmeta, and
    uploads to CurseForge project 1514271. The packager also creates a
    GitHub release with the packaged zip attached as long as
    GITHUB_TOKEN has the right permissions (auto-provided by Actions).
    Game versions targeted (matches Cerebro):
    -g 12.0.1 Retail (The War Within)
    -g 11.2.7 Mists of Pandaria Classic
    Required secret:
    CF_API_KEY CurseForge API token (generated at
    legacy.curseforge.com/account/api-tokens, added to
    repo Settings → Secrets and variables → Actions)
    Future workflow:
    1. Bump version in Cerebro-Support.toc + Core.lua
    2. Update README roadmap
    3. PR + merge
    4. git tag vX.Y.Z && git push origin vX.Y.Z
    5. Workflow auto-uploads to CurseForge + creates GitHub release
    Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com
  • Merge pull request #7 from Shezzannn/release/v1.0.2-ambiguate-mode
    release: v1.0.2 — Ambiguate("none") for consistent Name-Realm sender keys
  • release: v1.0.2 — Ambiguate("all") → "none" for consistent Name-Realm
    v1.0.1 introduced Ambiguate() sender normalization so the self-skip
    in fanoutPings would fire on solo runs. It used "all" mode, which is
    WoW's "display simplest form" — strips the realm suffix when the name
    is on the current realm.
    That made self-skip technically work (both sides became bare
    "Surryeal"), but created two visible quirks:
    1. The report's Initiator field showed short form "Surryeal" instead
      of "Surryeal-Stormrage" — regression from v1.0.0's display.
    2. On cross-realm raids, the same report would contain a MIX of
      naming styles:
      hellos["Surryeal"] ← you, bare name
      hellos["Bob-OtherRealm"] ← cross-realm peer, full form
      Inconsistent to eyeball, awkward for downstream JSON tooling.
      v1.0.2 uses Ambiguate("none") — counterintuitively named, this mode
      "ambiguates nothing" and keeps the full Name-Realm form regardless of
      realm. Both sides of the self-skip still match (both become
      "Surryeal-Stormrage"). Report Initiator displays full form. JSON
      export has consistent shape across all realms.
      Smoke-tested behavior:
      Before (v1.0.1):
      "initiator": "Surryeal"
      "hellos": { "Surryeal": }
      Display: Initiator: Surryeal
      After (v1.0.2):
      "initiator": "Surryeal-Stormrage"
      "hellos": { "Surryeal-Stormrage": }
      Display: Initiator: Surryeal-Stormrage
      Files changed
      ─────────────
    • CommsCBST.lua: Ambiguate arg "all" → "none", extended docstring
      explaining the mode distinction and why "none" is correct
    • Cerebro-Support.toc: 1.0.1 → 1.0.2
    • Core.lua: VERSION constant 1.0.1 → 1.0.2
    • README.md: roadmap row for v1.0.2
      Quality
      ───────
    • luacheck: 0 warnings / 0 errors across all 8 Lua files
    • Wire format backwards-compatible with v1.0.0 and v1.0.1 participants
    • Self-skip semantics preserved (still works on solo AND multi-officer)
    • No new SavedVariables fields, no new contract requirements
      Discovered during post-v1.0.1 smoke test inspection of the exported
      JSON — the initiator being "Surryeal" instead of "Surryeal-Stormrage"
      was a regression worth a one-character patch.
      🤖 Generated with Claude Code
      Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com