izzy
cf6cbfdcd6
Merge remote-tracking branch 'origin/main' into feat/yucca-integration
2026-06-01 10:04:33 +01:00
shenlong
2382894fa2
fix: auto route rebuild on settings change ( #28717 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-05-31 09:00:37 -05:00
Alex
a52e7dc11a
chore: feat iOS run debug build ( #28712 )
...
# Conflicts:
# mobile/ios/Runner.xcodeproj/project.pbxproj
2026-05-31 04:10:03 +00:00
Alex
206992605e
feat: upload local assets to album from bottom sheet ( #28531 )
...
* feat: upload local assets to album from bottom sheet
* Cancel token
* refactor
* refactor
* Update mobile/lib/domain/services/remote_album.service.dart
Co-authored-by: shenlong <139912620+shenlong-tanwen@users.noreply.github.com >
---------
Co-authored-by: shenlong <139912620+shenlong-tanwen@users.noreply.github.com >
2026-05-30 13:14:49 -05:00
Mert
65611bb860
chore(mobile): make openapi requests abortable ( #28692 )
...
make open-api requests abortable
2026-05-30 10:31:17 -05:00
shenlong
14aff51da9
refactor: rename metadata to settings ( #28691 )
...
rename metadata to settings
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-05-30 10:27:55 -05:00
shenlong
c42cea5ca9
refactor: use widget previews for ui showcase ( #28548 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-05-29 20:22:47 +00:00
Jason Rasmussen
da8505f61d
feat: more plugin triggers and methods ( #28690 )
2026-05-29 14:02:07 -04:00
shenlong
0d6cce4a5b
fix: api repositories using stale endpoint ( #28667 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-05-28 16:44:11 -05:00
shenlong
55947cb227
refactor: drop metadata scope ( #28668 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-05-28 16:42:59 -05:00
Jason Rasmussen
8783180cf3
refactor: plugin manifest ( #28673 )
2026-05-28 17:23:49 -04:00
Jason Rasmussen
134c0d4dfb
feat: search by album name and id ( #28672 )
2026-05-28 17:01:47 -04:00
Lauritz Tieste
a5ce3fc927
fix: Refresh local album overview page after asset deletion ( #28586 )
...
fix: invalidate local album provider on asset delete
2026-05-28 01:20:32 +05:30
shenlong
3b23f71a3f
refactor: cleanup metadata ( #28485 )
...
jason-ify metadata
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-05-28 01:19:25 +05:30
shenlong
dec33cadd9
fix: verify form disposal before notifyListeners ( #28578 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-05-27 19:45:48 +00:00
Yaros
936c28a40b
feat(mobile): improve downloading algorithm for sharing ( #27312 )
...
* feat(mobile): better downloading while sharing
* chore: separate download group
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-05-27 17:00:49 +00:00
shenlong
8d5d12b108
chore: upgrade flutter to 3.44.0 ( #28537 )
...
* chore: upgrade flutter to 3.44.0
# Conflicts:
# mise.lock
* static analysis fix
* fix ios ci
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-05-27 11:14:44 -05:00
Daniel Dietzler
452e88267a
fix: strip metadata from timeline responses for shared links without exif sharing ( #28644 )
2026-05-27 17:29:37 +02:00
Timon
b941108cbd
chore: update documentation to use mise commands ( #28515 )
2026-05-27 10:33:23 -04:00
Alex
8682be4774
feat: workflow template ( #28553 )
...
* wip: confirm before existing and disable/enable save button condition
* fix: get correct workflow detail
* wip: add back workflow summary
* wip: add back json editor
* wip: step property badge
* wip: redesign card flow
* wip: redesign card flow
* redesign workflow summary
* wworkflow summary styling
* wip
* drag and drop
* list redesign
* refactor
* refactor
* remove deadcode
* refactor
* insert steps
* push down when dropped
* feat: workflow template
* simplify
* move template to manifest
* feat: hash manifest file
* fix: template column
* fix: migration
* fix: workflow lookup
* chore: clean up
---------
Co-authored-by: Jason Rasmussen <jason@rasm.me >
2026-05-26 16:47:05 -04:00
Brandon Wees
dc66892ca1
fix: await sync asset v2 ( #28569 )
...
* fix: await sync asset v2
* fix: support previous server versions for edit ready events
2026-05-26 15:43:12 -04:00
Luis Nachtigall
7905853639
fix(mobile): preserve zoom level during image loading and live photo playback ( #27960 )
...
* fix(mobile): preserve zoom level when new images load in asset viewer
* fix(mobile): use actual child size for live photo
* revert fixes
* fix(mobile): keep zoom consistent when scale boundaries change
* fix(mobile): simplify scale handling in photo_view_core.dart
2026-05-26 21:10:02 +05:30
Peter Ombodi
78ac0ade01
feat(mobile): add manage media APIs to NativeSyncApi ( #28441 )
...
* feat(mobile): add manage media APIs to NativeSyncApi
* fix(mobile): remove legacy local file manager from trash sync
* refactor(mobile): move media permission methods to PermissionApi
* cleanup
---------
Co-authored-by: Peter Ombodi <peter.ombodi@gmail.com >
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-05-22 17:40:11 +05:30
Mert
7b9dab872b
fix(mobile): separate group ids for separate app installs ( #28448 )
...
* separate group ids
* remove pigeon method
* Revert "remove pigeon method"
This reverts commit d699ff2094 .
2026-05-21 12:25:20 -05:00
renovate[bot]
20da7c4267
chore(deps): lock file maintenance (terragrunt) ( #28488 )
2026-05-20 17:20:50 +02:00
Timon
8d02f3625d
chore: update mobile makefile command usage instructions ( #28514 )
2026-05-20 15:26:24 +02:00
izzy
3a53b5f807
Merge remote-tracking branch 'origin/main' into feat/yucca-integration
2026-05-20 11:45:22 +01:00
bo0tzz
915d865ce2
chore: use custom sticky-comment action ( #28505 )
2026-05-19 20:25:46 +00:00
shenlong
77701dd5a3
refactor: migrate backup config ( #28483 )
2026-05-19 00:40:10 +05:30
shenlong
d4808fdc4d
refactor: migrate album config ( #28482 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-05-18 23:28:59 +05:30
shenlong
9cffcc9f4e
refactor: migrate network config ( #28471 )
2026-05-18 16:22:42 +00:00
shenlong
40925f0a06
refactor: immich form and text input ( #28479 )
...
refacotr: immich form
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-05-18 16:21:36 +00:00
izzy
0cec4f3bd8
Merge remote-tracking branch 'origin/main' into feat/yucca-integration
2026-05-18 16:53:16 +01:00
izzy
a41aa623da
chore: oapi
2026-05-18 16:32:30 +01:00
izzy
cb87a39b3a
Merge remote-tracking branch 'origin/main' into feat/yucca-integration
2026-05-18 16:32:16 +01:00
Jason Rasmussen
3d075f2bf8
feat: workflows & plugins ( #26727 )
...
feat: plugins
chore: better types
feat: plugins
2026-05-18 11:09:33 -04:00
Luis Nachtigall
7384799f19
fix(mobile): asset viewer stuck on spinner after rotation ( #28019 )
2026-05-18 20:32:51 +05:30
Alex
4a7f06e8fd
feat: upload and add local asset directly to album ( #28123 )
...
* feat: manually upload local assets to album
* feat: manually upload local assets to album
* refactor
* Upload status
* pr feedback
2026-05-18 20:31:22 +05:30
Lauritz Tieste
8f662fc459
refactor: enhance shared link UI and functionality ( #26464 )
...
* feat(shared-link): enhance shared link UI and functionality with new expiry options and improved layout
* rebase & cleanup
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-05-18 20:29:56 +05:30
Benjamin Nguyen
24b1dae9f2
feat(mobile): "Add Tags" asset multiselect option ( #26269 )
...
* add bulk_tag_assets_action_button to general_bottom_sheet.widget
include create tag tile in 'Add Tags' action modal
* follow provider -> svc -> repo pattern for tags
* rebase and cleanup
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-05-18 20:29:09 +05:30
Lauritz Tieste
3a3469a5f9
feat(ui): add ImmichURLInput ( #27105 )
...
feat(ui): implement shared URL input configuration and update input fields
2026-05-18 20:28:57 +05:30
Adam Gastineau
7993619ed2
fix(ios): respect status bar scroll to top in timeline views ( #28469 )
...
* fix(ios): respect status bar scroll to top in library views
* Make sure to wrap all loading states in Scaffold
2026-05-18 20:28:01 +05:30
shenlong
4d1f6f869b
chore: cleanup mobile mise config ( #28473 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-05-18 19:18:52 +05:30
Alex
03ed3daa31
chore: improve mobile slideshow ( #28460 )
2026-05-17 10:54:21 -05:00
Santo Shakil
3ab3d5cf43
fix(mobile): don't force-unwrap nil localizedTitle in ios getAlbums ( #28452 )
...
crashes on ios 26 when a PHAssetCollection returns nil for
localizedTitle. fall back to localIdentifier. ref #28428
2026-05-15 18:12:28 -05:00
Ben Beckford
0ef04d9baa
feat(mobile): slideshow view ( #28421 )
...
* feat(mobile): slideshow view
* move slideshow settings to metadata store
* remove watch in initState
* wrap progress bar in safearea
* show slideshow button on remote albums
* fix crash on unknown assets
* always show slideshow option
* add zoom effect
* add padding to slideshow settings
* chore: styling tweak
---------
Co-authored-by: Alex <alex.tran1502@gmail.com >
2026-05-15 18:12:04 -05:00
Santo Shakil
df016f9228
fix(mobile): mounted check in ThumbnailTile hero flight listener ( #28451 )
...
When the user pops back from the asset viewer mid-flight, the hero
animation can fire its status listener after _ThumbnailTileState has
been disposed. setState then throws a null check on State._element.
Guard the listener with `if (!mounted) return;` — same pattern as
#28300 in the album sync action.
2026-05-15 21:41:04 +00:00
Santo Shakil
17779c1e74
fix(mobile): cronet thumbnail buffer overflow regression from #28439 ( #28450 )
...
The hybrid added in onReadCompleted reuses Cronet's ByteBuffer between
reads to save a JNI wrap call when no grow is needed. That reuse breaks
advance() — Cronet's position() is cumulative across reads, so the same
K bytes get counted on every subsequent iteration. b.offset overshoots
b.capacity, the reuse branch keeps firing on a now-empty buffer, and
request.read() throws the original IllegalArgumentException again.
Always pass a fresh wrap from wrapRemaining() so byteBuffer.position()
reflects only this iteration's bytes. Same shape as the original PR
had before the broken optimization was layered on top.
2026-05-15 17:25:31 -04:00
Santo Shakil
01d6a244d8
fix(mobile): cronet buffer overflow on compressed thumbnails ( #28439 )
...
CronetImageFetcher sized the response buffer from Content-Length, which is
the compressed wire size. Cronet auto-decompresses gzip/br responses and
writes decompressed bytes into the buffer, exceeding it and throwing
IllegalArgumentException: ByteBuffer is already full on the next read. Use
the growable path; Content-Length becomes an initial alloc hint only,
capped at 128 MB so an untrusted server can't overflow Int.MAX_VALUE or
OOM us upfront. Reuse Cronet's ByteBuffer between reads when no grow is
needed.
2026-05-15 14:48:23 -04:00
Alex
43687cd8b4
fix: kebab menu icon colors and actions ( #28433 )
2026-05-14 22:23:50 +00:00