internal/db/migrations/007_arena.sql— Arena tables migration (arena_matches, arena_participants, arena_elo)internal/ssh/arena.go— Arena command with all subcommands + ELO calculationinternal/ssh/arena_test.go— Comprehensive tests for ELO calculation and match lifecycletemplates/arena/web-exploit/scenario.json— Web exploit arena scenariotemplates/arena/web-exploit/setup.sh— Web exploit setup scripttemplates/arena/code-review/scenario.json— Code review arena scenario
internal/db/models.go— Added ArenaMatch, ArenaParticipant, ArenaELO modelsinternal/db/queries.go— Added all arena CRUD + ELO query methods (14 methods)internal/ssh/commands.go— Added arena to help text
- arena create-match — Create a match with scenario and agent count
- arena join — Join an existing match (auto-starts when full)
- arena spectate — Read-only view of match status and scores
- arena leaderboard — Top 25 ELO rankings with W/L/D stats
- arena list — Active (waiting/running) matches
- arena history — User's past match results
- ELO system — Standard ELO with K=32, 1200 starting rating, pairwise winner-vs-loser updates
- Arena scenarios — JSON-defined scenarios in templates/arena/
templates/geoffrussy/template.json— AI dev orchestrator templatetemplates/battlebussy-agent/template.json— Autonomous CTF agent templatetemplates/ragussy/template.json— Self-hosted RAG chatbot templatetemplates/swarmussy/template.json— Multi-agent orchestration template
- Each template has metadata (name, description, repo, ports, post-create script)
- Templates define language, framework, and dependencies
- Compatible with
new --template=<name>flow
internal/ssh/community.go— Community command showing:- Ussyverse info box with description, credits, links
- User stats: VMs (running/total), arena rating + rank, record (W/L/D), member since, trust level
- Ussyverse projects directory with template hints
PROGRESS-F.md— This file
internal/ssh/commands.go— Added "USSYVERSE" section to help text withcommunitycommandinternal/ssh/shell.go— UpdatedprintWelcome()with Ussyverse branding line and community command hintinternal/ssh/gateway_test.go— Updated reconnect test to check for "welcome to the ussyverse" (registration-specific) instead of just "ussyverse" (now also in welcome)
- community command — Displays Ussyverse info, links (ussy.host, Discord, GitHub), user stats, projects
- Welcome branding — "~ ussycode ~ part of the ussyverse | https://ussy.host" in welcome message
- Help text — New USSYVERSE section in help output
- Links: ussy.host, Discord (discord.gg/6b2Ej3rS3q), GitHub (github.com/mojomast)
- Credits: Kyle Durepos & shuv
go build ./... ✅ (zero errors)
go test ./... ✅ (all 11 test packages pass)
| File | Action | Purpose |
|---|---|---|
internal/db/migrations/007_arena.sql |
Created | Arena DB tables |
internal/db/models.go |
Modified | Arena models |
internal/db/queries.go |
Modified | Arena query methods |
internal/ssh/arena.go |
Created | Arena command + ELO |
internal/ssh/arena_test.go |
Created | Arena tests |
internal/ssh/community.go |
Created | Community command |
internal/ssh/commands.go |
Modified | Help text for arena + community |
internal/ssh/shell.go |
Modified | Ussyverse welcome branding |
internal/ssh/gateway_test.go |
Modified | Fixed reconnect test for new branding |
templates/arena/web-exploit/scenario.json |
Created | Arena scenario |
templates/arena/web-exploit/setup.sh |
Created | Arena setup script |
templates/arena/code-review/scenario.json |
Created | Arena scenario |
templates/geoffrussy/template.json |
Created | Agent template |
templates/battlebussy-agent/template.json |
Created | Agent template |
templates/ragussy/template.json |
Created | Agent template |
templates/swarmussy/template.json |
Created | Agent template |
PROGRESS-F.md |
Created | This file |