Commit graph

136 commits

Author SHA1 Message Date
jedarden
dd68792c23 docs(bf-2be6): complete inventory of all 21 bots with language distribution 2026-07-02 17:00:35 -04:00
jedarden
37ed34de59 docs(bf-28c4): complete inventory of all 21 bots with language distribution
- Documented all 21 bots from bots/ directory
- Each bot includes: language, file path, and purpose
- Language distribution: Python 4, Go 4, Rust 4, Java 3, TypeScript 2, JavaScript 2, PHP 1, C# 1
- Verified against README.md strategy bots section

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-02 15:39:03 -04:00
jedarden
7659332647 docs(bf-3gkv): verify plan section 5 already correctly documents 21 bots
- Plan section 5 already states 'Twenty-one built-in strategy bots'
- Complete table lists all 21 bots with correct strategies and expected ranks
- Language distribution section correctly documents 8 languages:
  * Go: 4 bots (farmer, gatherer, opportunist, siege)
  * Rust: 4 bots (assassin, phalanx, rusher, zone-driver)
  * Python: 4 bots (economist, nomad, random, scout)
  * Java: 3 bots (hunter, leader-targeter, raider)
  * TypeScript: 2 bots (coordinator, swarm)
  * JavaScript: 2 bots (kamikaze, pacifist)
  * PHP: 1 bot (guardian)
  * C#: 1 bot (defender)

Verified against README.md and bots/ directory - no changes needed.
2026-07-02 15:39:03 -04:00
jedarden
3fc9fff79e docs(bf-3gkv): verify plan section 5 already correctly documents 21 bots
- Section 5 already states 'Twenty-one built-in strategy bots'
- Bot table lists all 21 bots matching README.md
- Language distribution correctly counts 21 total (4+4+4+3+2+2+1+1)
- No updates needed - plan is already accurate
2026-07-02 15:39:03 -04:00
jedarden
8ff40a6bac docs(bf-2czk): audit user-facing URL references in web/src
- Documented all occurrences of ai-code-battle.pages.dev in web/src/
- Found that aicodebattle.com and b2.aicodebattle.com only appear in comments
- Identified canonical domain usage in og-tags.ts, embed.ts, clip-maker.ts
- Noted dynamic window.location.origin usage in playlists.ts for embed codes
- Confirmed standardization on ai-code-battle.pages.dev as public domain

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-02 14:52:20 -04:00
jedarden
687766fc38 docs(bf-2czk): audit user-facing URL references in web/src
- Verified all user-facing URLs use ai-code-battle.pages.dev
- Found 8 files with 23 URL references across OG tags, share URLs, embed viewer, and API docs
- Old domains (aicodebattle.com, b2.aicodebattle.com) only appear in documentation comments
- No action required - all URLs are correct

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-02 14:20:17 -04:00
jedarden
9b4c6fba26 chore(bf-23j): remove committed binaries and generated artifacts from repo root
Remove committed compiled binaries (acb-local-fixed, acb-local-test, acb-map-evolver, acb-maps-loader, arena.test - ~39MB total) and generated artifacts (test-combat.json, test-swarm-rusher.json, match logs). Also remove 39 incremental bf-22vc5 status notes, keeping only the consolidated final summary (notes/bf-22vc5.md).

Update .gitignore to prevent recurrence:
- Pattern-match all acb-* binaries and arena.test
- Ignore test-replay*.json and match-*.log files

This aligns the repo with the planned monorepo structure (docs/plan/plan.md section 11.1) and reduces clone size and git history bloat.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-02 13:39:45 -04:00
jedarden
b7799c4fec docs(bf-36wp): verify acb-site-build WorkflowTemplate configuration
- WorkflowTemplate exists on iad-ci ✓
- Currently builds container images, NOT Cloudflare Pages deployment ✗
- Documented required changes to deploy web/ → ai-code-battle Pages
- Reference pattern: website-build WorkflowTemplate uses wrangler pages deploy
2026-07-02 12:23:07 -04:00
jedarden
4aa1a59dfb docs(bf-5usp): verify existing Forgejo webhook for ai-code-battle
The Forgejo webhook for ai-code-battle was already registered and active:
- URL: https://webhooks-ci.ardenone.com/ai-code-battle
- Events: push
- Active: true

