v1.98.0
Announcement
The logo design contest has ended on March 4th, 2024.
We had an internal voting round with the core team members and contributors. The winner is @Tyree, with the design below.
We are planning to roll out the new logo in the near future.
Thank you all for your contributions and discussions. We are very happy to have such strong community engagement.
Highlights
Welcome to release v1.98.0
of Immich. We are pleased to introduce many new features, quality of life improvements and bug fixes in this release—some of the highlights below.
- Move library settings to the Administration page - Simplify the external library setup process.
- Context search with people filtering.
- File name and file extension search.
- Add an option to disable the required password change when creating a new user.
- Show people in the information sheet on the mobile app.
- A configurable timer is used to delete a user permanently.
Move library settings to the Administration page
We moved all library settings under the Admin settings to reduce the complexity of setting up external libraries and lay the groundwork for sharing external libraries between users.
Context search with people filtering
Thanks to @michelheusschen's help in solving the technical challenges of combining contextual search results with people filtering, it is now possible to search for "person in red dress" and choose only the people that you would like to see in a red dress.
File name and extension search
You can now search for file name and file extension again as free text search. For example, you can search for all Nikon photos with NEF
or nef
, or search for file names such as IMG_1234.JPG
with 123
or 234
as the search query.
Show people the information sheet on the mobile app.
You can now see the people detected in a photo/video in the detail sheet on the mobile app.
Option to disable required password change for new user creation
Configurable timer for user deletion
This setting can be found in the server settings
in the Administration page
. You can now adjust how long until a user gets permanently removed from the server.
And as always, bugs are fixed, and many other improvements also come with this release.
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: 3QVAb9dCHutquVejeNXitPqZX26Yg5kxb7
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
- fix(server): re-add mimalloc by @mertalev in #7511
- fix(server): only queue ml / transcoding jobs after thumbnail generation on upload by @mertalev in #7516
- feat: filter people when using smart search by @michelheusschen in #7521
- fix(immich-admin): only 1st argument was passed by @saimonn in #7552
- feat(server/web): add oauth defaultStorageQuota and storageQuotaClaim by @samholton in #7548
- feat(server): allow oauth claim to set 0 for no quota by @samholton in #7581
- fix(server): prevent leaking isFavorite and isArchived info by @martabal in #7580
- feat(server, web): add checkbox to create user screen for shouldChang… by @samholton in #7598
- fix(server): regular version check by @rovo89 in #7620
- fix(server, web): prevent reload when liking an asset by @martabal in #7589
- fix(server): incorrect number of assets for a person by @martabal in #7602
- feat(server): deterministic download order by @jrasm91 in #7658
- chore(server): eslint await-thenable by @etnoy in #7545
- fix(server): stack info in asset response for mobile by @alextran1502 in #7346
- feat(server,web): make user deletion delay configurable by @samholton in #7663
- chore(server): save original file name with extension by @alextran1502 in #7679
- chore(server): lower default max recognition distance for facial recognition by @mertalev in #7689
- perf(server): use queries to refresh library assets by @mertalev in #7685
- chore(server): search filename using originalFileName by @alextran1502 in #7691
- fix(server): access face count when the value is undefined by @alextran1502 in #7694
- fix(server): add extension to filename migration by @michelheusschen in #7697
- chore(server): Move library watcher to microservices by @etnoy in #7533
- fix(server): admin access to edit library by @alextran1502 in #7708
📱 Mobile
- fix(mobile): bottom bar Upload translation by @waclaw66 in #7553
- refactor(mobile): Refactor video player page and gallery bottom app bar by @martyfuhry in #7625
- feat(mobile): Add people list to exit bottom sheet by @l0nax in #6717
- fix(mobile): Refactors exif bottom sheet to use widgets and fixes slow sliding up exif bottom sheet by @martyfuhry in #7671
- chore(mobile,web): use originalFilename by @alextran1502 in #7692
🖥️ Web
- fix(web): asset disappears from album after metadata edit by @michelheusschen in #7520
- chore(web): fix eslint setup in VS Code by @benmccann in #7543
- fix(web): prevent duplicate calls to time bucket endpoint by @mertalev in #7563
- perf(web): asset delete by @michelheusschen in #7555
- fix(web): show history search box only when needed by @martabal in #7544
- feat(web): ascending order for slideshow by @martabal in #7502
- feat(web): show user quota on server stats page by @samholton in #7591
- feat(web): add share link on asset-viewer by @samholton in #7595
- feat(web): improve alt text by @mertalev in #7596
- perf(web): optimize date groups by @mertalev in #7593
- feat(web): use lib/utils/copyToClipboard for share link by @samholton in #7603
- fix(web): prettify album download filename by @waclaw66 in #7637
- Revert "perf(web): optimize date groups" by @michelheusschen in #7638
- Revert "fix(web): prevent duplicate calls to time bucket endpoint" by @alextran1502 in #7644
- feat(web): search by filename by @alextran1502 in #7624
- fix(web): date input on chrome by @michelheusschen in #7669
- perf(web): optimize response sizes for initial page load by @mertalev in #7594
- fix(web): consistent modal escape behavior by @michelheusschen in #7677
- fix(web): save filename search in search filter box by @alextran1502 in #7704
🧠 Machine Learning
- feat(machine-learning): support cuda 12 by @martabal in #7569
- feat: preloading of machine learning models by @DawidPietrykowski in #7540
⚡ CLI
📓 Documentation
- docs: fix the database name env variable by @ikajdan in #7576
- doc: update truenas.md with permission info. by @NicholasFlamy in #7606
🔨 Maintenance
- chore(deps): update dependency @types/pg to v8.11.1 by @renovate in #7522
- chore(deps): bump tj-actions/verify-changed-files from 18 to 19 by @dependabot in #7524
- chore: build tweaks by @jrasm91 in #7484
- refactor(web): drop axios by @jrasm91 in #7490
- chore: linting by @jrasm91 in #7532
- refactor(e2e): use better dummy assets by @jrasm91 in #7536
- feat(server,web): remove external path nonsense and make libraries admin-only by @etnoy in #7237
- refactor: library e2e by @jrasm91 in #7538
- chore: remove unused upload property by @jrasm91 in #7535
- fix(web): immich version by @martabal in #7541
- chore(deps): update dependency @types/pg to v8.11.2 by @renovate in #7585
- chore(deps): update dependency @playwright/test to v1.42.0 by @renovate in #7601
- fix: bump version pipeline by @martabal in #7586
- chore(deps): update dependency @types/node to v20.11.22 by @renovate in #7610
- chore(deps): update dependency @types/node to v20.11.22 by @renovate in #7630
- chore(deps): update @immich/cli by @renovate in #7629
- chore(deps): update dependency prettier-plugin-svelte to v3.2.2 by @renovate in #7633
- fix(deps): update server by @renovate in #7635
- chore(deps): update @immich/cli by @renovate in #7640
- chore(deps): update dependency @types/node to v20.11.23 by @renovate in #7641
- chore(deps): update dependency @types/node to v20.11.24 by @renovate in #7646
- chore(cli): remove unused packages by @jrasm91 in #7648
- chore(deps): update dependency @types/node to v20.11.24 by @renovate in #7645
- chore(deps): update dependency @types/node to v20.11.24 by @renovate in #7649
- chore(deps): update dependency svelte-check to v3.6.6 by @renovate in #7650
- chore: download e2e by @jrasm91 in #7651
- chore(deps): update server by @renovate in #7652
- fix(deps): update dependency archiver to v7 by @renovate in #7622
- chore(deps): update dependency @types/cookie-parser to v1.4.7 by @renovate in #7661
- chore(deps): bump sanitize-html, fixing CVE-2024-21501 by @etnoy in #7662
- fix(deps): update machine-learning by @renovate in #7634
- chore(deps): update base-image to v20240305 (major) by @renovate in #7682
- refactor: e2e by @jrasm91 in #7703
New Contributors
- @samholton made their first contribution in #7548
- @ikajdan made their first contribution in #7576
- @DawidPietrykowski made their first contribution in #7540
- @NicholasFlamy made their first contribution in #7606
Full Changelog: v1.97.0...v1.98.0