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() {