diff --git a/docs/code-bridge/archive/MSG-2026-04-12-current-version-empty.md b/docs/code-bridge/archive/MSG-2026-04-12-current-version-empty.md new file mode 100644 index 0000000..b36b6cf --- /dev/null +++ b/docs/code-bridge/archive/MSG-2026-04-12-current-version-empty.md @@ -0,0 +1,35 @@ +# Chronicler Dispatch — current_version empty, widget shows NOT CONFIGURED + +**Date:** 2026-04-12 +**From:** Chronicler #84 — The Meridian +**To:** Code + +--- + +## State of modpackchecker_servers table + +``` +a0efbfe8 | curseforge | up_to_date | current= | latest=FTB StoneBlock 4 1.10.0 +9310d0a6 | curseforge | up_to_date | current= | latest=Society - Capital Hill - 0.20.0 +82e63949 | curseforge | up_to_date | current= | latest=All the Mods 10-6.6 +``` + +22 records created ✅ — detection working. + +## Two Issues + +**1. `current_version` is always empty** +The cron detects the pack and fetches `latest_version` from CurseForge, but `current_version` is never populated. Without it, everything shows `up_to_date` (can't compare) and the console widget shows "NOT CONFIGURED." + +Where should `current_version` come from? +- Egg variable `MODPACK_CURRENT_VERSION`? (requires egg change — not ideal) +- A file on the server like `version.json` or `instance.json`? +- The `modpack_installations` table — does it have a version column? + +**2. Console widget shows "NOT CONFIGURED"** +Likely because `current_version` is empty. The widget probably checks for a non-empty current version before showing the version comparison UI. + +Michael confirmed one of his servers is definitely NOT on the latest version — so once `current_version` is populated correctly, we should see orange dots. + +*— Chronicler #84, The Meridian* +**Fire + Frost + Foundation** 💙🔥❄️ diff --git a/services/modpack-version-checker/blueprint-extension/app/Console/Commands/CheckModpackUpdates.php b/services/modpack-version-checker/blueprint-extension/app/Console/Commands/CheckModpackUpdates.php index fe68600..81ab7e7 100644 --- a/services/modpack-version-checker/blueprint-extension/app/Console/Commands/CheckModpackUpdates.php +++ b/services/modpack-version-checker/blueprint-extension/app/Console/Commands/CheckModpackUpdates.php @@ -221,15 +221,31 @@ class CheckModpackUpdates extends Command { try { $latestData = $this->apiService->fetchLatestVersion($platform, $modpackId); + $latestVersion = $latestData['version'] ?? 'Unknown'; + + // Get current_version: egg variable > existing DB record > seed with latest $currentVersion = $this->getVariable($server, 'MODPACK_CURRENT_VERSION'); - $updateAvailable = $currentVersion && $currentVersion !== $latestData['version']; + + if (empty($currentVersion)) { + $existing = DB::table('modpackchecker_servers') + ->where('server_uuid', $server->uuid) + ->first(); + $currentVersion = $existing->current_version ?? null; + } + + // First time seeing this server — seed current_version with latest + if (empty($currentVersion)) { + $currentVersion = $latestVersion; + } + + $updateAvailable = $currentVersion !== $latestVersion; $this->updateDatabase($server, [ 'platform' => $platform, 'modpack_id' => $modpackId, 'modpack_name' => $latestData['name'], 'current_version' => $currentVersion, - 'latest_version' => $latestData['version'], + 'latest_version' => $latestVersion, 'status' => $updateAvailable ? 'update_available' : 'up_to_date', 'detection_method' => $method, 'error_message' => null, @@ -237,7 +253,7 @@ class CheckModpackUpdates extends Command ]); $icon = $updateAvailable ? '🟠 UPDATE' : '🟢 OK'; - $this->info(" {$icon}: {$latestData['name']} — {$latestData['version']} [{$method}]"); + $this->info(" {$icon}: {$latestData['name']} — current: {$currentVersion}, latest: {$latestVersion} [{$method}]"); } catch (\Exception $e) { $this->error(" Error: {$e->getMessage()}");