immich/mobile/lib/infrastructure/entities
Santo Shakil 429e181c8f
fix(mobile): run iOS bg task phases in parallel (#28293)
onIosUpload runs sync local, sync remote, hash and handle backup
sequentially. on the bg refresh task path that's a 20s budget from
iOS, and sync + hash usually eat all of it before backup gets a turn
to enqueue any candidates.

these phases don't actually depend on each other. local + remote sync
touch different tables. hash works off whatever's already in drift.
handle backup reads candidates and just enqueues to URLSession bg.
anything one phase produces in this fire shows up to the others on
the next fire, and server-side dedup catches the rare race where
backup enqueues something sync remote was about to mark as already
uploaded.

so this runs all four concurrently via Future.wait, with hash getting
the full maxSeconds-1 budget instead of a fixed 5s. outer budget
timeout still caps everything before iOS expires.

second small change: getAssetsToHash orders by createdAt DESC instead
of id ASC to match getCandidates. when hash runs inside a refresh
fire it processes recent photos first.
2026-06-03 20:13:52 -05:00
..
asset_edit.entity.dart feat: mobile editing (#25397) 2026-04-15 09:26:40 -05:00
asset_edit.entity.drift.dart feat(mobile): SyncAssetEditV1 (#26518) 2026-03-05 13:03:59 -06:00
asset_face.entity.dart fix: indexes on remote_asset_entity (#28264) 2026-05-12 16:43:24 +00:00
asset_face.entity.drift.dart fix: indexes on remote_asset_entity (#28264) 2026-05-12 16:43:24 +00:00
auth_user.entity.dart feat: sync AuthUserV1 (#21565) 2025-09-08 14:00:10 -05:00
auth_user.entity.drift.dart feat: sync AuthUserV1 (#21565) 2025-09-08 14:00:10 -05:00
exif.entity.dart fix: indexes on remote_asset_entity (#28264) 2026-05-12 16:43:24 +00:00
exif.entity.drift.dart fix: indexes on remote_asset_entity (#28264) 2026-05-12 16:43:24 +00:00
local_album.entity.dart fix: propagate iCloud Shared Album flag (#25060) 2026-01-06 19:46:25 -06:00
local_album.entity.drift.dart feat: album info sync (#21103) 2025-09-04 18:44:10 +00:00
local_album_asset.entity.dart chore: add indexes for foreign keys (#25925) 2026-02-12 19:58:31 +05:30
local_album_asset.entity.drift.dart chore: add indexes for foreign keys (#25925) 2026-02-12 19:58:31 +05:30
local_asset.entity.dart fix(mobile): run iOS bg task phases in parallel (#28293) 2026-06-03 20:13:52 -05:00
local_asset.entity.drift.dart fix(mobile): run iOS bg task phases in parallel (#28293) 2026-06-03 20:13:52 -05:00
log.entity.dart feat: use sqlite for logging (#20414) 2025-08-06 10:49:29 -05:00
log.entity.drift.dart feat: use sqlite for logging (#20414) 2025-08-06 10:49:29 -05:00
memory.entity.dart chore: bump line length to 120 (#20191) 2025-07-25 02:37:22 +00:00
memory.entity.drift.dart chore: bump dart sdk to 3.8 (#20355) 2025-07-28 14:04:03 -05:00
memory_asset.entity.dart chore: bump line length to 120 (#20191) 2025-07-25 02:37:22 +00:00
memory_asset.entity.drift.dart chore: bump dart sdk to 3.8 (#20355) 2025-07-28 14:04:03 -05:00
merged_asset.drift feat: recently added assets page (#28272) 2026-05-11 21:35:10 +00:00
merged_asset.drift.dart feat: recently added assets page (#28272) 2026-05-11 21:35:10 +00:00
partner.entity.dart chore: add indexes for foreign keys (#25925) 2026-02-12 19:58:31 +05:30
partner.entity.drift.dart chore: add indexes for foreign keys (#25925) 2026-02-12 19:58:31 +05:30
person.entity.dart chore: add indexes for foreign keys (#25925) 2026-02-12 19:58:31 +05:30
person.entity.drift.dart chore: add indexes for foreign keys (#25925) 2026-02-12 19:58:31 +05:30
remote_album.entity.dart chore!: migrate album owner to album_user (#27467) 2026-04-22 16:52:23 +02:00
remote_album.entity.drift.dart chore!: migrate album owner to album_user (#27467) 2026-04-22 16:52:23 +02:00
remote_album_asset.entity.dart chore: add indexes for foreign keys (#25925) 2026-02-12 19:58:31 +05:30
remote_album_asset.entity.drift.dart chore: add indexes for foreign keys (#25925) 2026-02-12 19:58:31 +05:30
remote_album_user.entity.dart chore: bump line length to 120 (#20191) 2025-07-25 02:37:22 +00:00
remote_album_user.entity.drift.dart chore: bump dart sdk to 3.8 (#20355) 2025-07-28 14:04:03 -05:00
remote_asset.entity.dart fix(mobile): use correct delete action (#26575) 2026-05-14 11:57:19 +00:00
remote_asset.entity.drift.dart fix: indexes on remote_asset_entity (#28264) 2026-05-12 16:43:24 +00:00
remote_asset_cloud_id.entity.dart fix: slow hash reconcilation (#25503) 2026-01-26 09:12:00 -06:00
remote_asset_cloud_id.entity.drift.dart fix: slow hash reconcilation (#25503) 2026-01-26 09:12:00 -06:00
settings.entity.dart refactor: rename metadata to settings (#28691) 2026-05-30 10:27:55 -05:00
settings.entity.drift.dart refactor: rename metadata to settings (#28691) 2026-05-30 10:27:55 -05:00
stack.entity.dart chore: add indexes for foreign keys (#25925) 2026-02-12 19:58:31 +05:30
stack.entity.drift.dart chore: add indexes for foreign keys (#25925) 2026-02-12 19:58:31 +05:30
store.entity.dart refactor: yeet old timeline (#27666) 2026-04-15 23:00:27 +05:30
store.entity.drift.dart feat: migrate store to sqlite (#21078) 2025-08-21 14:58:50 -05:00
trashed_local_asset.entity.dart refactor(mobile): Migrate durationInSeconds to durationMs (#26615) 2026-04-20 23:28:11 -04:00
trashed_local_asset.entity.drift.dart refactor(mobile): Migrate durationInSeconds to durationMs (#26615) 2026-04-20 23:28:11 -04:00
user.entity.dart refactor: yeet old timeline (#27666) 2026-04-15 23:00:27 +05:30
user.entity.drift.dart feat: sync AuthUserV1 (#21565) 2025-09-08 14:00:10 -05:00
user_metadata.entity.dart chore: bump line length to 120 (#20191) 2025-07-25 02:37:22 +00:00
user_metadata.entity.drift.dart chore: bump dart sdk to 3.8 (#20355) 2025-07-28 14:04:03 -05:00