diff --git a/backend/app/main.py b/backend/app/main.py index 221cb8b..c544e6d 100644 --- a/backend/app/main.py +++ b/backend/app/main.py @@ -53,11 +53,24 @@ def bootstrap_users() -> None: db.close() +def bootstrap_stale_remote_actions() -> None: + db = SessionLocal() + try: + from app.services.host_remote_actions import clear_stale_running_remote_actions + + cleared = clear_stale_running_remote_actions(db) + for hostname in cleared: + logger.info("Stale remote action reset on startup: %s", hostname) + finally: + db.close() + + @asynccontextmanager async def lifespan(_app: FastAPI): logger.info("%s — application startup (version %s)", APP_VERSION_LABEL, APP_VERSION) bootstrap_api_key() bootstrap_users() + bootstrap_stale_remote_actions() stop_scan = asyncio.Event() scan_task: asyncio.Task | None = None diff --git a/backend/app/version.py b/backend/app/version.py index e799045..aa2ac9c 100644 --- a/backend/app/version.py +++ b/backend/app/version.py @@ -1,5 +1,5 @@ """Единый источник версии SAC (API, health, логи, OpenAPI).""" APP_NAME = "Security Alert Center" -APP_VERSION = "0.4.3" +APP_VERSION = "0.4.4" APP_VERSION_LABEL = f"{APP_NAME} v.{APP_VERSION}" diff --git a/frontend/src/version.ts b/frontend/src/version.ts index ee8bbca..9adabf0 100644 --- a/frontend/src/version.ts +++ b/frontend/src/version.ts @@ -1,4 +1,4 @@ /** Fallback до загрузки /health; при релизе держите в sync с backend/app/version.py */ export const APP_NAME = "Security Alert Center"; -export const APP_VERSION = "0.4.3"; +export const APP_VERSION = "0.4.4"; export const APP_VERSION_LABEL = `${APP_NAME} v.${APP_VERSION}`;