ai-code-battle/cmd
jedarden b35a2aade0 fix(db): eliminate O(n²) N+1 query loop in fetchBots to prevent OOMKill
The previous implementation called getBotMatchStats for each bot in a loop,
causing 10,000+ separate database queries when there are many bots. This N+1
query problem caused the pod to exceed memory limits and get OOMKilled,
resulting in CrashLoopBackOff.

Replaced with a single batch query that fetches match stats for all bots at
once, then maps the results to each bot. This reduces database round trips
from O(n) to O(1).

Fixes bead bf-2ws: acb-index-builder CrashLoopBackOff (silent crash after web asset copy)
2026-06-25 06:04:51 -04:00
..
acb-api feat(api): add GET /api/status/{bot_id} endpoint per plan §8.2 2026-05-25 16:53:03 -04:00
acb-enrichment fix(dockerfile): correct golang version from 1.24 to 1.25 2026-06-04 08:52:03 -04:00
acb-evolver feat(evolver): add C# language support 2026-06-17 05:08:19 -04:00
acb-index-builder fix(db): eliminate O(n²) N+1 query loop in fetchBots to prevent OOMKill 2026-06-25 06:04:51 -04:00
acb-local Implement SiegeBot: spawn-lockout strategy 2026-06-17 01:02:01 -04:00
acb-map-evolver style: apply gofmt alignment fixes across codebase 2026-05-24 10:40:33 -04:00
acb-mapgen fix(mapgen): align spawn radius comment with actual implementation (30% vs 15%) 2026-05-26 19:28:49 -04:00
acb-maps-loader style: format Go files with gofmt 2026-05-25 15:33:38 -04:00
acb-matchmaker style: apply gofmt alignment fixes across codebase 2026-05-24 10:40:33 -04:00
acb-wasm style: apply gofmt alignment fixes across codebase 2026-05-24 10:40:33 -04:00
acb-worker feat(engine): add pre-generated map loading from map library 2026-05-25 14:14:27 -04:00