From 2e22d2836591ce4193ccc20e6e062ca960a1fbfc Mon Sep 17 00:00:00 2001 From: jester Date: Sun, 22 Feb 2026 18:18:58 +0000 Subject: [PATCH] docs: update open threads with Feb 22 state --- OPEN_THREADS.md | 75 ++++++++++++++++++++++++++++++++++--------------- 1 file changed, 52 insertions(+), 23 deletions(-) diff --git a/OPEN_THREADS.md b/OPEN_THREADS.md index 777ca5a..cb06eb1 100644 --- a/OPEN_THREADS.md +++ b/OPEN_THREADS.md @@ -11,38 +11,66 @@ This document tracks **known open questions and deferred decisions**. - ✅ Customer isolation (API + frontend) - ✅ Agent update system (versioned, hash-verified) - ✅ Minecraft player presence (agent-sourced) -- ✅ Forge startup race condition -- ✅ Prometheus SD schema alignment +- ✅ Game telemetry router separation (`/api/game/*`) +- ✅ 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) -- Reduce remaining visual noise in game console -- Confirm final placement/behavior of player list (inline vs overlay) -- Lock icon sizing + metric density -- Final accessibility contrast pass +### API: proxy the new agent capabilities +- Add game-mod endpoints behind auth + ownership: + - `GET /api/game/servers/:vmid/mods` + - `POST /api/game/servers/:vmid/mods/install` + - `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. 5–10s) -### Metrics & Observability -- Decide on caching strategy for metrics API (Redis vs in-process) -- Determine long-term retention strategy (Prometheus vs downsampling) -- Admin-only Grafana dashboards (internal) +### Artifacts: Modrinth / NeoForge supply-chain workflow +- Define a **local-first** artifact ingestion workflow: + - detect → pending → verified → active → deprecated +- Decide Phase 1 scope: + - curated mod list vs modpack-first + - whether to ingest only Modrinth + NeoForge initially +- Standardize loader naming contracts: + - `minecraft/neoforge//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) -- Stress-test agent update under load -- Define safe limits for agent restart frequency +- Stress-test agent update checks under load (notify/auto modes) +- 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) -- Mods/runtime badges (Paper / Fabric / Forge) -- World/map visualization (Minecraft-specific, future phase) -- Player detail views (separate surface, not console) +## Still Open (Polish / Phase 2) + +### Console UI +- 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 - Grafana iframe embedding for customers - Per-player stats in the main console +- Arbitrary mod uploads without scanning/sandboxing