# Cerebro

## [v0.10.24](https://github.com/Shezzannn/Cerebro/tree/v0.10.24) (2026-03-15)
[Full Changelog](https://github.com/Shezzannn/Cerebro/compare/v0.10.23...v0.10.24) 

- chore: Bump version to 0.10.24  
    Fix officer sync divergence: dynamic config hash covers all settings automatically, config merge uses LWW timestamps, auto-discovery no longer pollutes roster timestamps, purge/block zombie cleanup on snapshot receive.  
- fix: resolve v0.10.23 sync divergence regressions\n\n1. Dynamic config hash: Replace hand-picked 25-field list with recursive\n   serializer that auto-covers ALL config fields. Future additions are\n   automatically included. Excludes local-only settings (debug, ui).\n\n2. Auto-discovery timestamp fix: DiscoverGuildGroupMembers now uses\n   lastUpdate=0 (sentinel) so Pending stubs never win LWW against\n   officer Core admissions. Also skip purged players.\n\n3. Config merge LWW: epgp/prep sections now use configLastUpdate\n   timestamp (bumped via ConfigSchema:SetValue) instead of blind\n   overwrite. Stops config ping-pong between officers.\n\n4. Purge/block zombie cleanup: HandleSnapshot now deletes local player\n   records covered by incoming purge/block directives, preventing\n   permanent participant count divergence.\n\nFixes: config hash oscillation, roster 76-vs-72 divergence, sync loop  
