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
Snowknight26
225af973c1
fix(web): Prevent changing asset location triggering keyboard shortcuts ( #21451 )
...
fix(web): Prevent changing asset location triggering asset keyboard shortcuts
2025-08-30 13:39:25 -05:00
Brandon Wees
b3372064e0
fix: default zoom level when location is not set ( #21428 )
2025-08-30 13:33:11 -05:00
github-actions
b6223af5ca
chore: version v1.140.0
2025-08-28 18:50:45 +00:00
Johann
662d44536e
feat(web): add geolocation utility ( #20758 )
...
* feat(geolocation): add geolocation utility
* feat(web): geolocation utility - fix code review - 1
* feat(web): geolocation utility - fix code review - 2
* chore: cleanup
* chore: feedback
* feat(web): add animation and text
animation on locations change and action text on thumbnail
* styling, messages and filtering
* selected color
* format i18n
* fix lint
---------
Co-authored-by: Jason Rasmussen <jason@rasm.me>
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-08-28 16:54:11 +00:00
xCJPECKOVERx
80fa5ec198
fix(web): Slideshow fade occurs when not in slideshow ( #21326 )
...
- ensure slideshow transition only shows when both enabled and in a slideshow
2025-08-28 11:47:53 -05:00
Snowknight26
e78144ea31
fix(web): Translate confirmation modal header and action buttons ( #21330 )
...
fix(web): Translate confirmation modal
2025-08-27 22:00:50 -05:00
Yaros
a3808c26ce
fix(web): middle click not working on videos ( #21304 )
...
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-08-27 21:43:39 -05:00
prajwal
ae104ad7cc
fix(web): add primary text color to file upload toast ( #21340 )
...
* fix:add primary text color to file upload toast
* fix:make progress bar visible in dark mode
* fix:make it text-primary
---------
Co-authored-by: prajwal <prajwal@hopbox.in>
2025-08-27 15:51:43 -04:00
Jason Rasmussen
25a94bd117
fix(web): sign up double click ( #21349 )
2025-08-27 14:21:34 -04:00
Jason Rasmussen
76eaee3657
fix: timeline scroll error handling ( #21324 )
2025-08-26 17:07:26 -05:00
xCJPECKOVERx
a7821a0b79
feat(web): Album picker shortcut info ( #21273 )
...
* - add shortcut info to album modal footer
* styling
* translation
---------
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2025-08-26 21:31:58 +00:00
xCJPECKOVERx
73e67ebfea
fix(web): album multi-select filter doesn't include other selected albums ( #21322 )
...
- submit albums directly from selected ids instead of albumModalRows
2025-08-26 16:30:24 -05:00
Snowknight26
0eaa054218
feat(web): Refresh album page after sharing ( #21283 )
2025-08-26 16:23:21 -05:00
Jason Rasmussen
70e59c00d5
fix: invalid storage quota with decimals ( #21271 )
2025-08-26 14:46:29 -04:00
Jason Rasmussen
0d0bb0e2d9
fix(web): suppress auto-play errors ( #21282 )
2025-08-25 23:51:56 -04:00
Jason Rasmussen
a3e0c6cef5
fix: ignore abort errors ( #21262 )
2025-08-25 16:42:30 -04:00
Jason Rasmussen
63088b22e0
fix(web): handle multiple downloads in safari ( #21259 )
2025-08-25 12:59:59 -05:00
xCJPECKOVERx
d9d8beb92f
fix(web): Duplicate arrow shortcuts go to next/previous duplicate when viewing assets ( #21200 )
...
- get assetviewer state and don't handle next/previous duplicate if isViewing
2025-08-25 13:33:48 -04:00
Jason Rasmussen
38a8a67be9
fix(web): allow numeric input fields to be zero ( #21258 )
2025-08-25 13:31:32 -04:00
Jason Rasmussen
7531ffcbfb
refactor: service worker ( #21250 )
2025-08-25 11:52:57 -05:00
xCJPECKOVERx
d5f3629c49
fix(web): Album multi-select 'm' shortcut prevents typing m in title box ( #21249 )
...
change album multi-select shortcut to ctrl
2025-08-25 11:52:26 -05:00
Wingy
5fb8d651ec
feat: expose createdAt in getAssetInfo ( #21184 )
...
* Expose createdAt in getAssetInfo
* Add missing createdAt fields
2025-08-25 10:27:21 -05:00
github-actions
b44d2a241d
chore: version v1.139.4
2025-08-25 02:39:18 +00:00
Lorenzo Farnararo
0729887c9c
fix(web): handle edge cases in timeToSeconds function to prevent crashes ( #21019 )
...
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
2025-08-23 22:42:37 +02:00
Nicholas
3bfa8b7575
fix: border around dark theme button on onboarding page ( #20846 )
...
fix border around dark theme button
2025-08-23 15:28:00 -05:00
github-actions
f8b41ea8aa
chore: version v1.139.3
2025-08-23 16:37:46 +00:00
github-actions
571504aa5e
chore: version v1.139.2
2025-08-21 22:35:59 +00:00
Alex
65fafcab37
chore: manually pump 1.139.1 ( #21127 )
2025-08-21 22:33:51 +00:00
Alex
b6a91746d8
chore: Revert version v1.139.1 ( #21125 )
...
Revert "chore: version v1.139.1"
This reverts commit 89533a858f .
2025-08-21 17:15:11 -05:00
github-actions
89533a858f
chore: version v1.139.1
2025-08-21 22:02:08 +00:00
Alex
dc5a0f8c33
chore: pump the pump script ( #21122 )
...
* chore: pump the pump script
* pump 1.139.0
2025-08-21 17:00:48 -05:00
Alex
73bb05c5f9
chore: Revert version v1.139.0 ( #21121 )
...
Revert "chore: version v1.139.0"
This reverts commit b69470c69e .
2025-08-21 20:41:46 +00:00
github-actions
b69470c69e
chore: version v1.139.0
2025-08-21 20:26:48 +00:00
Arthur Normand
4e03b06ff7
feat: add a counter to the duplicate utility ( #21109 )
...
Added a counter to the duplicate utility
2025-08-21 15:21:31 -05:00
Jason Rasmussen
66c657ca8a
chore: remove web/Dockerfile ( #21096 )
2025-08-21 12:55:23 -04:00
renovate[bot]
60a809d7b4
fix(deps): update typescript-projects ( #20879 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Zack Pollard <zackpollard@ymail.com>
2025-08-19 15:28:43 +01:00
Alex
cda7249a6a
fix: add to multi album selection ( #21061 )
2025-08-19 09:21:18 -05:00
Thomas
47566c1a4a
chore(web): make search result loading behaviour more consistent ( #20741 )
...
The current behaviour will intersect if the page is scrolled about 90% down
which works okay for a small number of assets, but does not scale well with
large amounts of assets. Instead of relying in proportional values, it may be
more sensible to use a consistent measure for loading more pages. A simple and
sensible suggestion may be to load another page when there is only one more
viewport worth of assets to display. It can be refined and revisited in future,
but it seems to work relatively well in my testing and prevents the issues
which occur with large amounts of assets.
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-08-19 09:09:39 -05:00
Min Idzelis
845b0f2073
chore: use pnpm for builds ( #19752 )
...
* Migrate from npm to pnpm across entire project
• Update all GitHub workflow files to use pnpm instead of npm
• Replace npm commands with pnpm equivalents in devcontainer scripts
• Remove package-lock.json files and update to use pnpm-lock.yaml
• Consolidate node version references to use server/.nvmrc
* Refine pnpm migration based on review feedback
• Replace SKIP_SHARP_FILTERING with SHARP_IGNORE_GLOBAL_LIBVIPS environment variable
• Improve Sharp package filtering to include specific Linux architectures for Docker builds
• Optimize Dockerfile dependency caching with improved layer structure
• Clean up workspace configuration and remove redundant settings
* Address additional review feedback for pnpm migration
• Fix node-version-file paths in GitHub workflow configurations
• Refactor .pnpmfile.cjs to use switch statement for better code organization
• Correct cache type typo in fix-format workflow
• Simplify Vite configuration by merging configs inline
• Update package description for consistency
* Use 'server/.nvmrc' for fix-format.yml GHA
* Delete npm locks
* Remove Docker volume isolation for node_modules directories
• Remove volume mounts for node_modules and related directories
• Allow shared access between host and container filesystem
• Update init container to handle file ownership with conditional existence check
* Remove unused Docker volumes and volume mounts
• Remove node_modules volume mounts from devcontainer configuration
• Remove unused named volumes for pnpm-store, node_modules, and cache directories
• Clean up Docker Compose configuration after removing volume isolation
* Fix typescript-sdk package issues
• Remove unknown "build" dependency that was incorrectly added to package.json
• Update pnpm-lock.yaml to reflect dependency removal
* Add pnpm setup to mobile workflow for translation formatting
• Add pnpm action setup step to mobile unit tests workflow
• Required for translation file formatting and sorting operations
---------
Co-authored-by: Jason Rasmussen <jason@rasm.me>
2025-08-19 08:55:24 -04:00
Arthur Normand
d4f2b43f64
fix: improve duplicate utility text contrast ( #21045 )
2025-08-19 02:18:52 +00:00
Arthur Normand
f343b0e58f
fix: always show resolution in details panel ( #21046 )
...
Always show resolution in details panel
2025-08-19 02:17:45 +00:00
xCJPECKOVERx
9ff664ed36
feat(web): Add to Multiple Albums ( #20072 )
...
* Multi add to album picker:
- update modal for multi select
- Update add-to-album and add-to-album-action to work with new array return from AlbumPickerModal
- Add asset-utils.addAssetsToAlbums (incomplete)
* initial addToAlbums endpoint
* - fix endpoint
- add test
* - update return type
- make open-api
* - simplify return dto
- handle notification
* - fix returns
- clean up
* - update i18n
- format & check
* - checks
* - correct successId count
- fix assets_cannot_be_added language call
* tests
* foromat
* refactor
* - update successful add message to included total attempted
* - fix web test
- format i18n
* - fix open-api
* - fix imports to resolve checks
* - PR suggestions
* open-api
* refactor addAssetsToAlbums
* refactor it again
* - fix error returns and tests
* - swap icon for IconButton
- don't nest the buttons
* open-api
* - Cleanup multi-select button to match Thumbnail
* merge and openapi
* - remove onclick from icon element
* - fix double onClose call with keyboard shortcuts
* - spelling and formatting
- apply new api permission
* - open-api
* chore: styling
* translation
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-08-19 00:42:47 +00:00
xCJPECKOVERx
a313e4338e
feat(web): Skip duplicates ( #20880 )
...
* - add skip button to duplicates-compare-control
* - cleanup
* - change to next/previous
- move buttons to duplicates page, intead of compareControl
- add param based control/position
* - remove index param on keep/dedupe all
* - cleanup
* - cleanup index corrections
* - add left/right arrow keyboard shortcuts for previous/next
- cleanup
* - cleanup
2025-08-18 18:11:53 -05:00
github-actions
3d515f5072
chore: version v1.138.1
2025-08-18 15:23:35 +00:00
Daniel Dietzler
f92247c99b
fix: oauth auto-login infinite loop ( #20904 )
2025-08-13 19:45:06 -04:00
github-actions
bede19a3ca
chore: version v1.138.0
2025-08-13 17:08:29 +00:00
Alex
54960157c0
chore: backup info card styling tweak ( #20799 )
...
* chore: backup info card styling tweak
* pr feedback
2025-08-12 16:08:31 +00:00
Mirek
5d2777a5c6
feat: format date and time in /admin/users/ -> Profile section ( #20811 )
...
Matches the format used in the user settings page.
Added a formatting function in utils.
2025-08-11 16:50:34 -05:00
Gabriel Soldani
e7060dc292
fix(web): fix layout loop with single row grids in explore page ( #20833 )
2025-08-11 02:31:26 +00:00
Nicholas
d6d31c6695
fix: change all download icons to mdiDownload for clarity and consistency ( #20821 )
...
change all download icons to `mdiDownload` for clarity and consistency
2025-08-10 21:23:21 -05:00
Jason Rasmussen
538d5c81ea
feat: reset oauth ids ( #20798 )
2025-08-08 15:42:38 -04:00
Jason Rasmussen
cfbc24579d
feat(web): reset pin code ( #20766 )
2025-08-07 15:07:31 -04:00
Alex
1d4d8e7a9a
chore: bump @immich/ui to 24 ( #20767 )
...
chore: bump @ui 24
2025-08-07 14:43:56 -04:00
Jason Rasmussen
a896c5a4dd
fix(web): shared-link autocomplete ( #20761 )
2025-08-07 12:01:05 -05:00
mkuehne707
011a667314
feat: batch change date and time relatively ( #17717 )
...
Co-authored-by: marcel.kuehne <>
Co-authored-by: Zack Pollard <zackpollard@ymail.com>
2025-08-07 13:42:33 +00:00
Ben McCann
af10c3bc2f
chore: upgrade SvelteKit ( #20736 )
2025-08-07 13:00:42 +01:00
Thomas
746252fe39
fix(web): limit max height of search results ( #20727 )
...
The height of the search results element was unrestricted, which meant that the
asset visibility calculations were completely incorrect. The consequence of
this is that assets which should not have been visible, were. In practical
terms, all assets below the viewport were rendered when they shouldn't have
been which is terrible for performance. Limiting the height of the viewport
fixes that calculation and assets are correctly hidden.
The consequence of limiting the height of the viewport is that the intersector
then incorrectly thought the scroll position was always at the end. This has
been fixed by calculating the position of sliding window against the calculated
asset layout container height.
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-08-06 17:05:23 -05:00
Thomas
f36efd128b
fix(web): prevent thumbhashes from covering search bar ( #20720 )
...
The thumbhash had a z-index setting which meant it would cover the search bar,
and would always cause weird animations when scrolling up in search results.
This is fixable by removing the z-index and moving it in front the other
elements to get a naturally higher higher z-index preference.
2025-08-06 16:57:51 -05:00
Thomas
89292fecb4
fix(web): use correct sliding window offset for search results ( #20726 )
...
The contents of search results are slightly offset by the search bar, search
terms and spacing (margins/padding), and needs to be factored in when
calculating whether an asset is visible or not. The offset was 0, which
meant that assets were removed from view too early.
2025-08-06 16:34:24 -05:00
Thomas
1193a23282
feat(web): don't scroll to visible assets ( #20729 )
...
The timeline has been quite aggressive with scrolling to assets, even if they
were right in the middle of the page. If the asset is visible, then we
shouldn't scroll to it. It's really confusing when assets jump around after
being viewed.
2025-08-06 16:31:37 -05:00
Thomas
89598cf0be
chore(web): remove arbitrary search result limit ( #20719 )
...
The search results page can become unstable with large amounts of assets, and
has therefore been limited to displaying just 5000 assets. This limit is
arbitrary and may be too restrictive.
2025-08-06 10:12:52 -05:00
Gaurav Yadav
d430b869ac
fix: shared link custom URL photo access authentication ( #20534 )
2025-08-05 23:22:19 +02:00
renovate[bot]
ce2ea98926
fix(deps): update typescript-projects ( #20396 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Zack Pollard <zackpollard@ymail.com>
2025-08-05 12:45:47 +00:00
renovate[bot]
5c76cc34e1
chore(deps): update node.js to v22.18.0 ( #20662 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-05 11:01:15 +00:00
renovate[bot]
eb2f4c866e
chore(deps): update dependency eslint-plugin-unicorn to v60 ( #20677 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Zack Pollard <zackpollard@ymail.com>
2025-08-05 10:58:13 +00:00
Paweł Wojtaszko
990d9ba9a8
fix: adjust margin and gap for trailing elements in control app bar ( #20645 )
2025-08-04 17:24:19 -05:00
Paweł Wojtaszko
b56a272f64
fix: adjust search bar padding and visibility based on input state ( #20598 )
2025-08-04 17:46:46 +00:00
Alden Bansemer
e2c3c39597
chore: tweak photo sphere fov and zoom speed constants ( #20595 )
2025-08-04 01:07:11 -05:00
github-actions
007ba1d9ef
chore: version v1.137.3
2025-08-01 14:52:24 +00:00
github-actions
9242afb4b0
chore: version v1.137.2
2025-08-01 02:45:16 +00:00
github-actions
a07531be3b
chore: version v1.137.1
2025-07-31 23:05:34 +00:00
github-actions
c3263e50fc
chore: version v1.137.0
2025-07-31 20:19:26 +00:00
Alex
7391ea6ff9
chore: large file size grid view styling ( #20472 )
...
* chore: large file grid styles
* chore: large file grid styles
2025-07-31 12:52:19 -04:00
Daniel Dietzler
f972b8d514
fix: modal race conditions ( #20460 )
2025-07-31 07:28:45 -05:00
Jason Rasmussen
6b50d958f4
fix: incorrect next/previous action after folder view refresh ( #20447 )
2025-07-30 14:50:52 -05:00
Jason Rasmussen
d5a01c0310
fix(web): timeline time bucket issue ( #20438 )
2025-07-30 11:21:02 -05:00
Ben
baadf9db20
fix(web): timeline date group width ( #19964 )
...
Fix the calculation for the date group width, so there's never a scenario where photos will be hidden. On mobile devices, photos in the second row can sometimes have a top of <100px, which throws off the calculation of the date group width.
2025-07-30 08:39:19 -04:00
xCJPECKOVERx
4ea4ee40af
fix(web): Search chip key value heights don't match ( #20312 )
...
- add flex items-stretch to stretch chip key height to match value height
2025-07-30 08:31:16 -04:00
Brandon Wees
07ed060c32
feat: 3-2-1 backup onboarding card ( #20374 )
...
* feat: 3-2-1 backup onboarding card
* chore: format i18n
* fix: lint
* Update onboarding-backup.svelte
* fix: e2e onboarding test
2025-07-29 21:55:21 -05:00
Jason Rasmussen
58521c9efb
feat: change default media location to /data ( #20367 )
...
* feat!: change default media location to /data
* feat: dynamically detect media location
2025-07-29 16:58:50 -04:00
Zack Pollard
2a005629a0
chore: bump minimum eslint-config-prettier version due to MAL-2025-6022 ( #20400 )
2025-07-29 11:23:52 +00:00
renovate[bot]
cfae134ecf
fix(deps): update typescript-projects ( #20388 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-07-29 09:47:30 +00:00
Alwin Lohrie
ae1d60e259
feat: find large files utility ( #18040 )
...
feat: large asset utility
Co-authored-by: Jason Rasmussen <jason@rasm.me>
2025-07-28 18:48:39 -04:00
Jed-Giblin
9b3718120b
feat: shared links custom URL ( #19999 )
...
* feat: custom url for shared links
* feat: use a separate route and query param
---------
Co-authored-by: Jason Rasmussen <jason@rasm.me>
2025-07-28 14:16:55 -04:00
Dag Stuan
66ea75072d
feat(web): auto fit bounds for map modal ( #20345 )
2025-07-28 17:36:37 +01:00
xCJPECKOVERx
ee4ae40d61
fix(web): Album picker recent albums don't match sidebar ( #20313 )
...
- update album picker recent albums to show most recent 'updatedAt' instead of 'createdAt'. Matches sidebar.
2025-07-27 10:03:39 -05:00
Jason Rasmussen
153bb70f6e
feat(web): api key permission search ( #20248 )
2025-07-25 13:39:48 -04:00
Daniel Dietzler
edefed56ae
fix: optional number inputs ( #20218 )
2025-07-25 09:06:12 -04:00
Daimolean
a36840d7cc
fix(web): multi-select in ascending asset order ( #19461 )
2025-07-24 22:37:44 +01:00
Pablo Lluch
e34f46fa0d
fix: send correct includeArchived parameter to API when showing markers in map ( #20117 )
...
Co-authored-by: Pablo Lluch <pablo.lluch@gmail.com>
Co-authored-by: Zack Pollard <zackpollard@ymail.com>
2025-07-24 22:34:06 +02:00
github-actions
089085fcdb
chore: version v1.136.0
2025-07-24 14:24:38 +00:00
Alex
0051a9bba5
fix(web): Revert prevent flashing white background in dark mode on page load/reload ( #19934 ) ( #20122 )
...
Revert "fix(web): prevent flashing white background in dark mode on page load/reload (#19934 )"
This reverts commit 32f23b8d38 .
2025-07-24 09:45:38 +02:00
Daniel Dietzler
f27bdf7523
chore: migrate to UI modal manager ( #20116 )
2025-07-23 17:27:09 -04:00
Daniel Dietzler
c1c9f30ea4
chore: migrate to immich/ui confirm modal ( #20114 )
2025-07-23 22:56:56 +02:00
Daniel Dietzler
0e1c8c2b80
fix: ML recognition distance UI form validation ( #20107 )
2025-07-23 19:12:06 +02:00
xCJPECKOVERx
1a70896113
feat(web): Remove from Stack ( #19703 )
...
* - add component
- update server's StackCreateDto for merge parameter
- Update stackRepo to only merge stacks when merge=true (default)
- update web action handlers to show stack changes
* - make open-api
* lint & format
* - Add proper icon to 'remove from stack'
- change web unstack icon to image-off-outline
* - cleanup
* - format & lint
* - make open-api: StackCreateDto merge optional
* initial addition of new endpoint
* remove stack endpoint
* - fix up remove stack endpoint
- open-api
* - Undo stackCreate merge parameter
* - open-api typescript
* open-api dart
* Tests:
- add tests
- update assetStub.imageFrom2015 to have required stack attributes to include it with tests
* update event name
* Fix event name in test
* remove asset_update check
* - merge stack.removeAsset params into one object
- refactor asset existence check (no need for asset fetch)
- fix tests
* Don't return updated stack
* Create specialized stack id & primary asset fetch for asset removal checks
* Correct new permission names
* make sql
* - fix open-api
* - cleanup
2025-07-22 22:17:06 -04:00
renovate[bot]
b3061f1e4f
fix(deps): update typescript-projects ( #20086 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-07-22 19:18:29 +01:00
renovate[bot]
250548dea6
fix(deps): update typescript-projects ( #19939 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Zack Pollard <zackpollard@ymail.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-07-22 17:42:07 +00:00
renovate[bot]
637eba6e08
chore(deps): update node.js to v22.17.1 ( #20066 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-22 09:59:16 +00:00
renovate[bot]
bd92f6b12d
chore(deps): update dependency dotenv to v17 ( #20073 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-22 09:31:01 +00:00
bo0tzz
826eaedae6
feat: play live photos on hover ( #19962 )
2025-07-21 16:59:42 -05:00
Min Idzelis
9e94f52b05
chore: dockerfile layout changes ( #19673 )
...
Dockerfile layout changes
Fix up web path
feat: update server env vars for layout
2025-07-18 17:56:26 -04:00
Min Idzelis
f33e1ad94c
feat: relocate scripts, PATH update ( #20002 )
...
Relocate scripts, and PATH updates
2025-07-18 11:19:06 -04:00
evan314159
32f23b8d38
fix(web): prevent flashing white background in dark mode on page load/reload ( #19934 )
...
* prevent flashing white background in dark mode on page load/reload, tested with Safari and Chrome on macOS
* integrate into existing FOUC-prevention
---------
Co-authored-by: Evan <evan@MacBook-Pro.local>
2025-07-16 14:34:45 +00:00
Hamish
daea57f7d2
feat(web): better coordinate parsing ( #19832 )
...
feat: better coordinate parsing
2025-07-15 08:32:43 -05: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 +00:00
Lukas
ccd0c35ca1
fix(web): adjust button size in person side panel ( #19924 )
...
* fix(web): adjust button size in person side panel
* round edit button
2025-07-14 18:05:34 -04:00
Lukas
5f10a4cae7
fix(web): allow renaming person without merging ( #19923 )
...
* fix(web): allow renaming person without merging
* improve return type
2025-07-14 14:24:32 -05:00
renovate[bot]
04aab6ecce
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-11 23:32:35 +02:00
Jason Rasmussen
47c0dc0d7e
feat: nightly tasks ( #19879 )
2025-07-11 17:32:10 -04:00
Min Idzelis
906d14c172
chore: missing @types dependency for geojson ( #19870 )
2025-07-11 13:42:25 +02:00
Min Idzelis
badd7ea2a9
chore: more missing deps ( #19868 )
2025-07-11 00:56:04 +02: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 +02:00
Hamish
4db76ddcf0
feat(web): update icons ( #19831 )
...
* fix: update password icon in user settings
* feat: add icons to more modals
2025-07-09 02:12:16 +00: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 +00:00
matthieu-db
d5923241b5
fix: add quiet zone to QR code ( #19771 )
...
Add quiet zone to QR code
This is needed for the QR code to be readable by many QR readers. It is also a requirement for it to be a valid QR code.
2025-07-06 22:06:36 -05:00
Daniel Dietzler
4ce9bce414
feat: oauth role claim ( #19758 )
2025-07-06 18:45:32 -04:00
Daimolean
fb384fe90b
fix(web): viewing asset lock ( #19499 )
...
* fix(web): viewing asset lock
* fix: lint
* make mutex stateless
---------
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2025-07-05 02:52:39 +00:00
Min Idzelis
090d87f82e
chore: dev environment improvements and dependency updates ( #19676 )
2025-07-01 22:47:59 -04:00
Min Idzelis
8ccca04e27
fix(web): improve request cancellation handling in service worker cache ( #19217 )
2025-07-01 11:53:04 +01: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 +00: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 +01:00
Min Idzelis
db0415bbcc
chore: undeclared versions/updates ( #19649 )
2025-06-30 23:23:41 -04:00
Daimolean
53020852ec
fix(web): modal race condition ( #19625 )
...
* fix(web): modal race condition
* fix: translation
* fix: translation
2025-06-30 14:33:47 -05:00
Jason Rasmussen
30b4f334d8
feat: upload manager ( #19565 )
2025-06-27 09:13:43 -04:00
bo0tzz
48be10e48b
fix: don't exclude .github folder from make install-all ( #19534 )
...
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2025-06-25 20:37:40 +01:00
Daimolean
4621ec5ea2
fix(web): load day group in asset viewer ( #19523 )
...
* fix(web): load day group in asset viewer
* fix: lint
2025-06-25 11:18:11 -05:00
Jason Rasmussen
ebcf133bea
fix(web): consistent merge people icons ( #19473 )
...
fix(web): consistent merge icons
2025-06-23 16:39:20 -04:00
Daimolean
ce14324c97
fix(web): oauth quota display ( #19417 )
...
* fix(web): oauth quota display
* fix(web): oauth quota display
2025-06-23 11:00:41 -04:00
Daimolean
6a309129b7
fix(web): timeline timezone ( #19418 )
2025-06-23 09:06:26 -05:00
Daimolean
7f89999abe
fix(web): toggle favorite ( #19453 )
2025-06-23 08:36:30 -05:00
Daimolean
813186e618
fix(web): undefined release ( #19455 )
...
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
2025-06-23 12:13:08 +00:00
Daniel Dietzler
ecc58a8971
chore: migrate version announcement modal ( #19381 )
2025-06-22 21:56:41 -05:00
Yaros
c705a7b280
fix(web): map broken after redirect from details ( #19424 )
...
* fix(web): map broken after redirect from details
* chore: use globalThis instead of window
2025-06-22 21:55:21 -05:00
Brandon Wees
ef278b4fb0
fix: storage template onboarding save ( #19405 )
...
* fix: storage template onboarding save
* no need for async/await
2025-06-22 21:54:29 -05:00
Daimolean
4cd633dc68
fix(web): download icon color ( #19427 )
2025-06-22 21:52:19 -05:00
Daimolean
90aa0dc14d
fix(web): map cluster ( #19433 )
2025-06-22 15:06:45 +00:00
Daniel Dietzler
698d3004b4
refactor: tag create/update modal ( #19389 )
...
refactor: tag modals
2025-06-21 12:28:21 +00:00
Daniel Dietzler
fe4d6edbdc
refactor: album picker modal ( #19383 )
...
Co-authored-by: Jason Rasmussen <jason@rasm.me>
2025-06-21 08:18:54 -04:00
github-actions
6563fa608a
chore: version v1.135.3
2025-06-20 19:48:18 +00:00
Daniel Dietzler
373b654156
chore: migrate profile picture cropper modal ( #19378 )
2025-06-20 18:16:10 +00:00
Daniel Dietzler
a5d84ba552
chore: consistent modal footer spacing ( #19377 )
2025-06-20 18:05:39 +00:00
Daniel Dietzler
1dc8fa2979
chore: rename edit album form modal ( #19375 )
2025-06-20 13:51:14 -04:00
github-actions
a04c6ed80d
chore: version v1.135.2
2025-06-20 14:52:47 +00:00
Brandon Wees
1c50e19894
fix: use icons instead of toggles for admin user features view ( #19369 )
...
* fix: use icons instead of toggles for admin user features view
* fix: use red for X icon
2025-06-20 14:48:18 +00:00
Jason Rasmussen
dd8969cb7d
fix: container padding ( #19316 )
2025-06-19 21:33:12 -05:00
Jason Rasmussen
5cdbb65d28
feat: better contrast for checkmark indicator ( #19312 )
...
feat: better constrast
2025-06-19 13:20:57 -05:00
github-actions
3434544864
chore: version v1.135.1
2025-06-19 17:37:39 +00:00
Zack Pollard
f9435a538b
revert: fix(web): wrap long names with textarea ( #19305 )
...
Revert "fix(web): wrap long names with textarea (#19301 )"
This reverts commit 747a72120e .
2025-06-19 16:28:10 +00:00
Jin Xuan
747a72120e
fix(web): wrap long names with textarea ( #19301 )
2025-06-19 15:57:54 +00:00
Alex
c8a135a7ae
fix: .find() iterator api combat ( #19293 )
...
* fix: .find() iterator api combar
* Update web/src/lib/managers/timeline-manager/month-group.svelte.ts
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
---------
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
2025-06-19 14:59:14 +00:00
xCJPECKOVERx
08d1cf5bde
fix(web): Stack assets in asset-viewer cut off on the left ( #19253 )
...
* - move overflow and scrollbar to stack-slideshow inner div
* - format
2025-06-19 09:20:25 -05:00
Dag Stuan
38e68d16f9
fix(web): exit slideshow when exiting fullscreen. ( #19247 )
...
Exit slideshow when exiting fullscreen.
Browsers do not send a keyboard event when exiting fullscreen, so if
the user exits fullscreen with the escape key, the slideshow
remains open, requiring another escape key press to close it. Fix this
by listening for the fullscreenchange event and closing the slideshow
when exiting fullscreen.
2025-06-19 14:10:10 +00:00
Daniel Dietzler
caf11fbb96
fix: album asset viewer ( #19252 )
2025-06-19 09:09:23 -05:00
Paul Larsen
e29103b69f
fix album list CSS margins ( #19262 )
2025-06-19 14:03:14 +00:00
Daniel Dietzler
07aa51638c
fix: panning interrupted while moving around the map ( #19276 )
2025-06-19 11:28:53 +00:00
Daniel Dietzler
de81006367
fix: album share modal navigation ( #19245 )
2025-06-18 16:10:35 +00:00
github-actions
65e8d75e82
chore: version v1.135.0
2025-06-18 13:45:07 +00:00
Jason Rasmussen
91cbd56c1c
revert: service worker changes ( #19227 )
2025-06-17 17:07:54 +00:00
Zack Pollard
4c69511225
revert: "feat(web): wasm justified layout" ( #19226 )
2025-06-17 16:01:40 +00:00
Mert
bc062da11b
feat(web): wasm justified layout ( #19150 )
...
* wasm justified layout
* fix tests
* redundant layout generation
* raw position
2025-06-17 09:20:14 -05:00
xCJPECKOVERx
8038ae1e7a
fix(web): Asset viewer stack thumbnails overflow on top of asset ( #19088 )
...
* - create constants for thet asset-viewer stack thumbnail sizes
- use 2x selected thumbnail size to set the max-height of the stack-slideshow container.
* - increase the stack-slideshow max-height as it's scrolled
* Revert "- increase the stack-slideshow max-height as it's scrolled"
This reverts commit da4614547acfb8853258071c1b192c8162b86424.
* change asset stack veritcal scroll to horizontal scroll
2025-06-17 09:19:30 -05:00
Dag Stuan
bd70824961
fix(web): more refactoring and tweaking of the memory viewer. ( #19214 )
...
* Fix fade in for video-native-viewer.
The previous implementation never actually faded in the video element.
Fix this by ensuring the video element is only added to the DOM after
mounting, so Svelte can handle the fade-in transition correctly.
* Refactor asset viewing in memory page.
Split photo and video viewing into separate components to ensure they
work similarly to the assets viewer. The previous implementation faded
out the assets, while the assets-viewer only fades assets in. For
images, add a spinner while waiting for the image to load, before adding
the image to the DOM. For videos, add the video to the DOM after
mounting the component. In both cases, the assets fade in smoothly, like
the regular assets viewer.
* fix: styling
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-06-17 14:09:34 +00:00
Zack Pollard
864fe3d0d6
fix: disable map fly animation when switching between assets ( #19223 )
2025-06-17 12:45:48 +01:00
Zack Pollard
176d53c1b3
chore: bump browserlists version and load tscompat browserlist from file ( #19212 )
...
* chore: bump browserlists version to include latest edge browsers
* chore: load tscompat browser list from the .browserslistrc file
2025-06-16 10:03:46 -05:00
Mert
5fc448bc97
chore(web): passive events ( #19179 )
2025-06-16 11:03:23 -04:00
Brandon Wees
32b57bcbfc
chore: remove warning on storage template onboarding ( #19200 )
...
chore: remove warning on storage template
2025-06-15 16:43:34 -05:00
Dag Stuan
189442e9c4
fix(web): small issues with the memory viewer. ( #19184 )
...
* Match fade transition timing between photo-viewer and memory-viewer.
* Fix blank page after refreshing memory page.
If the user refreshed in the browser while on the memory page, the page
would show a blank page. This was caused by skipping initialization in
afterNavigate. Fix by always initializing the memory page in
afterNavigate.
2025-06-15 10:04:33 -05:00
Daniel Dietzler
523fe5bef7
refactor: album options modal ( #19177 )
2025-06-14 18:10:33 -04:00
Daimolean
004c2f2496
fix(web): OAuth quota size ( #18526 )
...
fix(server): oauth quota size
2025-06-13 10:57:29 -04:00
Zack Pollard
e2dfbd66c3
ci: browser compatibility linting ( #19132 )
2025-06-13 10:54:59 -04:00
Min Idzelis
ed5b260eeb
feat: service worker cache static app resources, and all entry points ( #18043 )
...
* feat: service worker cache static app resources, and all entry points
* review comments
* review
* lint
* minor tweaks
* review comments
* optimize disabled cache
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-06-12 19:33:29 -04:00
Jason Rasmussen
8923d5b0a3
refactor: css variables ( #19146 )
2025-06-12 23:06:38 +00:00
Jason Rasmussen
2f3d4e15d2
refactor: duplicate button controls ( #19143 )
2025-06-12 17:48:53 -04:00
Jason Rasmussen
c9bcae813b
feat: duplicate delete groups api ( #19142 )
2025-06-12 17:48:43 -04:00
Alex
144cc8ab6d
chore: custom impl for set.difference api ( #19135 )
2025-06-12 11:41:19 -05:00
Robin Brisa
0322a8b1d9
fix(web): properly update activityManager when browsing assets ( #18909 )
2025-06-12 12:13:35 +01: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 +00:00
Daniel Dietzler
22eef5f3c5
chore: more flexible modal manager types ( #19123 )
...
* fix: required argument in onClose modal function
* chore: more flexible modal manager types
2025-06-11 22:32:49 +00:00
Daniel Dietzler
5179c5badf
fix: required argument in onClose modal function ( #19122 )
2025-06-11 18:25:36 -04:00
Daniel Dietzler
4c5cd14270
refactor: map modal ( #19120 )
2025-06-11 15:08:36 -04:00
Jason Rasmussen
38ad15af4c
refactor: user avatar ( #19121 )
2025-06-11 15:08:11 -04:00
Daniel Dietzler
7a001d27a5
refactor: email template preview modal ( #19119 )
2025-06-11 18:18:46 +00:00
Min Idzelis
4b4ee5abf3
refactor: timeline manager renames ( #19007 )
...
* refactor: timeline manager renames
* refactor(web): improve timeline manager naming consistency
- Rename AddContext → GroupInsertionCache for clearer purpose
- Rename TimelineDay → DayGroup for better clarity
- Rename TimelineMonth → MonthGroup for better clarity
- Replace all "bucket" references with "monthGroup" terminology
- Update all component props, method names, and variable references
- Maintain consistent naming patterns across TypeScript and Svelte files
* refactor(web): rename buckets to months in timeline manager
- Rename TimelineManager.buckets property to months
- Update all store.buckets references to store.months
- Use 'month' shorthand for monthGroup arguments (not method names)
- Update component templates and test files for consistency
- Maintain API-related 'bucket' terminology (bucketHeight, getTimeBucket)
* refactor(web): rename assetStore to timelineManager and update types
- Rename assetStore variables to timelineManager in all .svelte files
- Update parameter names in actions.ts and asset-utils.ts functions
- Rename AssetStoreLayoutOptions to TimelineManagerLayoutOptions
- Rename AssetStoreOptions to TimelineManagerOptions
- Move assets-store.spec.ts to timeline-manager.spec.ts
* refactor(web): rename intersectingAssets to viewerAssets and fix property references
- Rename intersectingAssets to viewerAssets in DayGroup and MonthGroup classes
- Update arrow function parameters to use viewerAsset/viewAsset shorthand
- Rename topIntersectingBucket to topIntersectingMonthGroup
- Fix dateGroups references to dayGroups in asset-utils.ts and album page
- Update template loops and variable names in Svelte components
* refactor(web): rename #initializeTimeBuckets to #initializeMonthGroups and bucketDateFormatted to monthGroupTitle
* refactor(web): rename monthGroupHeight to height
* refactor(web): rename bucketCount to assetsCount, bucketsIterator to monthGroupIterator, and related properties
* refactor(web): rename count to assetCount in TimelineManager
* refactor(web): rename LiteBucket to ScrubberMonth and update scrubber variables
- Rename LiteBucket type to ScrubberMonth
- Rename bucketDateFormattted to title in ScrubberMonth type
- Rename bucketPercentY to monthGroupPercentY in scrubber component
- Rename scrubBucket to scrubberMonth and scrubBucketPercent to scrubberMonthPercent
* fix remaining refs to bucket
* reset submodule to correct commit
* reset submodule to correct commit
* refactor(web): extract TimelineManager internals into separate modules
- Move search-related functions to internal/search-support.svelte.ts
- Extract websocket event handling into WebsocketSupport class
- Move utility functions (updateObject, isMismatched) to internal/utils.svelte.ts
- Update imports in tests to use new module structure
* refactor(web): extract intersection logic from TimelineManager
- Create intersection-support.svelte.ts with updateIntersection and calculateIntersecting functions
- Remove private intersection methods from TimelineManager
- Export findMonthGroupForAsset from search-support for reuse
- Update TimelineManager to use the extracted intersection functions
* refactor(web): rename a few methods in intersecting
* refactor(web): rename a few methods in intersecting
* refactor(web): extract layout logic from TimelineManager
- Create layout-support.svelte.ts with updateGeometry and layoutMonthGroup functions
- Remove private layout methods from TimelineManager
- Update TimelineManager to use the extracted layout functions
- Remove unused UpdateGeometryOptions import
* refactor(web): extract asset operations from TimelineManager
- Create operations-support.svelte.ts with addAssetsToMonthGroups and runAssetOperation functions
- Remove private asset operation methods from TimelineManager
- Update TimelineManager to use extracted operation functions with proper AssetOrder handling
- Rename getMonthGroupIndexByAssetId to getMonthGroupByAssetId for consistency
- Move utility functions from utils.svelte.ts to internal/utils.svelte.ts
- Fix method name references in asset-grid.svelte and tests
* refactor(web): extract loading logic from TimelineManager
- Create load-support.svelte.ts with loadFromTimeBuckets function
- Extract time bucket loading, album asset handling, and error logging
- Simplify TimelineManager's loadMonthGroup method to use extracted function
* refresh timeline after archive keyboard shortcut
* remove debugger
* rename
* Review comments - remove shadowed var
* reduce indents - early return
* review comment
* refactor: simplify asset filtering in addAssets method
Replace for loop with filter operation for better readability
* fix: bad merge
* refactor(web): simplify timeline layout algorithm
- Replace rowSpaceRemaining array with direct cumulative width tracking
- Invert logic from tracking remaining space to tracking used space
- Fix spelling: cummulative to cumulative
- Rename lastRowHeight to currentRowHeight for clarity
- Remove confusing lastRow variable and simplify final height calculation
- Add explanatory comments for clarity
- Rename loop variable assetGroup to dayGroup for consistency
* simplify assetsIterator usage
* merge/lint
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-06-10 09:30:13 -05:00