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> |
||
|---|---|---|
| .. | ||
| acb-api | ||
| acb-evolver | ||
| acb-index-builder | ||
| acb-local | ||
| acb-map-evolver | ||
| acb-mapgen | ||
| acb-matchmaker | ||
| acb-wasm | ||
| acb-worker | ||