From d726cf430e6372e0ae91e1fc85202607472b98c5 Mon Sep 17 00:00:00 2001 From: OpenSquared Date: Wed, 17 Jun 2026 14:55:42 +0200 Subject: [PATCH] =?UTF-8?q?fix:=20VPS=20fresh-DB=20bootstrap=20=E2=80=94?= =?UTF-8?q?=20sync=20OPENAI=5FAPI=5FKEY=20from=20env=20to=20DB=20at=20star?= =?UTF-8?q?tup=20+=20show=20countdown=20before=20first=20cycle?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - main.py startup: if DB has no openai_api_key but OPENAI_API_KEY env var is set, auto-save it so cycle trigger returns 200 instead of 400 - Config.tsx: move NextRunCountdown outside cs?.last_cycle block so it renders even when no cycle has run yet Co-Authored-By: Claude Sonnet 4.6 --- backend/main.py | 18 ++++++++++++++---- frontend/src/pages/Config.tsx | 10 ++++++---- 2 files changed, 20 insertions(+), 8 deletions(-) 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 && ( +
+
)}