From 2e43511d870fcc2334d2e4304576773422219ca2 Mon Sep 17 00:00:00 2001 From: KoalaTrapLord <265133236+KoalaTrapLord@users.noreply.github.com> Date: Sat, 28 Mar 2026 14:34:50 -0400 Subject: [PATCH] feat: add validate_forge_config() startup check Validates FORGE_DIR at startup with clear warning if cardsfolder not found. Checks both forge-gui/res/cardsfolder and res/cardsfolder layouts. --- models/state.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/models/state.py b/models/state.py index 302ddb2..05b1fbc 100644 --- a/models/state.py +++ b/models/state.py @@ -32,6 +32,27 @@ class Config: CFG = Config() # Pre-populate from env so ASGI mode (uvicorn lab_api:app) works without main() CFG.anthropic_api_key = os.environ.get("ANTHROPIC_API_KEY", "") + + +def validate_forge_config() -> None: + """Warn clearly at startup if FORGE_DIR is misconfigured.""" + if not CFG.forge_dir: + log.warning("FORGE_DIR not set -- Forge card enrichment disabled. " + "Set FORGE_DIR to your forge-repo root or forge-gui directory.") + return + base = Path(CFG.forge_dir) + a = base / "forge-gui" / "res" / "cardsfolder" + b = base / "res" / "cardsfolder" + if not a.is_dir() and not b.is_dir(): + log.warning( + "FORGE_DIR=%s is set but cardsfolder not found at:\n" + " %s\n %s\n" + "Check that FORGE_DIR points to forge-repo root or forge-gui/.", + CFG.forge_dir, a, b + ) + else: + resolved = a if a.is_dir() else b + log.info("Forge cardsfolder confirmed at %s", resolved) CFG.ximilar_api_key = os.environ.get("XIMILAR_API_KEY", "") CFG.pplx_api_key = os.environ.get("PPLX_API_KEY", "")