# Cerebro

## [v0.10.30](https://github.com/Shezzannn/Cerebro/tree/v0.10.30) (2026-03-20)
[Full Changelog](https://github.com/Shezzannn/Cerebro/compare/v0.10.29...v0.10.30) 

- chore: Bump version to 0.10.30  
    History tab sync for non-ML officers (real-time BROADCAST\_TX); /cb synchistory for retroactive catch-up; 3-tier sync leader election (WoW raid leader wins)  
- Merge pull request #36 from Shezzannn/feature/history-sync-and-sync-leader  
    feat(sync): History tab real-time broadcast + retroactive /cb synchistory + 3-tier sync leader election  
- feat(sync): history tab sync + 3-tier sync leader election  
    Part A: Real-time transaction broadcast  
    - EPGP.lua: capture txId from Ledger:AddTransaction(), thread into  
      BroadcastEPGPUpdate() so receivers can write History entries  
    - CommunicationV2.lua: BroadcastEPGPUpdate accepts txId+details params.  
      BroadcastTransaction() fixed: was silently miskeyed as BROADCAST\_TRANSACTION,  
      now correctly sends BROADCAST\_TX to match registered RPC dispatch.  
    - Communication.lua: HandleEPGPUpdate() uses IngestReceipts() with synthetic  
      receipt (preserves txId, stamps verified=false, auto-dedup).  
      HandleBroadcastTransaction/Batch: implemented with officer/quarantine/epoch guards.  
    Part B: Retroactive /cb synchistory command  
    - CommunicationV2.lua: BroadcastAllTransactions() batches full ledger in  
      chunks of 25 via new BROADCAST\_TX\_BATCH RPC; dispatch entry added.  
    - CommandRegistry.lua: sync\_history command (officer-only, alias synchistory)  
    - Core.lua: synchistory added to cmdMap + ShowHelp()  
    Part C: 3-tier sync leader election (SyncScheduler.lua)  
    - Tier 1: WoW raid leader (GetRaidRosterInfo rank==2) if IsOfficer()  
    - Tier 2: Assistant raid leaders (rank==1) by eligibility then alpha  
    - Tier 3: Existing guild-rank sort fallback (unchanged)  
    - All tiers require IsOfficer() -- non-officer cannot become sync leader  
    Validated: luacheck 0 warnings/0 errors; validate\_commands 58/58 OK  
- chore(tasks): archive PR #35 and related tasks under v0.10.29  
    Completed tasks archived to .agent/tasks/archive/v0.10.29/:  
    - pr35-fixes.md + pr35-fixes-plan.md (all 13 fixes complete)  
    - guild-roster-sync-dashboard.md + plan (feature complete)  
    - fix-config-hash-divergence.md + plan (25/25→1/25 bounce fixed)  
    These shipped in v0.10.29.  
