Detection priority in manualCheck(): 1. Egg variables 2. modpack_installations table (NEW) 3. DaemonFileRepository file scan 4. Cached cron data from modpackchecker_servers (NEW) Also returns current_version and update_available in response so the console widget can show version comparison. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1.4 KiB
1.4 KiB
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:
- Egg variables
- 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:
// 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 💙🔥❄️