PR #136 added a per-row _deleting flag to prevent double-dispatch when the user clicks the trash button twice. Two other code paths remove backup archives without checking this flag:
- The auto-prune loop at
backup.ts:117-126 removes excess archives on a timer.
deleteInstallation with the "delete data" option removes all backups for that installation.
Both can race with a user-initiated delete on the same row, producing the same false-failure toast #136 fixed for the button path. BackupRecord would need the field before the prune could even check it, so a broader design pass is needed.
PR #136 added a per-row
_deletingflag to prevent double-dispatch when the user clicks the trash button twice. Two other code paths remove backup archives without checking this flag:backup.ts:117-126removes excess archives on a timer.deleteInstallationwith the "delete data" option removes all backups for that installation.Both can race with a user-initiated delete on the same row, producing the same false-failure toast #136 fixed for the button path. BackupRecord would need the field before the prune could even check it, so a broader design pass is needed.