fix(persistent-cache): persist scanner cache after model deletion

After deleting a model, the in-memory scanner cache was updated but the
SQLite persistent cache was not. On server restart, the stale persistent
cache caused check_model_version_exists() to return True, blocking
re-download with 'Model version already exists'.

Add _persist_current_cache() calls in both deletion paths:
- ModelLifecycleService.delete_model() (used by versions tab delete)
- delete_model_version handler in MiscHandlers
This commit is contained in:
Will Miao
2026-05-12 22:50:10 +08:00
parent 86118d0654
commit b4f7dd75af
2 changed files with 16 additions and 0 deletions

View File

@@ -2139,6 +2139,17 @@ class ModelLibraryHandler:
]
await found_cache.resort()
scanner_map = {
"lora": lora_scanner,
"checkpoint": checkpoint_scanner,
"embedding": embedding_scanner,
}
scanner = scanner_map.get(found_type)
if scanner:
persist = getattr(scanner, "_persist_current_cache", None)
if callable(persist):
await persist()
history_service = await self._get_download_history_service()
await history_service.mark_not_downloaded(found_type, model_version_id)