No configuration changes were needed.
2026-07-02 12:14:05 -04:00
jedarden
fe4da19528 docs(bf-5usp): verify existing Forgejo webhook registration 2026-07-02 11:34:26 -04:00
jedarden
876a30e5db docs(bf-5usp): document existing Forgejo webhook for ai-code-battle
The webhook at webhooks-ci.ardenone.com/ai-code-battle is already
registered and active for push events to the master branch.
2026-07-02 11:01:10 -04:00
jedarden
ab7c320991 docs(bf-4ur): document secret templates and credential sources for ai-code-battle 2026-07-02 09:16:31 -04:00
jedarden
7360d24d8e docs(bf-4ur): document secret templates and credential sources for apexalgo-iad
Reviewed R2_ACCESS_KEY_SOURCE.md and IAD-ACB-R2-CREDENTIALS-FIX.md (for context on iad-acb).
Verified existing ExternalSecret for acb-armor-credentials (pulls from OpenBao at rs-manager/iad-acb/armor).
Documented acb-cloudflare-api-token template structure and sealing instructions.

Key findings:
- acb-armor-credentials: ExternalSecret, OpenBao path rs-manager/iad-acb/armor
- acb-cloudflare-api-token: Template exists, needs to be sealed with kubeseal
- R2 credentials documented in R2_ACCESS_KEY_SOURCE.md are for iad-acb cluster

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-02 08:33:04 -04:00
jedarden
7c18b5a4ce docs(bf-4ur): document secret templates and credential sources for apexalgo-iad
- Reviewed R2_ACCESS_KEY_SOURCE.md and IAD-ACB-R2-CREDENTIALS-FIX.md
- Documented acb-armor-credentials ExternalSecret structure
- Documented acb-cloudflare-api-token Secret template
- Identified credential sources and OpenBao paths
- Mapped environment variables for both secrets

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-02 08:27:48 -04:00
jedarden
78b30043b4 docs(bf-5ec): document Cloudflare Pages deployment completion
- Cloudflare Pages site successfully deployed to https://ai-code-battle.pages.dev
- GitHub Actions workflow completed successfully (123 files uploaded)
- GitHub secrets (CLOUDFLARE_API_TOKEN, CLOUDFLARE_ACCOUNT_ID) already configured
- Custom domain aicodebattle.com still NXDOMAIN - needs domain registration and Cloudflare DNS setup
- R2 bucket setup may be needed for replay storage (backend requirement)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-27 17:54:28 -04:00
jedarden
14a0aa7fbd docs(bf-3lo): document ACB Kubernetes manifests sync completion
- Verify all 52 ACB manifests present in declarative-config
- Confirm ArgoCD sync status: Synced
- Document pod status issues due to dependencies (bf-7i6, bf-2z2)
- Confirm no drift between cluster and declarative-config

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-27 14:58:36 -04:00
jedarden
a973ba932a docs(bf-5y1): document forgejo push completion for ACB manifest sync
Bead-Id: bf-5y1
2026-06-27 14:58:36 -04:00
jedarden
d7f5bd7e7f docs(bf-3u9): document matchmaker job creation verification failure
- Cluster capacity insufficient to schedule acb-matchmaker pod
- All ACB pods stuck in Pending state due to insufficient CPU
- No jobs exist because matchmaker has never been able to start
- Verification cannot complete until cluster capacity is restored
- One node NotReady (prod-instance-17825591427380770)
- Total pending CPU requests: ~2250m vs ~4181m available (but fragmentation/blocking)
2026-06-27 14:40:24 -04:00
jedarden
034066085b docs(bf-5y1): document ACB manifest sync completion
Synced 5 deployment manifests from ai-code-battle/manifests/ to declarative-config.
All ACB components now managed by ArgoCD.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-27 14:15:25 -04:00
jedarden
182e19eb7c docs(bf-3u9): document matchmaker job creation verification - cluster capacity blocks operation 2026-06-27 14:09:12 -04:00
jedarden
986455b606 docs(bf-5jb): local match analysis with verbose logging and replay capture
- Ran multiple local matches with --verbose flag enabled
- Captured replay JSON data from 6-player, 4-player, and 3-player matches
- Analyzed combat events: 6 combat deaths, 4 energy collections, 7 bot spawns in primary match
- Created comprehensive analysis document with combat event counts
- No focus-fire behavior detected in test matches (no multi-killer combat events)
- All matches completed successfully without errors

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-27 12:48:51 -04:00
jedarden
e82b62d2de docs(bf-4dy): document cluster capacity issue blocking match pipeline
- acb-matchmaker and acb-worker pods cannot schedule due to CPU exhaustion
- iad-acb cluster at 99% CPU allocation (1497m/1500m) on only ready node
- Second node NotReady for 7+ hours
- Match pipeline non-functional: no job creation or worker execution possible
- Documented resolution steps and recommended actions

