# Agent - Open Items Only keep unfinished Agent work here. ## Active - retention refinement for local backups/checkpoints - runtime install verification improvements - catalog hash validation - runtime removal / upgrade handling - runtime update process for dev containers - PATH normalization - shell profile consistency - runtime PATH injection - graceful shutdown verification - process reattachment on agent restart - SSH server install in dev provisioning - structured logging for Loki - `provisioningComplete` state surfacing in `/status` - game/dev template cleanup: remove `node-exporter`, keep Alloy preinstalled, and keep `/etc/default/alloy` fixed to `/etc/alloy/config.alloy` on port `12345` - Alloy config label cleanup for game/dev containers: keep the required label contract minimal and consistent with dashboards/discovery (`vmid`, `instance`, `container_type`, optional metadata) and remove redundant labels if they add no value - verify automatic Alloy config refresh path on metadata changes after initial `POST /config` ## Cleanup / consolidation priorities - fold Forge + NeoForge installer flow into one shared helper without changing external behavior - fold devcontainer runtime installers into a shared helper with thin per-runtime wrappers - split `internal/http/agent.go` by responsibility without changing package/API shape - add only small concrete HTTP helpers for repeated method/config/JSON response patterns - fold repeated addon/config checks into one helper such as `HasAddon(...)` - stop tracking runtime-generated files if they are not intentionally versioned - keep websocket library migration separate from the first cleanup wave; only revisit after behavior-preserving dedupe/split work is complete ## Cleanup rule - prefer behavior-preserving folding over broad refactors - merge repeated flows, not concepts - reduce local complexity and file sprawl before introducing new abstractions - keep helpers small and concrete - treat Go/runtime/toolchain upgrades as separate validation work, not part of cleanup-only changes ## Clarified boundary - do not add agent-side remote/offsite backup sync if PBS/platform layer is the intended durability path - agent backup scope is local, app-aware rollback ## Verify before re-opening - readiness-aware start/restart unification - guarded operation locking - crash recovery path consolidation - local Minecraft backup CRUD - pre-restore checkpoint hardening - code-server desired-state reconciliation during dev provisioning - code-server manual start endpoint uses service start path, not installer path - live backup/restore validation on real Minecraft servers - current Minecraft runtime provisioning split (`vanilla` internal profile vs normal `fabric`) and Forge/NeoForge first-start handling ## Not Agent-owned - API response-shape normalization for frontend consumers - portal UX/polish - PBS/offsite backup strategy