Bug
In `templates/history.html` (~lines 499-544), every action function (`applyFix`, `undoFix`, `rejectFix`, `dismissError`, `removeDuplicate`, `replaceCorrupt`, `applyAllPending`, `rejectAllPending`, `removeAllDuplicates`, `clearAllErrors`, `unlockBook`) performs a `fetch()` without disabling the button during the request.
Contrast with `queue.html:345-347` which correctly uses an `isProcessing` flag.
Fix
Add button-disabling during fetch to all history action functions, following the pattern from queue.html.
Severity
High — combined with the apply_fix race condition (#220), double-clicks can cause double-renames.
Found via UI flow audit.
Bug
In `templates/history.html` (~lines 499-544), every action function (`applyFix`, `undoFix`, `rejectFix`, `dismissError`, `removeDuplicate`, `replaceCorrupt`, `applyAllPending`, `rejectAllPending`, `removeAllDuplicates`, `clearAllErrors`, `unlockBook`) performs a `fetch()` without disabling the button during the request.
Contrast with `queue.html:345-347` which correctly uses an `isProcessing` flag.
Fix
Add button-disabling during fetch to all history action functions, following the pattern from queue.html.
Severity
High — combined with the apply_fix race condition (#220), double-clicks can cause double-renames.
Found via UI flow audit.