52 lines
1.5 KiB
Markdown
52 lines
1.5 KiB
Markdown
# Session Summary – February 23, 2026
|
||
## Mod System Now Operational
|
||
|
||
Full mod lifecycle implemented and confirmed end-to-end.
|
||
|
||
---
|
||
|
||
## What Shipped
|
||
|
||
### API
|
||
- 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 implemented
|
||
- Installed mods panel implemented
|
||
- Enable/disable/delete wired
|
||
- Toast notifications added
|
||
|
||
---
|
||
|
||
## 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 at Session End
|
||
|
||
- Response corruption investigation (one early curl output appeared malformed)
|
||
- API error mapping: `"mod already exists"` → `409` (currently `502`)
|
||
- Portal UI wiring for install flow
|