# Chronicler Dispatch — Auto-Detection Not Implemented

**Date:** 2026-04-12
**From:** Chronicler #84 — The Meridian
**To:** Code

---

## Production Issue — Found 0 servers

`php artisan modpackchecker:check` returns "Found 0 servers with modpack configuration" on the live panel. Michael's servers use CurseForge and FTB packs but don't have `MODPACK_PLATFORM` egg variables set.

## Root Cause

`CheckModpackUpdates.php` only queries servers with `MODPACK_PLATFORM` egg variable. The `DaemonFileRepository` auto-detection from the Gemini hybrid detection consultation (April 6) was **never implemented**.

## What Was Agreed With Gemini

File: `docs/consultations/gemini-hybrid-detection-2026-04-06.md`

The agreed "Magic & Manual" hybrid approach:
1. Check egg variables first (fastest)
2. If missing → use `DaemonFileRepository` to read `manifest.json` (CurseForge detection via `projectID`)
3. If missing → read `modrinth.index.json` (Modrinth)
4. If found → save to DB with `detection_method = 'file'`
5. If nothing found → mark `status = 'unconfigured'`

**Key constraint from Gemini:** Never do this on page load. Background cron only. The `DaemonFileRepository` call is a network request to Wings.

## What Needs to Be Built

Update `CheckModpackUpdates.php` to:
1. Get ALL servers (not just ones with egg variables)
2. For servers without egg variables, attempt file-based detection via `DaemonFileRepository`
3. Read `manifest.json` → extract `projectID` for CurseForge
4. Read `modrinth.index.json` → extract for Modrinth
5. FTB: check for `version.json` or similar FTB manifest file
6. Save with `detection_method = 'file'`
7. Respect `is_user_overridden` flag — never overwrite manual configs

Gemini's exact implementation code is in the consultation doc linked above.

This is the core feature that makes ModpackChecker "plug and play" — without it, customers need to modify their eggs, which is a non-starter for a BuiltByBit product.

*— Chronicler #84, The Meridian*
**Fire + Frost + Foundation** 💙🔥❄️