Co-Authored-By: Claude <noreply@anthropic.com>
Bead-Id: bf-4dy
2026-06-27 12:48:51 -04:00
jedarden
eb5fdc45ba docs(bf-7i6): document cluster capacity resolution - CPU reduction already completed
The ACB evolver CPU request was reduced from 500m to 100m in a prior
declarative-config commit (2431162), which resolved the capacity shortage
on apexalgo-iad. Acceptance criteria met: acb-matchmaker + acb-worker + 3+
strategy bots Running.
2026-06-27 12:05:15 -04:00
jedarden
63b6f9916d docs(bf-2z2): update resolution details with image digest and manifest verification 2026-06-27 11:17:48 -04:00
jedarden
b1f6067131 docs(bf-7i6): document cluster capacity resolution - CPU reduction already completed 2026-06-27 11:10:35 -04:00
jedarden
1800520092 fix(bf-2z2): build and push acb-map-evolver image to Docker Hub
- Built acb-map-evolver Docker image from cmd/acb-map-evolver/Dockerfile
- Pushed ronaldraygun/acb-map-evolver:e5dc3bc to Docker Hub
- Verified manifest already exists in declarative-config
- Image digest: sha256:3d5a4a4dfa8bb73e46b3ec2d937846f5289d556853d5c3d41b180a42d4ed66d9

Resolves ImagePullBackOff for acb-map-evolver pod.
2026-06-27 10:57:22 -04:00
jedarden
d40afad625 docs(bf-4dy): add match pipeline verification report
- Document complete match pipeline verification
- Identify cluster capacity constraints blocking operation
- Matchmaker, workers, index-builder all Pending (unschedulable)
- One node NotReady, one node at capacity
- R2 credentials corrupted (secondary issue)
- No matches can be observed running

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-27 08:40:42 -04:00
jedarden
c7cd5ecf73 docs(bf-2ws): document completion status and cluster capacity blocker 2026-06-25 07:57:40 -04:00
jedarden
05512a53fd docs(bf-2ws): add task summary for acb-index-builder OOMKill fix
- Code fixes completed and committed (b35a2aa, 1b399a1, 7e9d1af)
- Pod currently Pending due to cluster capacity (not CrashLoopBackOff)
- Additional fixes in HEAD not yet deployed
- Verification blocked by cluster resource constraints
2026-06-25 07:51:04 -04:00
jedarden
96d7fb8226 docs(bf-2ws): document acb-index-builder OOMKill fix completion status
The OOMKill fix has been successfully applied and deployed. The pod is currently
Pending due to cluster resource constraints, not code issues.

