Add renaming slave folders to the master's spelling
The "N folders are named differently" warning now offers to rename the slave folders to match the master, marked as the recommended first step after a scan (also linked from the dashboard card). - A preview lists each rename with the differing characters highlighted; renames are selectable, and conflicts (the slave already has a folder with the master's name, symlinks, the quarantine) are skipped with a reason. - Only renames the server computes itself are applied; a request can only narrow them down, never name arbitrary paths. Only slave folders are renamed. - Case-only renames go through a temporary name so they also work on case-insensitive filesystems; a rename interrupted by a crash is completed on startup (the folder is never removed). - Renaming everything repeats until folders revealed inside renamed ones (an album under a renamed artist) are fixed too, then rescans. - Each rename is an operation in History that can be undone (which also rescans). Dry run records renames as planned. Also fixes the Review list not refreshing after a job that started and finished between two status polls, and logs the new path of operations. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
176a527ec7
commit
42161e4287
14 files changed
+684
-21
No files matched your search
+5
-1
@@ -138,7 +138,7 @@ export type Match = {
|
||||
export type Operation = {
|
||||
id: number;
|
||||
pair_id: number;
|
||||
action: "link" | "promote" | "build" | "remove";
|
||||
action: "link" | "promote" | "build" | "remove" | "rename";
|
||||
rel_master: string;
|
||||
rel_slave: string;
|
||||
rel_new: string;
|
||||
@@ -201,8 +201,12 @@ export type BulkPreview = {
|
||||
};
|
||||
|
||||
export type ScanWarning = {
|
||||
code?: "renamed_folders";
|
||||
title: string;
|
||||
detail?: string;
|
||||
items?: { slave: string; master: string; count?: number }[];
|
||||
total?: number;
|
||||
fixable?: number;
|
||||
};
|
||||
|
||||
export type FolderRename = { slave: string; master: string; ready: boolean; reason?: string };
|
||||
Reference in new issue
Block a user