chore(deps): update dependency https://github.com/immich-app/immich.git to v1.82.1
This MR contains the following updates:
Package | Update | Change |
---|---|---|
https://github.com/immich-app/immich.git | minor |
v1.81.1 -> v1.82.1
|
Release Notes
immich-app/immich (https://github.com/immich-app/immich.git)
v1.82.1
v1.82.1
[!NOTE] There is no mobile release for this version
Highlights
This version includes some minor bug fixes and improvements.
- Fixed Scrollbar offset from the web
- Optimized add/remove actions for albums
- Fixed WebSocket initial connection on the web
Please consider supporting the project.
Support
If you find the project helpful, you can support Immich via the following channels.
- Monthly donation via GitHub Sponsors
- One-time donation via GitHub Sponsors
- Librepay
- buymeacoffee
- Bitcoin: 1FvEp6P6NM8EZEkpGUFAN2LqJ1gxusNxZX
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
- doc: issues hyperlink pointing to Releases by @encg in https://github.com/immich-app/immich/pull/4508
- feat(server): allow underscores in ML url by @jrasm91 in https://github.com/immich-app/immich/pull/4517
- fix(web): scrollbar offset by @jrasm91 in https://github.com/immich-app/immich/pull/4518
- fix(server): album add/remove asset performance by @jrasm91 in https://github.com/immich-app/immich/pull/4516
- fix(web): fix websocket mode by @alextran1502 in https://github.com/immich-app/immich/pull/4531
New Contributors
- @encg made their first contribution in https://github.com/immich-app/immich/pull/4508
Full Changelog: https://github.com/immich-app/immich/compare/v1.82.0...
v1.82.0
v1.82.0
Warning
Action Required - BREAKING CHANGE
- The mobile app and server must be on the same version to work correctly.
- We removed a section from the default docker-compose.yml that passed the
IMMICH_SERVER_URL
andIMMICH_WEB_URL
environment variables to immich-proxy. If your setup requires those, make sure you keep them passed through.- We have improved the time bucket grouping algorithm (see more below). To take advantage of this feature, please run the job to “Extract Metadata” for all assets.
Security
We identified two security flaws that have been fixed and, therefore, urge all Immich users to upgrade as soon as possible.
- The first flaw link is of medium severity and could sometimes lead to information disclosure. This was reported to us by Andrea Alemani. Accessing the metadata of assets outside of the shared album was possible when using the shared album feature. This does not leak the entire photo/video content. Still, it includes the thumbhash (a very low-resolution placeholder) and information such as capture time, original filename, and file checksum.
- The other link is also an information disclosure classified as low severity. The signup process used a previously public endpoint (
/api/user/count
) to determine if the server had an initial administrator account. The endpoint revealed the number of user accounts on the Immich server, which is undesirable. We have added authentication to this endpoint and migrated the server initialization status to an alternative endpoint. This flaw was found by internal security testing (DAST) by the Immich team.
In addition, we have discovered that thumbnails (which can be downloaded from right-click -> save images as…
) contain the full EXIF (metadata) information. Normally, you might expect this metadata to be scrubbed (as do Facebook, Google Photos, Twitter, etc.), but it isn’t. We are not able to fix it ourselves without significant performance degradation but have to wait for an upstream package. We advise users not to use the public-sharing feature if they have concerns about sharing metadata.
Highlights
Welcome to release v1.82.0
of Immich. This release is packed with many improvements, so buckle your seat belt and zoom on to the highlights below:
- Trash Feature
- Web Client WebSocket Feature
- Library Scanning Performance
- Time Bucket Grouping Accuracy
- Storage Template Improvements
- Notable fix: no longer read iOS-modified photos as “FullSizeRender” - Thanks, @xick, for fixing the issue upstream. You can fix the older assets by removing them from your immich server and reuploading the files, and they will have the original name.
Trash Feature
This release introduces the new trash feature, which is similar to the trash section on your native photo viewer. When a photo is deleted from Immich, it will go into the trash and stay there for 30 days before being permanently removed from Immich, which includes the database and the file system for non-external library assets. You can access the page from the sidebar on the web and the app drawer menu in the mobile app. Like with most features in Immich, you can adjust the trash duration or even opt out of the feature entirely from the Administration Settings. This has been a highly requested feature, and we hope you enjoy it. Let us know if you run into any issues using it.
Web Client WebSocket
Several actions in the web client previously required the user to manually refresh the page to see changes. In this release, we added a WebSocket connection to the web application, eliminating some of these manual refreshes and improving the user experience. Events that are now pushed from the server include:
- When a new feature photo is selected for a person
- When an asset is trashed, deleted, or restored
- When the server connects/disconnects
- When features are enabled/disabled (search, trash, map, machine learning, auth options, etc.)
- When server configuration is updated (trash days, map URL, OAuth button text)
With web sockets in place now both in the web and mobile apps, we hope to find additional ways to improve the user experience and push updates as they happen to appropriate clients.
Library Scanning Improvements
Library scanning performance has been significantly improved in this release. Specifically, the implementation for the initial scan has been greatly improved. Previously, this job had quadratic time complexity but has since been improved to linear time. On a library with 250k assets, the time to queue a library refresh has gone down from 10+ minutes (@etnoy said: I couldn’t be bothered to wait longer for a list comparison) to around 30 seconds.
Additionally, marking assets as offline has been improved as well. This process is used to execute a single query per asset, which adds up when large numbers of assets go offline. We have optimized this to use a single (bulk) update statement. For reference, marking 16k assets as offline went down from several minutes to a few seconds.
Lastly, we have added an index for asset lookups by path, which should decrease the amount of pressure on put on the database during library refreshes.
The default library job concurrency has been increased from 1 to 5.
These improvements will make it much easier to use Immich with large collections. Please let us know if you are still seeing performance bottlenecks in the library jobs. We plan to continue to iterate and improve this area in the future, and your feedback is very helpful in identifying issues.
Asset Time Buckets Grouping (web)
Assets are grouped by buckets on the web, and this was a problematic and complicated task when considering photos taken in different time zones. Even more so when considering a database, server, and client, which may all be running in different timezones, now, with a new database column localDateTime
, we can query, sort, and group assets by the local date and time they were taken and show them consistently in the right bucket (in the correct order), regardless of the server or viewing timezone.
Storage Template Improvements
The storage template feature was added in the early days of Immich and has helped many people automatically organize the underlying files into a clean, predictable structure. However, the additional file move operations that were introduced with the feature have also been the cause of some nasty bugs, like #2877. In this release, we have hardened the move operations, which have significantly improved the resiliency of storage template move operations. Additionally, we have added a new page at Administration > Repair
, which gives a report of orphaned and untracked files, with some initial tools to help correct previously orphaned files.
Please consider supporting the project.
Support
If you find the project helpful, you can support Immich via the following channels.
- Monthly donation via GitHub Sponsors
- One-time donation via GitHub Sponsors
- Librepay
- buymeacoffee
- Bitcoin: 1FvEp6P6NM8EZEkpGUFAN2LqJ1gxusNxZX
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.
Changelogs
Server
- feat(server): trash asset by @shalong-tanwen in https://github.com/immich-app/immich/pull/4015
- feat(server): jpe extension by @jrasm91 in https://github.com/immich-app/immich/pull/4374
- feat(server): full backend end-to-end testing with microservices by @jrasm91 in https://github.com/immich-app/immich/pull/4225
- fix(server): use local time for time buckets and improve memories by @jrasm91 in https://github.com/immich-app/immich/pull/4072
- fix(server): use fileCreatedAt in bucket calculation by @etnoy in https://github.com/immich-app/immich/pull/4354
- fix(server): dev compose by @jrasm91 in https://github.com/immich-app/immich/pull/4357
- fix(server): migration efficiency by @jrasm91 in https://github.com/immich-app/immich/pull/4359
- fix(server): time buckets by @jrasm91 in https://github.com/immich-app/immich/pull/4358
- fix(server): normalize external path by @etnoy in https://github.com/immich-app/immich/pull/4239
- fix(server): delete library actually deletes (all) assets by @danieldietzler in https://github.com/immich-app/immich/pull/4386
- fix(server): make system config core singleton by @danieldietzler in https://github.com/immich-app/immich/pull/4392
- fix(server): clean up android motion assets by @jrasm91 in https://github.com/immich-app/immich/pull/4393
- fix(server): timeline bucket access for shared links by @jrasm91 in https://github.com/immich-app/immich/pull/4404
- fix(server): add original path and library id index to asset by @etnoy in https://github.com/immich-app/immich/pull/4410
- fix(server): only check external path once by @etnoy in https://github.com/immich-app/immich/pull/4419
- fix(server): schema generation by @jrasm91 in https://github.com/immich-app/immich/pull/4424
- fix(server): improve library scan queuing performance by @etnoy in https://github.com/immich-app/immich/pull/4418
- fix(server): don't publicly reveal user count by @etnoy in https://github.com/immich-app/immich/pull/4409
- fix(server): include trashed asset during face re-index and cleanup by @shalong-tanwen in https://github.com/immich-app/immich/pull/4450
- fix(server): don't float promises by @etnoy in https://github.com/immich-app/immich/pull/4433
- fix(server): always show people with name, ignore count by @GenericGuy in https://github.com/immich-app/immich/pull/4414
- fix(server): include trashed assets in existing assets list by @shalong-tanwen in https://github.com/immich-app/immich/pull/4483
- fix(server): time buckets (again) by @jrasm91 in https://github.com/immich-app/immich/pull/4498
- fix(server): correctly remove metadata from shared links by @etnoy in https://github.com/immich-app/immich/pull/4464
- refactor(server): filesystem crawl by @jrasm91 in https://github.com/immich-app/immich/pull/4395
- refactor(server): domain repositories by @jrasm91 in https://github.com/immich-app/immich/pull/4403
- refactor(server): make file movement more resilient by @danieldietzler in https://github.com/immich-app/immich/pull/4361
- refactor(server): library asset delete by @jrasm91 in https://github.com/immich-app/immich/pull/4366
- chore(server): organize library imports by @jrasm91 in https://github.com/immich-app/immich/pull/4396
- chore(server): use force instead of forceRefresh by @jrasm91 in https://github.com/immich-app/immich/pull/4394
Machine Learning
- fix(ml): allow larger CLIP models by @mertalev in https://github.com/immich-app/immich/pull/4422
Web
- feat(web): improve performances in person page (1) by @martabal in https://github.com/immich-app/immich/pull/4387
- feat(web): offline/untracked files admin tool by @jrasm91 in https://github.com/immich-app/immich/pull/4447
- feat(web): enable WebSocket by @alextran1502 in https://github.com/immich-app/immich/pull/3765
- feat(web): ws - on_config_update by @shalong-tanwen in https://github.com/immich-app/immich/pull/4378
- feat(web) add hover background to image toolbar icons by @katsadim in https://github.com/immich-app/immich/pull/4402
- feat(web): show trash days info in trash page by @shalong-tanwen in https://github.com/immich-app/immich/pull/4484
- feat(web): save album sort direction/ sortDesc param by @JonasMayerDev in https://github.com/immich-app/immich/pull/4401
- fix(web): open external link in new tab by @daniele-athome in https://github.com/immich-app/immich/pull/4353
- fix(web): dev mode repeatedly optimizing dependencies by @mertalev in https://github.com/immich-app/immich/pull/4379
- fix(web): merge faces by @martabal in https://github.com/immich-app/immich/pull/4383
- fix(web): people initialization on the merge face selector by @martabal in https://github.com/immich-app/immich/pull/4435
- fix(web): previous route when hiding a person by @martabal in https://github.com/immich-app/immich/pull/4452
- fix(web): empty placeholders by @jrasm91 in https://github.com/immich-app/immich/pull/4470
- chore(web): move trash to alphabetical order by @jrasm91 in https://github.com/immich-app/immich/pull/4462
- refactor(web): admin layout by @jrasm91 in https://github.com/immich-app/immich/pull/4461
Mobile
- feat(mobile): Offer the same album sorting options on mobile as on web by @agross in https://github.com/immich-app/immich/pull/3804
- fix(mobile): remove upload soft limit by @shalong-tanwen in https://github.com/immich-app/immich/pull/4380
- fix(mobile): asset state change not updated in gallery app bar by @shalong-tanwen in https://github.com/immich-app/immich/pull/4441
- fix(mobile): description not render on first opening by @alextran1502 in https://github.com/immich-app/immich/pull/4451
- fix(mobile): reset trashed state for local assets on deletion by @shalong-tanwen in https://github.com/immich-app/immich/pull/4501
- fix(mobile): handle asset trash, restore and delete ws events by @shalong-tanwen in https://github.com/immich-app/immich/pull/4482
- chore(mobile): update flutter build version by @alextran1502 in https://github.com/immich-app/immich/pull/4429
- chore(mobile): pump photo_manager version by @alextran1502 in https://github.com/immich-app/immich/pull/4412
- chore(mobile): video indicator by @shalong-tanwen in https://github.com/immich-app/immich/pull/4443
Others
- chore: bulk bump of dependencies with vulnerabilities by @debricked in https://github.com/immich-app/immich/pull/4312
- docs: Update nginx config docs by @wipfli in https://github.com/immich-app/immich/pull/4346
- docs: add troubleshooting info to libraries + minor docs tweaks by @etnoy in https://github.com/immich-app/immich/pull/4377
- docs: production build by @alextran1502 in https://github.com/immich-app/immich/pull/4431
- docs: immich title by @jrasm91 in https://github.com/immich-app/immich/pull/4463
New Contributors
- @wipfli made their first contribution in https://github.com/immich-app/immich/pull/4346
- @JonasMayerDev made their first contribution in https://github.com/immich-app/immich/pull/4401
- @debricked made their first contribution in https://github.com/immich-app/immich/pull/4312
- @katsadim made their first contribution in https://github.com/immich-app/immich/pull/4402
- @agross made their first contribution in https://github.com/immich-app/immich/pull/3804
Full Changelog: https://github.com/immich-app/immich/compare/v1.81.1...v1.82.0
Configuration
-
If you want to rebase/retry this MR, check this box
This MR has been generated by Renovate Bot. The local configuration can be found in the SI Renovate Bot repository.