Jason Rasmussen
2f48a8aab4
refactor: memory e2e ( #30906 )
2026-08-21 12:15:17 -04:00
Jason Rasmussen
4c26a7ca76
refactor: activity e2e ( #30896 )
2026-08-21 12:57:50 +02:00
Jason Rasmussen
c7531a36f9
refactor: partner e2e ( #30895 )
2026-08-20 17:32:51 -04:00
Sacha Brouté
c7f6197e75
feat: add oauth account management url ( #30873 )
2026-08-20 21:31:34 +00:00
Jason Rasmussen
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
Jason Rasmussen
7cd0a7d30c
refactor: e2e tests ( #30870 )
2026-08-19 14:31:57 -04:00
Jason Rasmussen
c63824bcea
refactor: library e2e ( #30867 )
2026-08-19 11:49:41 -04:00
Jason Rasmussen
d2759ec41e
refactor: library e2e ( #30865 )
2026-08-19 10:36:35 -04:00
Jason Rasmussen
db3b31709d
refactor: library controller tests ( #30863 )
2026-08-19 09:54:08 -04:00
Jonathan Jogenfors
2018e4f8c4
chore(server): migrate library e2e tests ( #27277 )
...
* migrate library e2e tests
* fix: real storage repo
---------
Co-authored-by: Jason Rasmussen <jason@rasm.me>
2026-08-19 13:14:40 +00: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]
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
Jason Rasmussen
342a9472c4
refactor: duplicate e2e ( #30773 )
2026-08-14 21:00:13 +00:00
Jason Rasmussen
14241ac7bc
chore(server): remove unused code ( #30772 )
...
chore(server): remove unnused code
2026-08-14 16:58:14 -04:00
Daniel Dietzler
6a61901e79
fix: shared link create validation ( #30762 )
2026-08-14 22:04:32 +02:00
Jason Rasmussen
00d10dab63
refactor: e2e user tests ( #30716 )
2026-08-11 12:39:25 -04:00
Jason Rasmussen
1b8cbaab97
refactor(server): migrate e2e auth/validation tests to controller specs ( #30715 )
...
Co-authored-by: Claude (thor) <claude@thor.local>
2026-08-11 11:02:14 -04:00
bo0tzz
a316ba35ca
fix: shared check for server setup availability ( #30311 )
...
* fix: shared check for server setup availability
* chore: add medium test
* feat: require @Authenticated decorator everywhere
* fix: lints
2026-07-30 15:12:25 -04:00
Alexander J
0293414abd
fix: minor typos ( #30385 )
2026-07-30 00:05:11 +02:00
Daniel Dietzler
f68815e35f
fix: calendar heatmap api key permissions ( #30314 )
2026-07-28 12:16:59 +02:00
Daniel Dietzler
6c86d39f6d
fix: calendar heatmap permissions ( #30310 )
2026-07-28 11:33:10 +02:00
Jason Rasmussen
b9f6c4aaf2
feat: password invalidate sessions ( #30125 )
2026-07-22 12:09:05 -04:00
Jan Bader
12f741d911
chore(cli): remove -h shorthand for --skip-hash ( #30119 )
...
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-07-22 13:25:29 +02:00
renovate[bot]
aa08dad1f5
chore(deps): update dependency eslint-plugin-unicorn to v72 ( #30092 )
...
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-07-21 15:33:46 +02:00
renovate[bot]
df970da59e
chore(deps): update dependency eslint-plugin-unicorn to v70 - abandoned ( #29684 )
...
* chore(deps): update dependency eslint-plugin-unicorn to v70
* fix: linting
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-07-20 23:47:14 -04:00
Daniel Dietzler
84dff19ca9
fix: unauthorized album owner update ( #29883 )
2026-07-13 11:46:18 -05:00
Daniel Dietzler
655cd01d57
fix: search metadata for album shared links ( #29742 )
2026-07-08 20:32:20 +02:00
Ben Beckford
237734bb26
feat(web): recently added link in sidebar ( #29039 )
...
* feat(web): recently added link in sidebar
* chore(mobile): update openapi patches
2026-07-01 23:12:50 +00:00
Daniel Dietzler
0050332391
fix: e2e version test ( #29412 )
2026-07-01 12:41:45 +02:00
Jeevan Mohan Pawar
a364b56b1c
fix(server): skip existing users when sharing albums ( #28884 )
...
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-06-17 15:54:20 +02:00
Timon
b633cc4f04
fix(server): hide partner archived asset locations from map ( #29028 )
2026-06-15 16:30:52 +02:00
Daniel Dietzler
43b2d04e2c
fix: version tests ( #29032 )
2026-06-12 15:54:42 +00:00
Paul Makles
74878628c8
feat: integrity check jobs (missing files, untracked files, checksums) ( #24205 )
...
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
Signed-off-by: izzy <me@insrt.uk>
2026-06-10 21:02:27 +02:00
Timon
5c38373808
refactor(server): allow -1 rating again ( #28886 )
2026-06-10 10:55:51 +02:00
Timon
474efd39f8
refactor(server): prevent sharing album with owner by filtering out user from albumUsers ( #28891 )
...
fix(server): prevent sharing album with owner by filtering out user from albumUsers
2026-06-07 17:46:26 -04:00
Mees Frensel
99281de6ab
refactor!: disallow star rating < 1 ( #27896 )
...
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
Co-authored-by: timonrieger <mail@timonrieger.de>
2026-06-04 17:06:28 +00:00
Timon
5c33eb3204
refactor(server)!: drop empty string to null conversion ( #28808 )
...
refactor(server): drop empty string to null conversion
2026-06-03 18:16:53 -04:00
Tim Jones
368cb7a4ad
feat: minimum face count per user ( #27452 )
...
* add user metadata table and use to filter persons in person.getAllForUser query
* update PersonRepository.getAllForUser query
* remove minFaces from PersonSearchOptions interface
* fix person.getAllForUser query
* update types and openapi specs
* add minFaces field to user settings page
* remove old arg from tests
* add e2e test to verify minimumFace user preference
* add i18n label and description for english
* update default min faces
* fetch minFaces ML default and use as per-user default in frontend
* update e2e tests
* fix bugs in people getAllForUser query
* update person getNumberOfPeople query to reflect correct number of people according to minFaces threshold
* updated mobile openapi specs?
* use subquery in coalesce instead of join
* remove out of scope query update
2026-06-02 18:05:55 +02:00
Mert
138e2d9158
feat(web): hls player ( #28312 )
...
* update e2e
* hls player
* fix transcoding restart on explicit quality selection
* move level filtering to manager
* move init to manager declaration
* refactor commit on release
* these lints...
* fix seek sometimes being ignored
* fix panic downswitch
2026-06-01 15:49:57 -04:00
Daniel Dietzler
c8a1d0e400
feat: release candidate support ( #28665 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-06-01 16:10:07 +02:00
Daniel Dietzler
d08e3de207
fix: e2e linting ( #28659 )
2026-05-28 11:12:26 +02:00
Brandon Wees
7c25bcc0a7
refactor: use ControlBar UI Library component ( #28567 )
...
* refactor: use ControlBar UI Library component
* chore: ci fix
* fix: memory viewer bar
* chore: rework e2e test
* chore: more ci fixes
2026-05-26 12:03:37 -04:00
Robert Deaton
e91c017dd0
fix(server): dedupe database backup jobs ( #28341 )
...
* fix(server): dedupe database backup jobs via jobId
#27268 shows backup jobs piling up in the queue across upgrades; one pending
backup is always enough.
* fix(tests): Avoid stale backup files from previous test runs being erroneously returned from createBackup
* fix(jobs): Use bullmq's deduplication over jobId to avoid failed jobs from blocking future executions.
---------
Co-authored-by: Robert Deaton <immich@rdeaton.space>
2026-05-14 20:59:15 -04:00
Ben Beckford
e142e3aca7
feat: recently added assets page ( #28272 )
...
* feat(server): add ordering date option to time buckets
* feat(web): add recently added page
* feat(server): recently created assets in explore data
* feat(web): recently added in explore tab
* fix: recently added assets ordering
* fix(server): failing bucket test
* feat(web): improve recently added preview
* chore: update e2e explore/timeline tests
* chore: rename and refactor timeline ordering dates
* fix(web): invalid timeline option
* feat(mobile): recently added page
* fix(server): sync tests
* fix(mobile): resync assets to get uploadedAt column
* chore: rename assetorderby enum
* chore(mobile): formatting
* minor fixes
* stylings
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
2026-05-11 21:35:10 +00:00
Brandon Wees
38438c8d9a
refactor!: remove asset faces from AssetResponseDto ( #27779 )
...
* refactor!: remove faces from `people` in AssetResposnseDto
* chore: tests
* chore: e2e generator
* chore: code review readonly
* chore: code review changes
* chore: cleanup
* fix: openapi
* chore: format
---------
Co-authored-by: Jason Rasmussen <jason@rasm.me>
2026-05-11 17:05:40 -04:00
Jason Rasmussen
db589455f4
refactor: move cli to package folder ( #28356 )
2026-05-11 14:49:45 -04:00
Timon
1fcc2b704b
feat(server)!: add isOwned filter to albums API ( #28213 )
...
* feat(server)!: add owned filter to albums API
BREAKING CHANGE: GET /albums with no parameters now returns all accessible albums (owned + shared-with-me) instead of only owned albums.
* document tri-state matrix
* web impl
* collapse to single method and handover branching to sql
* dedupe
* verify that owned, shared, and notShared counts are mapped independently from their respective queries
* refactor(server): add select:['id'] overload to albumRepository.getAll
Avoid fetching full album rows (with albumUsers/sharedLinks subqueries) in map.service where only album IDs are needed.
* focus relevant test filters
* fmt
* Revert "verify that owned, shared, and notShared counts are mapped independently from their respective queries"
This reverts commit 47aab458192c766de4662aada5a6841b091d2a80.
* sync sql
* Revert "document tri-state matrix"
This reverts commit a5b2355d0c6a084f2c021d517bf5ee80123d108c.
* address review comments
* inline shared condition and return as ternary
* sync sql
* use [...albums].sort
Array.toSorted() is not supported in Chrome 109
* use isShared and isOwned nomenclature
* fix e2e tests
* add params to sql query
2026-05-07 12:13:07 -04:00