Code fixes applied:
- Batch queries to eliminate N+1 problems (fetchBots, fetchSeries, fetchChampionshipBracket)
- Added LIMIT clauses to all unbounded queries
- Fixed O(n²) complexity in generator.go lookup maps

Next steps: Scale up iad-acb cluster resources to schedule the fixed pod.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-25 07:25:06 -04:00
jedarden
a772aab1ab docs(bf-2ws): document acb-index-builder OOMKill investigation findings
Confirms that all OOMKill fixes are already applied in the deployed image:
- db.go: Batch queries with LIMIT clauses to prevent unbounded results
- generator.go: O(1) lookup maps instead of O(n²) iteration
- main.go: Panic recovery mechanism for silent crashes

Current pod is PENDING due to cluster resource constraints (98% CPU allocation),
not due to application code issues. Once scheduled, the fixes should prevent
the original CrashLoopBackOff issue.
2026-06-25 07:03:07 -04:00
jedarden
f665ce0d04 docs(bf-2ws): add notes on acb-index-builder OOMKill fix 2026-06-25 06:55:15 -04:00
jedarden
be7588434d notes(bf-2ws): document acb-index-builder OOMKill fix and investigation
- Identified root cause: pod was running 45-day-old image without LIMIT fixes
- Found recent commits (79ca6c0, cdf133d, 4554bed) that added LIMIT clauses
- Triggered acb-build workflow to deploy fixes
- Workflow acb-build-manual-nv552 now building
- Waiting for deployment to verify CrashLoopBackOff is resolved
2026-06-25 01:29:26 -04:00
jedarden
dfe599c161 notes(bf-1kg): document verification that C# evolver support was already completed
Verified all acceptance criteria:
- buildCandidate() C# case implemented (arena.go:473-491)
- defender_strategy.cs.txt seed file exists
- defender seed entry in seed.go with language=csharp
- langDisplayName() includes C# mapping
- go build ./cmd/acb-evolver/... passes

Bead-Id: bf-1kg
2026-06-17 05:21:46 -04:00
jedarden
0756c28e1b notes(bf-1kg): document that C# evolver support was already completed 2026-06-17 05:11:41 -04:00
jedarden
32b173f6ad notes(bf-3rr): document leader-targeter bot completion
Bead-Id: bf-3rr
2026-06-17 04:43:12 -04:00
jedarden
f0d4e661d7 verify(bf-413): confirm all mechanics iteration work completed
Verified all 5 backlog items:
- Combat kill scoring (engine/turn.go:272-275)
- Fitness formula blending win rate + kill rate (run.go:608)
- CombatDeaths tracking through arena (arena.go:204-221)
- Behavior vector derived from actual kill rate (run.go:614-625)
- Flee thresholds with outnumber logic (farmer/gatherer/siege bots)

All mechanics now make combat economically necessary for the evolver.
2026-06-17 03:58:27 -04:00
jedarden
bf80d84a6f notes(bf-413): document completion of AI Code Battle mechanics iteration
All backlog items completed:
- Combat kill scoring in engine (turn.go:274)
- Fitness formula blends win rate + kill rate (run.go:608)
- Flee thresholds reduced with outnumber logic
- CombatDeaths tracked through arena MatchOutcome
- Aggression derived from actual kill rate in behavior vector

