Commit Graph

2841 Commits (f1f8c8e7a37eead203912a95deac0712cd04f92c)

Author SHA1 Message Date
Jason Rasmussen e73abe0762
refactor: enum casing (#19946) 2025-07-15 14:50:13 +07:00
Jason Rasmussen 920d7de349
refactor: event names (#19945) 2025-07-15 13:41:19 +07:00
Jason Rasmussen 351701c4d6
refactor: validate enum (#19943) 2025-07-15 17:14:57 +07:00
Min Idzelis 68f249bc03
feat: improve geodata import speed (#19906)
chore(deps): update dependency vite to v7 (#19657)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-07-15 16:23:41 +07:00
renovate[bot] 82c3165247
fix(deps): update typescript-projects (#19808)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-07-14 22:30:39 +07:00
Jason Rasmussen 805ec3e351
chore: asset sync FKs (#19927) 2025-07-14 10:57:25 +07:00
Jason Rasmussen c699df002a
feat: rename schema (#19891) 2025-07-14 10:13:06 +07:00
Jason Rasmussen 47c0dc0d7e
feat: nightly tasks (#19879) 2025-07-11 17:32:10 +07:00
Daniel Dietzler df581cc0d5
feat: UserMetadata sync (#19882)
* feat: UserMetadata sync

* refactor: sync table filters (#19887)
2025-07-11 18:19:53 +07:00
Jason Rasmussen 9e48ae3052
feat: naming strategy (#19848)
* feat: naming strategy

* feat: detect renames
2025-07-11 11:35:10 +07:00
shenlong 1d19d308e2
chore: update flutter to 3.32.6 (#19878)
* chore: update flutter to 3.32.6

* fix lint

* fix asset viewer scroll physics

* test: change init order for map test

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-07-11 10:34:49 +07:00
Jason Rasmussen 617a2f146d
fix: startup log level (#19885) 2025-07-11 11:22:38 +07:00
Jason Rasmussen 1cc5ca14ca
feat: allow unordered migrations in dev (#19881) 2025-07-11 10:58:34 +07:00
Jason Rasmussen 4b3a4725c6
feat: pending sync reset flag (#19861) 2025-07-11 09:38:02 +07:00
shenlong 34f0f6c813
chore: rename new migration to execute last (#19872)
chore: rename new migration to change execution order

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-07-11 08:41:06 +07:00
SGT 55fe67dd20
fix(server): clear activity when asset is removed from album (#19019) 2025-07-10 19:37:56 +07:00
Jason Rasmussen ed4c7817e7
feat: AssetUploadReadyV1 event (#19858) 2025-07-10 13:30:10 +07:00
Zack Pollard 39c95f1280
refactor: rename geodata pk constraint to match runtime constraint name (#19856) 2025-07-10 17:18:51 +07:00
Zack Pollard b19884d01e
feat(server): people sync (#19854)
* chore: fix missing usage of deleteType for syncMemoriesV1

* chore: add src path for proper absolute imports in jetbrains

* feat: people sync
2025-07-10 11:32:42 +07:00
Léopold Koprivnik f778adea92
feat: adds option to search only for untagged assets (#19730)
Co-authored-by: SkwalExe <skwal@skwal.net>
2025-07-10 16:28:20 +07:00
Min Idzelis 818bdde317
chore: update base images (#19741)
Update base images
2025-07-09 19:22:01 +07:00
renovate[bot] a201665b7e
chore(deps): update base-image to v202507091427 (major) (#19840)
chore(deps): update base-image to v202507091427

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-09 12:52:11 +07:00
Jason Rasmussen 51ab7498e9
feat: create table with constraints (#19828) 2025-07-09 09:13:14 +07:00
Jason Rasmussen df4a27e8a7
feat: sql-tools overrides (#19796) 2025-07-08 08:17:40 +07:00
renovate[bot] a87c2e82cd
fix(deps): update typescript-projects (#19666)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-07-07 20:29:58 +07:00
Daniel Dietzler 4ce9bce414
feat: oauth role claim (#19758) 2025-07-06 18:45:32 +07:00
Jason Rasmussen 6044663e26
refactor: sql-tools (#19717) 2025-07-03 10:59:17 +07:00
aviv926 484529e61e
feat(server): add immich and postgres version to the database backup name (#19603) 2025-07-03 10:35:24 +07:00
Min Idzelis ca78bc91b6
feat: fully qualified path in error msg (#19674)
* feat: fully qualified path in error msg

* import style
2025-07-02 09:31:20 +07:00
Jason Rasmussen c435bdb5d3
refactor: sql-tools readers (#19672) 2025-07-01 22:57:17 +07:00
Min Idzelis 15da0d5a71
fix: email button (#19675) 2025-07-01 22:48:41 +07:00
Daimolean 83afd49f5c
feat(mobile): edit location action (#19645)
* change dto from integer to double

* feat(mobile): edit location action

* patch openapi

* refactor in provider

* fix lint

* chore: not showing success prompt if dimissed

* i18n

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-07-01 16:52:11 +07:00
Daniel Dietzler 53f80393bf
chore: upgrade to cron v4 (#19664) 2025-07-01 12:47:04 +07:00
renovate[bot] 38d73f2bc6
chore(deps): update dependency @types/node to ^22.15.33 (#19653)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-01 11:32:11 +07:00
renovate[bot] 96e3b96d57
fix(deps): update dependency nestjs-otel to v7 (#19662)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-01 11:02:46 +07:00
renovate[bot] 36b018e355
fix(deps): update typescript-projects (#18898)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Zack Pollard <zackpollard@ymail.com>
2025-07-01 10:00:35 +07:00
renovate[bot] 214ca50406
chore(deps): update node.js to v22.17.0 (#19656)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-01 10:59:31 +07:00
renovate[bot] 29b3981609
fix(deps): update dependency nestjs-kysely to v3 (#19660)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-01 10:27:20 +07:00
Mert a068a41c06
fix(server): prevent duplicate geodata temp table (#18580)
drop tmp table, create gist index first
2025-06-30 23:28:30 +07:00
bo0tzz 3c6e9e1191
feat: use request host as default SSR domain (#19485)
fix: hostname and domain confusion

chore: e2e test
2025-06-30 23:24:44 +07:00
Min Idzelis db0415bbcc
chore: undeclared versions/updates (#19649) 2025-06-30 23:23:41 +07:00
Jason Rasmussen 93f9e118ad
refactor: timeline tests (#19641) 2025-06-30 17:43:45 +07:00
Jason Rasmussen 58ca1402ed
feat: sync partner stacks (#19635) 2025-06-30 16:41:06 +07:00
Jason Rasmussen 181a7e115f
feat: sync stacks (#19629) 2025-06-30 14:26:41 +07:00
Jason Rasmussen e60bc3c304
refactor: database types (#19624) 2025-06-30 13:19:16 +07:00
Jason Rasmussen 09cbc5d3f4
refactor: change password repository lookup (#19584) 2025-06-27 16:52:04 +07:00
Jason Rasmussen a2a9797fab
refactor: auth medium tests (#19583) 2025-06-27 15:35:19 +07:00
Jason Rasmussen df76735f4a
refactor: sync repository (#19581) 2025-06-27 13:47:06 +07:00
Jason Rasmussen 6feca56da8
feat: sync memories (#19579) 2025-06-27 12:20:13 +07:00
Jason Rasmussen 6c6a32c63e
refactor: memory medium tests (#19568) 2025-06-26 19:52:10 +07:00
Jason Rasmussen 6fed223405
fix: array-max-length (#19562) 2025-06-26 19:41:48 +07:00
Jason Rasmussen 3105094a3d
refactor: medium tests (#19537) 2025-06-26 15:32:06 +07:00
Jason Rasmussen b96c95beda
refactor(server): sync service (#19559) 2025-06-26 17:24:57 +07:00
Daimolean 926ff075a3
fix(web): absolute path match in external library (#19551) 2025-06-26 10:46:34 +07:00
Min Idzelis 934649c8df
feat(server): check additional exif date tags (#19216)
* feat(server): check additional exif date tags

- Add support for UTC date tags (GPSDateTime, DateTimeUTC, GPSDateStamp, SonyDateTime2)
- This matches tags that exiftool-vendored uses for tzSource in extractTzOffsetFromUTCOffset()

* Review comments

* nit

* review comments

* lots of tests for exif datetime

* missed

* format

* format again

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-06-26 10:18:40 +07:00
shenlong ea3a14ed25
feat(mobile): add album asset sync (#19522)
* feat(mobile): add album asset sync

* add SyncAlbumToAssetDeleteV1 to openapi-spec

* update delete queries to use where in statements

* clear remote album when clear remote data

* fix: bad merge

* fix: bad merge

* fix: _SyncAckV1 return type

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: wuzihao051119 <wuzihao051119@outlook.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2025-06-26 08:50:39 +07:00
shenlong fda22c83b9
fix: sync stream album assets type order (#19540)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-06-25 20:42:56 +07:00
Jason Rasmussen 881a96cdf9
feat: add album asset sync (#19503)
wip: fix album asset exif and some other refactorings

feat: add album assets sync

feat: album to assets relation sync

Co-authored-by: Zack Pollard <zackpollard@ymail.com>
2025-06-25 16:10:31 +07:00
Jason Rasmussen eca9b56847
feat(server): person delete (#19511)
feat(api): person delete
2025-06-25 11:12:36 +07:00
Jason Rasmussen 88b8afb8d6
fix: return 404 for invalid shared link pages (#19493) 2025-06-24 10:37:14 +07:00
Jason Rasmussen c759233d8c
fix(server): include hidden assets in missing metadata extraction query (#19471) 2025-06-24 08:42:38 +07:00
renovate[bot] 4e59a55c1d
chore(deps): update dependency @types/node to ^22.15.32 (#19483)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-24 11:18:47 +07:00
Min Idzelis c1b82bed9b
chore: speedup devcontainer start (#19406) 2025-06-24 10:59:52 +07:00
Mert 03966146fe
fix(server): filter parameters by database and role (#19392) 2025-06-23 12:10:00 +07:00
Ben McCann a18c6fa910
chore: fix undeclared dependencies (#19440)
* chore: fix undeclared dependencies

* Add express/multer

---------

Co-authored-by: Min Idzelis <min123@gmail.com>
2025-06-22 19:01:30 +07:00
Daimolean 798debfde3
fix(server): duplicate column storage (#19385) 2025-06-20 15:52:25 +07:00
github-actions 6563fa608a chore: version v1.135.3 2025-06-20 19:48:18 +07:00
Jason Rasmussen 1a90fc8e58
feat: test for non-standard database name (#19386) 2025-06-20 19:31:16 +07:00
dotlambda 6fda863c08
fix(server): don't hardcode database name in migration (#19376) 2025-06-20 21:33:34 +07:00
Zack Pollard 0b44d4b6f2
fix: partner and album backfill acks (#19371)
fix: partner sync being entirely broken
2025-06-20 16:14:36 +07:00
github-actions a04c6ed80d chore: version v1.135.2 2025-06-20 14:52:47 +07:00
Jason Rasmussen 33c9f88ba4
fix: time bucket grouping (#19329) 2025-06-20 09:46:30 +07:00
Mert 11c469907f
fix(server): migration failing on pg15+ (#19363)
* reset params

* unused parameter
2025-06-20 08:36:07 +07:00
Mert 7c43e6c3c8
fix: bump vchord default to 0.4.3 (#19365)
bump default to 0.4.3
2025-06-20 08:35:32 +07:00
Zack Pollard 00aa385972
fix: people ordering by asset count (#19366) 2025-06-20 07:34:04 +07:00
Min Idzelis a5ed453929
chore: unused deps (#19256)
remove joi
2025-06-20 00:30:23 +07:00
github-actions 3434544864 chore: version v1.135.1 2025-06-19 17:37:39 +07:00
Zack Pollard fe91b44ab9
fix: people ordering incorrect (#19298) 2025-06-19 16:05:03 +07:00
Jason Rasmussen 910661e75c
chore: remove unused mocks (#19299) 2025-06-19 10:35:09 +07:00
Mert f99c6feac5
fix(server): unset prewarm dim parameter (#19271)
unset prewarm dim
2025-06-19 09:04:52 +07:00
Mert 49ed212af8
fix(server): drop vector indices before updating extension (#19283)
drop indices before updating
2025-06-19 09:03:40 +07:00
SGT 0a9a520ed2
feat(server): sql-tools support for class level composite fk (#19242)
* feat: support for class level composite fk

* chore: clean up

---------

Co-authored-by: Jason Rasmussen <jason@rasm.me>
2025-06-18 14:30:39 +07:00
Jason Rasmussen e0144b4ece
feat: backfill album users (#19234) 2025-06-18 10:48:11 +07:00
github-actions 65e8d75e82 chore: version v1.135.0 2025-06-18 13:45:07 +07:00
Jason Rasmussen 35280b94cc
refactor: sync service (#19225) 2025-06-17 16:06:40 +07:00
Zack Pollard 749f63e4a0
fix: partner asset and exif sync backfill (#19224)
* fix: partner asset sync backfill

* fix: add partner asset exif backfill

* ci: output content of files that have changed
2025-06-17 09:56:54 +07:00
shenlong db68d1af9b
feat(server): add duration to SyncAssetV1 (#19196)
add duration to SyncAssetV1

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-06-17 08:09:50 +07:00
renovate[bot] 0d3efe229d
chore(deps): update dependency @types/node to ^22.15.31 (#19220)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-17 11:57:29 +07:00
Mert 7347f64958
feat(server): lru cache for query embeddings (#19181) 2025-06-16 11:03:49 +07:00
SGT 77a362f0c0
chore(server): replace usage of deprecated orderBy and remove unnecessary instruction (#19072)
* replace usage of deprecated orderBy instruction
remove unnecesarry extra order instruction
update e2e test

* rename symbols
2025-06-13 15:18:44 +07:00
Daimolean 004c2f2496
fix(web): OAuth quota size (#18526)
fix(server): oauth quota size
2025-06-13 10:57:29 +07:00
Michael Anderson de756d9497
fix: skip locked photos during duplicate scan. (#19105)
Skip locked photos during duplicate scan.
2025-06-13 10:50:56 +07:00
Min Idzelis 103b83d2d6
feat: devcontainers (#18007)
* feat: devcontainers

* Update link

* Update docs

* Extend existing dockerfiles/composes

* Add jre for make open-api

* Add jre for make open-api

* shellcheck

* git doesn't like bind mount within git repo

* group tasks

* Missing sudo

* Review comments

* tweak for codespaces

* typo

* Lots of docs

* close <br>

* Specify ENV vars for database

* doc errors

* fix broken doc link

* Simplify devcontainers scripts/startup

---------

Co-authored-by: Jason Rasmussen <jason@rasm.me>
2025-06-13 14:49:21 +07:00
Jason Rasmussen c9bcae813b
feat: duplicate delete groups api (#19142) 2025-06-12 17:48:43 +07:00
Alex 176656b5f4
feat: pass filename in body on asset upload (#19138)
* chore: get upload filename from request body

* use info from request body
2025-06-12 17:31:00 +07:00
Jason Rasmussen 5cd186d3d4
refactor: duplicate queries (#19136) 2025-06-12 14:23:02 +07:00
Elliot fdc7a154c0
fix(server): add basic auth support (#16740)
* "add basic auth support"

* "fix format"

* fix: lint

---------

Co-authored-by: Elliot <elliot@elliotbrandwein.com>
Co-authored-by: Jason Rasmussen <jason@rasm.me>
2025-06-12 02:14:03 +07:00
nosajthenitram e5219f1f31
feat(web): Added admin user config to user settings (#15380)
* feat(web): Added admin user config to user settings

* feat (web) - cleaned up the files and added tests

* feat (web) - added missing files

* feat (web) - updated per review comments

* feat (web) - e2e admin command test failures
2025-06-12 02:11:13 +07:00
Zack Pollard 08e2b22db8
fix: album comment count including trashed assets (#19117) 2025-06-11 11:50:26 +07:00
Zack Pollard 5dd3a6e13f
fix: don't show comments or likes for trashed assets (#19113) 2025-06-11 14:36:00 +07:00
Zack Pollard bedcf50196
fix: count album comments and likes correctly (#19114) 2025-06-11 13:49:13 +07:00
Jonathan Gilbert e88bd74fd2
feat(server): add memories statistics resource (#19035) 2025-06-10 09:47:46 +07:00
renovate[bot] c0ed2210b4
fix(deps): update dependency nodemailer to v7 (#19063)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-09 16:29:04 +07:00
renovate[bot] 160ca28253
fix(deps): update dependency bcrypt to v6 (#19058)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-09 17:20:49 +07:00
renovate[bot] 360f68b86b
chore(deps): update testcontainers-node monorepo to v11 (major) (#19056)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-09 17:19:20 +07:00
renovate[bot] bf212bf235
fix(deps): update dependency react-email to v4 (#19065)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-09 16:19:05 +07:00
renovate[bot] 16f83c0aa9
chore(deps): update dependency eslint-plugin-unicorn to v59 (#19048)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-09 17:26:32 +07:00
xCJPECKOVERx 14d785cec9
feat(server): Add album filter to search (#18985)
* - updated dtos
- added inAlbums to search builder
- only check isNotInAlbum if albumIds is blank/empty

* - consider inAlbums as OR

* - make open-api-dart

* - lint & format

* - remove inAlbums groupBy clause

* - merge main open-api

* - make open-api

* - inAlbums filter AND instead of OR
2025-06-09 11:11:43 +07:00
renovate[bot] 3fb2c3a7bf
chore(deps): update dependency @types/node to ^22.15.29 (#19043)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-09 14:02:59 +07:00
Jonathan Gilbert fb4be6e231
feat(server): add /search/statistics resource (#18885) 2025-06-06 21:12:53 +07:00
Dag Stuan b46e066cc2
feat(web): add a user setting for default album sort order. (#18950)
* Add a user setting for default album sort order.

Add a user setting under "Features" to control the initial sort order
when creating an album. Default to the existing behavior of
"newest first".

* chore: patch openapi

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-06-05 23:31:34 +07:00
Min Idzelis 55f4e93456
fix: regression: sort day by fileCreatedAt again (#18732)
* fix: regression: sort day by fileCreatedAt again

* lint

* e2e test

* inline function

* e2e

* Address comments. Drop dayGroup and timezone in favor of localOffsetMinutes

* lint and some api-doc

* lint, more api-doc

* format

* Move minutes to fractional hours

* make sql

* merge/conflict

* merge fallout, review comments

* spelling

* drop offset from returned date

* move description into decorator where possible, regen api
2025-06-05 20:56:32 +07:00
Brandon Wees 86f64fd0bf
fix(server): default current users to an onboarded state migration (#18929)
* on database migration, assume every user is onboarded

* dont overwrite key if conflict in migration
2025-06-04 21:33:23 +07:00
Robin Brisa a26d703335
feat(web): display number of likes in asset viewer (#18911)
* feat: display number of likes

* fix: properly decrement like count on unlike

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

* chore: pr feedback

* chore: updated related test

* chore: formatter run

* chore: force numberOfLikes to null in album context to pass lint

* chore: open-api updated

* fix: use undefined, not null

* styling tweaks

* chore: updated sql

---------

Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2025-06-04 12:41:50 +07:00
shenlong 70b9a4c8f1
chore: add missing api properties on sync enums (#18916)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-06-04 08:21:34 +07:00
Jin Xuan 3d3e5dc547
chore(server): cleanup unused query parameters in time bucket (#18893)
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-06-03 19:29:11 +07:00
Alex 6b9233c71a
fix(deps): revert update typescript-projects (#18908) 2025-06-03 21:13:56 +07:00
renovate[bot] 393e8d50b2
fix(deps): update typescript-projects (#18889)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-03 11:39:55 +07:00
Brandon Wees 74438f5bd8
feat(web): improved user onboarding (#18782)
* wip

* added user metadata key

* wip

* restructure onboarding system and add initial locale

* update language card and fix translation updating

* remove prints

* new card formattings

* fix cursed unmount effect

* add OAuth route onboarding

* remove required admin auth for onboarding

* delete the hotwire button

* update open-api files

* delete import

* fix failing oauth onboarding fields

* fix e2e test

* fix web e2e test

* add onboarding to user registration e2e test

* remove todo

this was a holdover during dev and didn't get deleted

* fix server small tests

* use onDestroy to save settings rather than a bind:this

* change to false for isOnboarded

* fix other auth small test

* provide type annotation in user factory metadata field

* remove onboardingCompelted from UserDto

* move translations to onboarding steps array and mark as derived so they update

* break language selector out into its own component as per @danieldietzler suggestion

* remove hello header on card

* fix flixkering on server privacy card

* label/id fixes

* openapi

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2025-06-02 21:09:13 +07:00
Mert fa22e865a4
fix(server): tighten asset visibility (#18699)
* tighten visibility

* update sql

* elevated access util function

* fix potential sync issue

* include in user stats

* include hidden assets in size usage

* filter visibility in search duplicates query

* stack visibility
2025-06-02 09:33:08 +07:00
Daimolean c89ac5b5e5
fix(server): cannot share album to owner (#18802)
* fix(server): create shared album

* add test

* trigger ci

* resolve conversation
2025-06-01 20:58:07 +07:00
renovate[bot] 0711a9006f
chore(deps): update dependency @types/express to v5 (#18818)
* chore(deps): update dependency @types/express to v5

* fix: properly handle promise

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-05-31 15:31:36 +07:00
Nicholas 3a5fed99e1
fix(server): rename `android-links` api endpoint to `apk-links` (#18790)
* remove auth from endpoint and change android to apk

* add auth back to `apk-links`
2025-05-31 00:27:55 +07:00
Daniel Dietzler 9d04853b34
fix: oauth (#18725) 2025-05-30 22:04:52 +07:00
shenlong b854a3dd47
feat(server): add originalFileName to SyncAssetV1 (#18767)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-05-30 09:56:35 +07:00
Nicholas aebd68e24e
fix: change `URL` to `Url` in the Obtainium apk links api endpoint (#18764)
change `URL` to `Url`
2025-05-30 00:50:09 +07:00
Daimolean 6f39a706b2
fix: missing permissions and optional update (#18735)
* fix: missing permissions

* fix: test
2025-05-29 08:48:44 +07:00
Nicholas 8ea40973a7
feat(server): apk links API endpoint for Obtainium Android mobile-server version sync (#18700) 2025-05-28 23:45:49 +07:00
Mert be247395db
fix(server): deadlock when fetching vector count (#18728)
move row count query
2025-05-28 17:23:49 +07:00
Brandon Wees 78224961d1
feat(web): make google cast opt in (#18514)
* add setting switch

this isnt bound to anything yet

* make google casting opt-in

* doc updates

* lint docs

* remove unneeded translation items

* update mobile openai defs

* fix failing test

we need to mock user prefs since CastButton uses it
2025-05-28 15:57:36 +07:00
Daimolean b054e9dc2c
feat(web): granular api access controls (#18179)
* feat: api access control

* feat(web): granular api access controls

* fix test

* fix e2e test

* fix: lint

* pr feedback

* merge main + new design

* finalize styling

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-05-28 13:16:43 +07:00
Sergey Katsubo 9677eb37e1
feat(server): log failed healthchecks to server container stderr in verbose mode (#18709)
* Log failed healthchecks to server container stderr in verbose mode

* Formatting: indentation, semicolons

* Readability: less escaping
2025-05-28 12:13:04 +07:00
Mert 3f08768854
chore: vchord 0.4.1 (#18588)
* vchord 0.4.x

* oops

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-05-28 14:38:52 +07:00
renovate[bot] a40d35555f
chore(deps): update typescript-projects (#18697)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-28 13:09:44 +07:00
github-actions 58ae77ec92 chore: version v1.134.0 2025-05-27 16:47:49 +07:00
Mert 4794a1a092
fix(server): handle startup reindexing after failed model change (#18688)
drop constraint
2025-05-27 11:36:30 +07:00
renovate[bot] 724a081bb5
fix(deps): update typescript-projects (#18681)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-27 18:00:45 +07:00
Mert e2720e85bb
fix(server): handle period in database name (#18590) 2025-05-27 16:05:13 +07:00
renovate[bot] a3404cf420
fix(deps): update typescript-projects (#18671)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-05-27 17:00:29 +07:00
Daniel Dietzler 5268dc4ee2
feat: version check endpoint (#18572) 2025-05-27 09:33:23 +07:00
Daimolean 79d760ccd7
fix(server): reverse isTrash field (#18665) 2025-05-27 16:22:09 +07:00
renovate[bot] 93e53f6d74
chore(deps): update node.js to v22.16.0 (#18662)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-27 12:13:30 +07:00
renovate[bot] d8f0a69dc8
chore(deps): update node (#18661)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-27 12:12:37 +07:00
Alex 911c877e72
feat: clean up memory with locked assets (#18532) 2025-05-24 07:31:25 +07:00
github-actions 54bafccbf9 chore: version v1.133.1 2025-05-23 17:37:44 +07:00
Mert bc8e08f5e8
feat: lower disk usage during migration (#18440)
feat: less disk usage during migration
2025-05-22 08:41:10 +07:00
Mert 58c1b92816
fix(server): missing button for duplicate detection not working (#18433)
qualify column
2025-05-21 21:27:28 +07:00
github-actions 55adc136c8 chore: version v1.133.0 2025-05-21 19:47:42 +07:00
Jason Rasmussen cd288533a1
feat: sync albums and album users (#18377) 2025-05-21 14:35:32 +07:00
Mert bc906f7343
chore: specify vchord version in ci (#18423) 2025-05-21 13:41:14 +07:00
Mert 760b08506a
chore: tighten vchord version range (#18420)
guard minor version
2025-05-21 13:03:53 +07:00
Mert 493b9b7a54
fix(server): use preview path for person thumbnails from videos (#18419)
use preview path for person thumbnails from videos
2025-05-21 11:15:30 +07:00
Mert a02fe89ec9
fix(server): drop old extension (#18400) 2025-05-21 09:53:40 +07:00
renovate[bot] 98e998e814
fix(deps): update typescript-projects (#18402)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-21 11:42:41 +07:00
renovate[bot] b83b28cd73
fix(deps): update typescript-projects (#18390)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-05-20 22:40:30 +07:00
Alex bdf19ce331
fix: TimelineAsset visibility (#18395)
* fix: TimelineAsset visibility

* fix enum values
2025-05-20 15:53:34 +07:00
renovate[bot] d1e6682df0
chore(deps): update dependency @types/node to ^22.15.18 (#18387)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-20 15:15:10 +07:00
renovate[bot] 965498d19b
chore(deps): update node.js to v22.15.1 (#18388)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-20 15:14:59 +07:00
Mert a6a4dfcfd3
fix(server): queueing for duplicate detection (#18380)
* fix queueing

* update tests
2025-05-20 08:44:39 +07:00
Mert 0d773af6c3
feat: vectorchord (#18042)
* wip

auto-detect available extensions

auto-recovery, fix reindexing check

use original image for ml

* set probes

* update image for sql checker

update images for gha

* cascade

* fix new instance

* accurate dummy vector

* simplify dummy

* preexisiting pg docs

* handle different db name

* maybe fix sql generation

* revert refreshfaces sql change

* redundant switch

* outdated message

* update docker compose files

* Update docs/docs/administration/postgres-standalone.md

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

* tighten range

* avoid always printing "vector reindexing complete"

* remove nesting

* use new images

* add vchord to unit tests

* debug e2e image

* mention 1.107.2 in startup error

* support new vchord versions

---------

Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
2025-05-20 08:36:43 +07:00
Min Idzelis e7edbcdf04
feat(server): lighter buckets (#17831)
* feat(web): lighter timeline buckets

* GalleryViewer

* weird ssr

* Remove generics from AssetInteraction

* ensure keys on getAssetInfo, alt-text

* empty - trigger ci

* re-add alt-text

* test fix

* update tests

* tests

* missing import

* feat(server): lighter buckets

* fix: flappy e2e test

* lint

* revert settings

* unneeded cast

* fix after merge

* Adapt web client to consume new server response format

* test

* missing import

* lint

* Use nulls, make-sql

* openapi battle

* date->string

* tests

* tests

* lint/tests

* lint

* test

* push aggregation to query

* openapi

* stack as tuple

* openapi

* update references to description

* update alt text tests

* update sql

* update sql

* update timeline tests

* linting, fix expected response

* string tuple

* fix spec

* fix

* silly generator

* rename patch

* minimize sorting

* review

* lint

* lint

* sql

* test

* avoid abbreviations

* review comment - type safety in test

* merge conflicts

* lint

* lint/abbreviations

* remove unncessary code

* review comments

* sql

* re-add package-lock

* use booleans, fix visibility in openapi spec, less cursed controller

* update sql

* no need to use sql template

* array access actually doesn't seem to matter

* remove redundant code

* re-add sql decorator

* unused type

* remove null assertions

* bad merge

* Fix test

* shave

* extra clean shave

* use decorator for content type

* redundant types

* redundant comment

* update comment

* unnecessary res

---------

Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-05-19 16:40:48 +07:00
Daimolean dc8962f2bc
fix(server): select main stream according to bitrate (#18375)
* fix main stream

* update unit tests

---------

Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
2025-05-19 17:33:28 +07:00
Geoffrey Frogeye 00a77c2d6a
feat(server): sort images in duplicate groups by date (#18347)
This restores behaviour introduced in
562fec6e2b and lost in
2e12c46980.
2025-05-19 17:27:30 +07:00
Zack Pollard 230c286b97
chore: cleanup extraneous memories job item definition (#18372) 2025-05-19 14:02:44 +07:00
koostamas b63d6cdcd6
feat: bulk change description (#18288)
Co-authored-by: Tamas Koos <ext_tamas.koos@btrl.ro>
2025-05-17 12:17:00 +07:00
Mert 48d746d9d5
refactor(server): "on this day" memory creation (#18333)
* refactor memory creation

* always update system metadata

* maybe fix medium tests
2025-05-16 13:16:27 +07:00
Jason Rasmussen 28d8357cc5
feat(web): clear person birthdate (#18330) 2025-05-16 11:56:25 +07:00
Jason Rasmussen c1150fe7e3
feat: lock auth session (#18322) 2025-05-15 18:08:31 +07:00
Brandon Wees 6117329057
feat: add session creation endpoint (#18295) 2025-05-15 13:34:33 +07:00
Alex b7b0b9b6d8
feat: locked/private view (#18268)
* feat: locked/private view

* feat: locked/private view

* pr feedback

* fix: redirect loop

* pr feedback
2025-05-15 15:35:21 +07:00
Mert 709a7b70aa
chore: no sql generation for queries with side effects (#18301)
no sql generation for queries with side effects
2025-05-15 03:34:22 +07:00
Mert 6a4d21205f
fix(server): do not filter out assets without preview path for person thumbnail generation (#18300)
* allow assets without preview path

* update sql

* Update person.repository.ts

Co-authored-by: Jason Rasmussen <jason@rasm.me>

* update sql, e2e

---------

Co-authored-by: Jason Rasmussen <jason@rasm.me>
2025-05-15 03:23:34 +07:00
Mert 3a0ddfb92d
fix(server): vacuum after deleting people (#18299)
* vacuum after deleting people

* update sql
2025-05-14 23:13:13 +07:00
renovate[bot] ca06d0aa83
chore(deps): update base-image (major) (#18256)
chore(deps): update base-image

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-13 13:54:49 +07:00
Daimolean dccbe0b3ed
fix(web): user details (#18253)
fix(server, web): user details
2025-05-13 07:55:58 +07:00
renovate[bot] c0ad12f279
fix(deps): update typescript-projects (#18251)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-05-13 13:31:33 +07:00
renovate[bot] 9c484b23a9
chore(deps): update dependency @types/picomatch to v4 (#18257)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-13 12:33:15 +07:00
renovate[bot] eed014482d
chore(deps): update dependency @types/node to ^22.15.16 (#18249)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-13 12:32:48 +07:00
renovate[bot] d271e6a3ae
chore(deps): update node.js to v22.15.0 (#18250)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-13 12:09:41 +07:00
Jason Rasmussen 3066c8198c
feat(web): user detail page (#18230)
feat: user detail page
2025-05-12 16:50:26 +07:00
renovate[bot] a89f3ad97c
fix(deps): update typescript-projects (#18133)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-10 13:07:20 +07:00
Alex 3f719bd8d7
feat: user pin-code (#18138)
* feat: user pincode

* pr feedback

* chore: cleanup

---------

Co-authored-by: Jason Rasmussen <jason@rasm.me>
2025-05-09 17:00:58 +07:00
Zack Pollard cb6c541ae1
fix: constraint migration to handle any existing pkey name (#18178) 2025-05-09 13:45:44 +07:00
luzpaz b1e1362246
fix: various typos (grouped in to separate commits) (#18177) 2025-05-09 13:10:34 +07:00
Jason Rasmussen a6e5e4f625
fix: schema ci checks (#18146) 2025-05-07 21:14:20 +07:00
SGT ec6379b0b2
chore: remove usage of deprecated Kysely method (#18127)
* minor update. fix usage of deprecated method'

* restore original formatting
2025-05-06 17:01:02 +07:00
Mert 2a80251dc3
fix(server): more robust person thumbnail generation (#17974)
* more robust person thumbnail generation

* clamp bounding boxes

* update sql

* no need to process invalid images after decoding

* cursed knowledge

* new line
2025-05-06 14:18:22 +07:00
Alex d33ce13561
feat(server): visibility column (#17939)
* feat: private view

* pr feedback

* sql generation

* feat: visibility column

* fix: set visibility value as the same as the still part after unlinked live photos

* fix: test

* pr feedback
2025-05-06 12:12:48 +07:00
renovate[bot] 8ff25a4f7a
fix(deps): update dependency @react-email/components to ^0.0.37 (#18126)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-06 18:23:45 +07:00
David Cruz 7072e48cbe
feat: Add DB_SSL_MODE environment variable for Postgres sslmode (#18025)
* feat: Add DB_SSL_MODE environment variable for Postgres sslmode

* chore: clean up

---------

Co-authored-by: Jason Rasmussen <jason@rasm.me>
2025-05-06 09:25:37 +07:00
renovate[bot] 30822fcd10
fix(deps): update typescript-projects (#18124)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-06 14:50:22 +07:00
Jovan Gerodetti 118a3fc9db
fix: update assets when `duplicateId` is provided as `null` (#18071)
Update assets when duplicateId is provided as null
2025-05-06 08:47:19 +07:00
Jason Rasmussen f34f83e164
refactor: controller tests (#18100) 2025-05-05 18:57:32 +07:00
Sergey Katsubo 12610e4a9f
fix(server): handle orientation of imported face regions (#18021)
* Transform imported face RegionInfo according to Exif Orientation

* Add unit tests for re-orienting metadata face regions

* Make code DRY using ImmichTagsWithFaces instead of NonNullable

* Add e2e test for importing metadata face regions when orientation is RotateCW90

* Disable new e2e test until its asset is added to the test-assets project

* Simplify unit tests by using the same face tag definition

* Combine similar e2e tests

* Disable new e2e test until portrait-orientation-6.jpg is added to test-assets

* Fix lint error: Expected property shorthand

* Update test-assets ref to latest

* Enable new e2e test after updating test-assets
2025-05-05 11:11:21 +07:00
Jason Rasmussen ea9f11bf39
refactor: controller tests (#18035)
* feat: controller unit tests

* refactor: controller tests
2025-05-03 09:39:44 +07:00
Jason Rasmussen 5d21ba3166
chore: logging clean up (#18031) 2025-05-02 12:34:35 +07:00
Thomas da7a81b752
chore(server): split album update notifications into multiple jobs (#17879)
We would like to move away from the concept of finding and removing pending
jobs. The only place this is used is for album update notifications, and this
is done so that users who initially uploaded assets to an album will also
receive a notification if someone else then adds assets to the same album. This
can also be achieved with a job for each recipient. Multiple jobs also has the
advantage that it will scale better for albums with many users, it's possible
to send notifications concurrently, retries are possible without sending
duplicate notifications, and it's clear what recipient a job failed for.
2025-04-30 17:45:35 +07:00
Jason Rasmussen becdc3dcf5
refactor: job on-done (#18004) 2025-04-30 17:02:53 +07:00
Eli Gao 84b51e3cbb
fix(server): double rotation on HEIF files (#18002)
* fix(server): double rotation on HEIF/HEIC files

* Update server/src/services/media.service.ts

* formatting

---------

Co-authored-by: Mert <101130780+mertalev@users.noreply.github.com>
2025-04-30 20:33:18 +07:00
Jason Rasmussen b845184c80
chore: remove old memory lane implementation (#18000) 2025-04-30 14:23:32 +07:00