diff --git a/backend/main.py b/backend/main.py index 33404c7..fb1d3ba 100644 --- a/backend/main.py +++ b/backend/main.py @@ -22,15 +22,25 @@ app.add_middleware( @app.on_event("startup") def startup(): + import logging + _log = logging.getLogger(__name__) + init_db() + # Clean up cycles that were left in 'running' state by a previous crashed process stale = cleanup_stale_running_cycles() if stale: - import logging - logging.getLogger(__name__).warning( - f"[Startup] Cleaned up {stale} stale 'running' cycle(s) — server likely reloaded mid-cycle" - ) + _log.warning(f"[Startup] Cleaned up {stale} stale 'running' cycle(s) — server likely reloaded mid-cycle") + + # Sync OpenAI key: env var → DB (useful on fresh VPS deployments) key = get_config("openai_api_key") or "" + if not key: + env_key = os.environ.get("OPENAI_API_KEY", "") + if env_key: + from services.database import save_config + save_config("openai_api_key", env_key) + key = env_key + _log.info("[Startup] OPENAI_API_KEY synced from environment to DB config") if key: os.environ["OPENAI_API_KEY"] = key # Seed built-in patterns into DB (idempotent) diff --git a/frontend/src/pages/Config.tsx b/frontend/src/pages/Config.tsx index 67157f0..ab46311 100644 --- a/frontend/src/pages/Config.tsx +++ b/frontend/src/pages/Config.tsx @@ -720,7 +720,7 @@ export default function Config() { {cs?.last_cycle && ( -
+
Dernier cycle : {cs.last_cycle.started_at?.slice(0, 16)} UTC @@ -732,9 +732,11 @@ export default function Config() { Géo: {cs.last_cycle.geo_score} {cs.last_cycle.dominant_regime}
- {cs.enabled && cs.next_run_at && !cs.running && ( - - )} +
+ )} + {cs?.enabled && cs?.next_run_at && !cs?.running && ( +
+
)}