ai-code-battle/cmd/acb-matchmaker
jedarden b2e9ba8319 fix(matchmaker): correct priority inversion in bestCandidate opponent selection
The bestCandidate function allowed game count to override pairing recency
when both candidates had non-zero LastPairedAt values. Per §6.1, pairing
recency must be the primary criterion with game count only breaking ties.

Also adds 10 tests covering: never-paired preference, oldest-pairing
preference, game count tiebreaking, Pareto distribution verification,
multi-opponent selection, and regression test for the priority inversion.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-22 17:46:44 -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(evolver): expand MAP-Elites from 2-D to 4-D grid per §10.2 2026-04-22 15:44:39 -04:00
series_season.go fix(matchmaker): multi-match crash cooldown (3 strikes / 30 min) per §4.5 + §6.1 2026-04-22 15:22:12 -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 fix(matchmaker): correct priority inversion in bestCandidate opponent selection 2026-04-22 17:46:44 -04:00
tickers_test.go fix(matchmaker): correct priority inversion in bestCandidate opponent selection 2026-04-22 17:46:44 -04:00