Conversation
…r-telemetry Remove deprecated warrior telemetry plugin
chore: streamline developer workflows
Adds a deploy script that replaces the manual panel upload workflow. Developers can target their own Fast Dev server by name via .env.local. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Bump .nvmrc from 20.9.0 to 20.19.0 to fix CI (@noble/ciphers requires >= 20.19.0) - Add config.yml sync: writes CONVEX_SITE_URL and CONVEX_HTTP_SECRET to the server's beacon config after upload - Add detailed setup instructions for getting API keys and Convex settings Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The Next.js build fails at static generation when ConvexReactClient has no URL. Set the env var at the job level so build:web succeeds. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…automation feat: Beacon deploy automation with server name resolution
…Beacon plugin Phase 0 — Beacon rearchitecture: - Split MatchPollingService (744→393 lines) into MatchInitializer, MatchWorldManager - Remove all legacy fallback code from MatchPollingService and MatchEventListener - Wire EntityDamageByEntityEvent through BaseGame.handleDamage() Phase 0.5 — Public /docs route: - Add 10-page docs site at /docs with sidebar navigation - Covers getting started, bot API reference, game rules (PvP, Bridge, CTF), tournaments, and FAQ - Add "Docs" link to landing page navbar Phase 1 — Player SDK: - Create @blockwarriors/sdk with Strategy pattern API wrapping BotClient - Add starter-bot template with single-bot and multi-bot launchers - Create bot-client and game-tests packages Phase 2 — Bridge game (1v1): - Two platforms over void, build across, score by entering enemy goal zone - First to 5 wins, 5-minute time limit with sudden death Phase 3 — CTF game (4v4): - Flag pickup/carry/drop/capture/return mechanics - 80x80 arena with team bases and mid-field cover - 5-second respawn, 30-second disconnect grace period - First to 3 captures wins, 8-minute time limit - Update CTF config from 5v5 to 4v4 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…x match lifecycle Game tests: - Add forfeit-based test scenarios for PvP, Bridge, CTF (deterministic, <60s each) - Add tournament flow test verifying game_type propagation and token counts - Add process-level error handler for bot keepalive timeouts - All 4 tests pass: pvp-1v1 (37s), bridge-1v1 (49s), ctf-4v4 (102s), tournament-flow (24s) Arena building: - Add WorldEdit 7.4.0 dependency (provided scope) with SchematicLoader utility - BaseGame.loadArena() tries schematic first, falls back to programmatic generation - Catch NoClassDefFoundError when WorldEdit not installed on server - Improve Bridge arena (checkerboard floor, goal arches, pillars) - Reduce CTF arena from 80x80 to 50x50 with staggered player teleports - Add simple PvP arena platform at y=64 Tournament flow: - Add game_type field to tournaments schema - createTournament accepts gameType parameter (pvp, bridge, ctf) - createTournamentGame resolves "auto" matchType from tournament's game_type - Add Game Type selector to tournament creation UI - Fix hardcoded 'pvp' in tournament match detail page - Add winner_team_id support to match update API Match lifecycle fixes: - Fix match never finishing: Convex HTTP handler was passing undefined fields - Fix disconnect during countdown ignored: use hasEnded() instead of isActive() - Fix CTF both-teams-disconnect hanging forever: terminate match - Store team IDs on MatchManager for winner team resolution - Increase bot keepalive timeout to 180s Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Fixes CI lint failure: 'CodeBlock' is defined but never used. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Use explicit typed object instead of Record<string, unknown> to satisfy Convex mutation type constraints while still excluding undefined fields. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…tead) The node CI job doesn't have Java installed, so mvn test fails. The beacon CI job already runs the full Maven build with tests. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
All CI checks green. Merging to staging for manual verification of docs pages and tournament game type UI before promoting to main.
Use usePathname() to detect the current route and apply a Princeton Orange accent bar + tinted background to the active nav item, so users can immediately see which page they're on. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…bar-active-state feat: highlight active page in dashboard sidebar
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Promotes the
stagingbranch intomain. This is a major release covering game engine architecture, tournament system, developer experience overhaul, and new packages.Highlights
New Game Engine & Arena System (Beacon Plugin)
TestGame,EndGame,SetArena,SimulateDisconnect/Reconnect,TriggerObjectiveTournament System (Frontend + Backend)
tournaments.ts,tournamentMatches.ts, expandedteams.tsanduserProfiles.tsNew Packages
@packages/shared— shared TypeScript types, match status enums, HTTP response types, andgame-config.json(single source of truth for game constants across TS and Java)@packages/bot-client— Mineflayer bot client library@blockwarriors/sdk— Player SDK with starter bot template@packages/game-tests— End-to-end game test harness with scenario scripts (pvp-1v1, bridge-1v1, ctf-4v4, tournament-flow) and bot scripts (attack, forfeit, rush, defend)Bot Orchestrator (New App)
Docs Site (Frontend)
/docs— getting started, game rules (PvP, Bridge, CTF), bot API reference, tournament guide, FAQDocsLayoutClientDeveloper Experience & Setup Changes
.nvmrc) — required byminecraft-protocol.github/workflows/ci.yml) — runsnpm run validate, builds web, backend, bot-orchestrator, and Beacon (with Java 21).env.examplefiles added for all runtimes (root, next, backend, bot-orchestrator, beacon).editorconfig+.prettierrc.json+.prettierignore— consistent formatting across the monorepopackage.jsonscripts overhaul:dev:web,dev:backend,dev:bot-orchestratorfor targeted devbuild:web,build:backend,build:shared,build:bot-orchestrator,build:beaconvalidate= lint + typechecktest:beacon(Maven),test:http,test:gamecodegen:beacon— generates Java game config from shared JSONdeploy:beacon/deploy:beacon:dry-runformat:check/format:writescripts/deploy-beacon.mjs) — build, upload to Pterodactyl, sync config, restart serverscripts/generate-beacon-game-config.mjs) — generates Java constants frompackages/shared/constants/game-config.json@supabase/ssr,@supabase/supabase-js,supabaseCLI) removed in favor of Convexonboarding.md,contributing.md,stack.mdrewritten; newbeacon-deploy.md,match-system-architecture.md;supabase.mdremoved.gitignoreexpanded —.next/,dist/,target/,.env,.env.localturbo.jsonupdated for new build targetsBackend (Convex)
tournamentMatches.tsandtournaments.tsmodulesteams.ts(team CRUD, invites, roster management)userProfiles.tsandtokens.tsNEXT_PUBLIC_CONVEX_URLadded to CI env for web buildseed.tsfor development dataSetup Changes for Developers
nvm install(reads.nvmrc)npm cito pick up new workspace packages and updated lockfile.env.examplenpm run codegen:beaconif working on the Beacon pluginTest Plan
npm run validatepasses locallynpm run buildsucceeds for all workspacesnpm run build:beacon/docs/*🤖 Generated with Claude Code