docs: update open threads with Feb 22 state

This commit is contained in:
jester 2026-02-22 18:18:58 +00:00
parent 95a6a853dd
commit 2e22d28365

View File

@ -11,38 +11,66 @@ This document tracks **known open questions and deferred decisions**.
- ✅ Customer isolation (API + frontend) - ✅ Customer isolation (API + frontend)
- ✅ Agent update system (versioned, hash-verified) - ✅ Agent update system (versioned, hash-verified)
- ✅ Minecraft player presence (agent-sourced) - ✅ Minecraft player presence (agent-sourced)
- ✅ Forge startup race condition - ✅ Game telemetry router separation (`/api/game/*`)
- ✅ Prometheus SD schema alignment - ✅ Agent Phase 1 mod management endpoints
- ✅ Agent process metrics endpoint
- ✅ Minecraft readiness probe + restart race mitigation (initial)
--- ---
## Still Open ## Still Open (Phase 1 / Go-to-market)
### Console UI (Final Polish) ### API: proxy the new agent capabilities
- Reduce remaining visual noise in game console - Add game-mod endpoints behind auth + ownership:
- Confirm final placement/behavior of player list (inline vs overlay) - `GET /api/game/servers/:vmid/mods`
- Lock icon sizing + metric density - `POST /api/game/servers/:vmid/mods/install`
- Final accessibility contrast pass - `PATCH /api/game/servers/:vmid/mods/:mod_id`
- `DELETE /api/game/servers/:vmid/mods/:mod_id`
- Add process metrics proxy:
- `GET /api/game/servers/:vmid/metrics/process`
- Decide caching shape (Redis keys + TTLs) for:
- mods list (agent already caches 5m internally)
- process metrics (likely low TTL, e.g. 510s)
### Metrics & Observability ### Artifacts: Modrinth / NeoForge supply-chain workflow
- Decide on caching strategy for metrics API (Redis vs in-process) - Define a **local-first** artifact ingestion workflow:
- Determine long-term retention strategy (Prometheus vs downsampling) - detect → pending → verified → active → deprecated
- Admin-only Grafana dashboards (internal) - Decide Phase 1 scope:
- curated mod list vs modpack-first
- whether to ingest only Modrinth + NeoForge initially
- Standardize loader naming contracts:
- `minecraft/neoforge/<mc_version>/neoforge-installer.jar` (Phase 1)
- confirm similar conventions for Forge/Fabric installers
### Provisioning & Scale ### Frontend: Mods UI (Phase 1)
- Add "Mods" surface for game servers:
- installed mods list (enabled/disabled)
- enable/disable toggle
- remove mod
- curated install flow (no arbitrary URLs)
- Decide if "upload custom mods" is Phase 1 or Phase 2:
- Phase 2 is preferred unless there is sandboxing/scanning/allowlist.
### Provisioning & scale validation
- Validate concurrent provisioning (multi-user, parallel creates) - Validate concurrent provisioning (multi-user, parallel creates)
- Stress-test agent update under load - Stress-test agent update checks under load (notify/auto modes)
- Define safe limits for agent restart frequency - Confirm safe limits for restart/backoff behavior
### Agent Hardening ---
- Rollback behavior if new agent fails health checks
- Optional manifest signing (GPG / minisign)
- Upgrade window coordination (future)
### Game-Specific Enhancements (Deferred) ## Still Open (Polish / Phase 2)
- Mods/runtime badges (Paper / Fabric / Forge)
- World/map visualization (Minecraft-specific, future phase) ### Console UI
- Player detail views (separate surface, not console) - Finalize player list UX (overlay vs inline)
- Final accessibility/contrast pass
### Agent hardening
- Rollback behavior if a new agent fails health checks after update
- Optional manifest signing (minisign/GPG)
### Game platform roadmap
- Modpack-first install flow (server files + manifests)
- Engine abstraction for additional games (Rust/Terraria/Valheim)
--- ---
@ -52,3 +80,4 @@ This document tracks **known open questions and deferred decisions**.
- Live chat overlays - Live chat overlays
- Grafana iframe embedding for customers - Grafana iframe embedding for customers
- Per-player stats in the main console - Per-player stats in the main console
- Arbitrary mod uploads without scanning/sandboxing