ai-code-battle/cmd/acb-matchmaker
jedarden 3b94b7eccb feat(matchmaker): add map fairness monitoring and auto-retirement (§14.6)
Implements the full map lifecycle audit as a hourly ticker in the
matchmaker:

1. updateMapFairnessStats: recompute per-slot win counts from completed
   matches into the map_fairness table
2. flagUnfairMaps: flag maps where any slot deviates >10pp from expected
   (1/N) across 80+ matches → status='probation'
3. retireDislikedMaps: force-retire maps with >20 net negative votes
4. pruneLowEngagementMaps: monthly bottom-10% engagement prune per tier
5. promoteClassicMaps: top-5 all-time engagement, 3+ months → 'classic'

Matchmaker already filters retired maps and gives probation maps 50%
reduced selection probability in selectMapLRU.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-22 18:19:24 -04:00
..
alerts.go Extract matchmaker into separate deployment (acb-matchmaker) 2026-03-29 00:55:46 -04:00
config.go feat(web,cmd): enhance evolution dashboard, series/seasons pages, and matchmaker 2026-04-21 13:42:20 -04:00
cooldown_test.go test: integration tests for multi-match crash cooldown (3 strikes / 30 min) per §4.5 + §6.1 2026-04-22 15:14:03 -04:00
crypto.go Extract matchmaker into separate deployment (acb-matchmaker) 2026-03-29 00:55:46 -04:00
Dockerfile fix: update Dockerfiles to golang:1.25-alpine (go.mod requires go 1.25.0) 2026-04-14 13:43:39 -04:00
main.go feat(config): add season_id + rules_version to Config per §4.2 2026-04-22 18:09:26 -04:00
map_fairness.go feat(matchmaker): add map fairness monitoring and auto-retirement (§14.6) 2026-04-22 18:19:24 -04:00
map_fairness_test.go feat(matchmaker): add map fairness monitoring and auto-retirement (§14.6) 2026-04-22 18:19:24 -04:00
series_season.go feat(config): add season_id + rules_version to Config per §4.2 2026-04-22 18:09:26 -04:00
series_season_test.go feat(playlists): add playlist curation and rebuild logic per §10, with series/seasons/enrichment 2026-04-21 16:11:27 -04:00
tickers.go feat(config): add season_id + rules_version to Config per §4.2 2026-04-22 18:09:26 -04:00
tickers_test.go fix(matchmaker): correct priority inversion in bestCandidate opponent selection 2026-04-22 17:46:44 -04:00