v1.52.0
Highlights
This release includes many bug fixes and hardening of the recent new features in Immich. We are making Immich more robust as we try to move into the stable territory of the application. I hope you enjoy this release.
Splitting generated content into a separate folder
This is a feature to build toward a custom location setting for generated files so that the user can leverage SSD for quick serving of thumbnails and encoded video and put the original files to HDD. Users can now store thumbnails and encoded videos at a different location. The separation between generated content and originals makes it easier to know what to backup. It's more clear what folder media is uploaded. Accomplished by swapping type/uuid
to uuid/type
.
The resulting folder structure is as follows:
library/<uuid>/<template>
profile/<uuid>
thumbs/<uuid>
encoded-videos/<uuid>
Migration Notes:
- All the files are left untouched.
- New files will start using the new location
- To migrate existing files that are in the old structure:
- Run storage migration job - moves originals to new
library/
- Run generate thumbnail job (then delete
<uuid>/thumbs
) - regenerates thumbs inthumbs/
- Run transcode job (then delete
<uuid>/encoded-videos
) - regenerates encoded videos inencoded-videos/
- Re-upload profile picture - (then delete
<uuid>/profile
) - moves profile image toprofile/
- Run storage migration job - moves originals to new
Hardening mobile synchronization mechanism
We've solved issues with concurrency that caused the mismatch in the sync status of the local vs. remote assets on the mobile app and further optimized the Asset
model to guard against bad upload cases from the CLI. The sync and display on the mobile app should now correctly display all local and remote assets.
Update search UI
Searching is now CLIP-enabled by default. You can search for asset metadata such as location info, camera model.etc by prepending m:
to your search term, for example, m:Long Beach
.
On the web, we also added the search history (maximum of 5) to the search bar for a better search experience.
We revamped the Search page on the mobile app to include the new search mechanism and the metadata/CLIP search similar to the web.
As always, please consider supporting the project.
🎉 Cheer! 🎉
Support
If you find the project helpful and it helps you in some ways, you can support the project one time or monthly from GitHub Sponsors
It is a great way to let me know that you want me to continue developing and working on this project for years to come.
What's Changed
Server
- feat(server): Allow .mkv, .wmv, .flv, .mpg videos to be uploaded by @samip5 in #2045
- fix(server): Do not change file ext case on upload by @bo0tzz in #2056
- fix(server): invalid video duration format by @michelheusschen in #2058
- refactor(server): asset serve files by @jrasm91 in #2052
- refactor(server): media service by @jrasm91 in #2051
- chore(server): cleanup controllers by @jrasm91 in #2065
- refactor(server): common by @jrasm91 in #2066
- refactor(server): cron jobs by @jrasm91 in #2067
- feat(server): split generated content into a separate folder by @jrasm91 in #2047
- feat(server): improve and refactor get all albums by @michelheusschen in #2048
- fix(server): get all query does not respect asset type by @alextran1502 in #2089
- feat(server): require auth for more endpoints by @michelheusschen in #2092
- fix(server): increase Typesense start-up settings by @jrasm91 in #2095
- feat(server): change clip embedding entity type by @michelheusschen in #2091
- feat(server): resume queues by @jrasm91 in #2104
- feat(server): add transcode presets by @brighteyed in #2084
- chore(server): cleanup template variables by @jrasm91 in #2107
- feat(server): apply storage migration after exif completes by @jrasm91 in #2093
Mobile
- refactor(mobile): migrate all Hive boxes to Isar database by @fyfrey in #2036
- feat(mobile): Use new search API and GridView for Places / Locations by @martyfuhry in #2043
- refactor(mobile): store backup settings on device by @fyfrey in #2054
- feat(mobile): Explore favorites, recently added, videos, and motion photos by @martyfuhry in #2076
- fix(mobile): Fixed mobile app not reporting webm MIME type by @zeyadtamimi in #2090
- feature(mobile): Hardening synchronization mechanism + Pull to refresh by @fyfrey in #2085
- feat(mobile): improve explore page and allow metadata search by @alextran1502 in #2097
- feat(mobile): uploading files in chunk by @perryizgr8 in #2101
Web
- feat(web): better search bar by @alextran1502 in #2062
- fix(web): remove protocol header by @michelheusschen in #2068
- feat(web): improve and refactor thumbnails by @michelheusschen in #2087
Others
- chore: bump openapi version to v1.51.2 by @michelheusschen in #2059
- Documentation: Add FAQ items for reverse proxy and rpi performance by @etnoy in #2070
- chore: openapi generation by @alextran1502 in #2079
- fix(cli): missing dep in immich cli by @jrasm91 in #2094
- fix(cli): clean up set interval on application shutdown by @jrasm91 in #2103
- chore(ci): update prepare release action to bypass branch check by @alextran1502 in #2106
New Contributors
- @zeyadtamimi made their first contribution in #2090
- @perryizgr8 made their first contribution in #2101
Full Changelog: https://github.com/immich-app/immich/compare/v1.51.2...