The Administration UI renamed the "Backup" settings section to
"Database Dump Settings"; update the docs reference accordingly.
Co-authored-by: Malib <claude@korunos.app>
Co-authored-by: Jason Rasmussen <jason@rasm.me>
* add immich_model
* graph per shape
* decouple ocr from ort
* prepared graphs
* use f16 for accelerators
* preload all shapes
* warm-up pass after preload
* keep precision for fp32 graphs
* ensure padding for text recognition
* optimize postprocessing for fp16 outputs
* handle raw ctc logits
* use f16 output for rknn
* mmap token embedding
* read device metadata
* ask before deleting local only photos on android 10 and below
* move the delete consent prompt into _cleanupLocalAssets
* ask on android 11 as well before deleting local photos
* ask before deleting only where android shows no prompt
* split the local delete prompt into its own helper
* pick the local delete dialog in one flat branch and rename notBackedUp to isLocalOnly
* run the first resume after a background launch with a full local sync
* keep the untouched lines of the swift file as they were
* check the background launch at the first resume even after a pause
* play the server copy when the local video file cannot be read
* flatten the video source choice and add tests for it
* drop the platform override from the video viewer test
* fix(mobile): retry the background backup when connectivity is restored
* return the backup result from the zone and drop the unrelated upload test
* flip the background worker bool to needsRetry
* decide the background retry from the upload callbacks
* run the background worker offline again and retry on reconnect with a separate connected gated request
* retry the background backup when any upload fails and keep one worker at a time
* always hand the retry to the connected worker and release the worker lock if startWork throws
* respect the charging only setting on the connected retry worker
* fix(server): compare integrity paths independently of unicode normalization
The untracked-file check compared on-disk paths against the database
byte for byte. macOS writes decomposed (NFD) filenames while an upload
stores the composed (NFC) form, so every asset with a non-ASCII name
came back from getAssetPathsByPaths under a different byte sequence,
was never removed from the candidate set, and was reported as an
untracked file. One reporter saw 14k false positives on a 55k library.
Look the batch up under both normal forms and key the comparison on
NFC, so a path that differs only in normalization is recognised as
tracked.
* test(server): cover normalized integrity lookup