ai-code-battle/cmd/acb-worker
jedarden dc0caf0115 feat(worker): upload replays directly to R2 in addition to B2
Adds R2 (Cloudflare) as a direct upload target alongside B2 (cold archive).
When ACB_R2_* credentials are configured, the worker uploads replays and
thumbnails to R2 immediately after each match, bypassing the index-builder's
B2→R2 promotion cycle.

This is necessary because ARMOR's B2 app key is write-only; reads via the
direct S3 path return 403. The Cloudflare CDN read path (armor-hub-b2.ardenone.com)
is dead post-hub-decommission. Direct R2 upload ensures replays are available
without waiting for a working B2 read path.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-30 10:24:47 -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 feat(worker): upload replays directly to R2 in addition to B2 2026-04-30 10:24:47 -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 feat(worker): upload replays directly to R2 in addition to B2 2026-04-30 10:24:47 -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