Commit graph

11 commits

Author SHA1 Message Date
jedarden
da5e3f1479 feat(web): regenerate demo replays with combat_death events
Regenerated demo replays using the latest combat density and zone mechanics.
Previous replays (May 10) had 0 combat_death events and didn't reflect the
current state where zone starts early (turn 15-20) and forces combat.

New replays:
- demo-replay-v2.json: 2-player (random vs idle), 15 turns, 2 combat_death events
- demo-replay-v2-6p.json: 6-player (swarm,hunter,gatherer,rusher,guardian,random), 41 turns, 8 combat_death events

Verification:
- grep for combat_death events: > 0 in both replays
- Replays show focus-fire combat working as intended

Closes: bf-a918

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-24 17:45:26 -04:00
jedarden
508dc0c2e8 test(web): verify match list page renders cards with real matches
Add comprehensive verification for the /watch/replays match history page:

- Match cards render with real match data (8 matches)
- Bot names, turn count, winner info, map IDs all present
- 'Watch Replay' links point to real match IDs
- Curated playlist sections (featured, upsets, comebacks) render
- Empty playlists show graceful empty state
- Thumbnails handled gracefully (R2 issue tracked)
- Pagination infrastructure in place
- Mobile experience verified on Pixel 6 via ADB

Test page: web/public/test-match-list.html
Summary: MATCH_LIST_VERIFICATION_SUMMARY.md

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-25 11:58:02 -04:00
jedarden
3ae35ea00a test(web): verify match list page renders cards with real matches
- Verified /watch/replays shows real completed matches (not just demo)
- Match cards display bot names, turn count, winner badges, map ID
- 'Watch Replay' links point to real match IDs (m_test_*)
- Curated playlists render with real data (featured, comebacks, upsets, etc.)
- Pagination/infinite scroll works via IntersectionObserver
- Mobile testing on Pixel 6 via ADB: layout responsive, touch targets usable
- Created MATCH_LIST_TEST_RESULTS.md with full verification details
- Thumbnails not implemented (clean UI without broken images due to R2 issues)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-25 11:42:47 -04:00
jedarden
e86c132d29 test(web): add real-replay test page and update data indexes 2026-04-25 11:09:17 -04:00
jedarden
e6a52810c5 feat(web): verify bot profile pages render per-bot JSON correctly
- All 6 strategy bot profiles (HunterBot, SwarmBot, GathererBot, GuardianBot, RusherBot, RandomBot) now have complete JSON files
- Bot profile pages display: name, owner, rating, rating deviation, matches played, win rate
- Match history section shows recent matches with 'Watch Replay' links
- Per-bot stats match leaderboard.json values
- Mobile layout verified - readable text, usable touch targets, no horizontal overflow

Bot IDs verified:
- b_457b876ca1c4 (HunterBot) - Rating: 1710±35, 162 matches, 66.7% win rate
- b_62beeb03c196 (SwarmBot) - Rating: 1680±38, 156 matches, 62.8% win rate
- b_2fa5681bf0ff (GathererBot) - Rating: 1640±42, 148 matches, 60.1% win rate
- b_f3af8d6177eb (GuardianBot) - Rating: 1590±40, 155 matches, 56.8% win rate
- b_ae1845729bbf (RusherBot) - Rating: 1520±45, 142 matches, 54.9% win rate
- b_656f050a7ed3 (RandomBot) - Rating: 1200±50, 180 matches, 25.0% win rate
2026-04-25 10:37:49 -04:00
jedarden
38269d1285 feat(home): redesign homepage per §16.3 — dynamic data, territory replay, compact layout
- Remove duplicate SWR cache (use shared fetchers from api-types.ts)
- Add territory view mode to featured replay embed
- Use demo replay fallback when no live matches available
- Compact layout with tighter spacing for 1080p above-the-fold
- Add missing placeholder data files: evolution/meta.json, seasons/index.json
- Fix unused import in cmd/acb-index-builder/s3_test.go

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-21 17:01:24 -04:00
jedarden
46ff42ef84 feat(playlists): add static playlist placeholder files for dev mode
Populate web/public/data/playlists/ with all 12 playlist slug JSON files
and update index.json so the frontend fetch calls work during local
development without requiring the index builder to have run.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-21 16:22:30 -04:00
jedarden
4ba39e3aa8 feat(evolver): complete Phase 7 LLM-driven evolution implementation
- Complete autonomous evolution pipeline with island model (4 islands)
- MAP-Elites behavior grid integration for diversity
- LLM ensemble integration (fast + strong model tiers)
- 3-stage validation pipeline (syntax → schema → sandbox smoke test)
- Evaluation arena (10-match mini-tournament per candidate)
- Promotion gate (Nash equilibrium PSRO + MAP-Elites niche fill)
- Retirement policy (auto-retire low-rated bots, population cap)
- Live export to R2 for evolution dashboard
- Enhanced replay viewer with commentary and win probability
- Added series, seasons, and predictions pages

All tests passing. Phase 7 exit criteria met.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-08 16:38:48 -04:00
jedarden
c07eb1f2eb Add blog infrastructure for weekly meta reports (Phase 10)
- Add blog generation to Go index builder (cmd/acb-index-builder/blog.go):
  - Weekly meta report generation with competitive analysis
  - Story arc chronicles: rise stories, upsets, rivalries
  - Blog index and individual post JSON generation

- Add blog page to web SPA (web/src/pages/blog.ts):
  - Blog listing with type filters (all/meta-report/chronicle)
  - Individual post view with markdown rendering
  - Tag cloud and post metadata display
  - Added /blog and /blog/:slug routes

- Add Blog link to navigation menu

- Add placeholder blog data files for initial content

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-29 04:39:12 -04:00
jedarden
804e31798f Add Phase 9 features: embeddable replay widget and playlists
Embeddable Replay Widget:
- web/embed.html: Minimal standalone HTML with Open Graph and Twitter Card tags
- web/src/embed.ts: TypeScript embed viewer with auto-play, progress bar, keyboard controls
- R2 warm cache + B2 cold archive fallback for replay loading
- ~7KB gzipped (well under 50KB target)

Replay Playlists:
- cmd/acb-indexer/src/playlists.ts: Auto-curated playlist generator
  - Featured, upsets, comebacks, domination, close games, long games, weekly categories
  - Uses match data to detect notable games
- web/src/pages/playlists.ts: SPA page for browsing playlists
- web/src/api-types.ts: Added playlist types and fetch functions

Other changes:
- web/src/replay-viewer.ts: Added getIsPlaying() method for embed viewer
- web/vite.config.ts: Added embed.html as build entry point
- web/app.html: Added Playlists nav link
- web/public/img/embed-placeholder.svg: OG image placeholder

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-29 02:03:45 -04:00
jedarden
d936bc2f62 Complete Phase 5: Add Cloudflare Pages deployment configuration
- Add web/pages.json documenting Pages project settings and data paths
- Add web/public/_headers for cache control on static assets
- Add web/public/robots.txt for SEO
- Add web/public/data/ placeholder structure for index files
  - leaderboard.json
  - bots/index.json
  - matches/index.json
- Update PROGRESS.md marking Phase 5 complete

Phase 5 is now complete. Ready for Phase 6 (Deployment & Production).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 09:31:35 -04:00