fix(database): refuse unsafe restore file fallback (#226)

* fix(database): refuse unsafe restore file fallback (#223)

* fix(database): retain safety backup limit after restore refusal (#223)
This commit is contained in:
Vito
2026-10-18 10:26:29 -07:00
committed by GitHub
parent ac23f22a37
commit 10197026be
4 changed files with 425 additions and 25 deletions
+18 -3
View File
@@ -1248,9 +1248,24 @@ class AdminRoutesMixin:
{"success": False, "error": reason}, status=400
)
backup_path = await self._run_in_executor(
model.restore_from_file, temp_path
)
try:
backup_path = await self._run_in_executor(
model.restore_from_file, temp_path
)
except sqlite3.OperationalError as exc:
if (
getattr(exc, "_prompt_manager_restore_backup_created", False)
is True
):
try:
await self._run_in_executor(
_prune_safety_backups, model.db_path
)
except Exception:
self.logger.warning(
"Could not prune safety backups after failed restore"
)
raise
removed = await self._run_in_executor(_prune_safety_backups, model.db_path)
if removed:
self.logger.info(f"Removed {len(removed)} old safety backups")