Commit graph

10 commits

Author SHA1 Message Date
jedarden
1a9c8374f2 fix(scripts): add test replay generation and R2 upload tools
Root cause: The R2 bucket 'acb-data' is empty - no replay files were ever
uploaded. The matches/index.json lists test matches, but the corresponding
replay files return 404 when accessed via the Pages Function at /r2/.

Fix: Add tooling to generate test replays matching index.json entries and
upload them to R2. The viewer already has proper error handling (response.ok
check + user-visible error messages in replay.ts:1397-1402).

Changes:
- scripts/generate-test-replays.sh: Generate all 8 test replays from index.json
  with correct match IDs, gzip them, place in test-replays/
- scripts/upload-test-replays.sh: Upload generated replays to R2 via wrangler
- scripts/README.md: Document the R2 setup and replay upload workflow
- .gitignore: Add test-replays/ (generated files, not committed)

Usage:
  1. bash scripts/generate-test-replays.sh
  2. npm install -g wrangler && wrangler login
  3. bash scripts/upload-test-replays.sh

Verified: Generated replays have correct match_id, format_version="1.0",
and valid JSON structure. The viewer error path handles 404 correctly.

Closes: bf-360t
2026-05-24 21:54:36 -04:00
jedarden
c8ad83b25b fix(script): use 2 cores per player in combat density verification
The latest engine changes (commit 26d9190) achieved 100% combat death
rate with 2 cores per player, but the verification script was using
the default 1 core. This fix aligns the verification with the
production configuration.

Verification results with 2 cores:
- 2-player random: 20/20 (100%) combat deaths
- 2-player aggressive: 20/20 (100%) combat deaths
- 6-player mixed: 20/20 (100%) combat deaths

All configurations meet or exceed plan §3.7.1 combat density targets.
2026-05-24 21:07:25 -04:00
jedarden
5a52f06fc5 feat(monitoring): add combat death rate analysis script
Added analyze-combat-deaths.sh script to track combat_death rate
across replay files. Reports percentage of matches with combat_deaths
by player count and average deaths per match.

Usage:
  ./scripts/analyze-combat-deaths.sh /path/to/replays

For production monitoring, download replays from R2 and analyze:
  aws s3 sync s3://acb-replays /tmp/replays
  ./scripts/analyze-combat-deaths.sh /tmp/replays

Full database integration (persist combat_deaths to DB, dashboard UI)
left for future work as combat_deaths are already tracked in replay files.

Closes: bf-38ts
2026-05-24 18:44:08 -04:00
jedarden
bed7f14797 fix(engine): reduce ZoneMinRadius from 5 to 3 to force combat engagement
The previous ZoneMinRadius=5 created a final zone diameter of 10 tiles,
which allowed bots to remain outside the 3.5-tile attack radius even when
both were inside the zone. This resulted in low combat_death rates for
passive bot strategies (~10% for random bots vs the 65-80% target).

With ZoneMinRadius=3, the final zone diameter is 6 tiles, forcing bots
into proximity where focus-fire combat triggers more consistently.

Also adds verify-combat-density.sh script for ongoing metrics tracking.

Closes: bf-4bj9
2026-05-24 18:40:40 -04:00
jedarden
00069b1870 feat(acb-api): implement bot registration, job coordination, and replay endpoints per plan §12 Phase 4
- POST /api/register: bot registration with URL + shared secret validation
- GET /api/job: worker polls for next pending match job (authenticated)
- POST /api/job/:id/result: worker submits match result (winner, replay JSON)
- GET /api/replay/🆔 serve replay JSON from R2 warm cache (falls back to B2)
- GET /api/bot/🆔 bot profile JSON (rating, elo, record, metadata)
- GET /api/bots: leaderboard snapshot with pagination
- POST /api/ui-feedback: accept Agentation UI feedback

Authentication via Bearer token (worker API key). Shared secrets encrypted
with AES-256-GCM using ACB_ENCRYPTION_KEY.
2026-04-21 08:58:42 -04:00
jedarden
fb0ae2b603 docs(phase6): add deployment checklist and make scripts executable
- Add comprehensive Phase 6 deployment checklist (docs/phase6-deployment-checklist.md)
- Make all deployment scripts executable (chmod +x scripts/*.sh)
- Document remaining Cloudflare setup steps requiring account access
- Include verification commands and expected URLs
- Document data flow architecture

Phase 6 code is complete. Remaining infrastructure setup requires
Cloudflare account access for:
- Cloudflare Pages project creation
- R2 bucket creation and custom domain
- DNS configuration

All deployment scripts are ready to run once Cloudflare access is available.
2026-04-08 17:29:02 -04:00
jedarden
a23c94ad1f feat(ci): add Cloudflare Pages deployment configuration
Add wrangler.toml, deployment script, and documentation for deploying
the AI Code Battle SPA to Cloudflare Pages.

- wrangler.toml: Cloudflare Pages project configuration
- scripts/deploy-pages.sh: Manual deployment script using wrangler CLI
- web/CLOUDFLARE_DEPLOYMENT.md: Deployment guide with GitHub Actions setup

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-08 16:53:09 -04:00
jedarden
77832bc144 feat(scripts): add R2 bucket setup script with custom domain config
Add automated script for creating R2 bucket and configuring custom domain
r2.aicodebattle.com for replay storage.

- Create scripts/setup-r2.sh:
  - Creates acb-data R2 bucket if it doesn't exist
  - Configures custom domain via Cloudflare API
  - Includes verification and usage instructions
- Update DEPLOYMENT.md to reference the new script

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-06 06:42:53 -04:00
jedarden
e02541ce46 docs(scripts): add DNS configuration script with Cloudflare API
Add configure-dns.sh for automated DNS record setup:
- aicodebattle.com CNAME to Pages
- r2.aicodebattle.com CNAME to R2
- api.aicodebattle.com A record to Traefik (optional)

Includes manual dashboard instructions as fallback.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-29 20:12:26 -04:00
jedarden
26244d1066 feat(scripts): add Cloudflare setup and verification scripts
Add helper scripts for Cloudflare Pages and R2 deployment:
- cloudflare-setup.sh: Creates Pages project, deploys dist, creates R2 bucket
- verify-deployment.sh: End-to-end verification of all endpoints

These scripts require wrangler authentication via `wrangler login`.

Note: worker-api deployment removed from scope (legacy code was removed
in commit b06350d).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-29 14:50:08 -04:00