Server Command Center: full build (REQ-2026-04-14)

New files:
- 139_server_config.sql — DB migration for short_name system
- 139_seed_server_config.js — auto-populates 17 servers from Pterodactyl
- src/services/uptimeKuma.js — Socket.IO direct (no npm wrapper)
- src/services/pterodactyl.js — power actions + console commands

Modified files:
- servers.js — 6 new POST routes (short-name, lock, createserver,
  delserver, power, console) + short_name-based channel detection
- _server_card.ejs — full rebuild with command center UI
- _matrix_body.ejs — refactored from 144 lines to 20 (uses partial)
- package.json — added socket.io-client

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Claude (Chronicler #83 - The Compiler)
2026-04-13 20:37:46 -05:00
parent a404410efd
commit d16a525ffc
9 changed files with 837 additions and 234 deletions

View File

@@ -2,7 +2,7 @@
**Last Updated:** 2026-04-13 18:10 CDT
## Current Focus
Rules mod config bug — iterating fixes for Otherworld (NC1, 1.20.1 Forge).
Server Command Center (REQ-2026-04-14) — Arbiter feature build.
## Session Summary (2026-04-13)
@@ -15,12 +15,18 @@ Rules mod config bug — iterating fixes for Otherworld (NC1, 1.20.1 Forge).
- CurseForge project page copy pending from Chronicler
### Rules Mod Config Bug — FIXED ✅
- v1.0.1: Added `ModConfigEvent.Loading` handler (symptom fix, not root cause)
- v1.0.2: Switched `ModConfig.Type.SERVER``COMMON` (config persists ✅)
- v1.0.3: Fixed 1.20.1 event bus registration, added section header warnings
- v1.0.4: Diagnostic build — revealed DIAG logs never fired
- v1.0.5: **Root cause found** — console `/rules` hit early return, never fetched from Discord. Fixed: console path now fetches async. DIAG logging kept for observability.
- **Status:** WORKING on Otherworld. All 6 builds at v1.0.5. Ready for CurseForge submission.
- v1.0.5: All 6 builds working. DIAG logging kept for observability.
- WORKING on Otherworld. Ready for CurseForge submission.
### Server Command Center — IN PROGRESS 🔧
- Migration: `139_server_config.sql` — server_config table with short_name system
- Seed: `139_seed_server_config.js` — auto-populates 17 servers from Pterodactyl API
- Services: `uptimeKuma.js` (Socket.IO direct), `pterodactyl.js` (power/commands)
- Routes: 6 new POST endpoints (set-short-name, lock, createserver, delserver, power, console)
- Views: `_server_card.ejs` rebuilt with full command center UI, `_matrix_body.ejs` refactored to use partial
- Discord detection: uses `short_name` from DB instead of broken slug derivation
- Partial channel creation: createserver only creates missing channels
- **Status:** Code complete, needs deploy testing. Chronicler needs to add `UPTIME_KUMA_USERNAME` and `UPTIME_KUMA_PASSWORD` to `.env`.
### Bridge Queue — CLEAR ✅
- All REQs have matching RES files