Commit Graph
126 Commits
Author SHA1 Message Date
c12d5e6d35 feat: people management (#31620)
Co-authored-by: Jason Rasmussen <jason@rasm.me>
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-09-28 21:29:15 +02:00
Chris Peckover d73acbbfc0 fix: favorite workflow step description (#31840)
Fix the assetFavorite plugin inverse description
2026-09-28 14:08:13 -04:00
renovate[bot]andDaniel Dietzler bf5b21b361 chore(deps): update node (#31813)
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-09-28 19:22:29 +02:00
renovate[bot]andDaniel Dietzler e66f2c7615 chore(deps): update dependency eslint-plugin-unicorn to v75 (#31721)
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-09-23 18:19:03 +00:00
renovate[bot]andDaniel Dietzler 92f498d23d fix(deps): update typescript-projects (#31717)
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-09-23 18:18:11 +02:00
renovate[bot]andJason Rasmussen 959d46c654 chore(deps): update dependency @types/node to ^24.13.5 (#31713)
* chore(deps): update dependency @types/node to ^24.13.5

* fix: add checksum

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jason Rasmussen <jason@rasm.me>
2026-09-22 20:59:20 +00:00
Alex d6d0947383 feat: birthday memories (#30831) 2026-09-22 04:30:43 -05:00
Jason Rasmussen 54e7ffa4e6 feat: asset face v3 (#31591) 2026-09-16 16:27:01 -04:00
Jason Rasmussen 99fd561144 chore: transition to nullable user.oauthId (#31560) 2026-09-15 09:33:15 -04:00
renovate[bot] 1fb13c24a7 chore(deps): update node.js to v24.21.0 (#31576)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-15 09:07:23 -04:00
renovate[bot]andDaniel Dietzler e55ac299a4 chore(deps): update node (#31329)
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-09-14 21:48:02 +02:00
Daniel Dietzler 7b51c50a96 feat: people merge improvements (#31456) 2026-09-14 19:10:25 +02:00
Jason Rasmussen c0eed4902a chore: version v3.2.0 (#31441)
chore: v3.2.0
2026-09-11 11:02:34 -04:00
Daniel Dietzler 2a62622041 feat: NestJS 12 and ESM (#31237) 2026-09-10 13:22:29 +02:00
Mees Frensel da8131d5c2 fix(web): album date range formatting (#28564) 2026-09-03 10:31:15 +02:00
renovate[bot]andDaniel Dietzler 5fcfb63980 chore(deps): update typescript-projects (#31183)
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-09-01 12:25:41 +02:00
immich-push-o-matic[bot] e61312084b chore: version v3.2.0-rc.0 2026-08-27 19:43:45 +00:00
Timon 8b3d6b320b feat(server): new search API (#30179) 2026-08-27 20:39:55 +02:00
Daniel Dietzler c7d24321bf feat: allow users to re-run facial recognition for their group (#30965) 2026-08-27 16:38:07 +02:00
bo0tzz a366db1494 feat: cut releases from release branches (#31033) 2026-08-27 15:10:07 +02:00
bo0tzz 6221e29c70 fix: throw a typed error on malformed api responses (#31006)
* fix: throw a typed error on malformed api responses

* fix: drop response body parse check

* fix(web): keep json response validation when overriding fetch (#31008)

* fix(cli): report malformed api responses (#31007)
2026-08-26 00:38:39 +00:00
renovate[bot]andDaniel Dietzler aa6e4d9173 fix(deps): update typescript-projects (#30990)
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-08-25 20:17:24 +02:00
Daniel Dietzler 9e3d9a7770 fix: thumbnail generation for specific SVGs (#30908) 2026-08-25 19:57:48 +02:00
351be95769 feat: memories view (#28675)
* wip web memories view

* paginate searchMemories

* improve memories ui

* feat(mobile): memories view

* improve memories web ui

* fix(web): avoid unnecessary memory refreshes

* refactor(web): move timline memory manager filter

* fix(web): memories infinitely loading on 0 results

* fix(web): memories resetting

* feat(web): animated memory previews

* feat(web): memory page dark styling

* chore(mobile): fix failing memory lane tests

* chore(mobile): remove old import

* chore(e2e): fix failing memory lane tests

* chore(server): revert searchMemories changes

* chore(server): lint

* chore(mobile): fix bad merge

* chore(e2e): fix memory ui tests

* chore(web): rename /memory to /memories

* chore(mobile): linting

* chore(web): linting

* fix(web): prevent duplicate memory page loading

* fix(web): lint

* fix(web): memories page improvements

* chore(mobile): lint

* fix(mobile): fix translations

* fix(mobile): build errors

* fix(web): prevent memories from infinitely loading

* chore(e2e)): fix failng memory viewer test

* chore(web): clean up types in memory manager

* chore(web): lint

* feat: update list and detail memory page layouts

* onlyFavorites through drift

* rename to get all

* mobile: use widgetWhen in memory list page

* remove redundant check

* fix: e2e

---------

Co-authored-by: Timon <mail@timonrieger.de>
Co-authored-by: Jason Rasmussen <jason@rasm.me>
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-24 19:16:33 -05:00
Jordan BrockandRay 79c4c00f70 feat(web): tag renaming v2 (#27909)
* implement updated rename tag feature

* Fix tag update handler

* Ensure toast displays updated tag name

* Ensure toast displays updated tag name

* Handle updates to tag closure table, prevent slash in API filename, test case updates

* delete child tags on parent delete

* Update frontend for better handling of nested tags

* pr checklist fixes

* fix unit test for tag controller

* Hide path for top-level tags

* regenerate SQL files

* name updates optional for tag update operations

* e2e tests for new tag api changes

* changes from code review, additional test coverage

* test fixes, web component refactor

* test assets

* test asset updates

* open-api rebuild

* update unit tests

* fix tag dto tests

* Update web/src/lib/modals/TagEditModal.svelte

Fix missing color bug

Co-authored-by: Ray <3608878+Pecacheu@users.noreply.github.com>

* fix tag e2e test

* remove closure table bug fixes

* remove nullish from tag name update schema

* regenerate openapi and sql

* fix test and e2e test

* simplify tag repository update process

* minor fix and sql regenerate

* fix tests, regen open-api, update dto

* Remove unused function

* Remove accidental test asset ref

* re-add test assets

* pin submodule to main branch commit

* Update test cases based on feedback

* Server fixes based on feedback

* regenerate sql

---------

Co-authored-by: Ray <3608878+Pecacheu@users.noreply.github.com>
2026-08-21 14:55:11 -04:00
Jason RasmussenandDaniel Dietzler caea849fee feat: asset file apis (#25900)
* feat: asset file endpoints

* Update server/src/controllers/asset-file.controller.ts

Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>

* Update server/src/controllers/asset-file.controller.ts

Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>

---------

Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
2026-08-21 13:55:25 +00:00
Diogo Correia c9776fb990 fix(web): download archives via html POST forms (#30021)
* fix: download archives via html POST forms

* refactor: fix css of download panel, add translations and toasts

* style: run lint, formatter, check

* chore: generate open-api specs

* refactor(web): simplify download manager, use SvelteMap

* refactor(server): parse fields from x-www-form-urlencoded request

* refactor: move content-disposition to ImmichReadStream

* Pass asset ids as a comma-separated string

This fixes a bug where the 1000 parameter limit is being hit when
downloading 1000+ assets.

* Add download controller test

* Fix lint warnings
2026-08-20 20:58:41 -04:00
Sacha Brouté c7f6197e75 feat: add oauth account management url (#30873) 2026-08-20 21:31:34 +00:00
Jason Rasmussen 24532c4d82 fix(ci): docker caching (#30894) 2026-08-20 16:37:43 -04:00
Jason RasmussenandDaniel Dietzler 11b1aa5ecf feat: cluster groups (#30739)
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-08-20 20:03:00 +02:00
Jason Rasmussen e529557160 feat: new config endpoints (#30881)
* refactor: config endpoints

* chore: pr feedback
2026-08-20 11:46:17 -04:00
Jason Rasmussen 47c5a3dbf6 refactor: api key response dto (#30887) 2026-08-20 11:23:12 -04:00
bo0tzz 821c933c51 fix(cli): enforce node engine version on start (#30437) 2026-08-18 16:17:43 -04:00
Brandon Wees 93d2d30fe0 feat: rotate an API key (#30801)
* feat: rotate an API key

* fix: test response

* chore: create new api key scope

* chore: code review
2026-08-18 16:07:39 -04:00
Daniel Dietzler 03da1ba108 chore: single line block comments (#30852) 2026-08-18 17:55:26 +02:00
renovate[bot]andDaniel Dietzler 20edf0051c fix(deps): update typescript-projects (#30839)
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-08-18 12:24:54 +02:00
renovate[bot]andDaniel Dietzler 11755e5a53 chore(deps): update dependency eslint-plugin-unicorn to v73 (#30844)
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-08-18 12:00:16 +02:00
Ben Beckford 447cc40a50 feat: workflow logging (#29878)
* feat: workflow logging

* chore: update sql and openapi patch

* chore: include id in workflow log entries

* chore(server): update sql and lint

* chore(mobile): remove openapi files

* chore(web): lint

* chore: clean up workflow logging

* chore(server): add runId to workflow logs

* chore(server): store workflow results as enum
2026-08-13 19:18:24 -07:00
Ben Beckford a939561e70 feat: workflow asset tag trigger/filter/action (#29043)
* feat: workflow asset tag trigger and filter

* feat(web): show tag names in workflow editor

* fix(web): tag picker in schema config editor

* fix: invalid plugin manifest

* chore: update workflow method wrapper type

* chore: update tag filter method declaration

* feat: workflow action to add tags to assets
2026-08-12 16:26:03 -07:00
Mees Frensel 2a1691868e chore: use import.meta.dirname instead of __dirname (#30738) 2026-08-12 18:01:30 +02:00
bo0tzz 0344c61e4c feat: use version service for docs archive switcher (#30675) 2026-08-12 13:36:33 +02:00
bo0tzz cf17dcbfee feat: derive mobile build number from semver (#30569) 2026-08-11 12:45:32 +00:00
renovate[bot] 23636382c4 chore(deps): update node.js to v24.19.0 (#30703) 2026-08-11 12:27:42 +02:00
renovate[bot]andDaniel Dietzler 4c4170077c fix(deps): update typescript-projects (#30539)
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-08-11 11:39:38 +02:00
renovate[bot]andDaniel Dietzler 8e0ad9b2c4 fix(deps): update typescript-projects (#30305)
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-07-31 12:55:30 +02:00
Giacomo PinatoandGiacomo Pinato 6b6058c463 feat: store null instead of empty string for album.description (#30123)
Addresses the first column of issue #28832: album.description now stores
and returns null instead of an empty string.

Co-authored-by: Giacomo Pinato <giacomo.pinato@gmail.com>
2026-07-30 19:41:49 +00:00
bo0tzz 4a68a87531 fix: use trixie-slim base image for cli and e2e-auth-server (#30411)
The alpine suffix part wasn't getting updated by renovate, and the 3.20
chain stopped getting node updates too. This also just aligns the base
image distro with what we use elsewere.
2026-07-30 15:14:18 -04:00
bo0tzz 6afcc39fb2 chore: sequence pnpm installs in mise tasks (#30412) 2026-07-30 15:12:42 -04:00
Ben Beckford 9d03a92b10 fix: assetFileFilter path matching (#30394) 2026-07-30 11:08:24 +02:00
github-actions 8aa95c6747 chore: version v3.1.0 2026-07-27 18:20:33 +00:00