mirror of
https://github.com/willmiao/ComfyUI-Lora-Manager.git
synced 2026-05-06 08:26:45 -03:00
feat(doctor): add duplicate filename conflict detection and one-click resolution
Detects when multiple model files share the same basename (causing ambiguity in LoRA resolution), logs warnings during scanning, and provides a "Resolve Conflicts" button in the Doctor panel. Resolution renames duplicates with hash-prefixed unique filenames, migrates all sidecar and preview files, and updates the cache and frontend scroller in-place so the model modal immediately reflects the new filename. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -1906,7 +1906,9 @@
|
||||
"repairSuccess": "Cache-Neuaufbau abgeschlossen.",
|
||||
"repairFailed": "Cache-Neuaufbau fehlgeschlagen: {message}",
|
||||
"exportSuccess": "Diagnosepaket exportiert.",
|
||||
"exportFailed": "Export des Diagnosepakets fehlgeschlagen: {message}"
|
||||
"exportFailed": "Export des Diagnosepakets fehlgeschlagen: {message}",
|
||||
"conflictsResolved": "{count} Dateinamenskonflikt(e) gelöst.",
|
||||
"conflictsResolveFailed": "Auflösung der Dateinamenskonflikte fehlgeschlagen: {message}"
|
||||
}
|
||||
},
|
||||
"banners": {
|
||||
|
||||
@@ -1906,7 +1906,9 @@
|
||||
"repairSuccess": "Cache rebuild completed.",
|
||||
"repairFailed": "Cache rebuild failed: {message}",
|
||||
"exportSuccess": "Diagnostics bundle exported.",
|
||||
"exportFailed": "Failed to export diagnostics bundle: {message}"
|
||||
"exportFailed": "Failed to export diagnostics bundle: {message}",
|
||||
"conflictsResolved": "{count} filename conflict(s) resolved.",
|
||||
"conflictsResolveFailed": "Failed to resolve filename conflicts: {message}"
|
||||
}
|
||||
},
|
||||
"banners": {
|
||||
|
||||
@@ -1906,7 +1906,9 @@
|
||||
"repairSuccess": "Reconstrucción de caché completada.",
|
||||
"repairFailed": "Error al reconstruir la caché: {message}",
|
||||
"exportSuccess": "Paquete de diagnósticos exportado.",
|
||||
"exportFailed": "Error al exportar el paquete de diagnósticos: {message}"
|
||||
"exportFailed": "Error al exportar el paquete de diagnósticos: {message}",
|
||||
"conflictsResolved": "{count} conflicto(s) de nombre de archivo resuelto(s).",
|
||||
"conflictsResolveFailed": "Error al resolver conflictos de nombre de archivo: {message}"
|
||||
}
|
||||
},
|
||||
"banners": {
|
||||
|
||||
@@ -1906,7 +1906,9 @@
|
||||
"repairSuccess": "Reconstruction du cache terminée.",
|
||||
"repairFailed": "Échec de la reconstruction du cache : {message}",
|
||||
"exportSuccess": "Lot de diagnostics exporté.",
|
||||
"exportFailed": "Échec de l'export du lot de diagnostics : {message}"
|
||||
"exportFailed": "Échec de l'export du lot de diagnostics : {message}",
|
||||
"conflictsResolved": "{count} conflit(s) de nom de fichier résolu(s).",
|
||||
"conflictsResolveFailed": "Échec de la résolution des conflits de nom de fichier : {message}"
|
||||
}
|
||||
},
|
||||
"banners": {
|
||||
|
||||
@@ -1906,7 +1906,9 @@
|
||||
"repairSuccess": "בניית המטמון מחדש הושלמה.",
|
||||
"repairFailed": "בניית המטמון מחדש נכשלה: {message}",
|
||||
"exportSuccess": "חבילת האבחון יוצאה.",
|
||||
"exportFailed": "ייצוא חבילת האבחון נכשל: {message}"
|
||||
"exportFailed": "ייצוא חבילת האבחון נכשל: {message}",
|
||||
"conflictsResolved": "נפתרו {count} התנגשויות בשמות קבצים.",
|
||||
"conflictsResolveFailed": "פתרון התנגשויות שמות קבצים נכשל: {message}"
|
||||
}
|
||||
},
|
||||
"banners": {
|
||||
|
||||
@@ -1906,7 +1906,9 @@
|
||||
"repairSuccess": "キャッシュの再構築が完了しました。",
|
||||
"repairFailed": "キャッシュの再構築に失敗しました: {message}",
|
||||
"exportSuccess": "診断パッケージをエクスポートしました。",
|
||||
"exportFailed": "診断パッケージのエクスポートに失敗しました: {message}"
|
||||
"exportFailed": "診断パッケージのエクスポートに失敗しました: {message}",
|
||||
"conflictsResolved": "{count} 件のファイル名競合が解決されました。",
|
||||
"conflictsResolveFailed": "ファイル名競合の解決に失敗しました: {message}"
|
||||
}
|
||||
},
|
||||
"banners": {
|
||||
|
||||
@@ -1906,7 +1906,9 @@
|
||||
"repairSuccess": "캐시 재구성이 완료되었습니다.",
|
||||
"repairFailed": "캐시 재구성 실패: {message}",
|
||||
"exportSuccess": "진단 번들이 내보내졌습니다.",
|
||||
"exportFailed": "진단 번들 내보내기 실패: {message}"
|
||||
"exportFailed": "진단 번들 내보내기 실패: {message}",
|
||||
"conflictsResolved": "{count}개 파일명 충돌이 해결되었습니다.",
|
||||
"conflictsResolveFailed": "파일명 충돌 해결 실패: {message}"
|
||||
}
|
||||
},
|
||||
"banners": {
|
||||
|
||||
@@ -1906,7 +1906,9 @@
|
||||
"repairSuccess": "Перестройка кэша завершена.",
|
||||
"repairFailed": "Не удалось перестроить кэш: {message}",
|
||||
"exportSuccess": "Диагностический пакет экспортирован.",
|
||||
"exportFailed": "Не удалось экспортировать диагностический пакет: {message}"
|
||||
"exportFailed": "Не удалось экспортировать диагностический пакет: {message}",
|
||||
"conflictsResolved": "Разрешено конфликтов имён файлов: {count}.",
|
||||
"conflictsResolveFailed": "Не удалось разрешить конфликты имён файлов: {message}"
|
||||
}
|
||||
},
|
||||
"banners": {
|
||||
|
||||
@@ -1906,7 +1906,9 @@
|
||||
"repairSuccess": "缓存重建完成。",
|
||||
"repairFailed": "缓存重建失败:{message}",
|
||||
"exportSuccess": "诊断包已导出。",
|
||||
"exportFailed": "导出诊断包失败:{message}"
|
||||
"exportFailed": "导出诊断包失败:{message}",
|
||||
"conflictsResolved": "已解决 {count} 个文件名冲突。",
|
||||
"conflictsResolveFailed": "解决文件名冲突失败:{message}"
|
||||
}
|
||||
},
|
||||
"banners": {
|
||||
|
||||
@@ -1906,7 +1906,9 @@
|
||||
"repairSuccess": "快取重建完成。",
|
||||
"repairFailed": "快取重建失敗:{message}",
|
||||
"exportSuccess": "診斷套件已匯出。",
|
||||
"exportFailed": "匯出診斷套件失敗:{message}"
|
||||
"exportFailed": "匯出診斷套件失敗:{message}",
|
||||
"conflictsResolved": "已解決 {count} 個檔案名稱衝突。",
|
||||
"conflictsResolveFailed": "解決檔案名稱衝突失敗:{message}"
|
||||
}
|
||||
},
|
||||
"banners": {
|
||||
|
||||
Reference in New Issue
Block a user