Bestie-1.0.1-beta1
What's new
Bestie
1.0.1-beta1 (2026-10-06)
- Merge pull request #7 from unselfish-means/chore/beta-1.0.1-beta1
chore(release): mark Bestie as beta and bump to 1.0.1-beta1 - chore(release): mark Bestie as beta and bump to 1.0.1-beta1
While Bestie is in beta, every version and tag must contain "beta" so
the packager uploads a Beta file, not a Release. CLAUDE.md spells out
the rule.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Merge pull request #6 from unselfish-means/chore/curseforge-project-id
chore(release): add the CurseForge project ID - chore(release): add the CurseForge project ID
Bestie's CurseForge project is 1730974. The .toc TODO is replaced by
the ID, so the Package and release workflow can upload on the next tag.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Merge pull request #5 from unselfish-means/chore/project-icon
chore: add the Bestie project icon - chore: add the Bestie project icon
media/icon.png is the CurseForge project icon. .pkgmeta ignores media
so it never ships in the addon.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Merge pull request #4 from unselfish-means/chore/curseforge-display-name
chore(release): name CurseForge files <Addon>-<version> - chore(release): name CurseForge files <Addon>-<version>
The CurseForge display name now matches the zip's file name, for example
Reclaim-1.0.3, instead of the bare version.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Merge pull request #3 from unselfish-means/chore/bump-1.0.0
chore(release): bump version to 1.0.0 - chore(release): bump version to 1.0.0
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Merge pull request #2 from unselfish-means/chore/bigwigs-packager
chore(release): switch to the shared CurseForge packaging workflow - chore(release): switch to the shared CurseForge packaging workflow
Replace the older packager workflow with the shared WIKR one (pinned
packager v2.6.1, full-history checkout, setup check, bare-tag file
names, CURSEFORGE_API_TOKEN secret). A root .pkgmeta moves Bestie/ up
to the package root, replacing -t and Bestie/.pkgmeta.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Merge pull request #1 from unselfish-means/implement-bestie-v1
feat: implement Bestie v1 - docs: point CLAUDE.md at the local GitHub account notes
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - docs: add a player-facing README and move the test plan to TESTING.md
The README at the repo root describes Bestie for players and is the
CurseForge description. The build, install, and two-account test plan
that lived in Bestie/README.md move to TESTING.md, so they no longer
ship inside the addon folder. CLAUDE.md links both.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - docs: add Bestie install and test plan
Mirrors spike/README.md's structure -- install steps plus a two-part test
plan split into solo checks (no network dependency) and joint checks that
need both testers online at once. Doubles as the instructions handed to the
second tester alongside the built zip.
Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com - chore: pin BigWigsMods/packager action to a commit SHA
Automated push security review flagged the mutable v2 tag as a supply-chain
risk. Pinned to the commit v2 currently resolves to (v2 -> v2.5.1 -> this
commit) so a tag re-point upstream can't silently change what CI runs.
Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com - feat: implement Bestie v1
Builds all P0 requirements from SPEC.md on top of the confirmed spike findings:
besties list with request/accept/decline handshake, mute, and block; same-guild-aware
achievement notifications over BNSendWhisper; and a CurseForge release workflow.
The handshake and guild-sync protocol reuses the achievement whisper channel, marking
its own traffic with a control-character prefix that's filtered out of chat, while
achievement notifications pass through unmarked exactly as SPEC.md requires. Same-guild
detection (previously an open design decision) is resolved by exchanging each side's
current guild name as part of that same protocol, best-effort, consistent with the
no-offline-queueing non-goal.
Untested in-game — needs the same two-account manual testing the spike used. CurseForge
publishing needs a project + CF_API_TOKEN secret created outside this repo (see the TODO
in Bestie.toc).
Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com - Merge pull request #2 from puppysnuff/spec-handshake-abuse-boundary
Require completed handshake before any notification send - Merge pull request #1 from puppysnuff/local-testing-tooling
Add local build/versioning tooling for spike addon - docs: mark technical spike resolved with findings
All four spike unknowns confirmed end-to-end on real Battle.net
accounts: BattleTag resolution, presence check, and send/receive of
an achievement link all work via C_BattleNet.GetFriendAccountInfo and
BNSendWhisper. Documents two API gotchas hit along the way (isOnline
nested under gameAccountInfo, battleTag vs the display-only
accountName field) so they don't need rediscovering during v1.
Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com - docs: require a completed handshake before any notification send
Makes explicit that achievement notifications are gated on an Active
bestie relationship as a deliberate anti-abuse boundary, not because
BNSendWhisper itself requires any relationship to exist.
Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com - fix: correct C_BattleNet friend-info field names in BestieSpike
Live testing showed /bspike friends always reporting online=nil and
/bspike online|send never matching a typed BattleTag. Per the
C_BattleNet.GetFriendAccountInfo reference: isOnline only exists
nested under gameAccountInfo (not top-level), and accountName is a
display name rather than the literal BattleTag -- battleTag is the
field to match against. Matching and online-status logic now use the
correct fields, and /bspike friends prints battleTag= explicitly so
it is unambiguous which value to type into other commands.
Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com - feat: add local build/versioning script for spike addon testing
Adds scripts/build-addon.ps1 to stamp a build version, install into
the local WoW AddOns folder, and produce a versioned zip to share
manually. Also bumps BestieSpike to Interface 120100 and prints its
version on load so both testers can confirm they are on the same build.
Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com - test: add BestieSpike addon to validate BattleTag whisper delivery
Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com - docs: add CLAUDE.md and initial Bestie product spec
Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com
This mod has no additional files

