docs: append Feb 23 mod system operational summary

This commit is contained in:
jester 2026-02-28 22:27:49 +00:00
parent 84dd6fcee4
commit f259953e17

View File

@ -87,8 +87,42 @@ Chronological ledger of notable execution work. Keep this high signal; link to c
---
## 2026-02-23 — Mod System Now Operational
Full mod lifecycle implemented and confirmed end-to-end.
### What shipped
- Modrinth search integrated (`GET /api/game/mods/search`)
- Full install/list/enable/disable/delete routes live behind auth + ownership
- Agent host allowlist expanded to include `cdn.modrinth.com`
- Filename validation updated to allow `+` (required for Modrinth filenames like `sodium-neoforge-0.6.13+mc1.21.4.jar`)
- Engine metadata bug fixed: `engineType="neoforge"`, `engineVersion="1.21.4"` (was `"minecraft"` / `"neoforge-1.21.4"`)
- API → Agent payload contract corrected (field names and `source` field)
- Frontend: mod search drawer, installed panel, enable/disable/delete, toast notifications
### System state
- Full lifecycle via API: ✅
- Frontend search + install: ✅
- Enable/disable/delete: ✅
- Installed flag displayed: ✅
- Soft delete to `/mods-removed`: ✅
- No retention automation: intentional
- No install queue: intentional
- Filesystem authoritative: confirmed
### Known tradeoffs locked in
- No deterministic Modrinth project ID persistence (installed detection is heuristic)
- No DB tracking of mod state
- Soft delete is permanent until file browser enables manual restore
### Pending
- Response corruption investigation (one early curl output appeared malformed)
- API error mapping: `"mod already exists"``409` (currently `502`)
- Portal UI wiring for install flow
---
## Next session targets
- API: proxy agent mod + process metrics endpoints behind auth/ownership.
- Artifacts: add vanilla 1.21.81.21.11 jars + confirm NeoForge naming contract resolved.
- Frontend: add Mods UI surface using API proxy endpoints.
- zlh-artifactd: Phase 1 design (Modrinth resolver, no local mod storage).
- Reproduce and resolve response corruption with clean curl test
- Tighten API error mapping
- Begin file browser (agent + API + frontend) — see `OPEN_THREADS.md`