feat(apple): add a Free up space action to reclaim leaked storage

Delete all transfers only clears core records, and the blob-store cache is
reclaimed by the core's own timer. Neither touches the app's temporary directory
(leftover picker/staging copies — hundreds of MB on macOS) or the stray .Trash
folders that accumulate in app-owned directories and can't be removed via
Files/Finder. Add a non-destructive Free up space button that empties the temp
directory and removes .Trash folders under the core data dir (and, on iOS, the
fixed Documents receive folder), reporting the bytes reclaimed. Guarded against
running while a transfer is in flight; never touches received files, the core
database, or user-chosen macOS receive folders.
This commit is contained in:
2026-07-24 13:46:27 +02:00
parent 20597e6e88
commit 677c3ce47f
12 changed files with 194 additions and 0 deletions

View File

@@ -99,6 +99,23 @@ struct StorageSettings: View {
Text(String(localized: L10n.Storage.footer))
}
Section {
Button {
model.freeUpSpace()
} label: {
HStack {
Text(model.state.isCleaningStorage
? String(localized: L10n.Storage.cleaning)
: String(localized: L10n.Storage.freeUpSpace))
if model.state.isCleaningStorage {
Spacer()
ProgressView()
}
}
}
.disabled(model.state.isCleaningStorage)
}
Section {
Button(role: .destructive) {
showDeleteConfirmation = true