docs: add file browser as next major feature, close mod lifecycle thread
This commit is contained in:
parent
be79b5e43c
commit
a589cd8702
@ -15,41 +15,53 @@ This document tracks **known open questions and deferred decisions**.
|
|||||||
- ✅ Agent Phase 1 mod management endpoints
|
- ✅ Agent Phase 1 mod management endpoints
|
||||||
- ✅ Agent process metrics endpoint
|
- ✅ Agent process metrics endpoint
|
||||||
- ✅ Minecraft readiness probe + restart race mitigation (initial)
|
- ✅ Minecraft readiness probe + restart race mitigation (initial)
|
||||||
|
- ✅ Modrinth resolver + full mod lifecycle (install / enable / disable / delete)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Still Open (Phase 1 / Go-to-market)
|
## Still Open (Phase 1 / Go-to-market)
|
||||||
|
|
||||||
### API: proxy the new agent capabilities
|
### File Browser (Next Major Feature)
|
||||||
- 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)
|
|
||||||
|
|
||||||
### Artifacts: Modrinth / NeoForge supply-chain workflow
|
Planned endpoints:
|
||||||
- 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/<mc_version>/neoforge-installer.jar` (Phase 1)
|
|
||||||
- confirm similar conventions for Forge/Fabric installers
|
|
||||||
|
|
||||||
### Frontend: Mods UI (Phase 1)
|
**Agent:**
|
||||||
- Add "Mods" surface for game servers:
|
- `GET /game/files?path=`
|
||||||
- installed mods list (enabled/disabled)
|
- `GET /game/files/download?path=`
|
||||||
- enable/disable toggle
|
- `POST /game/files/upload?path=`
|
||||||
- remove mod
|
- `DELETE /game/files?path=`
|
||||||
- curated install flow (no arbitrary URLs)
|
- `PATCH /game/files` (rename)
|
||||||
- Decide if "upload custom mods" is Phase 1 or Phase 2:
|
|
||||||
- Phase 2 is preferred unless there is sandboxing/scanning/allowlist.
|
**API:**
|
||||||
|
- Mirror under `/api/game/servers/:id/files`
|
||||||
|
|
||||||
|
**Frontend:**
|
||||||
|
- Directory tree
|
||||||
|
- Upload
|
||||||
|
- Delete
|
||||||
|
- Download
|
||||||
|
- Restore deleted mods from `/mods-removed`
|
||||||
|
|
||||||
|
**Security requirements:**
|
||||||
|
- Hard-root to `serverRoot` — no escaping
|
||||||
|
- Prevent path traversal
|
||||||
|
- Enforce size limits on upload
|
||||||
|
- Auth + ownership required on all endpoints
|
||||||
|
|
||||||
|
### API: Error mapping refinement
|
||||||
|
- `"mod already exists"` → `409 Conflict` (currently returns `502`)
|
||||||
|
|
||||||
|
### API: Response corruption verification
|
||||||
|
- One early `curl` output appeared corrupted during mod install testing
|
||||||
|
- Reproduce cleanly with `curl -sS -D headers.txt -o body.txt ...` before portal wiring
|
||||||
|
|
||||||
|
### API: Process metrics proxy
|
||||||
|
- `GET /api/game/servers/:vmid/metrics/process`
|
||||||
|
- Decide caching shape (Redis keys + TTLs): likely low TTL (5–10s)
|
||||||
|
|
||||||
|
### Artifacts: Vanilla MC versions
|
||||||
|
- Currently at 1.21.7; need to add 1.21.8 through 1.21.11
|
||||||
|
- Source: `piston-meta.mojang.com/mc/game/version_manifest_v2.json`
|
||||||
|
|
||||||
### Provisioning & scale validation
|
### Provisioning & scale validation
|
||||||
- Validate concurrent provisioning (multi-user, parallel creates)
|
- Validate concurrent provisioning (multi-user, parallel creates)
|
||||||
@ -68,10 +80,20 @@ This document tracks **known open questions and deferred decisions**.
|
|||||||
- Rollback behavior if a new agent fails health checks after update
|
- Rollback behavior if a new agent fails health checks after update
|
||||||
- Optional manifest signing (minisign/GPG)
|
- Optional manifest signing (minisign/GPG)
|
||||||
|
|
||||||
|
### Mod system hardening
|
||||||
|
- Deterministic Modrinth project ID persistence (replace heuristic installed-detection)
|
||||||
|
- Install queue for concurrent requests
|
||||||
|
- Auto-update detection logic
|
||||||
|
- Retention policy for `/mods-removed`
|
||||||
|
|
||||||
### Game platform roadmap
|
### Game platform roadmap
|
||||||
- Modpack-first install flow (server files + manifests)
|
- Modpack-first install flow (server files + manifests)
|
||||||
- Engine abstraction for additional games (Rust/Terraria/Valheim)
|
- Engine abstraction for additional games (Rust/Terraria/Valheim)
|
||||||
|
|
||||||
|
### Dev → Game pipeline
|
||||||
|
- See `docs/architecture/dev-to-game-artifact-pipeline.md`
|
||||||
|
- Blocked on: file browser complete + mod system stable
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Explicit Non-Goals (for now)
|
## Explicit Non-Goals (for now)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user