File Details
v0.10.23
- R
- Mar 13, 2026
- 5.74 MB
- 108
- 12.0.1+1
- Retail
File Name
Cerebro-v0.10.23.zip
Supported Versions
- 12.0.1
- 11.2.7
Cerebro
v0.10.23 (2026-03-13)
- chore: Bump version to 0.10.23
Player Management Overhaul: new /cb block, /cb unblock, /cb blockedlist commands; purge is now a soft reset; auto-discover group members as Pending; Standings rank filters and Hide Non-Guildies restored; sync field whitelist drops junk data; UTF-8 player name fix; non-guild players display '--' rank instead of 'Unknown(R99)'. - fix: Unknown(R99) rank display and unsafe UnitClass in group discovery
- StandingsFrame.lua: Replace R99 sentinel with nil; display rank name
only (no index suffix). Non-guild players now show '--' in gray instead
of 'Unknown(R99)' in white. - Core.lua: Remove UnitClass(raidX) fallback in DiscoverGuildGroupMembers.
GetRaidRosterInfo(i) and unit slot indices are not guaranteed to match —
only use guild roster for class data when auto-discovering group members.
Note: Savas-Stormrage wrong class is a pre-existing data corruption
(duplicate entry from old TitleCase UTF-8 bug). Fix: /cb block Savas-Stormrage YES
luacheck: 0 warnings / 0 errors in 29 files"
- StandingsFrame.lua: Replace R99 sentinel with nil; display rank name
- feat(v0.10.23): Player Management Overhaul — Block/Purge, Auto-Discovery, Standings Filters, UTF-8 Fix
Merges PR #27. Full changelog in PR description.
Key features:- New commands: /cb block, /cb unblock, /cb blockedlist
- Purge is now a soft reset (EP/GP → 0, status → Pending)
- Block permanently removes and prevents re-sync
- Auto-discover group/raid members as Pending (officers only)
- Pending players blocked from receiving EP or GP
- Standings rank filters and Hide Non-Guildies checkbox restored
- Sync field whitelist prevents junk field propagation
- UTF-8 aware TitleCase for accented player names
- Template deletion no longer reappears after sync
- Right-click menu hidden from non-officers
Fixes applied pre-merge (review): - Restored IsOfficer() PUG guild guard (security regression)
- Moved ChatFrame filter to OnInitialize (reload dedup)
- Reverted TOC title from '(Dev)' to 'Cerebro'
- Deduplicated NormalizePlayerKey to module scope
- fix: PR #27 review fixes before merge
- Core.lua: Restore
if not IsInGuild()guard in IsOfficer() PUG fallback
(security regression — guilded raid assistants were incorrectly passing) - Core.lua: Move ChatFrame_AddMessageEventFilter to OnInitialize with
dedup flag to prevent double-registration on /reload - Cerebro.toc: Revert title from 'Cerebro (Dev)' to 'Cerebro'
- UI/CommandRegistry.lua: Hoist NormalizePlayerKey to module scope,
remove 3 duplicate inner-function declarations in delete/purge/block handlers
luacheck: 0 warnings / 0 errors in 29 files"
- Core.lua: Restore
- fix: restore calendar signup UI accidentally removed in PR27
- feat(v0.10.23): block/purge separation, pending player protections, auto-discovery, context menu RBAC, standings filters
- fix: add confirmation step before boss kill EP type choice
Two-step flow: 'Award Boss Kill EP?' (Yes/No) then Farm/Prog.
Prevents accidental awards and gives officers a clear opt-out. - feat: boss kill popup (Farm/Prog) + naming fixes
- Replace auto-award boss kill EP with officer popup
Farm Boss / Prog Boss / Skip buttons - Split epBossKill config into epFarmBoss (15) + epProgBoss (50)
- Rename ON_TIME -> RAID_START, FULL_ATTENDANCE -> RAID_END
- Update ConfigSchema, UISandbox, Onboarding, CommunicationV2 hash
- Replace auto-award boss kill EP with officer popup
- fix: add RefreshAllUI to session roster popup handlers
When the RL benched or removed a player via the leave/join popup,
the standings checkbox and gold highlight didn't update until the
frame was closed and reopened. Added RefreshAllUI() to all 4 popup
button handlers (bench, remove, activate, keep-bench). - fix: luacheck warnings - add C_ToyBox global, suppress unused pctLabel
- docs: compliance updates for v0.10.21
- Session.lua: Added DescribeHealthChecks() with SESSION_STATE check
(per CONTRIBUTING.md §10 health check requirement) - docs/SPEC.md: Updated §4.1 Officer flows with auto-roster, join/leave
roster tracking, RL-only bench/remove popups, 2H duplicate slot GP popup - PROJECT_STATE.md: Added 6 v0.10.21 features to Recently Implemented
(Auto-Roster, Duplicate Slot GP, Collectible Item GP, Offline Whisper
Spam Fix, RCLC Bridge Safety, V2 Session Sync)
- Session.lua: Added DescribeHealthChecks() with SESSION_STATE check
- feat(v0.10.21): session EP fix, auto-roster, offline spam fix, collectibles, 2H GP popup
Session & EP:- Fix EP not awarding (auto-select no longer overwrites pre-selection)
- Fallback auto-select when no players pre-selected
- On-time EP fires synchronously when grace period is 0
- Auto-add Core joiners mid-session
- RL-only bench/remove popup when player leaves raid
- RL-only active/bench popup when bench player joins raid
- V2 RPC session adoption (combat-safe sync)
Loot & GP: - 2H duplicate slot popup for Warriors (full vs reduced GP)
- RCLC Bridge pcall safety (no crash without RCLootCouncil)
- Collectible item GP support (toys, pets, mounts, cosmetics, decor)
- Tooltip shows both full and reduced GP for duplicate slot items
Offline Whisper Spam: - V2 GetStalePeers filters offline peers via IsPlayerReachable
- V1 CheckPendingSyncs re-checks online at max retry
- ChatFrame filter suppresses 'No player named' system messages
Other: - New UI/CustomEP.lua module
- GP calculation for new slot types
- UI layout refactor
- Config defaults for collectible slots
- Luacheck globals updated