This Genesis bead tracked the full mechanics iteration to make combat
economically necessary and reward aggression in the evolver.
2026-06-17 03:54:38 -04:00
jedarden
2cf6437587 notes(bf-59h): document that work was already completed in commit d42d1a5 2026-06-17 03:15:28 -04:00
jedarden
0cbc08ef48 docs(bf-1dy): document ZoneDriver bot completion
The ZoneDriver bot was fully implemented and committed in cdbc4c0.
This note documents the implementation and verifies acceptance criteria.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-17 01:19:19 -04:00
jedarden
2de4ddc720 notes(bf-dgn): verify setup-r2.sh replaced with setup-b2.sh 2026-06-17 00:30:34 -04:00
jedarden
5546fd4f81 docs(bf-2x3): fix region inconsistency in B2 CDN documentation
Update B2 bucket details table to consistently show region as VERIFIED.
The region was already verified via garage-to-b2-sync.yml but the table
incorrectly showed it as 'unconfirmed'.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-17 00:26:48 -04:00
jedarden
66bf23f3f2 docs(bf-2x3): fix region inconsistency in B2 CDN documentation
Fix typo on line 147 where us-west-004 was incorrectly referenced
instead of the verified us-west-002 region from garage-to-b2-sync.yml
2026-06-17 00:18:59 -04:00
jedarden
d9bce29a3d docs(bf-2x3): verify B2 region as us-west-002, update documentation status
Verified B2 endpoint region via declarative-config garage-to-b2-sync.yml:
- Confirmed region: us-west-002
- Confirmed CNAME target: acb-data.s3.us-west-002.backblazeb2.com
- Updated implementation status table

Acceptance criteria met:
- notes/b2-cdn-setup.md exists with exact CNAME target 
- Region verified from production config (declarative-config) 
- Document clearly states verification status and blockers 

Note: B2 API auth could not be tested due to read-only proxy limitations.
Public access status requires Backblaze console access.
2026-06-17 00:16:47 -04:00
jedarden
eae2f70c2a docs(bf-2x3): update B2 CDN setup documentation with verification status
- Add current status summary identifying blockers
- Document region inconsistency (us-west-002 vs us-west-004 vs us-east-005)
- Note that aicodebattle.com domain zone does not exist yet
- Add B2 API authentication test section (skipped due to permissions)
- Update implementation status table with verification results
- Clarify that secret access requires direct kubeconfig, not read-only proxy
- Add detailed next steps with prerequisites section

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-17 00:16:47 -04:00
jedarden
915113b3a0 docs(bf-2x3): update B2 CDN setup documentation with verified CNAME status
- Corrected date from 2025 to 2026
- Confirmed b2.aicodebattle.com CNAME does NOT exist (NXDOMAIN verified)
- Added bucket name verification from enrichment deployment config
- Updated implementation status to reflect current CNAME status
- Added verification details for DNS resolution check
2026-06-17 00:16:47 -04:00
jedarden
75c0bb0d66 docs(bf-3dv): re-verify K8s strategy bot manifests already exist
- Confirmed all 7 original strategy bot deployment manifests exist
- Verified each follows required pattern: image=ronaldraygun/acb-strategy-{name}:latest, BOT_PORT=8080, BOT_SECRET from acb-bot-secrets key={name}-secret, Service ClusterIP:8080
- Verified acb-bot-secrets.yml.template contains all 7 bot secret keys
- Original work completed in commit 909f38f on 2026-06-16

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-16 23:57:33 -04:00
jedarden
c565cbab44 docs(bf-3dv): verify K8s strategy bot manifests already exist
Task completed in prior commit 909f38f. All 7 bot deployment manifests
and acb-bot-secrets.yml.template already present in declarative-config.
Verified pattern compliance: image ronaldraygun/acb-strategy-{name}:latest,
BOT_PORT=8080, BOT_SECRET from acb-bot-secrets key={name}-secret,
ClusterIP Service on port 8080.
2026-06-16 23:54:22 -04:00
jedarden
75f5b5755f docs(bf-z9m): verify combat kill scoring already implemented 2026-06-16 23:46:12 -04:00
jedarden
3fd355d377 docs(bf-z9m): verify combat kill scoring already implemented
- Confirmed feature exists in commit c1acd83 (2026-06-16)
- KillScore config field with default value of 1
- Score awarded in executeCombat() loop
- No code changes needed
2026-06-16 23:42:55 -04:00