ai-code-battle/cmd/acb-worker
jedarden 55dffb624c fix(worker): UsePathStyle for ARMOR and skip crash_strikes on normal game endings
Two fixes:
1. Add UsePathStyle=true to B2 S3 client. Without it the SDK uses
   virtual-hosted addressing, dropping the bucket name from the request
   path. Uploads hit /replays/... instead of /armor-apexalgo/replays/...
   causing NoSuchBucket errors on every replay/thumbnail PutObject.

2. Don't update crash_strikes for normal game endings (stalemate, turns).
   In snake-style games every bot eventually crashes into a wall/snake —
   that is the expected end condition, not an HTTP error. The old code
   treated all Crashed[] entries from the engine as errors, causing all
   6 bots to accumulate strikes after every single match and hitting the
   30-min cooldown threshold after just 3 matches.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-30 09:38:09 -04:00
..
api.go fix(matchmaker): multi-match crash cooldown (3 strikes / 30 min) per §4.5 + §6.1 2026-04-22 15:22:12 -04:00
b2.go fix(worker): UsePathStyle for ARMOR and skip crash_strikes on normal game endings 2026-04-30 09:38:09 -04:00
crash_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
db.go fix(worker): UsePathStyle for ARMOR and skip crash_strikes on normal game endings 2026-04-30 09:38:09 -04:00
Dockerfile fix(docker): add COPY metrics/ to all service Dockerfiles 2026-04-23 18:00:16 -04:00
glicko2.go Remove legacy code: worker-api/, cmd/acb-indexer/, cluster-configuration/, gut cmd/acb-api/ 2026-03-29 10:22:16 -04:00
main.go fix(worker): use winner identity for Glicko-2 pairwise scoring 2026-04-24 17:29:36 -04:00
metrics.go Add Prometheus metrics endpoint to match worker 2026-03-26 00:50:10 -04:00
metrics_test.go Add Prometheus metrics endpoint to match worker 2026-03-26 00:50:10 -04:00