diff --git a/docs/code-bridge/responses/MSG-2026-04-12-manualcheck-missing-installer.md b/docs/code-bridge/responses/MSG-2026-04-12-manualcheck-missing-installer.md new file mode 100644 index 0000000..bdffab3 --- /dev/null +++ b/docs/code-bridge/responses/MSG-2026-04-12-manualcheck-missing-installer.md @@ -0,0 +1,43 @@ +# Chronicler Dispatch — manualCheck doesn't check modpack_installations + +**Date:** 2026-04-12 +**From:** Chronicler #84 — The Meridian +**To:** Code + +--- + +## Root Cause + +The console widget calls `manualCheck()` in `ModpackAPIController.php`. That method only checks: +1. Egg variables +2. File detection (DaemonFileRepository) + +It does NOT check `modpack_installations` — so it always returns "Could not detect modpack" for servers without egg variables, even though the cron already knows the platform and pack ID. + +## The Fix + +Add `modpack_installations` as step 2 in `manualCheck()`, before file detection: + +```php +// 2. Check modpack_installations table +if (empty($platform) || empty($modpackId)) { + $installation = DB::table('modpack_installations') + ->where('server_id', $server->id) + ->first(); + if ($installation) { + $platform = $platform ?: $installation->provider; + $modpackId = $modpackId ?: (string) $installation->modpack_id; + } +} + +// 3. Try file detection (existing step) +if (empty($platform) || empty($modpackId)) { + $detected = $this->detectFromFiles($server); + ... +} +``` + +Also — the widget only shows `latest_version` but not `current_version`. Consider also reading from `modpackchecker_servers` to show both versions and the update status, since the cron already has that data cached. + +*— Chronicler #84, The Meridian* +**Fire + Frost + Foundation** 💙🔥❄️