Mert and GitHub
c0a9146023
feat(server): linear-light resampling ( #31236 )
2026-09-25 10:29:07 -04:00
Aashish Bhardwaj and GitHub
e598e10896
fix(server): attach error handler to accepted sockets to prevent crash on connection reset ( #31079 )
...
Signed-off-by: aashish00021 <aashishbhardwaj07@icloud.com >
2026-09-24 16:28:02 +02:00
renovate[bot] and GitHub
7f14913626
chore(deps): update ghcr.io/jdx/mise docker tag to v2026.9.12 ( #31714 )
2026-09-24 15:03:35 +02:00
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
92f498d23d
fix(deps): update typescript-projects ( #31717 )
...
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev >
2026-09-23 18:18:11 +02:00
Aditya Raj Singh and GitHub
351ddff320
fix(server): compare integrity paths independently of unicode normalization ( #31102 )
...
* fix(server): compare integrity paths independently of unicode normalization
The untracked-file check compared on-disk paths against the database
byte for byte. macOS writes decomposed (NFD) filenames while an upload
stores the composed (NFC) form, so every asset with a non-ASCII name
came back from getAssetPathsByPaths under a different byte sequence,
was never removed from the candidate set, and was reported as an
untracked file. One reporter saw 14k false positives on a 55k library.
Look the batch up under both normal forms and key the comparison on
NFC, so a path that differs only in normalization is recognised as
tracked.
* test(server): cover normalized integrity lookup
2026-09-23 06:42:31 -04:00
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 and GitHub
d6d0947383
feat: birthday memories ( #30831 )
2026-09-22 04:30:43 -05:00
Makar Ivashko and GitHub
64a2fc8259
perf: faster server cold start ( #31630 )
...
low hanging fruits for the speedup of immich startup
1. don't wait 1s if we actually got the lock
2. move full import from the top of the file to be imported lazily in the branch
2026-09-18 08:26:09 -04:00
Jason Rasmussen and GitHub
54e7ffa4e6
feat: asset face v3 ( #31591 )
2026-09-16 16:27:01 -04:00
Daniel Dietzler and GitHub
ab5a9ae48c
chore: drop tsc-alias ( #31583 )
2026-09-15 18:10:07 +02:00
Daniel Dietzler and GitHub
e35aa718d9
fix: skip faces of other users when reassigning faces ( #31580 )
2026-09-15 17:27:46 +02:00
renovate[bot] and GitHub
9e0362dca0
chore(deps): update base-image to v202609151314 ( #31585 )
2026-09-15 13:42:38 +00:00
Jason Rasmussen and GitHub
99fd561144
chore: transition to nullable user.oauthId ( #31560 )
2026-09-15 09:33:15 -04:00
renovate[bot] and GitHub
b6e9ae9ac6
chore(deps): update ghcr.io/jdx/mise docker tag to v2026.9.9 ( #31562 )
2026-09-15 12:31:43 +02:00
e55ac299a4
chore(deps): update node ( #31329 )
...
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev >
2026-09-14 21:48:02 +02:00
Daniel Dietzler and GitHub
7b51c50a96
feat: people merge improvements ( #31456 )
2026-09-14 19:10:25 +02:00
Daniel Dietzler and GitHub
a84de0188e
fix: metadata extraction of faces ( #31551 )
2026-09-14 19:10:21 +02:00
db6a5b0d56
chore: reset shouldChangePassword on password change ( #31276 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-09-14 21:04:42 +05:30
Daniel Dietzler and GitHub
ef9718e93d
fix: feature face update ignores soft-deleted faces ( #31533 )
2026-09-14 09:47:02 -04:00
Daniel Dietzler and GitHub
221ddd31c4
feat: server imports linting ( #31537 )
2026-09-14 14:51:31 +02:00
Alan Grainger and GitHub
7abd625af3
docs(server): document the UTC timestamp format for timeBucket ( #31421 )
...
* docs(server): document the UTC timestamp format for timeBucket
* docs(server): wrap timeBucket description to satisfy prettier
2026-09-11 14:50:08 -04:00
Jason Rasmussen and GitHub
9abb605b62
fix: sync client disconnect ( #31461 )
2026-09-11 14:48:55 -04:00
Jason Rasmussen and GitHub
f346fe1f94
refactor: error handling ( #31455 )
2026-09-11 14:11:06 -04:00
Jason Rasmussen and GitHub
c0eed4902a
chore: version v3.2.0 ( #31441 )
...
chore: v3.2.0
2026-09-11 11:02:34 -04:00
Jason Rasmussen and GitHub
f6501d2f5b
fix: immich-dev ( #31447 )
2026-09-11 10:40:40 -04:00
Mert and GitHub
e039168e4a
fix(server): vacuum after migrations, concurrent reindex ( #31424 )
2026-09-11 10:27:04 -04:00
bo0tzz and GitHub
72f1034c58
fix: only run version check in production env ( #31443 )
2026-09-11 10:19:45 -04:00
Daniel Dietzler and GitHub
2a62622041
feat: NestJS 12 and ESM ( #31237 )
2026-09-10 13:22:29 +02:00
4f503c4b6b
fix(deps): update typescript-projects ( #30842 )
...
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev >
2026-09-08 12:39:26 +02:00
renovate[bot] and GitHub
3d3345fc18
chore(deps): update ghcr.io/jdx/mise docker tag to v2026.9.2 ( #31327 )
2026-09-08 11:33:18 +02:00
Jake Bybee and GitHub
58fb1ed4a9
fix(server): live photo transcode visibility ( #31319 )
...
* allow live photos to be transcoded on queue trigger
* new gen sql
* add test to check hidden assets are returned
2026-09-07 15:32:42 -04:00
Daniel Dietzler and GitHub
399217bf5f
fix: face detection of edited assets ( #31240 )
2026-09-03 15:40:30 +02:00
Mees Frensel and GitHub
da8131d5c2
fix(web): album date range formatting ( #28564 )
2026-09-03 10:31:15 +02:00
Jason Rasmussen and GitHub
2c53b76400
chore: require number format ( #31222 )
2026-09-02 12:33:22 -04:00
Aditya Raj Singh and GitHub
c1f2756f62
fix(server): never unlink an untracked-file path that an asset now references ( #31074 )
2026-09-01 15:50:07 +02:00
renovate[bot] and GitHub
d441795a0e
chore(deps): update ghcr.io/jdx/mise docker tag to v2026.8.16 ( #31177 )
2026-09-01 12:31:31 +02:00
Ray and GitHub
06f6104e1a
fix: Build SDK in dev container ( #31096 )
2026-08-31 18:28:58 +02:00
Ufuk and GitHub
9e5dcc598f
fix(server): allow an empty assetIds array when creating an album shared link ( #31098 )
2026-08-31 17:31:47 +02:00
Daniel Dietzler and GitHub
0628f8b966
fix: do not move faces of users other than the current owner ( #31145 )
2026-08-31 16:11:04 +02:00
renovate[bot] and GitHub
1fd3d87492
chore(deps): update base-image to v202608300913 ( #31128 )
2026-08-30 11:35:21 +02:00
immich-push-o-matic[bot]
e61312084b
chore: version v3.2.0-rc.0
2026-08-27 19:43:45 +00:00
Timon and GitHub
8b3d6b320b
feat(server): new search API ( #30179 )
2026-08-27 20:39:55 +02:00
1db4677cf8
feat: same-second photos now sub-sort by filename ( #29528 )
...
* Update sorting
Updates the sorting to sort
1. First by timeCreatedAt, but then
2. By filename.
* Push tsts
* Sync SQL
* Formatting fixes
---------
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com >
2026-08-27 13:46:10 -04:00
Mimi and GitHub
91d362eb9f
fix: external library statistics for excluded assets ( #28462 )
...
Fix external library statistics for excluded assets
2026-08-27 17:34:10 +00:00
Aditya Raj Singh and GitHub
dc3d6eeec4
fix(server): kill pg_dump when a backup fails so it stops holding table locks ( #30851 )
...
* fix(server): kill the child process when a spawned duplex stream is destroyed
A failed database backup left pg_dump running. The stream was destroyed but
the child was not, so the dump sat idle in transaction holding AccessShareLock
on every table until someone terminated it by hand. One report had it survive
five days and block DDL from another application on the same Postgres.
Destroying the duplex now kills the child, which also covers pipeline()
tearing every stream down when one of them fails.
The backup service additionally holds references to the streams it spawns so
the error path can destroy them. createWriteStream can throw before pipeline()
takes ownership, which is how the reported ENOENT on an unmounted backup volume
left nothing referencing the running pg_dump.
* chore(server): drop the explanatory comments from the backup teardown fix
Requested in review. The reasoning lives in the commit message and the PR
body, which is where it belongs.
2026-08-27 12:15:45 -04:00
renovate[bot] and GitHub
8178a01522
chore(deps): update ghcr.io/immich-app/base-server-dev docker tag to v202608251107 ( #31054 )
2026-08-27 15:29:36 +00:00
Daniel Dietzler and GitHub
c7d24321bf
feat: allow users to re-run facial recognition for their group ( #30965 )
2026-08-27 16:38:07 +02:00
bo0tzz and GitHub
a8c79469e5
feat(server): document and guard migration ORDER maintenance ( #30997 )
...
feat(server): add a migrations ORDER manifest
2026-08-26 15:24:59 +02:00
bo0tzz and GitHub
f264573847
fix(server): point the migrations mise task at sql-tools ( #30996 )
2026-08-26 15:24:59 +02:00