Yaros
35eda735c8
fix(web): recent search doesn't use search type ( #24578 )
...
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-12-15 12:44:00 +01:00
Diogo Correia
8f7a71d1cf
fix(web): download panel being hidden by admin sidebar ( #24583 )
2025-12-15 12:29:18 +01:00
Sergey Katsubo
c5d99711f7
fix(web): show inferred timezone in date editor ( #24513 )
...
fix(web): show inferred timezone of asset in date editor
2025-12-11 09:20:51 -06:00
Yaros
4c0a41723f
feat(web): asset selection bar in tags view ( #24522 )
...
* feat(web): asset selection tab in tags view
* chore: remove unused imports
2025-12-11 15:20:29 +00:00
renovate[bot]
baad38f0e6
fix(deps): update typescript-projects ( #24476 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-12-11 00:13:06 +00:00
Min Idzelis
161147af51
feat: timeline-manager improvement to use AssetResponseDto efficiently ( #24421 )
2025-12-11 01:07:31 +01:00
Alex
6d499c782a
chore: update ui lib ( #24483 )
2025-12-09 17:27:01 -06:00
Simon Kubiak
fe9125a3d1
fix(web): [album table view] long album title overflows table row ( #24450 )
...
fix(web): long album title overflows vertically on album page in table view
2025-12-08 15:35:58 +00:00
Min Idzelis
879e0ea131
fix: thumbnail doesnt send mouseLeave events properly ( #24423 )
2025-12-06 21:52:06 +01:00
Daniel Dietzler
ae8f5a6673
fix: prettier ( #24386 )
2025-12-04 16:10:42 +00:00
Jason Rasmussen
31f2c7b505
feat: header context menu ( #24374 )
2025-12-04 11:09:38 -05:00
Yaros
ba6687dde9
feat(web): search type selection dropdown ( #24091 )
...
* feat(web): search type selection dropdown
* chore: implement suggestions
* lint
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-12-04 04:10:12 +00:00
Omar I
d41921247b
fix(web): Add minimum content size to logo for consistent visual on small screens ( #24372 )
2025-12-03 21:35:48 +00:00
Jason Rasmussen
45f68f73a9
feat: queue detail page ( #24352 )
2025-12-03 13:39:32 -05:00
renovate[bot]
4f93eda8d8
fix(deps): update typescript-projects ( #24329 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-12-02 23:28:12 +01:00
Jonathan Jogenfors
62628dfcfa
fix(web): folder view sort oder ( #24337 )
...
fix: folder view sort oder
2025-12-02 11:48:12 -06:00
carbonemys
b452ab463b
fix(web): open onboarding documentation link in new tab ( #24289 )
...
* fix(web): open onboarding documentation link in new tab
* Update web/src/lib/components/onboarding-page/onboarding-storage-template.svelte
---------
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
2025-12-01 20:49:31 -06:00
idubnori
d8ca210641
chore(web): minor UX improvements of "view asset owners" feature ( #24319 )
...
* feat: toggle in options modal
* feat(i18n): add labels to display who uploaded each asset and show asset owners
* feat: migrate asset owner settings to TimelineManager and update AlbumOptionsModal
* Revert "feat(i18n): add labels to display who uploaded each asset and show asset owners"
This reverts commit cf8f4eb1356d45d88fc4625c90a5b511d4d86333.
* fix: simplify AlbumOptionsModal invocation and update aria-label for asset owners
* feat(i18n): add label for viewing asset owners in the interface
* feat: add tests for showAssetOwners functionality in TimelineManager
* chore: move asset owner visibility toggle to kebabu menu
2025-12-01 10:25:12 -06:00
Min Idzelis
ab35afd3b1
refactor(web): reimplement operation-support as part of timeline-manager ( #24056 )
...
* refactor(web): reimplement operation-support as part of timeline-manager
Improve clarity of methods.
Add inline method documentation.
Make return type of AssetOperation optional.
* Review comments - self document code. remove optional return from callback
2025-12-01 09:04:39 -06:00
idubnori
65e4fdf98d
refactor(web): i18n-ize "view asset owners" ( #24317 )
2025-12-01 15:01:57 +00:00
Chris Peckover
922282b2b4
feat(web): Shared album owner labels ( #21171 )
...
* - pass available album users along to the thumbnail through the asset-date-group
- show a small user-avatar in bottom right of thumbnail
* - change owner to their name in white text instead of the avatar
* cleanup
* - cleanup albumUsers creation
- use font-light for the user's name
* fix lint
* format
* - add toggle to show/hide asset owner names
* update new Timeline with albumUsers
* add @idubnori suggestion for the name font
* Don't show 'view owners' button if the album doesn't have editors
* add missing import
* format
* fix(web): #21171 (#24298 )
fix: Bind timelineManager to Timeline component
---------
Co-authored-by: idubnori <i.dub.nori@gmail.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-11-30 18:56:03 +00:00
Niklas von Moers
08f320c801
fix(web): use full tag path when creating nested subtags ( #24249 )
2025-11-29 12:09:32 +00:00
Mees Frensel
e36261b552
fix(web): integrate zoom toggle button into panorama photo viewer ( #24189 )
2025-11-28 18:50:16 +01:00
Daniel Dietzler
c0a3b58bba
fix: rare cases of assets not loading in when scrolling backwards ( #24245 )
2025-11-28 10:18:49 -06:00
Jacob Bundgaard
81edf0749f
fix: label 'for' attributes in user-api-key-grid ( #24232 )
2025-11-27 23:28:38 +00:00
renovate[bot]
ca4fd07656
chore(deps): update dependency eslint-plugin-unicorn to v62 ( #24167 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-11-27 21:31:16 +00:00
Daniel Dietzler
fffee80e2f
feat: command palette ( #23693 )
2025-11-26 22:18:50 +01:00
Jason Rasmussen
64cd4e96e3
fix: theme switcher ( #24209 )
2025-11-26 21:17:26 +00:00
Jason Rasmussen
13104d49cd
feat(web): shared link card tweaks ( #24192 )
2025-11-25 19:35:21 -06:00
Jason Rasmussen
2d5ec528d5
fix(web): user admin pages ( #24185 )
...
fix: user admin pages
2025-11-25 16:35:37 -05:00
Min Idzelis
5226898184
fix: update timeline-manager after archive actions ( #24010 )
...
* fix: update timeline-manager after archive actions
* Add locators to thumb icons
2025-11-25 15:06:29 -05:00
renovate[bot]
3d6c26350a
fix(deps): update typescript-projects ( #24163 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-11-25 17:26:36 +00:00
Jason Rasmussen
104fa09f69
feat: queues ( #24142 )
2025-11-25 08:19:40 -05:00
Alex
66ae07ee39
fix: don't get OCR data in shared link ( #24152 )
2025-11-25 07:58:27 -05:00
Daniel Dietzler
939d2c8b27
chore: minor admin pages refactorings ( #24160 )
2025-11-25 07:57:30 -05:00
renovate[bot]
01310c6d86
chore(deps): update node.js to v24.11.1 ( #24147 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-25 11:55:36 +01:00
Daniel Dietzler
8755cd59fd
chore: refactor svelte reactivity ( #24072 )
2025-11-24 18:57:46 -05:00
Min Idzelis
7694b342ed
refactor(web): Extract asset grid layout component from TimelineDateGroup and split into AssetLayout and Month components ( #23338 )
...
* refactor(web): Extract asset grid layout component from TimelineDateGroup and split into AssetLayout and Month components
* chore: cleanup
---------
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
2025-11-24 23:09:46 +00:00
fabianbees
78553a0258
feat: separate camera and lens info in detail panel ( #23670 )
...
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-11-24 16:30:15 +00:00
Min Idzelis
d6b39a464d
feat: improve performance: don't sort timeline buckets from server ( #24032 )
2025-11-24 17:26:52 +01:00
Snowknight26
75d23fe135
fix(web): fix support & feedback modal wrapping ( #24018 )
...
* fix(web): fix support & feedback modal wrapping
* Fix reference
2025-11-24 10:24:02 -06:00
Daniel Dietzler
0498f6cb9d
fix: albums page reactivity loops ( #24046 )
2025-11-24 17:14:24 +01:00
Daniel Dietzler
57be3ff8c7
fix: add users to album ( #24133 )
2025-11-24 07:52:36 -05:00
Ujjwal Goel
99505f987e
fix: use npm instead of pnpm and fix check:all ( #24101 )
...
* fix: use npm instead of pnpm and fix `check:all`
* fix: remove `--` from pnpm commands
* Remove `check:all` from the documentation section
2025-11-23 21:04:43 -06:00
Lukas
1e1c4ac9d2
feat(web): allow navigating the map with arrow keys ( #24080 )
2025-11-21 23:46:30 +01:00
Mees Frensel
d952b62053
feat(web): show detected faces in spherical photos ( #23974 )
2025-11-21 09:11:47 -06:00
Daniel Dietzler
78457d9b89
chore: add new language requests ( #23991 )
2025-11-20 08:58:18 -05:00
Jason Rasmussen
9a403d5886
refactor(web): user delete websocket event ( #24015 )
2025-11-20 07:54:29 -05:00
Jason Rasmussen
1a31faf1a2
fix: effect loop ( #24014 )
2025-11-20 07:52:37 -05:00
github-actions
edbdc14178
chore: version v2.3.1
2025-11-20 02:20:16 +00:00
Alex
e7261a04e1
fix: new update notification cause rendering loop ( #24013 )
2025-11-19 20:14:30 -06:00
Jason Rasmussen
acded69adf
fix: supporter badge ( #24012 )
2025-11-19 20:14:15 -06:00
github-actions
45a0315606
chore: version v2.3.0
2025-11-19 17:46:53 +00:00
Alex
56e431226f
feat: show OCR bounding box ( #23717 )
...
* feat: ocr bounding box
* bounding boxes
* pr feedback
* pr feedback
* allow copy across text boxes
* pr feedback
2025-11-19 15:52:40 +00:00
Daniel Dietzler
f59417cc77
chore(web): refactor replace asset ( #23972 )
2025-11-19 08:49:15 -06:00
Min Idzelis
11cec56e80
refactor(web): consolidate timeline API - merge addAssets/updateAssets into upsertAssets ( #23985 )
2025-11-19 08:48:16 -06:00
Min Idzelis
2152f20b6c
fix: unarchive action doesn't update archive page ( #23987 )
2025-11-19 12:29:02 +01:00
Min Idzelis
42dd3315f8
refactor(web): fix TimelineManager import - use value import instead of type-only ( #23983 )
2025-11-18 21:26:15 -06:00
Kevin Puertas
3a694219bf
feat: add originalPath for external library assets in dedupe ( #23710 )
...
* Add original path info row to duplicate asset component
View path of images, useful when using external Library
* Make if for not show path in internal images
* Update web/src/lib/components/utilities-page/duplicates/duplicate-asset.svelte
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
* Refactor original path display logic in duplicate-asset
* Update duplicate-asset.svelte
* Add full path localization string
* Change translated data
* format: fix
---------
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2025-11-19 03:24:17 +00:00
Daniel Dietzler
5f987a95f5
fix: feature flags manager race condition ( #23973 )
...
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-11-19 03:05:53 +00:00
Mees Frensel
76c73549ae
feat(web): always view original of animated images ( #23842 )
2025-11-18 21:02:52 -06:00
Daniel Dietzler
d310c6f3cd
feat: library details page ( #23908 )
...
* feat: library details page
* chore: clean up
---------
Co-authored-by: Jason Rasmussen <jason@rasm.me>
2025-11-18 15:27:41 -05:00
Min Idzelis
237ddcb648
fix: incorrect header height calculation in estimated month height ( #23923 )
2025-11-17 14:14:06 -06:00
Min Idzelis
d64c339b4f
fix: null dereference when canceling bucket in album ( #23924 )
2025-11-17 14:12:28 -06:00
Min Idzelis
69880ee165
fix: deep link to last asset ( #23920 )
2025-11-17 14:12:07 -06:00
Paul Makles
15e00f82f0
feat: maintenance mode ( #23431 )
...
* feat: add a `maintenance.enabled` config flag
* feat: implement graceful restart
feat: restart when maintenance config is toggled
* feat: boot a stripped down maintenance api if enabled
* feat: cli command to toggle maintenance mode
* chore: fallback IMMICH_SERVER_URL environment variable in process
* chore: add additional routes to maintenance controller
* fix: don't wait for nest application to close to finish request response
* chore: add a failsafe on restart to prevent other exit codes from preventing restart
* feat: redirect into/from maintenance page
* refactor: use system metadata for maintenance status
* refactor: wait on WebSocket connection to refresh
* feat: broadcast websocket event on server restart
refactor: listen to WS instead of polling
* refactor: bubble up maintenance information instead of hijacking in fetch function
feat: show modal when server is restarting
* chore: increase timeout for ungraceful restart
* refactor: deduplicate code between api/maintenance workers
* fix: skip config check if database is not initialised
* fix: add `maintenanceMode` field to system config test
* refactor: move maintenance resolution code to static method in service
* chore: clean up linter issues
* chore: generate dart openapi
* refactor: use try{} block for maintenance mode check
* fix: logic error in server redirect
* chore: include `maintenanceMode` key in e2e test
* chore: add i18n entries for maintenance screens
* chore: remove negated condition from hook
* fix: should set default value not override in service
* fix: minor error in page
* feat: initial draft of maintenance module, repo., worker controller, worker service
* refactor: move broadcast code into notification service
* chore: connect websocket on client if in maintenance
* chore: set maintenance module app name
* refactor: rename repository to include worker
chore: configure websocket adapter
* feat: reimplement maintenance mode exit with new module
* refactor: add a constant enum for ExitCode
* refactor: remove redundant route for maintenance
* refactor: only spin up kysely on boot (rather than a Nest app)
* refactor(web): move redirect logic into +layout file where modal is setup
* feat: add Maintenance permission
* refactor: merge common code between api/maintenance
* fix: propagate changes from the CLI to servers
* feat: maintenance authentication guard
* refactor: unify maintenance code into repository
feat: add a step to generate maintenance mode token
* feat: jwt auth for maintenance
* refactor: switch from nest jwt to just jsonwebtokens
* feat: log into maintenance mode from CLI command
* refactor: use `secret` instead of `token` in jwt terminology
chore: log maintenance mode login URL on boot
chore: don't make CLI actions reload if already in target state
* docs: initial draft for maintenance mode page
* refactor: always validate the maintenance auth on the server
* feat: add a link to maintenance mode documentation
* feat: redirect users back to the last page they were on when exiting maintenance
* refactor: provide closeFn in both maintenance repos.
* refactor: ensure the user is also redirected by the server
* chore: swap jsonwebtoken for jose
* refactor: introduce AppRestartEvent w/o secret passing
* refactor: use navigation goto
* refactor: use `continue` instead of `next`
* chore: lint fixes for server
* chore: lint fixes for web
* test: add mock for maintenance repository
* test: add base service dependency to maintenance
* chore: remove @types/jsonwebtoken
* refactor: close database connection after startup check
* refactor: use `request#auth` key
* refactor: use service instead of repository
chore: read token from cookie if possible
chore: rename client event to AppRestartV1
* refactor: more concise redirect logic on web
* refactor: move redirect check into utils
refactor: update translation strings to be more sensible
* refactor: always validate login (i.e. check cookie)
* refactor: lint, open-api, remove old dto
* refactor: encode at point of usage
* refactor: remove business logic from repositories
* chore: fix server/web lints
* refactor: remove repository mock
* chore: fix formatting
* test: write service mocks for maintenance mode
* test: write cli service tests
* fix: catch errors when closing app
* fix: always report no maintenance when usual API is available
* test: api e2e maintenance spec
* chore: add response builder
* chore: add helper to set maint. auth cookie
* feat: add SSR to maintenance API
* test(e2e): write web spec for maintenance
* chore: clean up lint issues
* chore: format files
* feat: perform 302 redirect at server level during maintenance
* fix: keep trying to stop immich until it succeeds (CLI issue)
* chore: lint/format
* refactor: annotate references to other services in worker service
* chore: lint
* refactor: remove unnecessary await
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
* refactor: move static methods into util
* refactor: assert secret exists in maintenance worker
* refactor: remove assertion which isn't necessary anymore
* refactor: remove assertion
* refactor: remove outer try {} catch block from loadMaintenanceAuth
* refactor: undo earlier change to vite.config.ts
* chore: update tests due to refactors
* revert: vite.config.ts
* test: expect string jwt
* chore: move blanket exceptions into controllers
* test: update tests according with last change
* refactor: use respondWithCookie
refactor: merge start/end into one route
refactor: rename MaintenanceRepository to AppRepository
chore: use new ApiTag/Endpoint
refactor: apply other requested changes
* chore: regenerate openapi
* chore: lint/format
* chore: remove secureOnly for maint. cookie
* refactor: move maintenance worker code into src/maintenance\nfix: various test fixes
* refactor: use `action` property for setting maint. mode
* refactor: remove Websocket#restartApp in favour of individual methods
* chore: incomplete commit
* chore: remove stray log
* fix: call exitApp from maintenance worker on exit
* fix: add app repository mock
* fix: ensure maintenance cookies are secure
* fix: run playwright tests over secure context (localhost)
* test: update other references to 127.0.0.1
* refactor: use serverSideEmitWithAck
* chore: correct the logic in tryTerminate
* test: juggle cookies ourselves
* chore: fix lint error for e2e spec
* chore: format e2e test
* fix: set cookie secure/non-secure depending on context
* chore: format files
---------
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
2025-11-17 17:15:44 +00:00
100daysummer
af22f9b014
fix: word wrap on custom link preview ( #23942 )
...
Word break fix in create link
Adds the "break-all" tailwind style to the slug text under the custom link text box
2025-11-17 08:49:32 -05:00
Alex
4dcc049465
feat: workflow foundation ( #23621 )
...
* feat: plugins
* feat: table definition
* feat: type and migration
* feat: add repositories
* feat: validate manifest with class-validator and load manifest info to database
* feat: workflow/plugin controller/service layer
* feat: implement workflow logic
* feat: make trigger static
* feat: dynamical instantiate plugin instances
* fix: access control and helper script
* feat: it works
* chore: simplify
* refactor: refactor and use queue for workflow execution
* refactor: remove unsused property in plugin-schema
* build wasm in prod
* feat: plugin loader in transaction
* fix: docker build arm64
* generated files
* shell check
* fix tests
* fix: waiting for migration to finish before loading plugin
* remove context reassignment
* feat: use mise to manage extism tools (#23760 )
* pr feedback
* refactor: create workflow now including create filters and actions
* feat: workflow medium tests
* fix: broken medium test
* feat: medium tests
* chore: unify workflow job
* sign user id with jwt
* chore: query plugin with filters and action
* chore: read manifest in repository
* chore: load manifest from server configs
* merge main
* feat: endpoint documentation
* pr feedback
* load plugin from absolute path
* refactor:handle trigger
* throw error and return early
* pr feedback
* unify plugin services
* fix: plugins code
* clean up
* remove triggerConfig
* clean up
* displayName and methodName
---------
Co-authored-by: Jason Rasmussen <jason@rasm.me>
Co-authored-by: bo0tzz <git@bo0tzz.me>
2025-11-14 20:05:05 +00:00
Jason Rasmussen
d784d431d0
refactor: job vs queue naming ( #23902 )
2025-11-14 14:42:00 -05:00
Daniel Dietzler
1200bfad13
refactor: server config and feature flags managers ( #23894 )
2025-11-14 14:10:44 -05:00
Daniel Dietzler
f1f203719d
refactor: admin settings ( #23843 )
2025-11-13 13:17:44 -05:00
Juan Roa
8001dedcbf
fix(web): keep album timeline when selecting cover ( #23819 )
2025-11-13 16:30:24 +00:00
Daniel Dietzler
e0535e20e6
chore: cleanup web ( #23866 )
2025-11-13 12:51:17 +00:00
Daniel Dietzler
0e7e67efe1
fix: timeline scroll after navigate ( #23664 )
2025-11-13 11:28:42 +01:00
Mees Frensel
edf21bae41
feat(web): disable searching by disabled features ( #23798 )
...
fix(web): disable searching by disabled features
2025-11-12 09:19:18 -06:00
Daniel Dietzler
70ab8bc657
refactor: shared links modals ( #23803 )
2025-11-12 12:57:53 +01:00
Mees Frensel
4fd9e42ce5
feat(web): animate gifs on hover ( #23198 )
2025-11-11 10:22:53 -06:00
Mees Frensel
905f4375b0
fix(web): make sliding window cover all visible space to show small number of assets ( #23796 )
2025-11-11 08:50:31 -06:00
Jason Rasmussen
2f40f5aad8
refactor: user admin service ( #23785 )
2025-11-11 07:42:33 -05:00
Jason Rasmussen
0b487897a4
refactor: shared link service ( #23775 )
2025-11-10 16:17:18 -05:00
Jason Rasmussen
d5c5bdffcb
refactor: album delete ( #23773 )
2025-11-10 16:10:29 -05:00
Jason Rasmussen
dea95ac2e6
refactor: shared-link service ( #23770 )
2025-11-10 20:49:02 +00:00
Alex
6922a92b69
feat: show update version info ( #23698 )
...
* feat: show update version info
* Apply suggestions from code review
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
---------
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
2025-11-10 14:19:27 -06:00
renovate[bot]
787158247f
fix(deps): update typescript-projects ( #23588 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-11-10 19:50:19 +00:00
Jason Rasmussen
8de6ec1a1b
refactor: album service ( #23768 )
2025-11-10 13:40:58 -05:00
Daniel Dietzler
d27c01ef70
chore: migrate remaining usages of the logo to use the UI lib ( #23430 )
2025-11-10 19:16:49 +01:00
Jason Rasmussen
45304f1211
refactor: view shared link ( #23766 )
2025-11-10 12:21:26 -05:00
Jason Rasmussen
a4e65a7ea8
refactor: albums-list ( #23765 )
2025-11-10 11:49:59 -05:00
Daniel Dietzler
dd393c8346
feat(web): event handler component ( #23763 )
2025-11-10 11:49:46 -05:00
Jason Rasmussen
7705c84b04
refactor(web): album service ( #23762 )
2025-11-10 11:06:40 -05:00
bo0tzz
8a73de018c
feat: mise monorepo tasks ( #23691 )
2025-11-10 15:55:15 +01:00
Mees Frensel
6c6b00067b
fix(web): i18n for admin>users>sessions ( #23756 )
2025-11-10 12:48:17 +00:00
Mees Frensel
9cc88ed2a6
feat: make memories slideshow duration configurable ( #22783 )
2025-11-08 17:46:43 -05:00
Lukas
c935ae47d0
feat: lazy load thumbnails on people and place list ( #23682 )
...
perf(web): lazy load thumbnails on people and place list
2025-11-07 14:22:02 -06:00
Mert
6913697ad1
feat(ml): multilingual ocr ( #23527 )
...
* handle other languages in ml server
* add variants to model selector
* no need to override path
* unused import
2025-11-06 12:58:41 -05:00
Snowknight26
2c50f2e244
fix(web): add URLs to results in large files utility ( #23617 )
...
fix(web): add URLs to results in large files
2025-11-06 09:24:47 -05:00
Arnaud Wery
c15e9bfa72
fix(web): "select all" button in trash and permanently deleted count ( #23594 )
2025-11-05 14:05:48 +00:00
Sergey Katsubo
3cc9dd126c
fix(web): fix timezone dropdown for timestamps lacking milliseconds ( #23615 )
...
Fix timezone selector for timestamps without milliseconds
2025-11-05 08:03:55 -06:00
Mees Frensel
c34be73d81
fix(web): consistently use mdiMotionPauseOutline icon ( #23595 )
2025-11-04 12:12:47 +01:00
github-actions
28eb1bc13c
chore: version v2.2.3
2025-11-04 03:14:34 +00:00
Ben
619de2a5e4
fix(web): search bar accessibility ( #23550 )
...
* fix: always show search type when search bar is focused
* fix: indicate search type to screen reader users
2025-11-03 08:31:57 -05:00
github-actions
f5ff36a1f8
chore: version v2.2.2
2025-11-02 21:56:36 +00:00
Daniel Dietzler
c76324c611
fix(web): mobile scrubber on page load ( #23488 )
2025-11-01 22:15:33 -05:00
github-actions
b35f00f768
chore: version v2.2.1
2025-10-31 18:04:27 +00:00
Alex
5854cbbe97
fix: show close button on purchase modal ( #23436 )
2025-10-31 17:47:14 +00:00
Daniel Dietzler
f5d7e5acca
chore: cannonical tailwind classes ( #23427 )
2025-10-31 11:38:17 -04:00
Daniel Dietzler
3531856d1c
refactor: api key modals ( #23420 )
2025-10-31 08:58:52 -04:00
github-actions
57c8378ca7
chore: version v2.2.0
2025-10-30 14:42:44 +00:00
Alex
2286444158
chore: css nits ( #23330 )
2025-10-29 09:20:04 -05:00
renovate[bot]
b489bdf8d3
chore(deps): update node.js to v24 ( #23346 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-29 14:48:20 +01:00
renovate[bot]
fdfb04d83c
fix(deps): update typescript-projects ( #23311 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-10-29 11:34:20 +00:00
Min Idzelis
8d25f81bec
fix: regression - search results not visible until scroll ( #23321 )
2025-10-28 14:15:24 -05:00
Jason Rasmussen
52596255c8
feat: toasts ( #23298 )
2025-10-28 14:09:11 -05:00
Thomas Stachl
fb97d9f4d9
fix(web): disable picture-in-picture on video viewer ( #23318 )
2025-10-28 09:15:35 -05:00
renovate[bot]
f72bcc8a8f
chore(deps): update node.js to v22.21.0 ( #23314 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-28 12:36:19 +00:00
Min Idzelis
d51b8c1cdf
fix: focus-trap on safari ( #23246 )
2025-10-27 21:29:30 -05:00
Alex
698531d6e0
feat: improve UI for resolving duplication detection ( #23145 )
...
* feat: improve UI for resolving duplication detection
* pr feedback
2025-10-27 17:32:52 -04:00
Zac Warham
b0d427f8f9
chore: show leading zero week in storage template ( #23275 )
...
* Use date which shows week with a zero
* Update sample date in SupportedDatetimePanel
* Update web/src/lib/components/admin-settings/SupportedDatetimePanel.svelte
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-10-27 09:21:37 -05:00
Kang
02b29046b3
feat: ocr ( #18836 )
...
* feat: add OCR functionality and related configurations
* chore: update labeler configuration for machine learning files
* feat(i18n): enhance OCR model descriptions and add orientation classification and unwarping features
* chore: update Dockerfile to include ccache for improved build performance
* feat(ocr): enhance OCR model configuration with orientation classification and unwarping options, update PaddleOCR integration, and improve response structure
* refactor(ocr): remove OCR_CLEANUP job from enum and type definitions
* refactor(ocr): remove obsolete OCR entity and migration files, and update asset job status and schema to accommodate new OCR table structure
* refactor(ocr): update OCR schema and response structure to use individual coordinates instead of bounding box, and adjust related service and repository files
* feat: enhance OCR configuration and functionality
- Updated OCR settings to include minimum detection box score, minimum detection score, and minimum recognition score.
- Refactored PaddleOCRecognizer to utilize new scoring parameters.
- Introduced new database tables for asset OCR data and search functionality.
- Modified related services and repositories to support the new OCR features.
- Updated translations for improved clarity in settings UI.
* sql changes
* use rapidocr
* change dto
* update web
* update lock
* update api
* store positions as normalized floats
* match column order in db
* update admin ui settings descriptions
fix max resolution key
set min threshold to 0.1
fix bind
* apply config correctly, adjust defaults
* unnecessary model type
* unnecessary sources
* fix(ocr): switch RapidOCR lang type from LangDet to LangRec
* fix(ocr): expose lang_type (LangRec.CH) and font_path on OcrOptions for RapidOCR
* fix(ocr): make OCR text search case- and accent-insensitive using ILIKE + unaccent
* fix(ocr): add OCR search fields
* fix: Add OCR database migration and update ML prediction logic.
* trigrams are already case insensitive
* add tests
* format
* update migrations
* wrong uuid function
* linting
* maybe fix medium tests
* formatting
* fix weblate check
* openapi
* sql
* minor fixes
* maybe fix medium tests part 2
* passing medium tests
* format web
* readd sql
* format dart
* disabled in e2e
* chore: translation ordering
---------
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2025-10-27 14:09:55 +00:00
Min Idzelis
c666dc6c67
fix: back/forward navigation won't reset scroll in timeline ( #22838 )
...
* fix: back/forward navigation won't reset scroll in timeline
Fixes a bug where navigating to/from the asser-viewer from timeline causes the scroll position to be reset.
* Fix back after assetviewer next/prev navigation
* Bug fix from review
* review comments
2025-10-27 08:56:03 -05:00
Jorge Montejo
382481735a
feat: logout sessions on password change ( #23188 )
...
* log out ohter sessions on password change
* translations
* update and add tests
* rename event to UserLogoutOtherSessions
* fix typo
* requested changes
* fix tests
* fix medium:test
* use ValidateBoolean
* fix format
* dont delete current session id
* Update server/src/dtos/auth.dto.ts
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
* rename event and invalidateOtherSessions
* chore: cleanup
---------
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
Co-authored-by: Jason Rasmussen <jason@rasm.me>
2025-10-27 13:16:10 +00:00
Min Idzelis
6bb1a9e083
fix: incomplete dynamic imports ( #23217 )
2025-10-27 08:45:30 -04:00
Mert
3f03a88767
feat(web): wasm justified layout, sync edition ( #23194 )
...
* the invisible wasm
use npm version
* deterministic tests
* add todo
* linting
* bump library, add helpers
* use target height for unfilled rows
* update tests
2025-10-25 00:06:05 -05:00
andre-antunesdesa
f721a62776
feat(web): load original videos ( #20041 )
...
* added user preference for always loading original video
added ability to toggle between transcoded/original in the video viewer
add fix to static check error
* address PR comments
* Update asset-viewer-nav-bar.svelte
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
---------
Co-authored-by: Mert <101130780+mertalev@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
2025-10-24 19:03:51 +00:00
Dag Stuan
78fb815cdb
feat(web): add search filter for camera lens model. ( #21792 )
2025-10-24 14:41:34 -04:00
Jason Rasmussen
d9cddeb0f1
chore: use reverse proxy during local preview ( #23184 )
2025-10-24 14:00:51 -04:00
Basharat Ahmad Khan
0a6b2ad26e
feat(web): reactively update shared link expiration ( #22274 )
...
Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
2025-10-24 13:18:49 +02:00
Jason Rasmussen
cb7e68a287
refactor: user edit modal ( #23169 )
2025-10-22 15:21:16 -04:00
Jason Rasmussen
e196cac6f4
refactor: asset description modal ( #23168 )
2025-10-22 13:08:59 -05:00
Jason Rasmussen
351c0d2a4d
refactor: user delete confirm modal ( #23166 )
2025-10-22 13:49:06 -04:00
Daniel Dietzler
b334288529
fix: session list text color ( #23165 )
2025-10-22 17:33:54 +00:00
aviv926
cd8d66f5dd
fix(web): show upload speed ( #23138 )
...
* remove unnecessary else
* Better fix
* fix: update text color
* chore: stylings
---------
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2025-10-22 15:40:10 +00:00
Alex
76f5036026
chore: improve onboarding, app download links styling ( #23134 )
2025-10-21 21:10:12 -05:00
aviv926
032de9ff2f
feat: view the user's app version on the user page ( #21345 )
...
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-10-22 00:36:18 +02:00
renovate[bot]
d9452e485c
fix(deps): update typescript-projects ( #23119 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-10-21 10:22:53 +00:00
Min Idzelis
04e2e42c88
refactor(web): improve date labels in scrubber ( #23046 )
...
refactor(web): improve timeline scrubber labeling logic
Refactor the segment calculation in the timeline scrubber to improve code clarity and fix label positioning. Process months in reverse order for more intuitive label selection, use descriptive variable names, and remove unnecessary index tracking.
2025-10-20 22:13:49 -05:00
Min Idzelis
58f9659cf6
fix: blank page on assetviewer to timeline (regression) ( #23073 )
2025-10-19 11:01:42 -05:00
Alex
06151ad173
chore: use correct tailwindcss class ( #23054 )
2025-10-18 20:32:11 -05:00
Arno
0700758621
fix: remove unnecessary api call ( #23050 )
...
Co-authored-by: Arno <arno@crewbrain.com>
2025-10-18 19:21:37 +02:00
Yaros
f26db8053b
fix(web): two scrollbars in folder view ( #23045 )
2025-10-18 10:24:49 +00:00
Adrian Jost
0979528a05
feat: show location & date on duplicate asset comparison overview ( #22632 )
2025-10-17 21:04:45 +00:00
Jason Rasmussen
24a6757630
refactor: user edit modal ( #23025 )
2025-10-17 14:38:57 -04:00
Jason Rasmussen
67f093f75b
feat(web): create user as admin ( #23026 )
2025-10-17 14:26:07 -04:00
Min Idzelis
3174a27902
refactor(web): Extract VirtualScrollManager base class from TimelineManager ( #23017 )
...
Extract common virtual scrolling functionality from TimelineManager into
a new abstract VirtualScrollManager base class. This refactoring improves
code organization and enables reuse of virtual scrolling logic.
Changes:
- Create new VirtualScrollManager abstract base class with common virtual
scrolling state and methods
- Refactor TimelineManager to extend VirtualScrollManager
- Rename 'assetsHeight' to 'bodySectionHeight' for semantic clarity
- Convert methods to use override keyword where appropriate
- Enable noImplicitOverride in tsconfig for better type safety
- Fix ApiError and AbortError class definitions with override keywords
2025-10-17 17:37:54 +00:00
Nicholas
cc1cd299f3
feat(web): Download links and Obtainium link generator on Utilities page and onboarding ( #20589 )
2025-10-17 13:22:00 +02:00
Paul Larsen
3163afd24a
fix(web): render context overlays over the scrollbar ( #23007 )
2025-10-17 12:35:19 +02:00
Clement Martin
95889a69c9
feat(server): Option to configure SMTPS transport ( #22833 )
...
* feat(server): Option to configure SMTPS transport
This commit adds a boolean option in the SMTP transport configuration to
enable the so-called "secure" mode. What it does is use SMTP over TLS
instead of relying on the more common STARTTLS option over plain SMTP.
* Add missing field in dto
* Add missing field
* Use a switch instead of text field
* Add field in spec
* chore: regen open-api
---------
Co-authored-by: Jason Rasmussen <jason@rasm.me>
2025-10-17 10:21:27 +00:00
Brandon Wees
81554e5ad1
chore: change usage of pnpx to pnpm dlx ( #23009 )
2025-10-17 12:20:50 +02:00
Jason Rasmussen
24bfdf3263
fix(web): immich-form-label usage ( #23006 )
2025-10-16 17:49:12 -04:00
Min Idzelis
2919ee4c65
fix: navigate to time action ( #20928 )
...
* fix: navigate to time action
* change-date -> DateSelectionModal; use luxon; use handle* for callback fn name
* refactor change-date dialogs
* Review comments
* chore: clean up
---------
Co-authored-by: Jason Rasmussen <jason@rasm.me>
2025-10-16 17:44:09 +00:00
Alex
d0eae97037
fix: unit overlapses value in server stats card ( #22994 )
2025-10-16 17:14:39 +00:00
Min Idzelis
b3055d2e94
refactor: TimelineManager is owned by Timeline.svelte ( #22839 )
...
feat: TimelineManager is owned by Timeline.svelte
2025-10-15 17:27:44 +00:00
Min Idzelis
f1e03d0022
fix(web): improve scrubber behavior on scroll-limited timelines ( #22917 )
...
Improves scroll indicator positioning when scrubbing through timelines with limited scrollable content (e.g., small albums). When a timeline's scrollable height is less than 50% of the viewport height, the scroll position is now properly distributed across the entire scrubber height, making the indicator more responsive and accurate.
Changes:
- Add `limitedScroll` state to detect scroll-constrained timelines (threshold: 50%)
- Introduce `ViewportTopMonth` type to handle lead-in/lead-out sections
- Calculate `totalViewerHeight` including top/bottom sections for accurate positioning
- Refactor scrubber to treat lead-in and lead-out as distinct scroll segments
- Update scroll position calculations to use relative percentages on constrained timelines
2025-10-15 13:13:05 -04:00
Saschl
9b5855f848
feat: add video auto play setting ( #20416 )
...
* feat: add auto play setting to mobile
* feat: add auto play video setting to web
* address review comments
* fix setting id
---------
Co-authored-by: Saschl <noreply@saschl.com>
2025-10-15 11:24:47 -04:00
Mees Frensel
72f5ca4420
fix(web): prevent photo-only memories showing mute button ( #22802 )
2025-10-15 12:15:29 +02:00
Chaoscontrol
02beb85642
feat(album): show per-user contributions in shared albums ( #21740 )
...
* feat: show per-user contribution counts on shared albums
Add API support and UI display for per-user asset contribution
counts on shared albums:
- server: add ContributorCountResponseDto and repository method to
aggregate counts per user (excluding deleted assets), expose via
album response only when shared and counts > 0
- web: display contributor counts in Album Users modal next to each
member’s role
This helps users understand participation levels in shared albums.
* Add ContributorCountResponseDto and expose contributorCounts
on AlbumResponseDto in OpenAPI spec. Regenerate TypeScript SDK
and mobile OpenAPI clients to include new types.
No breaking changes; fields are additive.
* fix: shrink age view to fit and not overflow (#22405 )
Co-authored-by: Alex <alex.tran1502@gmail.com>
* chore: post release tasks (#22587 )
* chore: clean auth-user entity on reset (#22583 )
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
* fix: mitigate database lock scenario when running full sync in splash screen page (#22608 )
* fix: improve sync backup error indicator (#22527 )
* fix: improve sync indicator error
* prefer backup disabled icon before error
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
* fix: bottom navigation bar overlay sheet info (#22610 )
* fix: respect storage indicator setting (#22596 )
* fix: respect storage indicator size setting
* remove black bar on the bottom of the setting scaffold page
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
* fix: do not run multiple engines on cold startup (#22518 )
fix: do not run multiple engines on app startup
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
* fix: album selector in favorite view (#22612 )
* chore(web): update translations (#22486 )
Translate-URL: https://hosted.weblate.org/projects/immich/immich/ar/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/az/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/bg/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/ca/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/cs/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/da/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/de/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/el/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/es/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/fr/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/he/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/hu/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/it/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/kn/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/ko/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/lv/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/ml/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/nb_NO/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/nl/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/pl/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/pt/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/ro/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/ru/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/sk/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/sl/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/sv/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/ta/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/tr/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/zh_SIMPLIFIED/
Translation: Immich/immich
Co-authored-by: Arthur Bols <arthur@bols.dev>
Co-authored-by: Ben Kim <benkim1129@gmail.com>
Co-authored-by: César Gómez <cegomez@gmail.com>
Co-authored-by: DR <weblate-kavita.snowflake668@slmail.me>
Co-authored-by: DevServs <bonov@mail.ru>
Co-authored-by: Emil Friis Osmann <Emilfriisosmann@gmail.com>
Co-authored-by: Fjuro <fjuro@alius.cz>
Co-authored-by: Godwin T <godwintgn@protonmail.com>
Co-authored-by: Hristo T <hristotarnev@gmail.com>
Co-authored-by: Hurricane-32 <rodrigorimo@hotmail.com>
Co-authored-by: Jozef Gaal <preklady@mayday.sk>
Co-authored-by: KecskeTech <teonyitas@gmail.com>
Co-authored-by: Kiril Panayotov <eccyboo@protonmail.com>
Co-authored-by: Liviu Roman <contact@liviuroman.com>
Co-authored-by: Lorenzo <artale.lorenzo@outlook.it>
Co-authored-by: Marcelo Popper Costa <marcelo_popper@hotmail.com>
Co-authored-by: Matjaž T <matjaz@moj-svet.si>
Co-authored-by: Miryusif Rahimov <miryusifrahimov@gmail.com>
Co-authored-by: Msaood <msaood@msaood.com>
Co-authored-by: Mārtiņš Bruņenieks <martinsb@gmail.com>
Co-authored-by: Pedro Vendeira <vendeira.pedro@gmail.com>
Co-authored-by: PontusÖsterlindh <pontus@osterlindh.com>
Co-authored-by: Rahees <ahdrahees.dev@gmail.com>
Co-authored-by: Sandeep R <sandeep1891995@gmail.com>
Co-authored-by: Sylvain Pichon <service@spichon.fr>
Co-authored-by: TV Box <realceday.tvbox@gmail.com>
Co-authored-by: Tino Altmann <usinggrant@hotmail.de>
Co-authored-by: User 123456789 <user123456789@users.noreply.hosted.weblate.org>
Co-authored-by: Vegard Fladby <vegard@fladby.org>
Co-authored-by: anton garcias <isaga.percompartir@gmail.com>
Co-authored-by: chamdim <chamdim@protonmail.com>
Co-authored-by: longlarry <weblate.gm@tuta.io>
Co-authored-by: pyccl <changcongliang@163.com>
Co-authored-by: swever <swever@users.noreply.hosted.weblate.org>
Co-authored-by: தமிழ்நேரம் <tamilneram247@gmail.com>
Co-authored-by: 안세훈 <on9686@gmail.com>
* chore: version v2.0.1
* fix(docs): link to immich docs does not lead correctly to docs (#22687 )
* fix(server): fix chunking Postgres query parameters (#22684 )
* feat(server): improve checkAlbumAccess query performance (#22467 )
* Fix slow SQL query in checkAlbumAccess caused by the array overlap operator &&
* Update access.repository.sql
* Rewrite the query to pass assetIds once as a single array parameter
* chore: mark VSCode tasks as background tasks (#22631 )
VSCode expect tasks that aren't marked as background tasks to finish eventually. That's not how a dev-server is supposed to work, we expect it to run for basically infinite time.
By marking those tasks as background tasks, VSCode stops showing the infinite loading spinner on those processes.
* fix(ml): Resolve IPv6 startup crash and healthcheck failure (#22387 )
* fix(ml): Resolve IPv6 startup crash and healthcheck failure
Fixes #13782
* fix(ml): updated the fix to use the std lib
* Apply code formatting to __main__.py
* fix(server): override reserved color metadata for video thumbnails (#22348 )
override reserved metadata
* fix(mobile): trash description cut off (#22662 )
* fix(mobile): empty album description does not save (#22649 )
* fix(mobile): video player using ref after disposal (#21843 )
check if disposed
* docs: add job order diagram (#22673 )
* docs: add job order diagram
* wording
---------
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
* fix: missing responsive calculation in UserPageLayout (#22455 )
* fix: use full-size image for non-web-compatible panoramas (#20359 )
* fix(web): use full-size image for non-web-compatible panoramas
* always generate full-size image for panoramas
* add unit test
* fix formatting
---------
Co-authored-by: gergo= <gergo@pitty.hu>
* chore: update cli docs to pnpm (#22702 )
update cli docs to pnpm
* chore(web): upgrade ESLint and plugins (#22495 )
* chore(web): upgrade ESLint and plugins, simplify linting configuration
- Update eslint from ^9.18.0 to ^9.36.0
- Update eslint plugins:
- eslint-plugin-svelte: ^3.9.0 → ^3.12.4
- eslint-plugin-unicorn: ^60.0.0 → ^61.0.2
- svelte-eslint-parser: ^1.2.0 → ^1.3.3
- typescript-eslint: ^8.28.0 → ^8.45.0
- Remove eslint-p dependency in favor of native eslint concurrency
- Add unicorn/no-array-sort rule exception
- Update linting scripts to use eslint's native --concurrency flag
- Update Makefile and mise.toml to reflect simplified lint commands
- Update GitHub Actions workflow to use standard pnpm lint command
* pnpm dedupe
---------
Co-authored-by: Ben McCann <322311+benmccann@users.noreply.github.com>
* fix(web): do not notify on patch releases (#22591 )
* chore: post release tasks (#22616 )
* fix: hide view in timeline button on local timeline (#22713 )
* chore(server): support vectorchord 0.5.x (#21602 )
Co-authored-by: Mert <101130780+mertalev@users.noreply.github.com>
* fix: Fix issue fail to download iOS live photos (#22708 )
Co-authored-by: bwees <brandonwees@gmail.com>
* fix(docs): Remove immich_remove_offline_files as no longer functional (#21774 )
Co-authored-by: Mert <101130780+mertalev@users.noreply.github.com>
Co-authored-by: Brandon Wees <brandonwees@gmail.com>
* fix(mobile): closing editor goes back to main page (#22647 )
Co-authored-by: bwees <brandonwees@gmail.com>
* docs: update TrueNAS migration instructions (#22463 )
Co-authored-by: bo0tzz <git@bo0tzz.me>
Co-authored-by: Nicholas Flamy <30300649+NicholasFlamy@users.noreply.github.com>
* docs: update Synology install guide (#21996 )
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
* fix: improve the selected sidebar item text color in dark mode (#22640 )
* chore(deps): update redis:6.2-alpine docker digest to 2185e74 (#22718 )
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* chore: update devcontainers for trixie, devenv changes (#22194 )
* fix(deps): update dependency device_info_plus to v12 (#22724 )
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* chore(deps): update dependency flutter to v3.35.5 (#22720 )
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* chore(deps): update github-actions (#22721 )
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* fix: --no-git-checks on pnpm publish (#22715 )
* fix: --no-git-checks on sdk publish
* fix: --no-git-checks on cli publish
* refactor(web): Clarify property names in Timeline and Scrubber (#22265 )
refactor(web): Clarify property names in Timeline and Scrubber
Renamed properties across Timeline/Scrubber components for clarity:
- scrubOverallPercent → timelineScrollPercent
- scrubberMonthPercent → viewportTopMonthScrollPercent
- scrubberMonth → viewportTopMonth
- leadout → isInLeadOutSection
Additional changes:
- Updated ScrubberListener signature to accept object parameter
- Added detailed JSDoc comments for all Scrubber props
- Fixed callback invocations to use new object syntax
- Aligned Timeline's local state variables with Scrubber prop names
* fix: promote to foreground service before starting engine (#22517 )
fix: show notification from native
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
* refactor(web): extract timeline keyboard actions into separate component (#22266 )
refactor(web): extract timeline keyboard actions into separate component
Extracts keyboard shortcuts and related functionality from Timeline component into a dedicated TimelineKeyboardActions component for better separation of concerns and maintainability.
* feat: make skeleton title optional (#22396 )
feat: skeleton title is optional
feat: skeleton title optional
* refactor(web): extract asset viewer logic from Timeline into TimelineAssetViewer component (#22268 )
refactor(web): extract asset viewer logic from Timeline into TimelineAssetViewer component
- Extracted asset viewer navigation and action handling logic from Timeline.svelte into a dedicated TimelineAssetViewer component
- Reduces Timeline.svelte complexity by ~150 lines and improves separation of concerns
- No functional changes - purely a refactoring to improve code organization
## Changes
- Created new TimelineAssetViewer.svelte component containing all asset viewer-related logic
- Moved handlePrevious, handleNext, handleRandom, handleClose, handlePreAction, and handleAction methods
- Timeline.svelte now only passes required props to the new component
- Maintained all existing functionality including navigation, asset actions, and stack management
* chore: track full actions/cache version in comment (#22359 )
* fix(ml): ipv6 check (#22735 )
* chore(deps): cache pnpm dependencies in prod build (#22555 )
* cache pnpm dependencies
use different ids to be safe
unnecessary lines
* use buildcache folder
* chore: use isar immich fork (#22738 )
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
* fix: bottom sheet blank with local assets that have remote counterparts (#22743 )
* chore(deps): update dependency @types/node to ^22.18.8 (#22719 )
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* chore(deps): update dependency nodemailer to v7.0.7 [security] (#22740 )
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* fix(deps): update dependency connectivity_plus to v7 (#22723 )
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
* chore: use hosted isar flutter libs (#22757 )
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
* fix: skip local only assets in move to lock action (#22728 )
* fix:prefer trashing to deletions
* skip local only assets in move to lock action
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
* fix: brief flashing when swiping from video (#22187 )
* fix(web): Uniform random distribution during shuffle (#19902 )
feat: better random distribution
* fix: persist search page scroll offset between rebuilds (#22733 )
fix: persist search scroll between rebuilds
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
* docs: add some external library notes (#22776 )
* feat(web): seconds and milliseconds in timestamps (#20337 )
* fix(web): seconds in timestamps
* changed date-input step to provide millisecond precision
* feat(cli): add debug development config (#22712 )
* add debug and change ts-node with tsx
* update pr changes
* update pnpm-lock
* remove ts-node from readme
* typo
* resolve conflicts
* remove tsx
* launch from dist
* add preLaunchTask
* update readme
* undo main in package.json
* remove typo
* Apply suggestion from @bwees
Co-authored-by: Brandon Wees <brandonwees@gmail.com>
* revert pnpm-lock changes
* @jrasm91 suggestions
* chore: run node with source maps
---------
Co-authored-by: Jason Rasmussen <jason@rasm.me>
Co-authored-by: Brandon Wees <brandonwees@gmail.com>
* docs: add Immich-Stack to community-projects (#21563 )
docs: add Immich Stack community project
Co-authored-by: Jason Rasmussen <jason@rasm.me>
* feat(web): Add upload to stack action (#19842 )
* feat(web): Add upload to stack action
* Event handling and translation
* Update asset viewer instead
* lint, improve upload return type
* Add suggestions from code review
* Resolve merge conflicts
* Apply suggestions from code review
* feat(server): add `immich.users.total` metric (#21780 )
* Add immich.users.total metric
* Fix tests & one lint error
* Lint
* Fix SQL Schema checks
* Fix nit
* Use workers argument in OnEvent hook and remove condition from method body
* feat(docs): add zh_TW Traditional Chinese version README (#22703 )
docs: add zh_TW Traditional Chinese version README
* chore: ignore renovate major updates for postgres image (#22764 )
* fix: remove postgres exclude datasource match (#22811 )
* chore(deps): update github-actions (major) (#22810 )
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* fix: revert terragrunt-action bump (#22812 )
* chore: don't enforce runes (#22813 )
* chore(deps): update base-image to v202510092146 (major) (#22818 )
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* fix(deps): update typescript-projects (#22809 )
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
* fix: only cast to device if the asset is a RemoteAsset (#22805 )
* feat: (perf) remove scroll compensation (#22837 )
* fix(deps): update dependency happy-dom to v20 [security] (#22846 )
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* chore(deps): update github-actions (#22793 )
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* fix: various typos (#22867 )
Found via `codespell -q 3 -S "*.svg,./i18n,./docs/package-lock.json,./readme_i18n,./mobile/assets/i18n" -L afterall,devlop,finaly,inout,nd,optin,renderd,sade`
* fix: ios skip posting hash response after detached from engine (#22695 )
* skip posting message after detached from engine
* review changes
* cancel plugin before destroying engine
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
* chore(deps): update ghcr.io/immich-app/postgres:14-vectorchord0.3.0 docker digest to 6f3e9d2 (#22912 )
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* chore(deps): update ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0 docker digest to bcf6335 (#22913 )
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* fix: re-add scroll compensation (efficiently) (#22848 )
* fix: re-add scroll compensation (efficient)
* Rename showSkeleton to invisible. Adjust skeleton margins, invisible support.
* Fix faulty logic, simplify
* Calculate ratios and determine compensation strategy: height comp for above/partiality visible, month-scroll comp within a fully visible month.
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
* fix: shared album control permissions (#22435 )
* fix: shared album control permissions
* fix: properly display "add photos"
* fix: dont allow modification of album order
* fix: album title/description edit from app bar
* chore: code review changes
* chore: format translations
* chore: lintings
* fix: show dialog before delete local action (#22280 )
* fix: show dialog on delete local action
# Conflicts:
# mobile/lib/repositories/asset_media.repository.dart
* button style
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
* fix(deps): update dependency kysely-postgres-js to v3 (#22924 )
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* chore(deps): update redis:6.2-alpine docker digest to 77697a7 (#22915 )
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* fix(deps): update typescript-projects (#22918 )
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
* feat: local album events notification (#22817 )
* feat: local album events notification
* pr feedback
* show number of unread notification
* chore: refactor show view in timeline button (#22894 )
* chore: refactor show view in timeline button
This refactor includes changes to notify asset viewer about where an asset was shown from.
* chore: realized I could just pull from the timelineProvider instead of storing it in the asset viewer state
* chore: rename enum to TimelineOrigin and update members
* fix: update isOwner condition
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
* chore(web): update translations (#22623 )
Translate-URL: https://hosted.weblate.org/projects/immich/immich/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/ar/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/be/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/bn/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/ca/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/cs/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/da/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/de/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/el/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/es/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/et/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/fi/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/fr/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/gl/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/he/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/hi/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/hr/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/id/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/it/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/ja/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/ka/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/lv/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/mr/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/nb_NO/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/nl/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/pa/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/pl/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/pt/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/ro/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/ru/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/sk/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/sl/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/sr_Latn/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/sv/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/ta/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/tr/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/uk/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/zh_SIMPLIFIED/
Translation: Immich/immich
Co-authored-by: Abhijeet Bonde <abhijeetbonde19@gmail.com>
Co-authored-by: Adam Uchmanowicz <auchmanowicz@gmail.com>
Co-authored-by: Adrian Hermida <adrian.hermida.baloira@gmail.com>
Co-authored-by: Aleksa Milošević <akimaki15@gmail.com>
Co-authored-by: Amin <amnsharif@gmail.com>
Co-authored-by: AndreiP28 <andreiprica28@gmail.com>
Co-authored-by: António Santos <antoniomsantos99@gmail.com>
Co-authored-by: Asger Mogensen <asgermog@gmail.com>
Co-authored-by: Christoph Auer <Christoph.Auer@pilsheim.de>
Co-authored-by: Denis Pacquier <denis.pacquier@gmail.com>
Co-authored-by: DevServs <bonov@mail.ru>
Co-authored-by: Eetu Mäenpää <me@eetumaenpaa.fi>
Co-authored-by: Felipe Garcia <garcia.o.felipe@gmail.com>
Co-authored-by: Filip Joković <filip@jokovic.dev>
Co-authored-by: Hurricane-32 <rodrigorimo@hotmail.com>
Co-authored-by: Indrek Haav <indrek.haav@hotmail.com>
Co-authored-by: Jason Song <songpeiheng@gmail.com>
Co-authored-by: Javier Villanueva García <jvg2203@gmail.com>
Co-authored-by: Jordy H <jordy@hoebergen.net>
Co-authored-by: Jorge Montejo <jorgemon.lopez@gmail.com>
Co-authored-by: Jozef Gaal <preklady@mayday.sk>
Co-authored-by: Konstantinos D <kdemer@yahoo.com>
Co-authored-by: Leo Bottaro <github@leobottaro.com>
Co-authored-by: Linerly <linerly@proton.me>
Co-authored-by: Liviu Roman <contact@liviuroman.com>
Co-authored-by: Lorenz Baum <LorenzBaum@gmx.de>
Co-authored-by: Lukas Konsin <lukaskonsin@proton.me>
Co-authored-by: Mandeep <mandeeps708@gmail.com>
Co-authored-by: Marc Casillas <mcasillassu@gmail.com>
Co-authored-by: Marcelo Popper Costa <marcelo_popper@hotmail.com>
Co-authored-by: MatijaThe245th <matija245matakovic@gmail.com>
Co-authored-by: Matjaž T <matjaz@moj-svet.si>
Co-authored-by: Mees Frensel <meesfrensel@gmail.com>
Co-authored-by: Mirko <itzmirko@itzmirko.it>
Co-authored-by: Mārtiņš Bruņenieks <martinsb@gmail.com>
Co-authored-by: Oleksandr Yurov <oyurov@icloud.com>
Co-authored-by: Orkun Sürel <orkunsurel@gmail.com>
Co-authored-by: Peter Dave Hello <hsu@peterdavehello.org>
Co-authored-by: Philipp Burndorfer <phi.bur@gmx.at>
Co-authored-by: Prasanth Baskar <bupdprasanth@gmail.com>
Co-authored-by: Roman Zhukov <Softver161@gmail.com>
Co-authored-by: Sayan Goswami <goswami.sayan47@gmail.com>
Co-authored-by: Sergey Katsubo <skatsubo@gmail.com>
Co-authored-by: Simon Bierwald <simon.bierwald@gmail.com>
Co-authored-by: Sylvain Pichon <service@spichon.fr>
Co-authored-by: TV Box <realceday.tvbox@gmail.com>
Co-authored-by: Taiki M <vexingly-many-mace@duck.com>
Co-authored-by: Theodore Zhvania <zhvania@ted.ge>
Co-authored-by: Tim De Meyer <demeyer.tim@gmail.com>
Co-authored-by: User 123456789 <user123456789@users.noreply.hosted.weblate.org>
Co-authored-by: Valentino Harpa <valen.ginga@gmail.com>
Co-authored-by: Vegard Fladby <vegard@fladby.org>
Co-authored-by: Willem Schipper <git@willem.page>
Co-authored-by: Yago Raña Gayoso <yago.rana.gayoso@gmail.com>
Co-authored-by: Zurab Sajaia <vavalomi@hotmail.com>
Co-authored-by: albanobattistella <albanobattistella@gmail.com>
Co-authored-by: bittin1ddc447d824349b2 <bittin@reimu.nl>
Co-authored-by: dark&white <darkwhite@users.noreply.hosted.weblate.org>
Co-authored-by: eav5jhl0 <eav5jhl0@users.noreply.hosted.weblate.org>
Co-authored-by: findussoft <sella_violett_8i@icloud.com>
Co-authored-by: kiwinho <kiwicaja@gmail.com>
Co-authored-by: millallo <millallo@tiscali.it>
Co-authored-by: pyccl <changcongliang@163.com>
Co-authored-by: rokon001 <rnacc3579@gmail.com>
Co-authored-by: vaibhav kumar <catvaku@gmail.com>
Co-authored-by: waclaw66 <waclaw66@seznam.cz>
Co-authored-by: Максим Горпиніч <gorpinicmaksim0@gmail.com>
Co-authored-by: தமிழ்நேரம் <tamilneram247@gmail.com>
* chore: version v2.1.0
* refactor
* question marks are the enemy
* refactor count map
* update readme
* e2e
* count of 0 is impossible
* useless async
---------
Co-authored-by: Chaoscontrol <6642238+Chaoscontrol@users.noreply.github.com>
Co-authored-by: Brandon Wees <brandonwees@gmail.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
Co-authored-by: shenlong <139912620+shenlong-tanwen@users.noreply.github.com>
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Weblate (bot) <hosted@weblate.org>
Co-authored-by: Arthur Bols <arthur@bols.dev>
Co-authored-by: Ben Kim <benkim1129@gmail.com>
Co-authored-by: César Gómez <cegomez@gmail.com>
Co-authored-by: DR <weblate-kavita.snowflake668@slmail.me>
Co-authored-by: DevServs <bonov@mail.ru>
Co-authored-by: Emil Friis Osmann <Emilfriisosmann@gmail.com>
Co-authored-by: Fjuro <fjuro@alius.cz>
Co-authored-by: Godwin T <godwintgn@protonmail.com>
Co-authored-by: Hristo T <hristotarnev@gmail.com>
Co-authored-by: Hurricane-32 <rodrigorimo@hotmail.com>
Co-authored-by: Jozef Gaal <preklady@mayday.sk>
Co-authored-by: KecskeTech <teonyitas@gmail.com>
Co-authored-by: Kiril Panayotov <eccyboo@protonmail.com>
Co-authored-by: Liviu Roman <contact@liviuroman.com>
Co-authored-by: Lorenzo <artale.lorenzo@outlook.it>
Co-authored-by: Marcelo Popper Costa <marcelo_popper@hotmail.com>
Co-authored-by: Matjaž T <matjaz@moj-svet.si>
Co-authored-by: Miryusif Rahimov <miryusifrahimov@gmail.com>
Co-authored-by: Msaood <msaood@msaood.com>
Co-authored-by: Mārtiņš Bruņenieks <martinsb@gmail.com>
Co-authored-by: Pedro Vendeira <vendeira.pedro@gmail.com>
Co-authored-by: PontusÖsterlindh <pontus@osterlindh.com>
Co-authored-by: Rahees <ahdrahees.dev@gmail.com>
Co-authored-by: Sandeep R <sandeep1891995@gmail.com>
Co-authored-by: Sylvain Pichon <service@spichon.fr>
Co-authored-by: TV Box <realceday.tvbox@gmail.com>
Co-authored-by: Tino Altmann <usinggrant@hotmail.de>
Co-authored-by: User 123456789 <user123456789@users.noreply.hosted.weblate.org>
Co-authored-by: Vegard Fladby <vegard@fladby.org>
Co-authored-by: anton garcias <isaga.percompartir@gmail.com>
Co-authored-by: chamdim <chamdim@protonmail.com>
Co-authored-by: longlarry <weblate.gm@tuta.io>
Co-authored-by: pyccl <changcongliang@163.com>
Co-authored-by: swever <swever@users.noreply.hosted.weblate.org>
Co-authored-by: தமிழ்நேரம் <tamilneram247@gmail.com>
Co-authored-by: 안세훈 <on9686@gmail.com>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Xavier Dupuis <xavier0978@hotmail.fr>
Co-authored-by: Sergey Katsubo <skatsubo@gmail.com>
Co-authored-by: Adrian Jost <22987140+adrianjost@users.noreply.github.com>
Co-authored-by: Cokodayo <78474654+CaptainJack2491@users.noreply.github.com>
Co-authored-by: Mert <101130780+mertalev@users.noreply.github.com>
Co-authored-by: Yaros <thedj.launchpadder.dmx512@gmail.com>
Co-authored-by: USBAkimbo <71508071+USBAkimbo@users.noreply.github.com>
Co-authored-by: Min Idzelis <min123@gmail.com>
Co-authored-by: grgergo <gergo_g@proton.me>
Co-authored-by: gergo= <gergo@pitty.hu>
Co-authored-by: Jorge Montejo <jorgemon.lopez@gmail.com>
Co-authored-by: Ben McCann <322311+benmccann@users.noreply.github.com>
Co-authored-by: Jason Rasmussen <jason@rasm.me>
Co-authored-by: Diogo Correia <me@diogotc.com>
Co-authored-by: CuberL <liaoziyue10@gmail.com>
Co-authored-by: Xantin <56741168+Xiticks@users.noreply.github.com>
Co-authored-by: bo0tzz <git@bo0tzz.me>
Co-authored-by: Nicholas Flamy <30300649+NicholasFlamy@users.noreply.github.com>
Co-authored-by: TDR001 <redp50@outlook.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Saschl <19493808+Saschl@users.noreply.github.com>
Co-authored-by: Pascal Sommer <Pascal-So@users.noreply.github.com>
Co-authored-by: kaziu687 <kaziu687@gmail.com>
Co-authored-by: Qhilm <3350433+Qhilm@users.noreply.github.com>
Co-authored-by: Sebastian Schneider <sese.tailor@gmx.net>
Co-authored-by: Tushar Harsora <tusharharsora95@gmail.com>
Co-authored-by: Peter Dave Hello <hsu@peterdavehello.org>
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
Co-authored-by: luzpaz <luzpaz@users.noreply.github.com>
Co-authored-by: Abhijeet Bonde <abhijeetbonde19@gmail.com>
Co-authored-by: Adam Uchmanowicz <auchmanowicz@gmail.com>
Co-authored-by: Adrian Hermida <adrian.hermida.baloira@gmail.com>
Co-authored-by: Aleksa Milošević <akimaki15@gmail.com>
Co-authored-by: Amin <amnsharif@gmail.com>
Co-authored-by: AndreiP28 <andreiprica28@gmail.com>
Co-authored-by: António Santos <antoniomsantos99@gmail.com>
Co-authored-by: Asger Mogensen <asgermog@gmail.com>
Co-authored-by: Christoph Auer <Christoph.Auer@pilsheim.de>
Co-authored-by: Denis Pacquier <denis.pacquier@gmail.com>
Co-authored-by: Eetu Mäenpää <me@eetumaenpaa.fi>
Co-authored-by: Felipe Garcia <garcia.o.felipe@gmail.com>
Co-authored-by: Filip Joković <filip@jokovic.dev>
Co-authored-by: Indrek Haav <indrek.haav@hotmail.com>
Co-authored-by: Jason Song <songpeiheng@gmail.com>
Co-authored-by: Javier Villanueva García <jvg2203@gmail.com>
Co-authored-by: Jordy H <jordy@hoebergen.net>
Co-authored-by: Konstantinos D <kdemer@yahoo.com>
Co-authored-by: Leo Bottaro <github@leobottaro.com>
Co-authored-by: Linerly <linerly@proton.me>
Co-authored-by: Lorenz Baum <LorenzBaum@gmx.de>
Co-authored-by: Lukas Konsin <lukaskonsin@proton.me>
Co-authored-by: Mandeep <mandeeps708@gmail.com>
Co-authored-by: Marc Casillas <mcasillassu@gmail.com>
Co-authored-by: MatijaThe245th <matija245matakovic@gmail.com>
Co-authored-by: Mees Frensel <meesfrensel@gmail.com>
Co-authored-by: Mirko <itzmirko@itzmirko.it>
Co-authored-by: Oleksandr Yurov <oyurov@icloud.com>
Co-authored-by: Orkun Sürel <orkunsurel@gmail.com>
Co-authored-by: Philipp Burndorfer <phi.bur@gmx.at>
Co-authored-by: Prasanth Baskar <bupdprasanth@gmail.com>
Co-authored-by: Roman Zhukov <Softver161@gmail.com>
Co-authored-by: Sayan Goswami <goswami.sayan47@gmail.com>
Co-authored-by: Simon Bierwald <simon.bierwald@gmail.com>
Co-authored-by: Taiki M <vexingly-many-mace@duck.com>
Co-authored-by: Theodore Zhvania <zhvania@ted.ge>
Co-authored-by: Tim De Meyer <demeyer.tim@gmail.com>
Co-authored-by: Valentino Harpa <valen.ginga@gmail.com>
Co-authored-by: Willem Schipper <git@willem.page>
Co-authored-by: Yago Raña Gayoso <yago.rana.gayoso@gmail.com>
Co-authored-by: Zurab Sajaia <vavalomi@hotmail.com>
Co-authored-by: albanobattistella <albanobattistella@gmail.com>
Co-authored-by: bittin1ddc447d824349b2 <bittin@reimu.nl>
Co-authored-by: dark&white <darkwhite@users.noreply.hosted.weblate.org>
Co-authored-by: eav5jhl0 <eav5jhl0@users.noreply.hosted.weblate.org>
Co-authored-by: findussoft <sella_violett_8i@icloud.com>
Co-authored-by: kiwinho <kiwicaja@gmail.com>
Co-authored-by: millallo <millallo@tiscali.it>
Co-authored-by: rokon001 <rnacc3579@gmail.com>
Co-authored-by: vaibhav kumar <catvaku@gmail.com>
Co-authored-by: waclaw66 <waclaw66@seznam.cz>
Co-authored-by: Максим Горпиніч <gorpinicmaksim0@gmail.com>
2025-10-14 17:34:20 -04:00
github-actions
43eccca86a
chore: version v2.1.0
2025-10-14 16:24:43 +00:00
Alex
d778286777
feat: local album events notification ( #22817 )
...
* feat: local album events notification
* pr feedback
* show number of unread notification
2025-10-14 10:15:51 -05:00
Min Idzelis
146973b072
fix: re-add scroll compensation (efficiently) ( #22848 )
...
* fix: re-add scroll compensation (efficient)
* Rename showSkeleton to invisible. Adjust skeleton margins, invisible support.
* Fix faulty logic, simplify
* Calculate ratios and determine compensation strategy: height comp for above/partiality visible, month-scroll comp within a fully visible month.
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-10-14 02:16:05 +00:00
renovate[bot]
8fe54a4de1
fix(deps): update dependency happy-dom to v20 [security] ( #22846 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-11 13:17:25 +02:00
Min Idzelis
ce4e8fa6ba
feat: (perf) remove scroll compensation ( #22837 )
2025-10-10 15:48:29 -04:00
renovate[bot]
ea610760ee
fix(deps): update typescript-projects ( #22809 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-10-10 00:50:48 +02:00
Daniel Dietzler
9793828dc7
chore: don't enforce runes ( #22813 )
2025-10-09 19:17:42 +00:00
Sebastian Schneider
cf60f4cdcd
feat(web): Add upload to stack action ( #19842 )
...
* feat(web): Add upload to stack action
* Event handling and translation
* Update asset viewer instead
* lint, improve upload return type
* Add suggestions from code review
* Resolve merge conflicts
* Apply suggestions from code review
2025-10-08 13:22:33 -04:00
kaziu687
9838634067
feat(web): seconds and milliseconds in timestamps ( #20337 )
...
* fix(web): seconds in timestamps
* changed date-input step to provide millisecond precision
2025-10-08 16:30:54 +00:00
Pascal Sommer
6f3cb4f1bb
fix(web): Uniform random distribution during shuffle ( #19902 )
...
feat: better random distribution
2025-10-08 10:19:33 -04:00
Min Idzelis
966ab22065
refactor(web): extract asset viewer logic from Timeline into TimelineAssetViewer component ( #22268 )
...
refactor(web): extract asset viewer logic from Timeline into TimelineAssetViewer component
- Extracted asset viewer navigation and action handling logic from Timeline.svelte into a dedicated TimelineAssetViewer component
- Reduces Timeline.svelte complexity by ~150 lines and improves separation of concerns
- No functional changes - purely a refactoring to improve code organization
## Changes
- Created new TimelineAssetViewer.svelte component containing all asset viewer-related logic
- Moved handlePrevious, handleNext, handleRandom, handleClose, handlePreAction, and handleAction methods
- Timeline.svelte now only passes required props to the new component
- Maintained all existing functionality including navigation, asset actions, and stack management
2025-10-07 14:01:06 +00:00
Min Idzelis
78fbe0fd49
feat: make skeleton title optional ( #22396 )
...
feat: skeleton title is optional
feat: skeleton title optional
2025-10-07 13:58:59 +00:00
Min Idzelis
5862c454b7
refactor(web): extract timeline keyboard actions into separate component ( #22266 )
...
refactor(web): extract timeline keyboard actions into separate component
Extracts keyboard shortcuts and related functionality from Timeline component into a dedicated TimelineKeyboardActions component for better separation of concerns and maintainability.
2025-10-07 13:52:19 +00:00
Min Idzelis
83db851b00
refactor(web): Clarify property names in Timeline and Scrubber ( #22265 )
...
refactor(web): Clarify property names in Timeline and Scrubber
Renamed properties across Timeline/Scrubber components for clarity:
- scrubOverallPercent → timelineScrollPercent
- scrubberMonthPercent → viewportTopMonthScrollPercent
- scrubberMonth → viewportTopMonth
- leadout → isInLeadOutSection
Additional changes:
- Updated ScrubberListener signature to accept object parameter
- Added detailed JSDoc comments for all Scrubber props
- Fixed callback invocations to use new object syntax
- Aligned Timeline's local state variables with Scrubber prop names
2025-10-07 09:43:27 -04:00
Alex
25142bb6c6
fix: improve the selected sidebar item text color in dark mode ( #22640 )
2025-10-06 21:51:00 +00:00
Jason Rasmussen
50ac27238e
fix(web): do not notify on patch releases ( #22591 )
2025-10-06 13:00:37 -04:00
Min Idzelis
b06b8ceef6
chore(web): upgrade ESLint and plugins ( #22495 )
...
* chore(web): upgrade ESLint and plugins, simplify linting configuration
- Update eslint from ^9.18.0 to ^9.36.0
- Update eslint plugins:
- eslint-plugin-svelte: ^3.9.0 → ^3.12.4
- eslint-plugin-unicorn: ^60.0.0 → ^61.0.2
- svelte-eslint-parser: ^1.2.0 → ^1.3.3
- typescript-eslint: ^8.28.0 → ^8.45.0
- Remove eslint-p dependency in favor of native eslint concurrency
- Add unicorn/no-array-sort rule exception
- Update linting scripts to use eslint's native --concurrency flag
- Update Makefile and mise.toml to reflect simplified lint commands
- Update GitHub Actions workflow to use standard pnpm lint command
* pnpm dedupe
---------
Co-authored-by: Ben McCann <322311+benmccann@users.noreply.github.com>
2025-10-06 12:41:28 -04:00
grgergo
6973683ea7
fix: use full-size image for non-web-compatible panoramas ( #20359 )
...
* fix(web): use full-size image for non-web-compatible panoramas
* always generate full-size image for panoramas
* add unit test
* fix formatting
---------
Co-authored-by: gergo= <gergo@pitty.hu>
2025-10-06 12:38:41 -04:00
Min Idzelis
42f46b11f4
fix: missing responsive calculation in UserPageLayout ( #22455 )
2025-10-06 12:36:20 -04:00
Xavier Dupuis
29acf89979
fix(docs): link to immich docs does not lead correctly to docs ( #22687 )
2025-10-06 12:57:15 +02:00
github-actions
bb72d723e2
chore: version v2.0.1
2025-10-03 15:12:12 +00:00
gablilli
1086623457
chore: replace immich.app/docs with docs.immich.app globally ( #22428 )
...
* fix: es
* fix(readme): fix docs link
* fix(readme): fix main readme's docs link
* fix: main readme
* fix: replace immich.app/docs with docs.immich.app globally
2025-10-02 10:42:14 -05:00
renovate[bot]
00ce6354f0
chore(deps): update node.js to v22.20.0 ( #22496 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-02 09:17:40 +00:00
github-actions
e4234af3b3
chore: version v2.0.0
2025-10-01 21:19:34 +00:00
github-actions
f1f8c8e7a3
chore: version v1.144.1
2025-09-29 19:49:34 +00:00
github-actions
a498166cb6
chore: version v1.144.0
2025-09-29 18:52:32 +00:00
github-actions
f193c5a53f
chore: version v1.143.1
2025-09-23 18:38:13 +00:00
github-actions
cee6bcc5ef
chore: version v1.143.0
2025-09-22 02:33:20 +00:00
Daniel Dietzler
b2f3bf7079
chore: bump svelte gestures ( #22263 )
2025-09-21 21:03:06 -05:00
Jason Rasmussen
0bbeb20595
fix(web): only copy images via canvas ( #22225 )
2025-09-21 14:34:10 -05:00
Alex
aaeac2ab73
fix(web): revert do not upscale small pictures ( #22191 ) ( #22233 )
2025-09-20 09:25:27 -05:00
Jason Rasmussen
de57fecb69
fix(web): copy to clipboard on safari ( #22217 )
2025-09-19 17:44:18 -04:00
renovate[bot]
1e0b4fac04
fix(deps): update typescript-projects ( #21510 )
...
* fix(deps): update typescript-projects
* chore: downgrade dependencies
* chore: downgrade svelte-gestures
* fix: svelte/no-navigation-without-resolve
* fix: dumb test
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Zack Pollard <zack@futo.org>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
Co-authored-by: Jason Rasmussen <jason@rasm.me>
2025-09-19 12:29:01 -04:00
Jason Rasmussen
34339ea69f
fix(web): show danger/warning when taken dates overlap ( #22213 )
2025-09-19 12:20:09 -04:00
Jason Rasmussen
3f2e0780d5
feat: availability checks ( #22185 )
2025-09-19 12:18:42 -04:00
Jason Rasmussen
de897f6069
fix(web): do not upscale small pictures ( #22191 )
2025-09-18 22:28:06 -04:00
Jason Rasmussen
2d816e89ad
refactor(web): prefer modal manager ( #22152 )
2025-09-17 23:23:42 +02:00
Jason Rasmussen
eee94207ce
refactor(web): album users modal ( #22153 )
2025-09-17 17:04:54 -04:00
Jason Rasmussen
dfa38ec3ef
fix(web): download panel ( #22150 )
2025-09-17 15:40:11 -05:00
Jason Rasmussen
edc0698e2a
refactor: album edit modal ( #22151 )
2025-09-17 16:34:12 -04:00
Jason Rasmussen
98ea3847e5
refactor: server-about-modal ( #22138 )
...
* refactor: server-about-modal
* fix: bits-ui scroll lock cleanup
2025-09-17 16:23:23 +00:00
Jason Rasmussen
11e72a0f35
refactor: text-primary ( #22141 )
2025-09-17 12:12:51 -04:00
Jason Rasmussen
53a6724039
refactor: hot module reload component ( #22135 )
2025-09-17 12:12:37 -04:00
Jason Rasmussen
0b20d1df9f
feat(web): toggle theme shortcut ( #22139 )
2025-09-17 12:12:23 -04:00
Stewart Rand
26e0cb3eb4
fix: Refresh photo after updating featured photo ( #21971 )
...
fix: Refresh person photo after setting featured photo
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-09-17 10:22:26 -05:00
Min Idzelis
e6e8ae7c74
chore: remove suppressed warnings ( #22120 )
...
chore: remove supressed warnings
2025-09-17 00:06:27 -04:00
Jason Rasmussen
2012b07645
refactor: admin settings ( #22109 )
2025-09-16 17:15:57 -04:00
renovate[bot]
a88a9a7d5e
chore(deps): update dependency @faker-js/faker to v10 ( #21514 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-16 21:13:09 +00:00
Jason Rasmussen
9693d07a8b
refactor: components ( #22106 )
2025-09-16 16:58:47 -04:00
Jason Rasmussen
453b30069d
chore: discord from simple icons ( #22104 )
2025-09-16 16:33:56 -04:00
Jason Rasmussen
c9daefccc4
refactor: loading spinner ( #22103 )
2025-09-16 16:22:13 -04:00
Jason Rasmussen
6ffd8e679e
refactor: use immich/ui PasswordInput ( #22099 )
...
refactor: password-input
2025-09-16 16:09:09 -04:00
Daniel Dietzler
7fe2f19258
chore: migrate to UI lib icon ( #22096 )
2025-09-16 21:40:43 +02:00
Jason Rasmussen
dac545496e
chore: bump immich/ui ( #22100 )
2025-09-16 15:39:56 -04:00
Jason Rasmussen
75322179fd
refactor: more elements ( #22095 )
2025-09-16 15:01:23 -04:00
Jason Rasmussen
3f4b6a8e7c
refactor: move more elements ( #22093 )
2025-09-16 14:47:38 -04:00
Jason Rasmussen
7ce1d73c20
refactor: move components/elements to elements/ ( #22091 )
2025-09-16 18:31:22 +00:00
Jason Rasmussen
2bf484c91c
refactor: timeline components ( #22089 )
2025-09-16 14:01:12 -04:00
Jason Rasmussen
f05ef81c4f
fix(web): issue with modal locking the page ( #22079 )
2025-09-16 12:46:09 -05:00
Jason Rasmussen
c21860fb97
refactor: rename timeline actions ( #22086 )
2025-09-16 13:37:01 -04:00
Jason Rasmussen
31e098517d
chore: rename asset-grid to timeline ( #22084 )
2025-09-16 13:05:09 -04:00
Jason Rasmussen
41641ec000
chore: build sdk while server is starting ( #22083 )
2025-09-16 12:48:31 -04:00
Alex
8821c251c3
fix: navigate to time ( #22078 )
2025-09-16 11:40:31 -05:00
Stewart Rand
0f79e0c38e
fix: Use CSS for uppercase text ( #22011 )
2025-09-15 23:28:42 -04:00
Alex
3d883b27aa
fix: sidebar link hightlight ( #22035 )
...
* fix: sidebar link hightlight
* check if current route start with href
2025-09-15 22:19:55 -04:00
github-actions
859b2451bb
chore: version v1.142.1
2025-09-15 17:08:25 +00:00
Alex
15f182902f
fix: check if preferencesStore is defined ( #21958 )
2025-09-14 20:30:15 +00:00
Stewart Rand
4059638151
fix: context menu jank ( #21844 )
...
* Fix issue with context menu jank by only applying overflow styling when transition is complete
* Remove comment
Co-authored-by: Alex <alex.tran1502@gmail.com>
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-09-12 22:43:22 -05:00
Stewart Rand
1823a28e59
chore: improve date text slide-in transition ( #21879 )
...
* Make date text slide-in transition smooth
* fix: lint
---------
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2025-09-13 03:42:42 +00:00
Stewart Rand
b6bf1852cd
fix: keep adequate space around page title ( #21881 )
...
Keep space around page title
2025-09-12 22:42:25 -05:00
Stewart Rand
cdc26f2c7b
fix: z-index of top bar on show/hide people view ( #21847 )
...
Fix z-index of top bar on show/hide people view
2025-09-12 22:32:50 -05:00
Stewart Rand
994a770921
chore: improve context button accessibility ( #21876 )
...
Make context menu button filled on album list and faces page
2025-09-12 22:31:52 -05:00
Stewart Rand
04c9531624
fix: format point count numbers on map view ( #21848 )
...
Format numbers on map view
2025-09-12 07:20:05 +00:00
github-actions
4153848c68
chore: version v1.142.0
2025-09-11 19:39:05 +00:00
Jason Rasmussen
f29230c8a6
fix(web): handle buckets before year 1000 ( #21832 )
2025-09-11 14:36:16 -05:00
Jason Rasmussen
8529f92ebc
fix(web): map in album shared link ( #21793 )
2025-09-10 20:19:43 +00:00
Jason Rasmussen
761ac074c9
fix(web): asset refresh ( #21788 )
2025-09-10 20:08:15 +00:00
Yaros
027dab1487
fix(web): memory viewer arrow navigation ( #19400 )
...
* fix(web): memory viewer jumps down on arrow keys
* fix pnpm lockfile
---------
Co-authored-by: Jason Rasmussen <jason@rasm.me>
2025-09-10 09:47:38 -04:00
Jason Rasmussen
bee0ae430a
fix(web): map popup accessibility ( #21759 )
2025-09-10 08:17:58 -04:00
Jason Rasmussen
cc08ebdf80
fix(web): website frozen after modal closes ( #21752 )
2025-09-10 08:17:41 -04:00
Jason Rasmussen
8e5d52abbb
fix(web): transparent background color ( #21747 )
2025-09-10 08:15:57 -04:00
Jason Rasmussen
e52cc259d5
fix(web): cancel uploads on logout ( #21760 )
2025-09-10 08:15:03 -04:00
Johann
7a1c45c364
feat(web): use timeline in geolocation manager ( #21492 )
2025-09-09 21:26:26 -04:00
bo0tzz
5acd6b70d0
feat: add button to unpause all queues ( #21685 )
...
* feat: add button to unpause all queues
* fix: const
* chore: simplify
* chore: pr feedback
---------
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2025-09-10 01:06:36 +00:00
Ben McCann
7b3e1037b6
chore: remove unused dependencies ( #21736 )
2025-09-09 20:38:17 -04:00
Jason Rasmussen
5a7042364b
feat: add partner create endpoint ( #21625 )
2025-09-05 17:59:11 -04:00
github-actions
db0ea0f3a8
chore: version v1.141.1
2025-09-05 19:44:39 +00:00
renovate[bot]
5fb858a865
chore(deps): update node.js to v22.19.0 ( #21509 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-05 08:43:58 -04:00
github-actions
f107cb044a
chore: version v1.141.0
2025-09-04 19:42:02 +00:00
Arthur Normand
37a79292c0
feat: view similar photos ( #21108 )
...
* Enable filteing by example
* Drop `@GenerateSql` for `getEmbedding`?
* Improve error message
* PR Feedback
* Sort en.json
* Add SQL
* Fix lint
* Drop test that is no longer valid
* Fix i18n file sorting
* Fix TS error
* Add a `requireAccess` before pulling the embedding
* Fix decorators
* Run `make open-api`
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-09-04 09:22:09 -05:00
Snowknight26
036d314cb6
fix(web): Make Manage location utility header responsive ( #21480 )
...
* fix(web): Make Manage location utility header responsive
* Consolidate <p> into <Text>
2025-09-04 08:59:26 -05:00
Snowknight26
bbc1c8186c
fix(web): Show full date when hovering over photos date groups ( #21462 )
2025-08-31 16:30:35 -05:00
Dag Stuan
fd2b7a344c
fix(web): wait for image to load before playing memories. ( #19757 )
2025-08-31 08:50:33 -05:00
github-actions
f15376a107
chore: version v1.140.1
2025-08-30 19:13:06 +00:00