feat(storage): confirm the count shown, and say a backup or a missing install id held the cleanup

Confirm sends the count the admin saw and waits for its answer; a stale
count reloads the state. A running backup is named as a skip reason, a
missing installation id and a stale count as errors, and the switch's
hint no longer promises removal right away: deleted files go a day
later, once no undo can bring them back. Strings in all 28 languages.
This commit is contained in:
Maurice
2026-11-01 18:14:49 +01:00
parent 10ad64d170
commit 9d2ffc91af
40 changed files with 250 additions and 81 deletions
+3 -2
View File
@@ -7,8 +7,9 @@ export const storageReclaimApi = {
apiClient.put('/admin/storage/reclaim', { deleteEnabled }).then((r) => r.data),
/** Starts a report-only check in the background (202); its report arrives through the admin state. */
check: (): Promise<{ started: true }> => apiClient.post('/admin/storage/reclaim/run').then((r) => r.data),
confirm: (category: StorageReclaimConfirmRequest['category']): Promise<StorageReclaimState> =>
/** `unreferenced` is the count the admin was shown: the server refuses when its own count has moved on. */
confirm: (request: StorageReclaimConfirmRequest): Promise<StorageReclaimState> =>
apiClient
.post('/admin/storage/reclaim/confirm', { category } satisfies StorageReclaimConfirmRequest)
.post('/admin/storage/reclaim/confirm', request satisfies StorageReclaimConfirmRequest)
.then((r) => r.data),
};