feat(doctor): improve duplicate filename conflict UX with confirm modal, syntax-format nav, and i18n

- Remove [LoRAs] prefix noise from conflict detail display
- Limit inline conflict groups to 5, show remainder count
- Add 'Switch to Full Path Syntax' action in conflict card
- Add confirmation modal before resolving conflicts (shows rename strategy)
- Register resolveFilenameConflictsModal in ModalManager (fix no-op showModal)
- Switch to Interface section and add highlight animation on syntax-format nav
- Sync and translate conflictConfirm strings across all 10 locales
This commit is contained in:
Will Miao
2026-05-25 21:25:35 +08:00
parent 397892bb7f
commit 1044fa3c83
16 changed files with 256 additions and 5 deletions

View File

@@ -1063,12 +1063,22 @@ class DoctorHandler:
"total_conflict_files": total_conflict_files,
}
]
for conflict in all_conflicts:
# Show at most 5 conflict groups inline; note any remainder.
MAX_VISIBLE_CONFLICTS = 5
visible_conflicts = all_conflicts[:MAX_VISIBLE_CONFLICTS]
for conflict in visible_conflicts:
details.append(
f"[{conflict['label']}] '{conflict['filename']}' "
f"'{conflict['filename']}' "
f"found in {len(conflict['paths'])} locations"
)
hidden_count = len(all_conflicts) - MAX_VISIBLE_CONFLICTS
if hidden_count > 0:
details.append(
f"...and {hidden_count} more duplicate filename group(s)"
)
return {
"id": "filename_conflicts",
"title": "Duplicate Filename Conflicts",
@@ -1079,7 +1089,11 @@ class DoctorHandler:
{
"id": "resolve-filename-conflicts",
"label": "Resolve Conflicts",
}
},
{
"id": "open-settings-syntax-format",
"label": "Switch to Full Path Syntax",
},
],
}