Compare commits

...

2254 Commits

Author SHA1 Message Date
Pushkar Anand
eb61a591b0 Sub components created 2025-08-04 22:26:24 +05:30
Ashil
101458e5cd [mobile] Extract strings + Cleanup Image editor (#6716)
## Description
Removed old image editor package and related file
Extracted strings for image editor
## Tests
2025-08-01 12:37:34 +05:30
AmanRajSinghMourya
6fbea6232e Merge branch 'main' into extract_strings 2025-08-01 12:25:11 +05:30
AmanRajSinghMourya
ecf236ad54 Add localization strings for editing tools and remove filtered_image.dart 2025-08-01 12:21:08 +05:30
AmanRajSinghMourya
3c8d8067c1 Remove image_editor dependency from pubspec.yaml and pubspec.lock 2025-08-01 12:19:46 +05:30
AmanRajSinghMourya
7cd95e6369 Minor refractor 2025-08-01 12:19:14 +05:30
AmanRajSinghMourya
1487362366 Remove old image editor 2025-08-01 12:18:56 +05:30
Neeraj
54911cce15 [mob][photos] Upgrade media_kit (#6715)
## Description
```
flutter pub upgrade media_kit media_kit_libs_ios_video media_kit_libs_video media_kit_video
```
## Tests
```
flutter run
```
2025-08-01 10:46:34 +05:30
Neeraj Gupta
5a9684f251 [mob][photos] Upgrade motionphoto (iOS) pkg 2025-08-01 10:43:00 +05:30
Ashil
0f6ae20402 [mob][photos] Keep fullscreen between swipes (#6706)
## Description

Fixes #6667
2025-08-01 10:37:43 +05:30
Neeraj Gupta
2fe3c61621 [mob][photos] Upgrade media_kit 2025-08-01 10:34:53 +05:30
Ashil
e5afa0f88f [mob][photos] Bump up build number (#6711) 2025-08-01 09:28:19 +05:30
ashilkn
783d70a8f1 bump up build number 2025-07-31 22:38:04 +05:30
Ashil
640f8c6867 [mobile][photos] Fix Add to Album in search section (#6675)
## Description
When creating a new album from the search tab, the album is created and
then it pop back to the search screen after sometime.

#### Before

https://github.com/user-attachments/assets/7e172227-5a35-4d7c-b0f3-e6afd46441ed

#### After


https://github.com/user-attachments/assets/c94eaac4-c51c-4dd3-a573-a8fd17221fec


## Tests
2025-07-31 22:30:58 +05:30
Prateek Sunal
7beba5fb99 [mob][photos] add more logs for smart albums (#6708)
## Description

- This PR adds more logs for smart albums.

- Removes support of favorites and uncategorized for smart albums.

- Don't delete entry for smartConfig if collection is still present.

## Tests
2025-07-31 19:00:11 +05:30
Prateek Sunal
b4ebc8482f fix: remove support for favorites and uncateogrized albums 2025-07-31 17:55:04 +05:30
Prateek Sunal
9b42f06152 fix: change log level to info for syncing smart albums 2025-07-31 17:53:01 +05:30
Prateek Sunal
574cfd5165 fix: improve error logging in smart album config saving 2025-07-31 17:52:16 +05:30
Prateek Sunal
19e353453b fix: don't delete entity if collection null 2025-07-31 17:41:36 +05:30
Prateek Sunal
927e1fef80 fix: only delete if collection is deleted or null 2025-07-31 17:40:55 +05:30
Prateek Sunal
767703c383 chore: more sync logs 2025-07-31 16:42:05 +05:30
Prateek Sunal
fa47f34e74 fix: add logs 2025-07-31 16:39:50 +05:30
Manav Rathi
545b8d21bd [rust] Setup PR checks (#6707) 2025-07-31 15:59:11 +05:30
ashilkn
557563e1b7 Keep InheritedDetailPageState and DetailPage's body in different widgets to avoid InheritedDetailPageState from getting reinitialized and losing it's state when body of DetailPage rebuilds 2025-07-31 15:48:50 +05:30
Manav Rathi
bd9dd0a839 [rust] Setup PR checks 2025-07-31 15:41:04 +05:30
AmanRajSinghMourya
8da1f638e1 extract string + code refractor 2025-07-31 15:15:51 +05:30
Manav Rathi
97b4b6080a Hello, Rust (#6703)
https://crates.io/crates/ente-rs
2025-07-31 12:27:59 +05:30
Manav Rathi
e2dd3b462f Hello, Rust 2025-07-31 12:09:30 +05:30
Ashil
f060d10802 [mob][photos] Release 1.2.0 change log (#6691) 2025-07-31 09:56:40 +05:30
Ashil
bd2dff3a8a Merge branch 'main' into release_1.2.0 2025-07-31 09:56:24 +05:30
Prateek Sunal
fd0ee96808 [mob][photos] smart album (#6610)
## Description

Smart Album, without anything else.

### Auto-add people

Using this you can add person's automatically to the album you want.

## Tests

- [x] Files that are already hidden are not auto-added to the album
- [ ] Files that belong to some other users are not added to the album.
This will trigger a copy event, where file will be copied to user's
namespace.
2025-07-31 09:29:28 +05:30
Neeraj
f53a27a60d [auth] update relative links to assets (#6701)
## Description

PR to patch relative links to assets

## Current Error

<img width="1053" height="343" alt="image"
src="https://github.com/user-attachments/assets/48bd5a74-ba60-41dc-89fc-7d025ee9630a"
/>

## Patch

<img width="1086" height="491" alt="image"
src="https://github.com/user-attachments/assets/8244d220-b1f2-47c4-8963-3e5d996b7fbd"
/>
2025-07-31 09:26:06 +05:30
Daniel T
22e1b68ea8 docs: update relative links to assets 2025-07-30 18:02:56 -05:00
Prateek Sunal
92d6a6af8e chore: remove unused import of dart:ui 2025-07-31 02:33:31 +05:30
Prateek Sunal
7b528a7e20 fix: rename remoteId 2025-07-30 22:15:16 +05:30
Prateek Sunal
655336a92c fix: make it non-nullable 2025-07-30 22:14:45 +05:30
Prateek Sunal
851ce8147c chore: update locals 2025-07-30 19:15:38 +05:30
Prateek Sunal
9d6c9b659c chore: switch back 2025-07-30 18:20:39 +05:30
Prateek Sunal
40d5b26301 chore: switch back 2025-07-30 18:20:22 +05:30
Prateek Sunal
a4d29adaf4 fix: don't go in other users owned files block when not trying to copy 2025-07-30 18:09:49 +05:30
Prateek Sunal
40f979ae2d fix: don't touch ml stuff 2025-07-30 17:58:59 +05:30
Prateek Sunal
9d2986157d Merge remote-tracking branch 'origin/main' into smart-album-nothingelse 2025-07-30 17:53:16 +05:30
Prateek Sunal
6ea6493cbc Merge remote-tracking branch 'origin/main' into smart-album-nothingelse 2025-07-30 17:51:04 +05:30
Laurens Priem
856ca0447e [mob][photos] Ignored person issues (#6677)
## Description

- Fixes ignored person showing up in suggestions
- Don't ask for contact linking for ignored persons
2025-07-30 14:17:55 +02:00
Ashil
4076d1d7af [mobile][photos] Advance image editor (#6618)
## Description
This PR integrates a fully-featured advanced image editor which supports
the following features

- Added image adjustment tools (e.g., brightness, contrast, saturation)
- Enabled text annotations on images
- Added freehand drawing support
- Included sticker placement functionality
2025-07-30 17:44:24 +05:30
laurenspriem
da53831cf1 Merge branch 'main' into hidden_issues 2025-07-30 14:11:11 +02:00
Laurens Priem
1ab9b38c79 [mob][photos] Missing cover fix (#6695)
## Description

Fixes issue in face thumbnail generation when the file is not present.

## Tests

Tested in debug mode on my pixel phone.
2025-07-30 13:40:02 +02:00
Ashil
af1fa494d8 [mob][photos] Gallery/Memories settings UI clean up (#6692) 2025-07-30 16:53:55 +05:30
laurenspriem
fe8fd519a9 Resolve potential outdated cache 2025-07-30 13:20:01 +02:00
laurenspriem
75ae1bf2e6 Fix sql error 2025-07-30 13:04:58 +02:00
Aman Raj Singh Mourya
401d5f44a1 [auth] add 22 custom icons (#6694) 2025-07-30 16:10:30 +05:30
Aman Raj Singh Mourya
13247b153c [auth] add Tally.so custom icon (#6689)
Add custom SVG icon for [Tally.so](https://tally.so/help/press-kit) in
accordance with their media kit to enhance branding.
Icon optimized with SVGOMG.
2025-07-30 16:06:43 +05:30
Aman Raj Singh Mourya
2a1620cb36 [auth] add Charles Schwab custom icon (#6690)
Add custom SVG icon for [Charles Schwab](https://www.schwab.com/) to
enhance branding.
Icon optimized with SVGOMG.
2025-07-30 16:05:57 +05:30
AmanRajSinghMourya
bc00276316 feat: add Glacier filter with matrix adjustments for saturation, contrast, hue, and temperature 2025-07-30 16:03:45 +05:30
AmanRajSinghMourya
9840d65f40 Merge branch 'advance_image_editor' of https://github.com/ente-io/ente into advance_image_editor 2025-07-30 15:26:24 +05:30
Vishnu Mohandas
fcf3cadb21 [docs] update troubleshooting for desktop and object storage (#6693)
## Description

This PR updates docs for network status reporting in Ente Desktop on
Linux and removes documentation for object storage configuration which
will only be available in latest server image to reduce confusion.
2025-07-30 15:18:01 +05:30
ashilkn
be5e1a9840 Update pubspec.lock 2025-07-30 14:49:57 +05:30
AmanRajSinghMourya
d62f1d50ca fix: update filter names and orders in image editor 2025-07-30 14:41:03 +05:30
Anand Desai
bf90190b38 chore: missed onlinesbi alt name for SBI 2025-07-30 14:25:16 +05:30
Keerthana
19979b4f61 [docs] push photos faq to troubleshooting for incorrect network status reporting 2025-07-30 14:18:08 +05:30
Anand Desai
9df9830fd0 chore: missed capitalization in DeepSeek 2025-07-30 14:17:14 +05:30
Keerthana
1148e524f0 [docs] update FAQ for desktop and object storage 2025-07-30 14:14:38 +05:30
Anand Desai
516396fb85 chore: add 22 custom icons 2025-07-30 14:12:04 +05:30
ashilkn
2c842c9c65 Gallery settings & memory setting fixes 2025-07-30 13:34:05 +05:30
ashilkn
fe7ba3895d Remove unused file 2025-07-30 13:25:03 +05:30
ashilkn
fe7486ea68 Update currentChangeLogVersion 2025-07-30 13:12:53 +05:30
ashilkn
198cd89eb1 Update change log + add translations 2025-07-30 13:12:05 +05:30
Anand Desai
ae2145f51f chore: add Charles Schwab custom icon 2025-07-30 12:07:53 +05:30
Anand Desai
41143cb20a chore: add tally.so custom icon 2025-07-30 11:58:29 +05:30
ashilkn
3ee300a294 bump up to v1.2.0 2025-07-30 11:29:46 +05:30
Ashil
d077d5dcbb [mob][photos] Gallery improvements (#6688)
## Description
- Better scrolling performance
- Gallery grouping options (day, week, month & year)
- New scrollbar
- Pinned to top header for each group in gallery.
2025-07-30 11:25:09 +05:30
ashilkn
6e59c4e915 chore 2025-07-30 11:19:30 +05:30
ashilkn
21b930d617 Add attribution for aves 2025-07-30 10:54:23 +05:30
ashilkn
644fdd16f5 Chore 2025-07-30 10:54:06 +05:30
ashilkn
3ce835cf31 chore 2025-07-30 10:25:08 +05:30
ashilkn
1ab4cf5fd7 chore 2025-07-30 10:22:04 +05:30
ashilkn
c62a7c8265 chore 2025-07-30 10:18:06 +05:30
ashilkn
a3333e48f6 Rename file 2025-07-30 09:59:35 +05:30
Aman Raj Singh Mourya
669cecb4a0 [auth] add exaroton custom icon (#6682)
Add custom SVG icon for [exaroton ](https://exaroton.com) to enhance
branding.
Optimized icon with SVGOMG
2025-07-30 09:24:08 +05:30
Aman Raj Singh Mourya
0ea5783e23 [auth] add NumberBarn custom icon (#6683)
Add custom SVG icon for [NumberBarn](https://www.numberbarn.com/) to
enhance branding.
Icon optimized with SVGOMG.
2025-07-30 09:23:39 +05:30
Aman Raj Singh Mourya
7a6a5892b0 [auth] add United States Department of Homeland Security custom icon (#6684)
Add custom SVG icon for [U.S. DHS](https://www.dhs.gov/) to enhance
branding.
Icon optimized with SVGOMG. It is relatively large because it is
elaborate and complex compared to most other icons.
I tried my best to minimize and strip unnecessary metadata and paths.

United States Department of Homeland Security (DHS) also shares the same
icon and branding for `altNames` provided:

- [United States Citizenship and Immigration Services
(USCIS)](https://www.uscis.gov/)
- [United States Immigration and Customs Enforcement
(ICE)](https://www.ice.gov/)
- [United States Customs and Border Protection
(CBP)](https://www.cbp.gov/)

since they are all subsidiaries of the former department.
2025-07-30 09:23:20 +05:30
Aman Raj Singh Mourya
cf590e8e02 [auth] add Rose-Hulman Institute of Technology custom icon (#6685)
Add custom SVG icon for [Rose-Hulman Institute of
Technology](https://www.rose-hulman.edu/) to enhance branding.
Icon optimized with SVGOMG.
2025-07-30 09:23:06 +05:30
Anand Desai
709d4d121a fix: accidentally changed whitespace and formatting. oops 2025-07-30 01:56:42 +05:30
Anand Desai
556f933d19 fix: accidentally changed whitespace and formatting. oops 2025-07-30 01:55:25 +05:30
Anand Desai
90d307ab1c fix: accidentally changed whitespace and formatting. oops 2025-07-30 01:53:45 +05:30
Anand Desai
42f0ee26b6 fix: accidentally changed whitespace and formatted. oops 2025-07-30 01:51:05 +05:30
Anand Desai
5e367f9165 chore: reverted accidental whitespace deletion 2025-07-30 01:34:45 +05:30
Anand Desai
5d5cafad72 chore: add rose-hulman icon 2025-07-30 01:29:18 +05:30
Anand Desai
37707f9db3 chore: add US DHS icon 2025-07-30 01:25:03 +05:30
Anand Desai
da08e1cb09 chore: add numberbarn icon 2025-07-30 01:15:21 +05:30
Anand Desai
05f530283f Revert "chore: add NumberBarn icon"
This reverts commit 5b16dcdce4.
2025-07-30 00:24:55 +05:30
Anand Desai
5b16dcdce4 chore: add NumberBarn icon 2025-07-30 00:24:24 +05:30
Anand Desai
cdc2a1f63c chore: add exaroton icon 2025-07-30 00:19:54 +05:30
ashilkn
dccc880b68 Fix build error 2025-07-29 20:16:20 +05:30
ashilkn
aaa53d7dc4 Fix build error 2025-07-29 20:15:33 +05:30
Prateek Sunal
38008cb760 chore: update locks 2025-07-29 19:57:50 +05:30
Prateek Sunal
92590e51c2 feat: Auto add option in people selection page 2025-07-29 19:57:29 +05:30
ashilkn
438eb32872 Merge branch 'main' into advance_image_editor 2025-07-29 19:54:07 +05:30
AmanRajSinghMourya
02a09ea206 fix: remove unused google_fonts dependency and update related configurations 2025-07-29 19:32:25 +05:30
Prateek Sunal
435a803eab fix: refresh app bar on add files + delete config if no person selected 2025-07-29 17:43:26 +05:30
laurenspriem
973c1f872a strings 2025-07-29 13:19:16 +02:00
laurenspriem
e45db814fa Don't suggest for ignored persons in all people page 2025-07-29 13:04:07 +02:00
ashilkn
d0196a1813 Merge branch 'main' into gallery_rewrite 2025-07-29 16:13:11 +05:30
ashilkn
fcdbef557a Fix state issue with gallery layout selector 2025-07-29 16:11:23 +05:30
laurenspriem
e3b3cbc1b2 Don't ask to contact link hidden person 2025-07-29 12:33:47 +02:00
laurenspriem
e1d3e2dac4 Clarify hidden vs ignored flag 2025-07-29 12:22:35 +02:00
ashilkn
19b41d365e Use same scroll bar thumb color on gallery for iOS and Android 2025-07-29 15:44:55 +05:30
ashilkn
b5c47734da Fix depricated enum 2025-07-29 15:06:02 +05:30
Prateek Sunal
bf0e4cc8e0 fix: only run sync and show option if granted ml consent 2025-07-29 14:52:02 +05:30
Prateek Sunal
24e81f9dc0 fix: handle potential null collection in sync logic 2025-07-29 14:49:16 +05:30
AmanRajSinghMourya
ec0520bd2f fix: update text editor configuration to disable text editing 2025-07-29 14:44:22 +05:30
Laurens Priem
d4c3063ecf [mob][photos] Revert error on rotated image decoding for indexing (#6673)
## Description

Revert error on rotated image decoding for indexing
2025-07-29 10:33:14 +02:00
laurenspriem
c8e84c9af3 More neutral log line for heic 2025-07-29 10:25:20 +02:00
Prateek Sunal
85efa544b6 fix: refactor sync logic to use Set for pending files 2025-07-29 13:48:01 +05:30
laurenspriem
b1f6c57601 Revert error on rotated image decoding for indexing 2025-07-29 10:16:53 +02:00
Prateek Sunal
3c1bd34058 fix: duplication 2025-07-29 13:44:57 +05:30
AmanRajSinghMourya
6d31cf40da Merge branch 'main' into advance_image_editor 2025-07-29 13:21:19 +05:30
Aman Raj Singh Mourya
278156b11d [mobile] Add custom filter to image editor (#6671)
## Description
Add 10 custom filter to image editor and made it compatible with flutter
3.24.0
## Tests
2025-07-29 13:17:55 +05:30
AmanRajSinghMourya
ce48e2610a feat: enable zoom in main editor and refractor code 2025-07-29 13:13:31 +05:30
AmanRajSinghMourya
926715a4a8 fix: handle zero display value in circular progress animation 2025-07-29 13:07:10 +05:30
Manav Rathi
e152c04a65 [web] Handle nullish count in pub-mm of old public albums (#6666) 2025-07-29 13:06:30 +05:30
Prateek Sunal
03d21bc3ff chore: update addFiles logic 2025-07-29 13:00:37 +05:30
Prateek Sunal
79fdfdd72b fix: remove redundant await 2025-07-29 12:48:51 +05:30
Prateek Sunal
27d3acb192 fix: remove async from addFiles method 2025-07-29 12:48:10 +05:30
Prateek Sunal
82c8ce3f86 fix: check if collection not deleted 2025-07-29 12:47:20 +05:30
AmanRajSinghMourya
93259dc28c feat: update filter presets and improve filter selection handling in image editor 2025-07-29 12:38:15 +05:30
AmanRajSinghMourya
064da1be08 fix: downgrade pro_image_editor dependency from 7.2.0 to 6.0.0 for compatibility 2025-07-29 08:48:31 +05:30
AmanRajSinghMourya
dd0cfc4656 Fix: update padding in crop rotate bar and rename paint editor state 2025-07-29 08:48:17 +05:30
Manav Rathi
62049275f3 Handle old public albums
e.g. "Trip to Sikkim" from the blog post
2025-07-28 19:25:33 +05:30
ashilkn
9aa6023720 Bump up version 2025-07-28 17:43:51 +05:30
ashilkn
660bf78123 Merge branch 'main' into gallery_rewrite 2025-07-28 17:41:06 +05:30
ashilkn
35ede58e78 Move memories settings to General > Memories 2025-07-28 17:18:20 +05:30
Manav Rathi
2cba00c45c Prettier: Make it work better with markdown (#6664)
Ref:
- https://prettier.io/blog/2017/12/05/1.9.0#markdown
- https://github.com/ente-io/ente/pull/6642#issuecomment-3118225419
2025-07-28 14:29:57 +05:30
Manav Rathi
3133a757ce Run prettier 2025-07-28 14:22:46 +05:30
Manav Rathi
f621461ba8 Prettier: preserve proseWrap
Always inserts linebreaks in positions that can break markdown content.
2025-07-28 13:41:37 +05:30
Neeraj
2aebeef31d [auth] New translations (#6663)
New translations from
[Crowdin](https://crowdin.com/project/ente-authenticator-app)
2025-07-28 12:16:22 +05:30
ashilkn
ba9337a3b6 Gallery performance improvement 2025-07-28 11:57:14 +05:30
Manav Rathi
203357f2c8 [web] New translations (#6661)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2025-07-28 11:49:08 +05:30
AmanRajSinghMourya
a0d7a88a6b Fix add new album flow 2025-07-28 11:13:40 +05:30
Neeraj
50dc5d3b4b [mobile/photos] New translations (#6662)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-app)
2025-07-28 10:11:07 +05:30
Crowdin Bot
58bf661e19 New Crowdin translations by GitHub Action 2025-07-28 01:18:16 +00:00
Crowdin Bot
a7f56d3dab New Crowdin translations by GitHub Action 2025-07-28 01:05:39 +00:00
Crowdin Bot
3e51fa1f83 New Crowdin translations by GitHub Action 2025-07-28 00:45:26 +00:00
Keerthana
99720996bf [docs] refactor troubleshooting for docker (#6655)
## Description

This PR updates troubleshooting for Docker, adds information for
configuration of DB and fixes a dead link for configuration section.
2025-07-26 20:08:55 +05:30
Keerthana
050d5ea3e9 [docs] refactor troubleshooting for docker 2025-07-26 20:03:39 +05:30
Vishnu Mohandas
89078d2adf [docs] update Ente CLI troubleshooting and configuration for email (#6653)
## Description
This PR updates Ente CLI troubleshooting and email configuration along
with object storage configuration in configuration document.

This provides clarity for users who are facing keyring issues or with
bucket configuration.
2025-07-26 17:31:52 +05:30
ashilkn
cdd1353bb2 Delete old gallery files 2025-07-26 17:31:09 +05:30
ashilkn
3680ccddfd Change color 2025-07-26 17:24:18 +05:30
Keerthana
e5c658fcd7 [docs] refine Ente CLI secrets and email configuration for verification code 2025-07-26 16:58:44 +05:30
Prateek Sunal
111b4c40c7 fix: final state fix 2025-07-26 15:58:40 +05:30
Prateek Sunal
277189ca88 fix: things again 2025-07-26 15:46:33 +05:30
Prateek Sunal
2f991272a2 Merge remote-tracking branch 'origin/main' into smart-album-nothingelse 2025-07-26 15:42:04 +05:30
Prateek Sunal
58baa04df3 fix: selection update logic 2025-07-26 15:41:32 +05:30
Prateek Sunal
de481cc689 fix: don't show filters if empty 2025-07-26 15:19:03 +05:30
Prateek Sunal
0bbd32873f fix: only allow save when changed 2025-07-26 15:18:55 +05:30
Aman Raj Singh Mourya
b0c11911eb feat(ente-auth): Add custom icons for CrowdSec, FileCloud, JetBrains … (#6648)
## Description
feat(ente-auth): Add custom icons for CrowdSec, FileCloud, JetBrains
YouTrack, MailCow and NetBird
2025-07-26 15:10:15 +05:30
Keerthana
8a55131025 [docs] add tip for generation of secrets for installation procedures 2025-07-26 15:08:27 +05:30
Prateek Sunal
17632a07e8 fix: sort checked first 2025-07-26 15:07:04 +05:30
Prateek Sunal
701f42fa74 chore: fix adding 2025-07-26 14:57:49 +05:30
ashilkn
88eb935d2f UI/UX improvement 2025-07-26 14:21:29 +05:30
Neeraj
d71f50b79b [CD] Github action for iOS test flight (#6650)
## Description

## Tests
2025-07-26 14:06:40 +05:30
Neeraj Gupta
25eaee57e9 Github action for iOS test flight 2025-07-26 14:04:05 +05:30
Neeraj
cf3b5897d2 [auth] Update apple-app-site-association for auth app (#6649)
## Description
This should fix some of the auto-fill issues for the auth app. 
## Tests
2025-07-26 13:33:42 +05:30
Neeraj Gupta
c00ad310ef Update apple-app-site-association for auth app 2025-07-26 13:29:00 +05:30
Rafael Ieda
13302460bd feat(ente-auth): Add custom icons for CrowdSec, FileCloud, JetBrains YouTrack, MailCow and NetBird 2025-07-26 04:42:08 -03:00
ashilkn
10101c697b Chore 2025-07-26 12:40:19 +05:30
ashilkn
8ad1b94b87 Minor UI fix 2025-07-26 12:39:08 +05:30
ashilkn
783f53bfdc Add option to change gallery layout from home gallery itself 2025-07-26 12:10:24 +05:30
Keerthana
3e5ba6f939 [docs] linting and minor updates for procedures in self-hosting (#6643)
## Description

This PR updates upgrading procedure to ensure lack of merge conflicts.
A minor grammar error in home page is fixed along with it.

It also fixes linting issues and minor grammatical errors.
2025-07-26 11:07:53 +05:30
Keerthana
b3c0681d54 [docs] fix linting for self-hosting 2025-07-26 08:34:34 +05:30
Keerthana
98951e2d2a [docs] substitute upgradation with upgrade 2025-07-26 07:58:20 +05:30
Keerthana
e8edacf924 [docs] change instructions for whitelisting admins 2025-07-26 07:52:30 +05:30
Keerthana
508e83acd4 [docs] update upgradation for manual setup 2025-07-25 22:44:08 +05:30
Keerthana
702b03a288 [docs] revamp documentation for self-hosting (#6642)
## Description

This PR contains major revision for self-hosting documentation. Some
major changes are:

1. Up-to-date information for various installation methods
2. Documentation for configuration with examples
3. Documentation for administrative activities
4. Refactor community guides and include credits
5. Better UX for configuration by templated configuration

The setup includes Compose file that can be used for building from
source without hassle and
includes templated configuration files for ease-of-usage.

## Tests
- [x] I have tested the Docker Compose setup on my system
- [x] I have tested quickstart on my system
2025-07-25 20:21:46 +05:30
Keerthana
2c6f4228d2 [docs] remove redundant line for cluster initialization 2025-07-25 20:21:22 +05:30
Keerthana
95228cc0a6 [docs] remove paid sub template 2025-07-25 20:09:31 +05:30
Prateek Sunal
b8c7079c94 fix: update ML service event handling and improve UI element dimensions 2025-07-25 19:56:28 +05:30
Keerthana
754dd48367 [docs] update quickstart 2025-07-25 19:52:26 +05:30
Keerthana
2b4ed5b43c [docs] fix dead links 2025-07-25 19:22:23 +05:30
Keerthana
7c87f27539 [docs] rename topics for self-hosting 2025-07-25 18:54:27 +05:30
Keerthana
aae1caf37d [docs] revamp administration and document configuration examples 2025-07-25 17:22:52 +05:30
ashilkn
0a6558bf48 Remove 'last year' and 'last month' header titles for groups 2025-07-25 16:38:22 +05:30
ashilkn
7bd22fd5b8 Padding change 2025-07-25 16:14:33 +05:30
ashilkn
32b7081b02 Remove unused file 2025-07-25 16:12:27 +05:30
ashilkn
676c3fd22c Update scroll bar thumb 2025-07-25 16:11:23 +05:30
ashilkn
b305d3c9bf Do not show scrollbar for small galleries 2025-07-25 16:07:19 +05:30
Prateek Sunal
ad9cb3cb8d fix: disable everything ML 2025-07-25 15:29:31 +05:30
Neeraj
b833487c54 [mobile][photos] Fix date parsing (#6637)
## Description
Support more date format.

## Tests
Add more test cases to the test file.
2025-07-25 15:06:06 +05:30
Prateek Sunal
0a19245c76 fix: re-add setState 2025-07-25 14:07:59 +05:30
Prateek Sunal
a60172473b chore: remove color scheme 2025-07-25 14:06:11 +05:30
Prateek Sunal
b66348f277 Merge remote-tracking branch 'origin/main' into smart-album-nothingelse 2025-07-25 13:01:21 +05:30
Prateek Sunal
e4b1adfd1d feat: empty state for collection 2025-07-25 12:58:18 +05:30
Aman Raj Singh Mourya
7325b7a385 [auth] add custom icon for lifemiles (#6632)
## Description

Add custom SVG icon for [LifeMiles](https://www.lifemiles.com/) to
support branding in UI components.
2025-07-25 12:49:53 +05:30
Aman Raj Singh Mourya
0f78e90aa7 [auth] add xvideos custom icon (#6630)
## Description

Add custom SVG icon for xvideos to support branding in UI components.
2025-07-25 12:48:48 +05:30
Aman Raj Singh Mourya
5c6ae7dcea [auth] add custom icon for chaturbate (#6631)
## Description

Add custom SVG icon for chaturbate to support branding in UI components.
2025-07-25 12:47:40 +05:30
Aman Raj Singh Mourya
46bcab26d5 [auth] add accredible custom icon (#6629)
## Description

Add custom SVG icon for [Accredible](https://www.accredible.com/) to
support branding in UI components.
2025-07-25 12:46:28 +05:30
Aman Raj Singh Mourya
4523a4272f [auth] add custom icon for stripchat (#6633)
## Description

Add custom SVG icon for stripchat to support branding in UI components.
2025-07-25 12:45:30 +05:30
Aman Raj Singh Mourya
4d6d3d651a Minor Fix 2025-07-25 12:44:37 +05:30
Aman Raj Singh Mourya
a71663032d [auth] add custom icon for auth digital (#6634)
## Description

Add custom SVG icon for [Auth
digital](https://autenticaciondigital.and.gov.co/) to support branding
in UI components.
2025-07-25 12:42:50 +05:30
Prateek Sunal
495d8449f7 chore: lint fixes 2025-07-25 12:33:15 +05:30
Prateek Sunal
4e7f95e999 fix: basics 2025-07-25 12:33:06 +05:30
Prateek Sunal
5890c35050 fix: remove runAllML for background 2025-07-25 12:09:10 +05:30
Prateek Sunal
bb1719c59f fix: considerate timeout for android 2025-07-25 11:52:19 +05:30
Keerthana
bd58becd38 [docs] omit dead links for bucket CORS 2025-07-25 11:39:12 +05:30
AmanRajSinghMourya
d6fa9d1257 Add tests for partial month-year and ordinal date formats 2025-07-25 11:38:52 +05:30
AmanRajSinghMourya
ee42e71168 Enhance date parsing to support month-year format 2025-07-25 11:38:41 +05:30
Prateek Sunal
0f2e7b40d0 fix: seppaku condition 2025-07-25 11:23:30 +05:30
Prateek Sunal
79b1ecfcd6 Merge remote-tracking branch 'origin/main' into smart-album-nothingelse 2025-07-25 11:13:47 +05:30
Neeraj
ecf56dfd60 [mob][photos] Fix db query & swallow error (#6636)
## Description
This also now runs query only once in a session.
## Tests
2025-07-25 11:07:24 +05:30
Keerthana
75d919e815 [docs] refactor FAQ and installation section 2025-07-25 10:46:21 +05:30
AmanRajSinghMourya
ed7cc5f8c1 Add SVG delete icon and update image editor UI to use it 2025-07-25 09:51:08 +05:30
AmanRajSinghMourya
aede55eb72 Fix: adjust spacing in the image editor app bar 2025-07-25 09:50:45 +05:30
Aman Raj Singh Mourya
50790bf241 Add custom icons for Tableau and X (#6635)
## Description
Add custom icons for [Tableau](https://www.tableau.com/) and
[X](https://x.com/)

## Tests
2025-07-25 09:19:45 +05:30
Eric Nielsen
93b7cb8bea Add custom icons for Tableau and X 2025-07-24 21:55:15 -05:00
Daniel T
8f8eeb82a9 chore: add custom icon for auth digital 2025-07-24 18:16:33 -05:00
Prateek Sunal
62baa623c9 chore: update locks 2025-07-25 02:40:49 +05:30
Prateek Sunal
b71651220b chore: revert 2025-07-25 02:40:39 +05:30
Prateek Sunal
74d930005c fix: some changes 2025-07-25 02:40:16 +05:30
Daniel T
25117f846a chore: add custom icon for stripchat 2025-07-24 15:34:51 -05:00
Daniel T
3ca5303db6 chore: add custom icon for lifemiles 2025-07-24 15:31:04 -05:00
Daniel T
bc3302157c chore: add custom icon for chaturbate 2025-07-24 15:27:05 -05:00
Daniel T
d57daf91a0 chore: add xvideos custom icon 2025-07-24 15:24:34 -05:00
Daniel T
0d162b6075 chore: add accredible custom icon 2025-07-24 15:06:16 -05:00
ashilkn
463602c425 Use different haptics depending on Platform that comes when using the scrollbar 2025-07-24 20:12:17 +05:30
Prateek Sunal
78864b9301 fix: controller dispose issue 2025-07-24 19:53:21 +05:30
ashilkn
ee864ee0a5 Move Gallery setting to top of General section 2025-07-24 19:49:01 +05:30
ashilkn
4c61fd248d Move Gallery settings from General->Advanced to General 2025-07-24 19:45:05 +05:30
ashilkn
446195b8f6 Minor improvement 2025-07-24 19:21:26 +05:30
ashilkn
382cd90ea1 Fix group selection state not persisting on PinnedGroupHeader when scrolling 2025-07-24 19:21:12 +05:30
Prateek Sunal
4f8b2e9fa0 fix: methods and fetching of EntityType 2025-07-24 19:05:54 +05:30
Prateek Sunal
fad05f3a7f Merge remote-tracking branch 'origin/main' into smart-album-nothingelse 2025-07-24 18:15:13 +05:30
Prateek Sunal
99de753c44 chore: fix things 2025-07-24 18:11:54 +05:30
Prateek Sunal
88e0c6cdbf fix: review comments 2025-07-24 17:50:51 +05:30
AmanRajSinghMourya
7a35748e30 Minor fix 2025-07-24 17:33:27 +05:30
AmanRajSinghMourya
21d59fa0a3 Fix: adjust padding and spacing in crop rotate bar UI 2025-07-24 17:30:14 +05:30
AmanRajSinghMourya
b89a9a7307 Fix options for background selections 2025-07-24 17:28:02 +05:30
Neeraj Gupta
79eff8aa5a Fix db query & swallow errow 2025-07-24 17:22:31 +05:30
Prateek Sunal
ba07894d18 fix: add ml sync code 2025-07-24 17:18:53 +05:30
Prateek Sunal
41593eecda feat: icons, design, ownership and what not 2025-07-24 17:10:21 +05:30
Prateek Sunal
b59a23d0ac chore: update translations 2025-07-24 17:08:58 +05:30
Keerthana
d30fb6fc3c [docs] rename migration guides for auth 2025-07-24 16:50:33 +05:30
Neeraj
d06db67e3e [mob][photos] Fix query to remove dup enteries (#6625)
## Description

## Tests
2025-07-24 16:28:59 +05:30
Neeraj Gupta
0906fddfc6 [mob][photos] Fix query to remove dup enteries 2025-07-24 16:24:54 +05:30
Keerthana
637f11ac23 [docs] complete installation procedures 2025-07-24 16:21:13 +05:30
AmanRajSinghMourya
e9da23aff9 Refactor: remove unused safe area configurations from image editor 2025-07-24 16:00:36 +05:30
AmanRajSinghMourya
d466b77f0e Fix: show custom warning dialog 2025-07-24 15:59:34 +05:30
Neeraj
4e0fa8fecf [server] Use IS FALSE to match partial index (#6624)
## Description

## Tests
2025-07-24 15:19:32 +05:30
Neeraj Gupta
f951880ed1 [server] Use IS FALSE to match partial index 2025-07-24 15:16:24 +05:30
Aman Raj Singh Mourya
050d7d3725 [mobile] Advance Date Search (#6537)
## Description
This PR introduces a comprehensive date parsing service that enables
users to search for photos using natural language date queries and
various date formats.

## Tests
### 🔍 Natural Language Date Parsing
- Relative dates: today, tomorrow, yesterday
- Month names: Full (February), abbreviated (Feb), and partial (Febr)
- Ordinal numbers: 25th, 22nd, 3rd, 1st
- Flexible combinations: 25th Feb, February 2025, 25th of February 2025

### 📅 Structured Date Format Support
- ISO format: 2025-02-25, 2025/02/25
- Standard formats: 02/25/2025, 25/02/2025 (with MM/DD vs DD/MM
detection)
- Dot notation: 25.02.2025, 25.02.25
- Compact format: 20250225 
- Short formats: 02/25, 25/02
- Two-digit years: 25/02/25 (with century detection)

### 🎯 Smart Query Types
- Year-only queries: 2025 - find all photos from that year
- Month-year queries: February 2025 - find photos from specific
month/year
- Generic date queries: 25th Feb - find photos from that date across all
years
- Specific date queries: 25/02/2025 - find photos from exact date
2025-07-24 14:34:51 +05:30
AmanRajSinghMourya
0289a5535e Fix pubspec.lock file 2025-07-24 14:20:41 +05:30
AmanRajSinghMourya
8242916172 Merge branch 'main' into advance_image_editor 2025-07-24 14:17:31 +05:30
AmanRajSinghMourya
241dcd64bf Add comprehensive tests for date parsing functionality 2025-07-24 14:13:04 +05:30
AmanRajSinghMourya
0b8f26d0bb Fix dare parsing file 2025-07-24 14:12:46 +05:30
ashilkn
7d9cfd8587 Run flutter pub get after upgrading to flutter 3.27.4 2025-07-24 13:43:05 +05:30
Neeraj
da7edac292 [server][db] Tweak autovacuum threshold for trash table (#6623)
## Description
Attempt to increase refresh rate for autovacuum to ensure that the query
planner use the index.
Based on slow query logs, and analyze command, it looks like the index
is not being used because the table stats are out of date. And the
default auto_vacumm only runs after 10% of rows have changed.

## Tests
Tested on local machine.
```
SELECT unnest(reloptions) AS option
FROM pg_class
WHERE relname = 'trash';
```

Once deployed, will monitor slow query logs and CPU usage.
2025-07-24 13:42:22 +05:30
Neeraj Gupta
daaf73664a [server][db] Tweak autovacuum threshold for trash table 2025-07-24 13:14:09 +05:30
Prateek Sunal
20fed3b65a Merge remote-tracking branch 'origin/main' into smart-album-nothingelse 2025-07-24 12:41:22 +05:30
ashilkn
8330e2902c Auto generated changes to pubspec.lock 2025-07-24 12:38:59 +05:30
ashilkn
8613d0d338 Auto genenrated translation related files changes 2025-07-24 12:38:20 +05:30
ashilkn
a33938a620 Resolve merge conflicts and merge main 2025-07-24 12:36:39 +05:30
Neeraj
17127b8f0e [web][auth] Lint fix (#6622)
## Description

## Tests
2025-07-24 11:50:01 +05:30
Neeraj
b9c8fdb080 [mob][photos] Remove file entry for files that are already queued (#6621)
## Description
Potential fix for duplicate file entry on home page. [Discord
Ref](https://discord.com/channels/948937918347608085/1397039940692607140/1397039940692607140)
## Tests
2025-07-24 11:46:13 +05:30
Neeraj Gupta
98868dd76f [web][auth] Lint fix 2025-07-24 11:40:26 +05:30
Neeraj Gupta
b58aeddeba [mob][photos] Remove file entry for files that are already queued 2025-07-24 11:35:12 +05:30
ashilkn
f8fe2bd7f2 Stop usage of continously animating widget which is offscreen and taken up compute 2025-07-24 11:29:43 +05:30
ashilkn
59888840b5 Fix limitSelectionToOne not working regression 2025-07-24 10:55:34 +05:30
ashilkn
be3568c3ba Remove jump to date UI hook and fix pinned header bug 2025-07-24 10:29:22 +05:30
ashilkn
d606d9c1e0 Fix jump to date bug 2025-07-24 00:28:27 +05:30
ashilkn
bb9dd31520 Fix bug in gallery 2025-07-24 00:21:47 +05:30
ashilkn
a8cc1ab4f0 Resolve merge conflicts for cherry-picking jump to date wip 2025-07-24 00:11:30 +05:30
AmanRajSinghMourya
c87065b1c2 Merge branch 'main' into advance_image_editor 2025-07-24 00:00:54 +05:30
ashilkn
88aa5fbfe1 Fix error 2025-07-23 23:55:39 +05:30
AmanRajSinghMourya
b8bb3d5730 Add google_fonts dependency and include image-editor assets 2025-07-23 23:48:07 +05:30
AmanRajSinghMourya
cf75528f5e Add new image editor functionality to detail page 2025-07-23 23:47:49 +05:30
AmanRajSinghMourya
7a6fb1ba31 Implemented new image editor 2025-07-23 23:47:03 +05:30
AmanRajSinghMourya
774292bdea Custom widget for editor & constants 2025-07-23 23:45:35 +05:30
AmanRajSinghMourya
4dd7305c46 New app bar for editor 2025-07-23 23:44:36 +05:30
AmanRajSinghMourya
3d952a2ecc Add new color for image editor 2025-07-23 23:42:58 +05:30
AmanRajSinghMourya
9386e3796c Add svg assets of image editor 2025-07-23 23:42:45 +05:30
ashilkn
77d7d358f3 Minor refactoring and removing unnecessary work on Gallery widget 2025-07-23 20:50:13 +05:30
Laurens Priem
e9ef9d55a4 [mob][photos] Face thumbnail lower severity logging (#6617)
## Description

## Tests
2025-07-23 13:50:19 +02:00
laurenspriem
968f04c04a Lower severity logging 2025-07-23 13:45:37 +02:00
Laurens Priem
59cb3f091e [mob][photos] Face thumbnail fix + smooth scroll (#6616)
## Description

- Fix internal issue with face thumbnail generation
- Make all people page scroll more smooth 

## Tests

Tested on internal build.
2025-07-23 13:40:25 +02:00
Neeraj
630f5a2706 [mob/photos] [fix] Handle duplicate fileID during addOrCopy (#6614)
## Description
If others file contains two files with same hash, we are returning same
FileID twice for add or copy operation. This change fixes that
behaviour.

## Tests
2025-07-23 16:53:13 +05:30
Neeraj Gupta
4a743be322 [mob]Handle duplicate fileID during addOrCopy 2025-07-23 16:46:37 +05:30
Neeraj
c2db1f7da9 [web] Update download link for auth apps (#6615)
## Description

## Tests
2025-07-23 16:45:35 +05:30
Neeraj
843e956a8a [web] Update download link for auth apps 2025-07-23 16:45:04 +05:30
laurenspriem
c2d1c66888 keep alive face thumbnail when scrolling fast 2025-07-23 12:45:09 +02:00
Aman Raj Singh Mourya
e2aabfb95a [auth] add custom icon for Startmail (#6611)
Adding Custom Icon for Startmail.com

## Description
Add custom SVG icon for [Startmail](https://www.startmail.com/) to
support branding in UI components.
## Tests
2025-07-23 16:05:49 +05:30
ashilkn
cd46db3d30 Show 'last year', 'last week' and 'last month' headers in gallery when appropriate 2025-07-23 16:05:03 +05:30
ashilkn
4f00296933 Fix build error 2025-07-23 15:55:09 +05:30
ashilkn
7ff2c8f424 Make group by feature functional on gallery 2025-07-23 15:54:56 +05:30
Neeraj
dbf88c7bed [mob] Skip dup fileID from src collection during copy (#6612)
## Description

## Tests
2025-07-23 15:46:16 +05:30
Neeraj Gupta
a06a5be983 [mob] Skip dup fileID from src collection during copy 2025-07-23 15:45:20 +05:30
Prateek Sunal
a3340d684f chore: naming 2025-07-23 15:43:40 +05:30
Prateek Sunal
cfbacc3b45 fix: type from string 2025-07-23 15:42:48 +05:30
Prateek Sunal
f2791abd7c fix: zip it 2025-07-23 15:41:24 +05:30
Prateek Sunal
3387361489 fix: use smart-album entityType and remove merge logic + better id 2025-07-23 15:40:49 +05:30
max977
3bba125f1c custom-icon-startmail
Adding Custom Icon for Startmail
2025-07-23 11:51:25 +02:00
Prateek Sunal
e9c084bd54 fix: remove unnecessary db read 2025-07-23 15:19:42 +05:30
Prateek Sunal
8d848050d1 chore: remove unused 2025-07-23 15:18:34 +05:30
Prateek Sunal
3756a56776 chore: nit fixes 2025-07-23 15:17:10 +05:30
laurenspriem
1718e5d1d6 More careful logging 2025-07-23 11:33:30 +02:00
Prateek Sunal
e4a0ed7ec1 fix: no delay 2025-07-23 14:51:11 +05:30
Prateek Sunal
b96e1a2536 Squashed commit of the following:
commit 2c15c0578e
Merge: 5a31d81d28 78055a25d0
Author: Prateek Sunal <prtksunal@gmail.com>
Date:   Wed Jul 23 14:40:29 2025 +0530

    Merge branch 'isolated-ffmpeg' into smart-album

commit 5a31d81d28
Author: Prateek Sunal <prtksunal@gmail.com>
Date:   Tue Jul 22 15:08:50 2025 +0530

    chore: update locals

commit 9f926383a5
Author: Prateek Sunal <prtksunal@gmail.com>
Date:   Tue Jul 22 15:05:20 2025 +0530

    chore: use locals

commit ae1e435d77
Merge: 3addc83c14 8e4e06af73
Author: Prateek Sunal <prtksunal@gmail.com>
Date:   Mon Jul 21 18:55:26 2025 +0530

    Merge remote-tracking branch 'origin/main' into smart-album

commit 3addc83c14
Author: Prateek Sunal <prtksunal@gmail.com>
Date:   Mon Jul 21 18:46:16 2025 +0530

    fix: don't use isolate for now

commit 5b47f69d93
Author: Prateek Sunal <prtksunal@gmail.com>
Date:   Mon Jul 21 18:46:00 2025 +0530

    fix: save remote_id and updatedAt as well

commit 1c02064211
Author: Prateek Sunal <prtksunal@gmail.com>
Date:   Mon Jul 21 18:45:40 2025 +0530

    fix: dialog time

commit ba01e2d181
Author: Prateek Sunal <prtksunal@gmail.com>
Date:   Mon Jul 21 17:30:40 2025 +0530

    chore: update locks

commit fdfc155add
Author: Prateek Sunal <prtksunal@gmail.com>
Date:   Mon Jul 21 17:28:38 2025 +0530

    chore: update locks

commit 3c5a29b0ab
Author: Prateek Sunal <prtksunal@gmail.com>
Date:   Mon Jul 21 17:28:32 2025 +0530

    fix: popup menu item & smart people selection

commit fa65a993c0
Merge: 418d20b336 4ff77067dc
Author: Prateek Sunal <prtksunal@gmail.com>
Date:   Mon Jul 21 15:40:27 2025 +0530

    Merge branch 'flutter-upgrade' into smart-album

commit 418d20b336
Merge: 4d9b6ecbc6 8afc4bb0cb
Author: Prateek Sunal <prtksunal@gmail.com>
Date:   Mon Jul 21 00:23:36 2025 +0530

    Merge branch 'isolated-ffmpeg' into smart-album

commit 4d9b6ecbc6
Author: Prateek Sunal <prtksunal@gmail.com>
Date:   Fri Jul 18 17:10:40 2025 +0530

    fix: use existing progress dialog

commit d7f019c4f5
Author: Prateek Sunal <prtksunal@gmail.com>
Date:   Fri Jul 18 16:35:23 2025 +0530

    fix: better decode of SmartAlbumConfig

commit 4f1db7f001
Author: Prateek Sunal <prtksunal@gmail.com>
Date:   Wed Jul 16 18:35:58 2025 +0530

    fix: track if bg properly

commit ab96fdb379
Author: Prateek Sunal <prtksunal@gmail.com>
Date:   Wed Jul 16 18:22:35 2025 +0530

    fix: don't fetch files based on collection id

commit 90650995f7
Author: Prateek Sunal <prtksunal@gmail.com>
Date:   Wed Jul 16 18:21:38 2025 +0530

    fix: use correct method to remove files from collection

commit f83cd57b6f
Author: Prateek Sunal <prtksunal@gmail.com>
Date:   Wed Jul 16 18:17:08 2025 +0530

    fix: try to add remove people dialog popup

commit f0273def2f
Author: Prateek Sunal <prtksunal@gmail.com>
Date:   Wed Jul 16 17:21:36 2025 +0530

    fix: handle duplicate case

commit d4e2317816
Author: Prateek Sunal <prtksunal@gmail.com>
Date:   Wed Jul 16 16:48:03 2025 +0530

    fix: update merge function to updatedAt

commit 2040044994
Author: Prateek Sunal <prtksunal@gmail.com>
Date:   Wed Jul 16 16:24:42 2025 +0530

    chore: add note

commit a3ee242faa
Author: Prateek Sunal <prtksunal@gmail.com>
Date:   Wed Jul 16 16:13:06 2025 +0530

    fix: pass remote id

commit 78f2bb0d7d
Author: Prateek Sunal <prtksunal@gmail.com>
Date:   Wed Jul 16 16:00:52 2025 +0530

    fix: add option in overflow & other fixes

commit b723b7daf0
Author: Prateek Sunal <prtksunal@gmail.com>
Date:   Wed Jul 16 12:47:13 2025 +0530

    fix: revamp and use EntityService

commit e2e0436830
Author: Prateek Sunal <prtksunal@gmail.com>
Date:   Tue Jul 15 19:57:41 2025 +0530

    fix: issues

commit dea67250c8
Author: Prateek Sunal <prtksunal@gmail.com>
Date:   Tue Jul 15 19:26:27 2025 +0530

    fix: selection bug + initial empty files bug

commit dc2246aa47
Author: Prateek Sunal <prtksunal@gmail.com>
Date:   Tue Jul 15 16:55:54 2025 +0530

    chore: renaming things

commit adb1c96ce6
Author: Prateek Sunal <prtksunal@gmail.com>
Date:   Tue Jul 15 16:21:42 2025 +0530

    fix: remove shared preferences instance call

commit c413111768
Author: Prateek Sunal <prtksunal@gmail.com>
Date:   Tue Jul 15 16:20:31 2025 +0530

    fix: don't show close button in people selection page

commit 6d6cd91b22
Author: Prateek Sunal <prtksunal@gmail.com>
Date:   Tue Jul 15 16:19:11 2025 +0530

    fix: optimize things (1)

commit 3708a347f5
Author: Prateek Sunal <prtksunal@gmail.com>
Date:   Mon Jul 14 18:05:58 2025 +0530

    feat: init smart albums concept
2025-07-23 14:45:09 +05:30
laurenspriem
b16c9af36b Logging in super isolate when starting operation 2025-07-23 10:47:01 +02:00
laurenspriem
1cc3499019 face thumbnail fix pragma entry point 2025-07-23 10:34:19 +02:00
laurenspriem
4260c3c769 Remove redundant code 2025-07-23 10:33:31 +02:00
laurenspriem
209291e09a Rename isolate components for clarity 2025-07-23 10:32:58 +02:00
ashilkn
c34d214313 Stop using custom object and use simple map for message passing compatibility between isolates 2025-07-23 12:13:00 +05:30
ashilkn
b209779f59 Use records for making data compatible for message passing between isolates 2025-07-23 12:04:21 +05:30
Aman Raj Singh Mourya
dd08ca82fe add unitedhealthgroup icona and added more altnames to previously added colorado icon (#6607)
## Description

## Tests
2025-07-23 00:01:21 +05:30
slacker-treat-deferred-unbuckled-jiffy
8d71a6bb58 Update custom-icons.json 2025-07-22 10:12:45 -06:00
slacker-treat-deferred-unbuckled-jiffy
c583fa4742 Add files via upload 2025-07-22 10:10:35 -06:00
Aman Raj Singh Mourya
ec0d3c4266 [auth] Add numerai and nasdaq icons (#6586)
## Description

## Tests
2025-07-22 14:09:05 +05:30
Murad Khalil
55cc92e57d Update custom-icons.json
fixed nasdaq entry
2025-07-22 10:06:25 +02:00
Murad Khalil
3f71d491e9 Merge branch 'ente-io:main' into main 2025-07-22 10:02:14 +02:00
Aman Raj Singh Mourya
304daf0b09 Minor Fix 2025-07-22 13:24:12 +05:30
Aman Raj Singh Mourya
e1281657ba Add icons for availity, bestbuy, colorado, emeritihealth, lincolnfinancial (#6601)
## Description

## Tests
2025-07-22 13:16:49 +05:30
Aman Raj Singh Mourya
595871f571 feat(ente-auth): Add custom icon for Pangolin (#6604)
## Description
This PR adds the Pangolin icon for auth
2025-07-22 13:14:22 +05:30
Manav Rathi
d31127c2e3 [docs] Simplify (#6606) 2025-07-22 12:03:22 +05:30
ashilkn
51891996a2 Handle edge case 2025-07-22 11:18:15 +05:30
ashilkn
5fd861b60a Remove uneccessary global keys and widgets 2025-07-22 11:04:20 +05:30
Manav Rathi
09d7b82c08 Simplify 2025-07-22 10:56:01 +05:30
Rafael Ieda
88c9f4943b feat(ente-auth): Add custom icon for Pangolin 2025-07-21 22:50:50 -03:00
slacker-treat-deferred-unbuckled-jiffy
cacc7dc85a Add files via upload 2025-07-21 13:55:34 -06:00
slacker-treat-deferred-unbuckled-jiffy
24a30709cd Update custom-icons.json 2025-07-21 13:55:12 -06:00
ashilkn
caa092f6c5 Increase gallery length limit threshold above which scroll bar divisions will be made visible 2025-07-21 17:27:12 +05:30
ashilkn
bbcb6dc702 Disable vertical padding on scrollbars in gallery that don't need vertical padding 2025-07-21 16:57:03 +05:30
ashilkn
662f4a3fb7 chore 2025-07-21 16:48:20 +05:30
ashilkn
b053b0082f Change bottom padding of scrollbar if file selection sheet is up/down 2025-07-21 16:43:22 +05:30
Neeraj
8e4e06af73 [server][file data] Use primary bucket as preferred bucket to read (#6596)
## Description

## Tests
2025-07-21 15:59:38 +05:30
Neeraj
439b4fdeec [server] Add Smart album type (#6597)
## Description
To avoid duplicate config entry for same album. client is expected to
pass id while creating smart album config in following format
`sa_userid_collection_id`.

Open to changing the name/prefix values for this new entity type.

## Tests
2025-07-21 15:57:47 +05:30
Neeraj Gupta
32efdf464e Use client provided entity id for smart album config 2025-07-21 15:14:24 +05:30
ashilkn
3578df0ac0 Make gallery configurable to not show PinnedGroupHeader and use it where necessary 2025-07-21 15:08:56 +05:30
Neeraj Gupta
f76fa34e5b Add SmartAlbum entity type 2025-07-21 15:07:16 +05:30
Neeraj Gupta
868c45baa4 fileData: Use primary bucket as preferred bucket to read 2025-07-21 15:02:27 +05:30
Ashil
fa1838c82e [mob][photos] Fix duplicate people files (#6593)
## Description

Prevent showing duplicate files in people page due to a face getting
incorrectly tagged when a correct face is already there.
2025-07-21 14:27:14 +05:30
ashilkn
6b5db8d85b Dedupe gallery on pick person avatar screen 2025-07-21 13:53:21 +05:30
Neeraj
9c071c0dab [auth] Fix appimage tool path in github workflow (#6594)
## Description

## Tests
2025-07-21 13:43:48 +05:30
Neeraj Gupta
73b87950de Update version 2025-07-21 13:42:23 +05:30
Neeraj Gupta
ee0c7472a1 [auth][build] Fix appimage tool path 2025-07-21 13:41:24 +05:30
laurenspriem
ba56908d2d Fix duplicate people files 2025-07-21 10:05:11 +02:00
Neeraj
b5d725e139 [auth] Bump version (#6592)
## Description

## Tests
2025-07-21 11:48:37 +05:30
Neeraj Gupta
5750d72c5a [auth] Bump version 2025-07-21 11:48:10 +05:30
Neeraj
00a430927f [mobile/photos] New translations (#6590)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-app)
2025-07-21 10:55:11 +05:30
Neeraj
ab57a1f8fe [auth] New translations (#6591)
New translations from
[Crowdin](https://crowdin.com/project/ente-authenticator-app)
2025-07-21 10:46:39 +05:30
Manav Rathi
cfdeb475ef [web] New translations (#6589)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2025-07-21 08:22:34 +05:30
Crowdin Bot
1f0f240f97 New Crowdin translations by GitHub Action 2025-07-21 01:18:10 +00:00
Crowdin Bot
2ff5058a3e New Crowdin translations by GitHub Action 2025-07-21 01:05:20 +00:00
Crowdin Bot
641dfdd11e New Crowdin translations by GitHub Action 2025-07-21 00:45:09 +00:00
Murad Khalil
054ad8b480 add numerai and nasdaq icons 2025-07-20 23:15:27 +02:00
Aman Raj Singh Mourya
b3827dd812 [auth] Add MangaDex icon (#6571)
This PR adds the MangaDex icon for auth
2025-07-19 11:51:52 +05:30
Sven
087ba629e0 add MangaDex icon and metadata to custom icons 2025-07-18 22:33:24 +02:00
ashilkn
50ea38d471 Make hero animation work when opening a gallery 2025-07-18 19:06:03 +05:30
Manav Rathi
e0c647f583 [web] Locker web scaffold (#6569) 2025-07-18 18:54:02 +05:30
Manav Rathi
e08f97e543 Setup publish 2025-07-18 18:36:30 +05:30
ashilkn
43c06d93c7 Rename final scrollbar 2025-07-18 18:09:07 +05:30
ashilkn
ecad643ea6 Remove old scrollbar 2025-07-18 18:08:19 +05:30
ashilkn
9241755d44 Minor change 2025-07-18 18:07:19 +05:30
Manav Rathi
efa82b7fb7 Scaffold 2025-07-18 18:05:28 +05:30
ashilkn
3ff0356dd2 Fix flutter error 2025-07-18 17:57:32 +05:30
ashilkn
3fdb906834 Support limitSelectionToOne and showSelect all on new gallery 2025-07-18 17:40:36 +05:30
Manav Rathi
7c325065a5 [web] File list refactoring and cleanup - Complete (#6568) 2025-07-18 16:44:29 +05:30
Manav Rathi
4a346c47d1 Complete 2025-07-18 16:34:11 +05:30
Neeraj
dee38e3ed8 [mobile/photos] New translations (#6532)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-app)
2025-07-18 16:18:29 +05:30
Crowdin Bot
69237fa659 New Crowdin translations by GitHub Action 2025-07-18 10:41:50 +00:00
ashilkn
f32b98c1bc Clean up 2025-07-18 16:05:49 +05:30
Neeraj
fb8a22d370 [auth] New translations (#6533)
New translations from
[Crowdin](https://crowdin.com/project/ente-authenticator-app)
2025-07-18 16:00:57 +05:30
ashilkn
764921ec69 Make it possible to pass different vertical paddings for scrollbar 2025-07-18 15:56:41 +05:30
Manav Rathi
8a177bbe2c Cleanup 2025-07-18 15:44:35 +05:30
ashilkn
06397a4992 Add empty state for gallery 2025-07-18 15:38:24 +05:30
Manav Rathi
943a524ba9 Rename 2025-07-18 15:35:16 +05:30
ashilkn
f232fc401d Add support for disableScroll in galler 2025-07-18 14:45:11 +05:30
ashilkn
a10dcd01b0 Add support for GroupType.none 2025-07-18 14:36:42 +05:30
AmanRajSinghMourya
552003600a Add pro_image_editor package 2025-07-18 13:47:58 +05:30
Manav Rathi
63746523e2 [web] File list refactoring and cleanup - Part 3 (#6563)
Mostly done, only minor touchups remain
2025-07-18 08:22:00 +05:30
Manav Rathi
b5868468bd Cleanup 2025-07-18 08:12:33 +05:30
Manav Rathi
aa48543a98 Adapt existing code 2025-07-18 07:55:37 +05:30
Manav Rathi
164da10772 Update merge logic for new schema - wip 2025-07-18 06:52:25 +05:30
Manav Rathi
291368f7ba merge wip rework take 1 2025-07-17 21:33:14 +05:30
Manav Rathi
b6d797681d wip 2 2025-07-17 20:49:15 +05:30
Manav Rathi
d67dc4b76f grouping take 2 - wip 2025-07-17 20:27:18 +05:30
ashilkn
9b289d7845 Minor UI change 2025-07-17 16:37:38 +05:30
ashilkn
21a843fb3b Remove stale code 2025-07-17 16:34:29 +05:30
ashilkn
401c8e160a Custom ScrollPhysics to avoid extreme overscroll when using scrollbar 2025-07-17 14:43:53 +05:30
ashilkn
c2374ed14e Double tap home button to animate to start of home gallery 2025-07-17 14:43:15 +05:30
ashilkn
dc6221c977 Simplify figuring out where to pin PinnedGroupHeader and change it when height of gallery's header changes 2025-07-17 14:01:41 +05:30
Neeraj
d78fa3f27d [auth] add custom icon for temu (#6548)
## Description

Add custom SVG icon for [Temu](https://www.temu.com/) to support
branding in UI components.
2025-07-17 11:40:24 +05:30
Laurens Priem
e30b8024e2 [mob][photos] Set high minimum for compression (#6549)
## Description

Setting a high minimum value for the compression settings when decoding
an image for ML indexing that doesn't have a decodable format (heic on
Android). This ensures the image is merely formatted to jpeg and not
actually decreasing in quality.
2025-07-17 08:05:55 +02:00
Manav Rathi
c95d3b8c00 Fgroups take 1 2025-07-17 11:17:54 +05:30
Manav Rathi
ec532ad2ac New pathway 2025-07-17 10:37:02 +05:30
Manav Rathi
479f2188b6 Rename 2025-07-17 08:39:52 +05:30
Manav Rathi
c7d96482cb [web] File list cleanup and refactoring - Part 2 (#6559) 2025-07-17 07:14:34 +05:30
Manav Rathi
67e1a64e7f Trace deps 2025-07-17 07:00:04 +05:30
Manav Rathi
49a8016786 Scope 2025-07-17 05:48:08 +05:30
Manav Rathi
39558a27c9 Inline 2025-07-16 21:26:20 +05:30
laurenspriem
f7d4273c1d Extract strings 2025-07-16 17:31:13 +02:00
laurenspriem
3369e14f69 Surface when file analysis failed 2025-07-16 17:17:01 +02:00
Manav Rathi
9b28996d3f [web] File list refactoring and cleanup (#6553) 2025-07-16 20:42:28 +05:30
Manav Rathi
fd98243394 Update 2025-07-16 20:28:59 +05:30
laurenspriem
9cd6784837 Locally fail indexing on different exif orientation 2025-07-16 16:58:32 +02:00
Manav Rathi
127c480855 Fix overflow 2025-07-16 18:53:57 +05:30
Manav Rathi
d1717ef308 Unwrap 2025-07-16 17:55:14 +05:30
Manav Rathi
08a43f5d64 Rework 2025-07-16 17:52:48 +05:30
laurenspriem
bcb389c56d Log higher image resolutions and store empty result 2025-07-16 13:42:32 +02:00
laurenspriem
689edebec4 Increase limit to 20000 2025-07-16 13:29:53 +02:00
ashilkn
5b4d4b86f7 Add docs 2025-07-16 16:48:40 +05:30
ashilkn
6423901165 Remove shadow of PeopleAppBar 2025-07-16 15:37:50 +05:30
ashilkn
4672b44d48 Do not show shadow on PinnedGroupHeader if scroll offset of gallery is zero. This is to give the illusion that the header is only pinned when gallery is scrolled from 0 offset 2025-07-16 15:09:30 +05:30
Manav Rathi
a97658b67d Rename 2025-07-16 14:35:15 +05:30
ashilkn
576f85055e Add top padding for gallery scrollbar 2025-07-16 14:33:46 +05:30
ashilkn
8a4ef26a6e Update animation duration 2025-07-16 14:14:45 +05:30
Manav Rathi
b6dafd5a17 Update 2025-07-16 14:00:31 +05:30
Manav Rathi
a6e78ab732 Use layoutParams 2025-07-16 13:44:26 +05:30
Manav Rathi
e3ab4eda15 lp 2025-07-16 13:19:54 +05:30
Manav Rathi
de8fa9f9e9 [web] Fix date color in the file viewer (#6552)
Also some other refactoring that I'd already started of the file list
(when I noticed this regression).
2025-07-16 12:55:07 +05:30
ashilkn
8541657ee0 Enlarge PinnedGroupHeader when using scrollbar for better UX 2025-07-16 12:39:11 +05:30
Manav Rathi
14bc47c055 Fix regression in date color 2025-07-16 12:35:07 +05:30
Manav Rathi
99a8f5152a Start using the existing function 2025-07-16 12:09:21 +05:30
ashilkn
7340e5a100 Fix scroll bar divisions not appearing 2025-07-16 11:14:29 +05:30
ashilkn
30f8162ee4 Fix logic 2025-07-16 10:57:16 +05:30
Manav Rathi
b68fda70ef Start deduping 2025-07-16 10:49:22 +05:30
ashilkn
ef08c4bd96 Remove shadow under GalleryAppBar to fix UI issue when group header is pinned to top 2025-07-16 10:47:25 +05:30
ashilkn
776c3158a7 Do not show scrollbar divisions if gallery isn't long enough 2025-07-16 10:34:30 +05:30
Neeraj
987c02fdac [server] Make use_path_style_urls and disable_ssl configurable per bucket (#6550)
## Description

I wanted to use a mix of local minio and remote buckets and therefore
needed both the `use_path_style_urls` and `disable_ssl` settings to be
configurable per bucket. These changes are backwards compatible with the
"global" settings `use_path_style_urls` and `areLocalBuckets`.

## Tests

I'm running this code in my own self hosted museum instance.
2025-07-16 10:32:33 +05:30
Florian Lippert
0f8ea1e814 Make use_path_style_urls and disable_ssl configurable per bucket 2025-07-15 20:23:33 +00:00
laurenspriem
27af2c3bbc Set high minimum for compression 2025-07-15 22:10:32 +02:00
Daniel T
96c2270062 chore: add custom icon for temu 2025-07-15 13:27:31 -05:00
ashilkn
56d0acc501 Add corrections to where the scroll dividers are placed 2025-07-15 19:20:39 +05:30
ashilkn
e3a5cd060d Update haptic feedback type 2025-07-15 19:01:50 +05:30
Laurens Priem
781583c1db [mob][photos] Fix incorrect merge (#6546)
## Description

Fixes missing file issue from incorrect PR
2025-07-15 14:23:07 +02:00
laurenspriem
06d3f679f1 Complete move 2025-07-15 14:02:17 +02:00
Laurens Priem
a809ab58b3 [mob][photos] Remove moments (#6541)
## Description

- Removes the "Moments" section for all users
- Puts memories debugging section behind internal and local setting

## Tests

Tested in debug mode on my pixel phone.
2025-07-15 14:00:16 +02:00
laurenspriem
f06314fb13 Move file 2025-07-15 14:00:04 +02:00
laurenspriem
9696409b01 Remove memories debug from sections types 2025-07-15 13:16:56 +02:00
ashilkn
e4f10d0e69 Add haptic feedback when going through sections when using the scrollbar 2025-07-15 15:53:37 +05:30
ashilkn
03c116c2ba Avoid redundant setState call 2025-07-15 15:52:42 +05:30
laurenspriem
b8d69e79f0 Add memories debug to debug section 2025-07-15 11:51:23 +02:00
Neeraj
7f3311ad36 [mob][doc] Fix broken link (#6527)
## Description
This PR fixes the broken link
[issue](https://github.com/ente-io/ente/issues/6526) in the
documentation related to
[architecture](https://github.com/ente-io/ente/blob/main/mobile/apps/auth/README.md#-architecture)
present in the README.md.

## Tests
2025-07-15 13:19:41 +05:30
ashilkn
c318162feb Add solid color for background of PinnedGroupHeader 2025-07-15 12:48:07 +05:30
ashilkn
60485e98c2 UI for elements depicting scroll bar divisions 2025-07-15 12:38:08 +05:30
Keerthana
76e30fe959 [docs] refine requirements 2025-07-15 12:22:49 +05:30
ashilkn
2bee2fe71c Remove first scrollbar division since it doesn't add value in terms of UX 2025-07-15 12:11:42 +05:30
ashilkn
1b1e82ebbd Add bottom padding to new gallery scrollbar 2025-07-15 12:07:38 +05:30
ashilkn
d319b244ee Filter out scroll position divisions that are too close to each other 2025-07-15 11:45:28 +05:30
Neeraj
18dba3f629 [mob] Improve error handling on subscription page (#6539)
## Description

## Tests
2025-07-15 09:50:18 +05:30
Neeraj
22e85b0364 [mob][ios] Remove automatic limited access alert on app start (#6538)
## Description

## Tests
Tested on simulator
2025-07-15 09:50:00 +05:30
Laurens Priem
26fbe84d9c [mob][photos] Birthday redirect fix (#6514)
## Description

- Fix bug where clicking on birthday notifications opens the person page
(as fallback) and not the person memory (as intended)
- Minor UI fixes 

## Tests

Tested in debug mode on my pixel phone.
2025-07-14 22:32:24 +02:00
ashilkn
880594398d Make the scrollbar divisions meant for years actually show years 2025-07-14 18:27:52 +05:30
laurenspriem
82cc0559b4 Remove old moments calculation logic 2025-07-14 14:53:16 +02:00
laurenspriem
1c780c4b02 Rename 2025-07-14 14:52:58 +02:00
laurenspriem
86f14f985b Option to debug memories 2025-07-14 14:46:18 +02:00
laurenspriem
fa6694e2f9 Remove moments and disable memories debug by default 2025-07-14 14:41:33 +02:00
laurenspriem
35f0251064 Remove old todos 2025-07-14 13:19:58 +02:00
Neeraj Gupta
aa60c3c71a Log error during sub fetch 2025-07-14 16:35:33 +05:30
Neeraj Gupta
d2c1437210 Make dialog dismissible 2025-07-14 16:33:02 +05:30
Neeraj Gupta
e31768afe9 [mob][ios] Remove automatic limit access alert on app start 2025-07-14 16:12:46 +05:30
ashilkn
a475cc9933 Create a new scrollbar tha works like a normal scrollbar but intended to also show scroll positions of different years. UI works, need to next show the actual values at positions 2025-07-14 15:18:28 +05:30
Keerthana
b260648192 [docs] linting and complete get started 2025-07-14 15:04:18 +05:30
AmanRajSinghMourya
be6f596b79 Minor improvements around date search parsing 2025-07-14 15:02:58 +05:30
Manav Rathi
90c1638e7d [web] New translations (#6531)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2025-07-14 14:54:00 +05:30
Crowdin Bot
8a4b038e86 New Crowdin translations by GitHub Action 2025-07-14 09:22:37 +00:00
Neeraj
a3dbaf7015 [server] Handle expiry buffer in user_detail computation (#6535)
## Description

## Tests
2025-07-14 11:59:27 +05:30
Neeraj Gupta
3b7d13aec0 [server] Handle expiry buffer in user_detail computation 2025-07-14 11:31:18 +05:30
Keerthana
034eb69473 [docs] simplify S3 configuration 2025-07-14 09:52:25 +05:30
Keerthana
f06403adc7 [docs] refactor standalone and from source docs 2025-07-14 09:52:25 +05:30
Keerthana
b580d6ce35 [docs] refactor get started 2025-07-14 09:52:25 +05:30
Keerthana
caf664f11d [docs] restructure administration section 2025-07-14 09:52:25 +05:30
Keerthana
2d90c14890 [docs] restructure installation and guides section 2025-07-14 09:52:25 +05:30
Keerthana
4d078c094c [docs] restructure self-hosting navigation 2025-07-14 09:52:25 +05:30
Keerthana
cbfcbe8da2 [docs] reduce verbose description in quickstart 2025-07-14 09:52:25 +05:30
Keerthana
d0f637b154 [server][script] enhance reading choice and refactor choice 2025-07-14 09:52:25 +05:30
Crowdin Bot
d2228ccd58 New Crowdin translations by GitHub Action 2025-07-14 01:18:02 +00:00
sanojsubran
9233149e25 fix: Updated the broken link in the README.md 2025-07-13 13:51:45 +02:00
ashilkn
4d8d0d1b07 Make selection work on the new group header widget 2025-07-12 17:20:24 +05:30
ashilkn
59b07f3507 Use bouncing scroll physics for gallery 2025-07-12 15:32:44 +05:30
ashilkn
38e5135878 Fix bug in PinnedGroupHeader when gallery is reloaded or setState is called in gallery 2025-07-12 15:31:57 +05:30
ashilkn
2426b7405c Improve performance of deciding what title to show on the PinnedGroupHeader based on group 2025-07-12 14:37:08 +05:30
Aman Raj Singh Mourya
0e66632337 Custom Co-Wheels icon (#6517)
I would like to add a custom auth icon for co-wheels.org.uk.
<img
src="https://github.com/user-attachments/assets/e569f3c2-23b1-42fc-a124-fae73a618bdd"
width="300" alt="cowheels">

Also some minor cleanup i noticed while preparing this pr.
2025-07-12 13:49:37 +05:30
Ashil
b092d2e250 [mob][photos] Fix free up space failing when trying to delete lot of files at one shot (#6518)
## Description

If the number of files to be deleted exceeds 20,000, the deletion will
be performed in batches, with a maximum of 20,000 files per batch. If a
batch of 20,000 files fails, it will retry with 10,000 files (half the
previous batch size). If failures continue, the batch size will keep
reducing until it is over 2,000 files.

## Tests
Tested and works as expected.
2025-07-12 11:56:04 +05:30
ashilkn
e259b06d63 Minor correction in execption 2025-07-12 11:32:44 +05:30
ashilkn
2920f77c75 If too many local files are attempted to be deleted using free up space feature, reduce the batch size and try deleting 2025-07-12 11:21:35 +05:30
TKO-GLOBAL
884e805f46 Add custom icon for Co-Wheels
Add custom authenticator icon for co-wheels.org.uk
2025-07-12 02:43:51 +01:00
laurenspriem
848771dcaa Merge branch 'minor_fix_suggestion' into birthday_redirect_fix 2025-07-11 14:54:11 +02:00
laurenspriem
97b3a3cb57 Fix redirect to person memory 2025-07-11 14:50:52 +02:00
AmanRajSinghMourya
57ec62e45e Implement advance date search service 2025-07-11 17:00:23 +05:30
Keerthana
8f55749607 [server] nudge paid users to use family (#6509)
## Description

Nudge paid users who are not using family and add family members after
30 days. They are only notified once about this as this is logged in
`notification_history`.
2025-07-11 15:13:20 +05:30
Prateek Sunal
384a2f2c0a [mob][photos] haptic fixes (#6512)
## Description

- [x] Never use strong haptic unless necessary

## Tests
2025-07-11 15:12:55 +05:30
Prateek Sunal
03c903fc5b fix: never do strong vibrate unless necessary 2025-07-11 14:38:19 +05:30
Prateek Sunal
d7d5e85618 [mob][photos] hotfixes (#6511)
## Description

- [x] Fix animations when turned off
- [x] Fix seekbar issue
- [x] Rename "People Widget" to "People" for consistency

## Tests
2025-07-11 14:29:03 +05:30
Prateek Sunal
f04b62e540 fix: issue 2025-07-11 13:45:18 +05:30
Prateek Sunal
9db925c3a6 fix: no preserve 2025-07-11 13:40:35 +05:30
Prateek Sunal
aeac72e35c fix: duration 2025-07-11 13:37:43 +05:30
Prateek Sunal
85bea417a1 fix: preserve animations 2025-07-11 13:34:23 +05:30
Prateek Sunal
cb282aa56e fix: typo 2025-07-11 13:33:03 +05:30
Neeraj
834234143a [mob] Bump version (#6510)
## Description

## Tests
2025-07-11 12:33:36 +05:30
Neeraj Gupta
4fc8f32df8 Bump version 2025-07-11 12:31:41 +05:30
Neeraj Gupta
25c962c001 Fix bad translation 2025-07-11 12:31:06 +05:30
Keerthana
9937b9f096 [server] nudge paid users to use family 2025-07-11 12:15:20 +05:30
Neeraj
407a8bd257 [mobile] New translations (#6338)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-app)
2025-07-11 12:02:35 +05:30
Neeraj
7eea133441 [mob] Fix throttling when multipart is disabled (#6508)
## Description
_shouldThrottleSync logic was changed to return True when multiPart was
disabled. This resulted in incorrect throttling when user had disabled
multipart and app was in fg.


## Tests
2025-07-11 11:55:40 +05:30
Neeraj
37e2ccaac3 [mobile] Fix memory edge cases (#6482)
## Description
Handle edge cases in memory tap when tapping -
1. On 1st memory of the 1st memory block - reset the animation
2. On last memory of the last memory block - do nothing 

## Test


https://github.com/user-attachments/assets/3358bf41-548e-403b-83a2-aabac7a94266
2025-07-11 11:54:29 +05:30
Neeraj Gupta
0f101110e6 Fix throttling when multipart is disabled 2025-07-11 11:23:51 +05:30
TKO-GLOBAL
69fcdcf14b Fix dead link and typo
Fix web link to adding-icons doc which have moved.
Fix paths in adding-icons to assets which have moved.
Fix typo in authenticator
2025-07-10 19:47:40 +01:00
ashilkn
567582b423 Resolve merge conflicts and merge main 2025-07-10 15:01:50 +05:30
ashilkn
937af3da37 clean up 2025-07-10 11:59:27 +05:30
Aman Raj Singh Mourya
9f028adb63 [mobile] Fix hero animation for on Ente section (#6499)
https://github.com/user-attachments/assets/1238695a-8e4a-44b3-99f1-569eacddcf1c
2025-07-10 11:51:32 +05:30
Aman Raj Singh Mourya
7e08f2ab3c [mobile] Fix corner smoothing (#6500)
<table>
  <tr>
    <td align="center">
      <strong>Before</strong><br>
<img
src="https://github.com/user-attachments/assets/2ee2bf5c-917e-459b-b8de-47c46b86c5f5"
alt="Before" width="300"/>
    </td>
    <td align="center">
      <strong>After</strong><br>
<img
src="https://github.com/user-attachments/assets/60c8d8cb-443b-4a97-8a73-48b47495bdf8"
alt="After" width="300"/>
    </td>
  </tr>
</table>
2025-07-10 11:51:07 +05:30
AmanRajSinghMourya
2595fdebae Reduce corner smoothing from 1.0 -> 0.6 2025-07-09 21:47:10 +05:30
AmanRajSinghMourya
9938db6af4 Fix hero animation 2025-07-09 21:27:44 +05:30
ashilkn
da4e0aa826 chore 2025-07-09 16:52:44 +05:30
ashilkn
372c4d9086 Create a widget (yet to be stateful) that acts as a 'pinned header' for each group in gallery when gallery is scrolled 2025-07-09 16:43:10 +05:30
ashilkn
80e28ee1a3 chore 2025-07-09 16:34:58 +05:30
AmanRajSinghMourya
abd5704ebb Minor fix 2025-07-09 13:45:22 +05:30
Neeraj
30262f82a5 [server] Prefer b2 for reading metadata (#6494)
## Description

## Tests
2025-07-08 18:38:05 +05:30
Neeraj Gupta
fddbbe5135 Prefer b2 for reading metadata 2025-07-08 18:34:22 +05:30
Manav Rathi
db981d0344 [web] Remove global eslint overrides in app/photos (#6493) 2025-07-08 17:26:41 +05:30
Manav Rathi
6f15b4178b Cleanup 2025-07-08 16:41:52 +05:30
Manav Rathi
bfd0bc116d exhaustive deps 2025-07-08 16:27:27 +05:30
Manav Rathi
ae28125a7a Update more 2025-07-08 16:05:52 +05:30
Manav Rathi
aa80f86a7a More lints 2025-07-08 15:06:35 +05:30
Manav Rathi
6221f904e4 lint 2025-07-08 14:26:38 +05:30
Manav Rathi
beb3276c53 [web] Enable strictNullChecks in photos tsconfig (#6492) 2025-07-08 13:38:21 +05:30
Manav Rathi
96276a1234 es 2025-07-08 13:28:02 +05:30
Manav Rathi
6e025945ae es 2025-07-08 13:14:29 +05:30
Manav Rathi
3fb02cf343 Remove overrides 2025-07-08 13:02:46 +05:30
Manav Rathi
6d20b9cd55 Elsewhere 2025-07-08 12:48:55 +05:30
Manav Rathi
a34a07644e tsc 2025-07-08 12:32:36 +05:30
Manav Rathi
67b9ba09fa Update 2025-07-08 12:21:23 +05:30
Manav Rathi
01d3c80240 useDeferredValue 2025-07-08 12:13:07 +05:30
Manav Rathi
be7b57f3d5 Update 2025-07-08 11:54:34 +05:30
Manav Rathi
786620a5ac More null handling 2025-07-08 11:09:35 +05:30
Manav Rathi
2a0795dd47 null assertions meanwhile 2025-07-08 10:56:40 +05:30
Manav Rathi
68d831ef3d Update 2025-07-08 10:37:40 +05:30
Manav Rathi
5b175b3734 [web] File list code cleanup (#6491) 2025-07-08 10:11:25 +05:30
Manav Rathi
1d7f9522e3 Fin 2025-07-08 10:06:19 +05:30
Manav Rathi
f9adbdf639 Extract and merge, part 2 2025-07-08 08:32:19 +05:30
Manav Rathi
d327eb027c Extract and merge, part 1 2025-07-08 08:23:39 +05:30
Manav Rathi
ef1a5358fd Rename 2025-07-08 07:55:49 +05:30
Manav Rathi
f4b909f4a7 Cleanup 2025-07-08 07:39:55 +05:30
Manav Rathi
236c6f612b Separate internal and external interfaces 2025-07-08 07:11:03 +05:30
AmanRajSinghMourya
c54ca8c7ae Minor fix 2025-07-07 23:42:39 +05:30
Manav Rathi
4c5d340b57 More tsc 2025-07-07 20:39:28 +05:30
Manav Rathi
02ea875497 [web] tsc related cleanup (#6486) 2025-07-07 19:02:49 +05:30
Manav Rathi
bafa3b5c5b More tsc fixes 2025-07-07 18:55:05 +05:30
Manav Rathi
1dc83b272a More tsc errors 2025-07-07 18:35:25 +05:30
Manav Rathi
1d3b3eb1cf More tsc fixes 2025-07-07 18:25:49 +05:30
Manav Rathi
6a5e012236 Fix more type errors 2025-07-07 17:35:56 +05:30
Manav Rathi
f1cc16ddae Pass directly 2025-07-07 16:14:53 +05:30
ashilkn
6e14aaaad7 Create a working custom scroll bar without support for header and footer 2025-07-07 15:55:07 +05:30
AmanRajSinghMourya
62a798d527 Minor fix 2025-07-07 15:41:50 +05:30
AmanRajSinghMourya
0e41627306 Fix fast animation by checking AccessibilityFeatures.disableAnimations 2025-07-07 15:12:05 +05:30
Manav Rathi
bcd5ca7bf5 [web] Various tweaks and fixes (#6483) 2025-07-07 15:08:21 +05:30
Manav Rathi
ba94427b36 Reword comment 2025-07-07 15:02:52 +05:30
AmanRajSinghMourya
b7c11998c6 Handle edge cases for memories 2025-07-07 14:38:04 +05:30
Manav Rathi
4864091202 Serial 2025-07-07 14:19:54 +05:30
Manav Rathi
72c45bd706 Special case for Twitter 2025-07-07 14:09:53 +05:30
ashilkn
28be02bb9a Create a scrollOffsetToGroupID map to be used in custom scroll bar 2025-07-07 14:00:32 +05:30
ashilkn
93851db27a Refactor 2025-07-07 13:59:26 +05:30
Manav Rathi
8335c9ac7e Inline 2025-07-07 13:41:57 +05:30
ashilkn
8a0f61a1c7 Refactor + add header and footer of gallery 2025-07-07 13:38:41 +05:30
Manav Rathi
db30b8cfe8 Move 2025-07-07 13:28:02 +05:30
Manav Rathi
65f75e3467 Inline 2025-07-07 13:23:14 +05:30
Manav Rathi
b9d9c6f65a Another 2025-07-07 13:16:01 +05:30
Manav Rathi
e07fdfb5e1 sudo-like 2025-07-07 12:39:50 +05:30
Manav Rathi
2a7b218fed [web] More code improvements to download notification handling (#6481) 2025-07-07 11:59:41 +05:30
Manav Rathi
63a9ef9455 Skip redundant 2025-07-07 11:38:24 +05:30
Manav Rathi
148a3c13db Better handling of empty albums 2025-07-07 11:32:43 +05:30
Manav Rathi
e79426e47f Types 2025-07-07 11:11:05 +05:30
Manav Rathi
a5f3085e01 + sidebar 2025-07-07 11:02:21 +05:30
Manav Rathi
ec5b5ca80d Move to gallery 2025-07-07 10:32:19 +05:30
Neeraj
2d076c3df8 [auth] New translations (#6402)
New translations from
[Crowdin](https://crowdin.com/project/ente-authenticator-app)
2025-07-07 10:07:12 +05:30
Aman Raj Singh Mourya
6e67a8b815 [mob][photos] Fix share action (#6464)
## Description
Clear selected file after share action is completed.
## Tests

### After

https://github.com/user-attachments/assets/a316409d-4d3e-45c8-ba79-38bd21e5c352

### Before

https://github.com/user-attachments/assets/4941d4ab-55a7-4d17-9504-29d15a3d1cea
2025-07-07 10:05:28 +05:30
Manav Rathi
896c2a3fe9 [web] Fix typo in preview URL (#6480) 2025-07-07 09:36:56 +05:30
Manav Rathi
cbe7d2532b Fix typo 2025-07-07 09:36:05 +05:30
Manav Rathi
099b4202c0 [web] Public albums static link preview - Take 2 (#6479) 2025-07-07 09:26:19 +05:30
Manav Rathi
6f181a7bbd Take 2 2025-07-07 09:18:47 +05:30
Manav Rathi
211fa7cc11 [web] Public albums static link preview (#6478) 2025-07-07 08:17:08 +05:30
Manav Rathi
043f8913c2 Unused 2025-07-07 08:13:42 +05:30
Manav Rathi
0748c9bf8d Albums static link preview 2025-07-07 08:07:18 +05:30
Manav Rathi
6e979c7591 [web] New translations (#6477)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2025-07-07 07:44:09 +05:30
Crowdin Bot
53210c2212 New Crowdin translations by GitHub Action 2025-07-07 01:17:58 +00:00
Crowdin Bot
85fb861980 New Crowdin translations by GitHub Action 2025-07-07 01:05:31 +00:00
Crowdin Bot
efc19d1262 New Crowdin translations by GitHub Action 2025-07-07 00:43:36 +00:00
Aman Raj Singh Mourya
172531c585 [auth] Update Proton suite icons (#6465)
This PR adds the Proton Pass and Proton Wallet icons. The Calendar,
Drive, and Mail icons were already included in Simple Icons as
single-color versions. However, to maintain consistency with the Proton,
Proton Pass, and Proton Wallet icons and to reflect the official brand
colors, I have updated these icons to the full-color versions from
[Proton's media kit](https://proton.me/media/kit).
2025-07-05 12:19:51 +05:30
AmanRajSinghMourya
8cc0fa7305 Fix 1st memory of 1st memory block and last memory of last memory block by reseting animation and poping to home screen respectively 2025-07-05 02:08:08 +05:30
Sven
cc19b24cc4 Add Proton suite icons and update custom icons data 2025-07-04 20:51:49 +02:00
AmanRajSinghMourya
87f04dbaa6 Minor refractor 2025-07-04 23:40:29 +05:30
AmanRajSinghMourya
bf644477dc Clear selectedFiles after share action 2025-07-04 23:39:12 +05:30
AmanRajSinghMourya
5748039371 Revert "Clear selected file after share action"
This reverts commit 7e93b52e5e.
2025-07-04 23:37:52 +05:30
AmanRajSinghMourya
7e93b52e5e Clear selected file after share action 2025-07-04 23:35:12 +05:30
Manav Rathi
e173982115 [web] Rework handling of download progress notifications (#6462) 2025-07-04 20:06:15 +05:30
Manav Rathi
4445ef8aef Tweaks 2025-07-04 19:51:16 +05:30
Manav Rathi
3b273a9e7b Sketch 6 2025-07-04 19:45:31 +05:30
Manav Rathi
ec23e869e8 Sketch 4 2025-07-04 18:15:17 +05:30
Manav Rathi
dcb4dd4944 Sketch 3 2025-07-04 17:45:51 +05:30
Manav Rathi
12f890a501 Sketch 2 2025-07-04 17:31:15 +05:30
Manav Rathi
4e474d4f29 Sketch 2025-07-04 16:52:26 +05:30
Manav Rathi
9020907b56 Sketch 2025-07-04 16:30:42 +05:30
Vishnu Mohandas
3812a92913 [mobile] Restructure folders (#6461)
## Description

## Tests
2025-07-04 16:29:30 +05:30
Neeraj Gupta
369fcddc39 Fix typo in path 2025-07-04 16:29:03 +05:30
Neeraj Gupta
b08545d40d Update workflows 2025-07-04 16:16:56 +05:30
Neeraj Gupta
99d7685be2 Move auth/ to mobile/apps/auth 2025-07-04 16:16:27 +05:30
Neeraj Gupta
9f12229b28 Move mobile/ -> mobile/app/photos 2025-07-04 16:12:46 +05:30
Manav Rathi
d1951a1f10 Rename 2025-07-04 15:58:32 +05:30
Manav Rathi
85a3a2f2ea Update 2025-07-04 15:49:22 +05:30
Manav Rathi
275c1d4705 Move 2025-07-04 15:18:00 +05:30
ashilkn
f70c284b58 Use better name 2025-07-04 14:34:09 +05:30
Manav Rathi
d3bef2e8cb [web] Reduce lint overrides (#6460) 2025-07-04 14:16:09 +05:30
Manav Rathi
522704ccb8 strictNullChecks prep - 1 2025-07-04 14:08:33 +05:30
Manav Rathi
6ae0516bd7 More lints and tsc 2025-07-04 13:48:45 +05:30
Manav Rathi
e64d66a320 More lints 2025-07-04 12:47:13 +05:30
ashilkn
27faef415f Use better names 2025-07-04 12:32:43 +05:30
ashilkn
fd05961303 Improve performance of group building function by not eagerly computing each group header's title and instead, offload it to the GroupHeaderWidget to compute lazily when it's built 2025-07-04 12:31:12 +05:30
Manav Rathi
093624a6ee Rest 2025-07-04 12:28:08 +05:30
Manav Rathi
9d87560d5c Lint 2025-07-04 12:17:57 +05:30
Manav Rathi
04a23c03d2 [web] Ensure SRP attributes are also present after signup (#6459) 2025-07-04 12:13:58 +05:30
ashilkn
23728107a3 Remove unused parameter 2025-07-04 12:11:17 +05:30
Manav Rathi
2ffce031de Ensure SRP attributes are also present after signup 2025-07-04 12:10:03 +05:30
ashilkn
cde42eb43a Use better name 2025-07-04 11:53:16 +05:30
ashilkn
ce380b3b7a Log time taken for computing GalleryGroups and it's sectionLayout + add keys to GalleryFileWidget to fix issues 2025-07-04 11:03:25 +05:30
Manav Rathi
d4d29d1957 [web] Accounts DB refactoring (complete) (#6458) 2025-07-04 10:38:55 +05:30
Manav Rathi
94b4c6b0bb Touchups
Writing the ID is necessary, the first time we get is when e.g. the pk is verified.
2025-07-04 10:32:15 +05:30
Manav Rathi
a2072c022c Don't add a history entry for automated client routing redirects 2025-07-04 09:36:29 +05:30
Manav Rathi
7dabd9545e Fin 2025-07-04 09:26:45 +05:30
Manav Rathi
46dc71ebd2 Rework 2025-07-04 09:07:53 +05:30
Manav Rathi
bbe10b1618 Update 2025-07-04 08:37:09 +05:30
Manav Rathi
c9521fb626 Update 2025-07-04 08:08:35 +05:30
Manav Rathi
70b5b8e682 Update 2025-07-04 07:30:27 +05:30
Manav Rathi
5c0b3795c2 Tweak 2025-07-04 07:23:06 +05:30
Manav Rathi
69cf09e13d Rework 2025-07-03 19:00:43 +05:30
Manav Rathi
9e4a67312f Update 2025-07-03 17:47:06 +05:30
Manav Rathi
4e8a4250dc Update 2025-07-03 16:31:20 +05:30
ashilkn
1cc80aab75 Make selection work with new gallery 2025-07-03 16:18:43 +05:30
Manav Rathi
ea5ebd0965 Perf
I didn't see it being a problem, so this is perhaps premature optimization
2025-07-03 16:10:33 +05:30
Manav Rathi
ef752a244c Handle family email 2025-07-03 15:42:19 +05:30
ashilkn
0d55ae1a6d Fix spacing issue 2025-07-03 15:34:14 +05:30
ashilkn
ad892c1055 Fix incorrect logic of finding index of file in gallery 2025-07-03 15:24:56 +05:30
Manav Rathi
6249211bca Rename 2025-07-03 15:21:17 +05:30
Manav Rathi
5b7d4a8806 Update 2025-07-03 15:13:45 +05:30
Manav Rathi
337c25b670 Update 2025-07-03 15:05:10 +05:30
Vishnu Mohandas
595e458c49 [mob] Fix strings (#6454) 2025-07-03 14:41:23 +05:30
vishnukvmd
eb92929647 Update 2025-07-03 14:40:56 +05:30
vishnukvmd
9d24914c1c Fix case 2025-07-03 14:39:56 +05:30
Manav Rathi
e68b695284 Used but missing 2025-07-03 14:00:10 +05:30
Manav Rathi
0343bdd393 Unused
Notice the typo
2025-07-03 13:54:29 +05:30
Manav Rathi
745528a9f1 [web] Accounts local DB internals refactoring - Part 2 (#6453) 2025-07-03 13:51:53 +05:30
Manav Rathi
b7e6015720 Outline 2025-07-03 13:26:40 +05:30
Manav Rathi
a3364408b7 Conv 2025-07-03 12:20:27 +05:30
Manav Rathi
67c65657a4 Split 2025-07-03 12:09:24 +05:30
ashilkn
29f7a54950 Layout calculation fixes and use better names 2025-07-03 11:41:30 +05:30
Manav Rathi
fd39c78e5d Cleanup after ourselves 2025-07-03 11:01:31 +05:30
Manav Rathi
e88a3b59e7 [web] Accounts data storage internals cleanup (#6451) 2025-07-03 10:58:10 +05:30
ashilkn
2b258f984d Change names 2025-07-03 10:56:39 +05:30
Ashil
44c73cb110 [mob][photos] Better copy for describing why device is not ready for local indexing (#6446)
## Description

#### Old
"Indexing is paused. It will automatically resume when device is ready."


#### New
"Indexing is paused. It will automatically resume when the device is
ready. The device is considered ready when its battery level, battery
health, and thermal status are within a healthy range."
2025-07-03 10:49:06 +05:30
Manav Rathi
5c4b4b9194 Rest 2025-07-03 10:43:15 +05:30
ashilkn
3cf4d3ee31 Merge branch 'main' into gallery_rewrite 2025-07-03 10:40:35 +05:30
ashilkn
b1386b8f57 Extract group building code to a function for better readability 2025-07-03 10:37:59 +05:30
Manav Rathi
802a3edf9b Handle qp 2025-07-03 08:48:03 +05:30
Manav Rathi
aec3ec718b Move 2025-07-03 08:33:20 +05:30
Manav Rathi
e856a653b8 State reset 2025-07-03 08:13:38 +05:30
Manav Rathi
21fb4e6a03 Refactor 2025-07-03 07:42:08 +05:30
Manav Rathi
ef7ff0b186 Dep 2025-07-03 07:23:19 +05:30
Manav Rathi
95c35d7df8 read and prune 2025-07-03 07:23:19 +05:30
Manav Rathi
0d5b1ef094 Blurbs 2025-07-03 07:23:19 +05:30
Manav Rathi
033caedfb5 Conv 2025-07-03 07:23:19 +05:30
Aman Raj Singh Mourya
32d1d357ba [Auth] add warner bros. icon (#6373)
## Description
Fixes #5949

## Tests

| before | after |
| ---- | ---- |
| ![Screenshot From 2025-06-26
12-48-36](https://github.com/user-attachments/assets/e8be0c70-bd3a-4a03-beb7-41ef37e353c6)
| ![Screenshot From 2025-06-26
13-02-25](https://github.com/user-attachments/assets/ba37473f-fb0d-4405-b490-3fc3625121ce)
|
2025-07-02 22:48:25 +05:30
Manav Rathi
9927cc1988 [web] Accounts DB cleanup (#6447) 2025-07-02 19:32:05 +05:30
Manav Rathi
efaab96e2c Inline 2025-07-02 19:19:21 +05:30
Manav Rathi
1a6c6d2b67 un-back 2025-07-02 19:14:10 +05:30
Manav Rathi
093e3a0061 Conv 2025-07-02 18:48:02 +05:30
Manav Rathi
f7597e5ea5 New, with fallback 2025-07-02 18:17:23 +05:30
Manav Rathi
2c57a99b5f Conv 2025-07-02 18:10:25 +05:30
Manav Rathi
d7b6c771e8 Move 2025-07-02 17:10:06 +05:30
ashilkn
1feebfdb83 Better copy 2025-07-02 16:21:03 +05:30
Manav Rathi
f1f0a77bc0 [web][desktop] Regular dependency updates (#6445) 2025-07-02 15:45:28 +05:30
Manav Rathi
a8c270433a Web deps 2025-07-02 15:33:35 +05:30
Manav Rathi
7aa327badd Jackspeak pinning isn't needed anymore
https://github.com/isaacs/jackspeak/issues/5#issuecomment-2750748920
2025-07-02 15:10:47 +05:30
Manav Rathi
042e08f504 Update desktop deps
The ONNX runtime dependency needs to use a revision since 1.22.0 has an issue
preventing it from building on Linux:
https://github.com/microsoft/onnxruntime/issues/24770
2025-07-02 15:04:48 +05:30
Manav Rathi
c2a84cd707 [web] Remove old ente-shared package (#6444) 2025-07-02 14:44:06 +05:30
Neeraj
45d89e4108 [mob][photos] Fix contact result in search section (#6443)
## Description
Fix showing contact result in the search section and also show the
albums shared by that contact like the contact section in the shared
collection tab.

## Tests
[Video](https://wormhole.app/xk6MZ4#qu9aa_r0VcGhkEDypz7l1g)
2025-07-02 14:43:54 +05:30
AmanRajSinghMourya
290df814b8 Remove check for archive collection 2025-07-02 14:35:40 +05:30
Manav Rathi
42f2d51766 Remove ente-shared 2025-07-02 14:34:43 +05:30
Manav Rathi
06656c1d88 Remove dep 2025-07-02 14:32:59 +05:30
AmanRajSinghMourya
794d1e0112 Fix: show shared collection also when searching for contacts in search section 2025-07-02 14:18:24 +05:30
Manav Rathi
d2a0c74554 Move and preamble 2025-07-02 14:16:50 +05:30
Neeraj
81e40b0872 [mob][photos] additional fixes for widgets (#6428)
## Description

Some more fixes for widgets.

## Tests
2025-07-02 14:13:00 +05:30
Manav Rathi
cd51f1f147 Use 2025-07-02 14:08:23 +05:30
Ashil
cbe7c32150 [mob][photos] Improved handling of high resolution image rendering (#6442)
## Description

Previously, images larger than 160MP were downscaled to 16MP to avoid
crashes caused by
[this](https://github.com/flutter/flutter/issues/110331) flutter issue.

This update lowers the threshold to 100MP and increases the downscaling
resolution to 50MP, for a better balance between performance and image
quality.

## Tests

- Tested with 150MP and 200MP images on a Samsung A54 (8GB RAM).
- Verified that rendering a 50MP downscaled image increases memory
usage, but remains within acceptable limits.
2025-07-02 13:56:41 +05:30
Manav Rathi
089a5835b0 Convert 2025-07-02 13:42:58 +05:30
ashilkn
06a30078da Decrease threshold of Pixels needed in image to categorize it as a 'too large image' and decrease the extent of compression from 16MP to 50MP of such images. Large images are rendered in lower resolution so that the app doesn't crash 2025-07-02 13:41:09 +05:30
Prateek Sunal
97bdcffd9d fix: isBackground check 2025-07-02 13:12:33 +05:30
Manav Rathi
c74f79e93b Prune 2025-07-02 12:39:57 +05:30
Prateek Sunal
162a2efe71 fix: move fav init to album service 2025-07-02 12:29:42 +05:30
Manav Rathi
1634c90ad9 Prune 2025-07-02 11:12:18 +05:30
Manav Rathi
2235482345 Conv 2025-07-02 11:01:57 +05:30
Manav Rathi
e2bee5d5a4 Move 2025-07-02 10:47:28 +05:30
Manav Rathi
5e4ad6e6a4 Move 2025-07-02 10:41:47 +05:30
Manav Rathi
ad7dad59bc Move 2025-07-02 10:35:21 +05:30
Manav Rathi
cf99651e2d Move 2025-07-02 10:24:40 +05:30
Manav Rathi
4a26ce1b58 Prune 2025-07-02 10:21:03 +05:30
Manav Rathi
9bdb0f6a94 Fix warning
A component is changing an uncontrolled input to be controlled. (UploaderName.tsx 111)
2025-07-02 10:17:00 +05:30
Manav Rathi
3a46f9994f [web] Remove axios (#6440) 2025-07-02 09:40:32 +05:30
Ashil
f053b7962b [mob] Update launch.json in mobile docs to include cronetHttpNoPlay=true for android (#6439) 2025-07-02 09:21:33 +05:30
Neeraj
76a479064e [mob] Update change log order (#6438)
## Description

## Tests
2025-07-02 09:19:57 +05:30
Manav Rathi
ffb19c3a65 Prune 2025-07-02 09:17:03 +05:30
ashilkn
ddcfd2ff43 Update launch.json in mobile docs to include cronetHttpNoPlay=true for android 2025-07-02 09:15:38 +05:30
Neeraj Gupta
3c7b1c6c5e [mob] Update change log order 2025-07-02 09:15:02 +05:30
Manav Rathi
d04ee0aa71 Prune 2025-07-02 09:07:42 +05:30
Manav Rathi
ce020d4398 Use 2025-07-02 08:59:03 +05:30
Manav Rathi
028a5cf827 Update 2025-07-02 08:47:52 +05:30
Manav Rathi
c60288b0df Simplify 2025-07-02 08:24:23 +05:30
Manav Rathi
2fba8a2705 Extract sort 2025-07-02 07:29:24 +05:30
laurenspriem
f66304815e Fix null error 2025-07-01 20:58:22 +02:00
laurenspriem
17ac627ddd Align icon 2025-07-01 20:52:43 +02:00
Manav Rathi
54aec6e0db Touch ups 2025-07-01 20:50:17 +05:30
Manav Rathi
7edb1fab7b Sketch 2025-07-01 20:31:34 +05:30
Manav Rathi
21738995cc Sketch 1 2025-07-01 20:03:44 +05:30
Manav Rathi
b752af7046 Swap 2025-07-01 19:52:04 +05:30
Manav Rathi
60b044e61a Impl 2025-07-01 19:44:43 +05:30
Manav Rathi
98364405c6 Sketch 1 2025-07-01 19:42:27 +05:30
Manav Rathi
23558a2584 [desktop] Start next release cycle (#6432) 2025-07-01 19:22:09 +05:30
Manav Rathi
035f40dc0a Start next release cycle 2025-07-01 19:20:35 +05:30
Prateek Sunal
910a64dc1c fix: refresh tap 2025-07-01 19:11:13 +05:30
Manav Rathi
8c5bc316f9 photosd-v1.7.14 (#6431) 2025-07-01 18:44:47 +05:30
Manav Rathi
645bb485a7 photosd-v1.7.14 2025-07-01 18:43:17 +05:30
Prateek Sunal
68fa4d87eb Merge remote-tracking branch 'origin/main' into widget 2025-07-01 18:38:06 +05:30
Prateek Sunal
f527624027 fix: only pick from non cache for memories when has any widgets 2025-07-01 18:37:30 +05:30
Prateek Sunal
fb06332272 fix: home widget sync in background 2025-07-01 18:35:59 +05:30
Manav Rathi
4fda4b5773 [web] Public albums internal code improvements - Part 2 (#6430) 2025-07-01 18:35:27 +05:30
Prateek Sunal
68efbc2bed fix: don't select first two people by default 2025-07-01 18:27:01 +05:30
Manav Rathi
e47d6a8ece Update 2025-07-01 18:23:34 +05:30
Prateek Sunal
09466f05c6 fix: get top two faces logic 2025-07-01 18:10:24 +05:30
Manav Rathi
738088e8a5 Update 2025-07-01 18:09:59 +05:30
Manav Rathi
54dde95545 Sketch 2025-07-01 17:59:08 +05:30
Prateek Sunal
7ded133caf chore: fix expandedHeight scaling 2025-07-01 17:57:56 +05:30
Prateek Sunal
fe2f066733 fix: albums logic 2025-07-01 17:52:54 +05:30
Manav Rathi
5034fb4496 Update 2025-07-01 17:43:14 +05:30
Manav Rathi
b854730533 Sketch 2025-07-01 17:39:00 +05:30
Manav Rathi
a538e852bd Update 2025-07-01 17:28:13 +05:30
Manav Rathi
436a5811cb Use 2025-07-01 17:16:37 +05:30
Manav Rathi
27a400743c Sketch 2025-07-01 17:14:31 +05:30
Prateek Sunal
4e692fce1f fix: collection service is not initialized 2025-07-01 17:01:44 +05:30
Neeraj
09de1f2d46 [mob] Minor copy change (#6429)
## Description

## Tests
2025-07-01 16:54:18 +05:30
Neeraj Gupta
2caf773bbe Update changelog title 2025-07-01 16:53:53 +05:30
Prateek Sunal
edc015d589 Merge remote-tracking branch 'origin/main' into widget 2025-07-01 16:51:30 +05:30
Prateek Sunal
d5707a030b fix: rearrange the priority of execution 2025-07-01 16:51:22 +05:30
Neeraj
8ed7fa0e4c [mob][photos] fix widget display (#6425)
## Description

The total widget count was not updated properly hence widget had no idea
of it getting updated.

This PR fixes that.

## Tests
2025-07-01 16:16:15 +05:30
Ashil
4f9e9f30aa [mob][photos] Handle play/pause animation in memory when bottom sheet open (#6427)
## Description
Play/pause memory animation when file bottom sheet is close/open
respectively
2025-07-01 16:15:55 +05:30
ashilkn
f08f72c46a Use better naming convetion 2025-07-01 16:15:30 +05:30
AmanRajSinghMourya
4885c13d86 Add ToggleMemoryAnimationEvent for memory animation control 2025-07-01 16:05:33 +05:30
Manav Rathi
46b0b7ce70 [web] Public albums internal code improvements (#6424) 2025-07-01 16:04:10 +05:30
Ashil
bd267edf3f [mob][photos] Fix/avoid recommended filters going blank on calling setState from different screens that have gallery (#6426) 2025-07-01 16:02:08 +05:30
ashilkn
b0d44f3799 Fix/avoid recommended filters going blank on calling setState from different screens that have gallery 2025-07-01 15:57:42 +05:30
Prateek Sunal
bb91471cdc chore: update milliseconds to seconds 2025-07-01 15:50:46 +05:30
Manav Rathi
7f24ffd7ef Fix uploader name not getting used in form 2025-07-01 15:49:34 +05:30
Ashil
fb03c88a5d [mob][photos] Memories improvement (#6152)
## Description
1. A subtle zoom-in/out effect for photos and replaced the black area
around landscape photos with a blurred background.
2. Auto play each image for 5 second and video for its duration with a
step progress animation.
3. Long-press to pause animation. Releasing will resume the playback.
2025-07-01 15:40:03 +05:30
Manav Rathi
07420304d0 Impl and swap 2025-07-01 15:35:47 +05:30
Prateek Sunal
aa26a48e67 fix: add more logs + no defeult selection for people 2025-07-01 15:26:35 +05:30
Manav Rathi
bd776dc98d Swap 2025-07-01 15:17:27 +05:30
Manav Rathi
dc3f0be186 Sketch 2025-07-01 15:13:37 +05:30
Manav Rathi
5cc68e5bb5 Rename 2025-07-01 14:53:27 +05:30
AmanRajSinghMourya
092d8aa9f5 Merge branch 'memory_improvement' of https://github.com/ente-io/ente into memory_improvement 2025-07-01 14:52:57 +05:30
AmanRajSinghMourya
2d87237d10 Fixed ios close button not working 2025-07-01 14:47:01 +05:30
Laurens Priem
579c2620bf [mob][photos] Suggestions on all people page (#6375)
## Description

Adds suggestions to the all people page when tapping on the people
section. Similar to the suggestion within a person gallery.

## Tests

Tested in debug mode on my pixel phone.
2025-07-01 14:41:18 +05:30
Prateek Sunal
3c2eeadec6 fix: readd total logic for widgets + essential logs 2025-07-01 14:38:17 +05:30
laurenspriem
1b178ec6ab Merge branch 'main' into faces_all_suggestion 2025-07-01 11:04:20 +02:00
ashilkn
944b2ec4b8 Remove unused file 2025-07-01 14:33:31 +05:30
laurenspriem
ac7e4eeccf Reduce face thumbnail lru further 2025-07-01 10:58:39 +02:00
Ashil
0bddd91b2e [mob][photos] Album UI improvements (#6176)
## Description

### Changes

1. Album corner radius (114 size - 12px corner radius) (100 size - 8px
corner radius)
2. Thumbnail view size 60 -  corner radius 4
3. Padding between album thumbnail and Album name is 6
4. Padding between Album name and number of photos is 2
5. Album name (text size) - Small regular , Full black (color)
6. Number of photos (text size) - Mini Regular  , Text muted (color)
7. New design for Add album thumbnail
8. Distance between album vertically & horizontally 8px
9. List view border radius 6px and thumbnail radius 4px
2025-07-01 14:27:53 +05:30
ashilkn
ae225cf89d Resolve conflicts and merge main 2025-07-01 14:27:09 +05:30
ashilkn
8569b27e8f Revert "Revert changes to arb files"
This reverts commit 236a51b0b8.
2025-07-01 14:25:46 +05:30
Manav Rathi
4f4649f7a2 Swap 2025-07-01 14:18:24 +05:30
ashilkn
b69f1bd237 Pin uncategorized album to top of collection action sheet 2025-07-01 14:17:28 +05:30
Manav Rathi
59e9967518 Fin 2025-07-01 14:14:31 +05:30
Manav Rathi
0621c3d30b Sketch save 2025-07-01 14:08:19 +05:30
ashilkn
236a51b0b8 Revert changes to arb files 2025-07-01 14:03:30 +05:30
Neeraj
c9f5c03e17 [mob] Add change log (#6423)
## Description

## Tests
2025-07-01 13:58:04 +05:30
AmanRajSinghMourya
1a3b38f219 Fix video going blank when played using media kit 2025-07-01 13:54:08 +05:30
Neeraj Gupta
ce377308e3 Add change log 2025-07-01 13:53:44 +05:30
ashilkn
155bb5a214 Merge branch 'main' into album_fixes 2025-07-01 13:42:40 +05:30
ashilkn
9d9b7a87f5 Remove merge conflict code 2025-07-01 13:38:23 +05:30
AmanRajSinghMourya
0c3b751b30 Use video_widget_media_kit.dart instead of video_widget_media_kit_new.dart 2025-07-01 13:38:18 +05:30
laurenspriem
6a8cfe31de Mounted check 2025-07-01 10:06:25 +02:00
Manav Rathi
c9175bee04 Sketch 2025-07-01 13:27:35 +05:30
Neeraj
76939691fd [mob] Cache persons entities (#6420)
## Description
- Offloads json decoding to computer.
- Frequently updates email to person cache on each db read for all
persons()

## Tests
2025-07-01 13:04:36 +05:30
Manav Rathi
c2b6bfa1ed Inline 2025-07-01 12:15:51 +05:30
Manav Rathi
0056d87009 [web] Trash improvements (#6421) 2025-07-01 12:04:18 +05:30
Manav Rathi
eaefeebe83 Recent first 2025-07-01 11:56:19 +05:30
Manav Rathi
d92183bd0b Match option order on mobile 2025-07-01 11:55:01 +05:30
Manav Rathi
27605ce156 Special case 2025-07-01 11:52:48 +05:30
Neeraj Gupta
df3a6a5a22 Clean up 2025-07-01 11:45:48 +05:30
ashilkn
eeff3d5cdf chore 2025-07-01 11:44:26 +05:30
ashilkn
0565b71653 Tweak next/previous memory animation 2025-07-01 11:44:00 +05:30
ashilkn
8e5786c6fb code cleanup 2025-07-01 11:25:56 +05:30
Neeraj Gupta
4b826d1aed Refresh cache on cgroup update 2025-07-01 11:12:42 +05:30
Neeraj Gupta
556177358e Cache persons data 2025-07-01 11:11:24 +05:30
ashilkn
19f4acfc94 Minor improvement 2025-07-01 11:06:45 +05:30
ashilkn
599e59c548 Add todos 2025-07-01 11:05:31 +05:30
Neeraj Gupta
19b508d869 Rename 2025-07-01 10:38:06 +05:30
ashilkn
c4719f7d9d Resolve merge conflicts and merge main 2025-07-01 10:37:13 +05:30
Manav Rathi
d5eea09c8a [desktop] Update to Electron 37 (#6419)
Changes: https://www.electronjs.org/blog/electron-37-0
2025-07-01 10:32:51 +05:30
Manav Rathi
04125bc30c [web] Convert the delete and fav actions to new code (#6418) 2025-07-01 10:30:20 +05:30
Manav Rathi
fda415aab1 Update to Electron 37
Changes: https://www.electronjs.org/blog/electron-37-0
2025-07-01 10:29:00 +05:30
Manav Rathi
ab052dcb89 qp 2025-07-01 10:21:05 +05:30
Neeraj Gupta
5210a5a0ba Add wrapper method for all entity changes 2025-07-01 10:20:52 +05:30
Manav Rathi
7607d2a14a Conv 2025-07-01 10:16:08 +05:30
Hailey Martin
0abf4354aa [Auth] Add LaunchDarkly to custom icons (#6399)
## Description

Adds a custom icon for the LaunchDarkly feature flag/automation service.
Icon was taken from their [press
kit](https://launchdarkly.com/press-and-analysts/) and given a hex code
to work on both dark & light modes.

## Tests

n/a
2025-07-01 10:00:55 +05:30
Manav Rathi
6c3cc168c9 [web] New translations (#6417)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2025-07-01 09:29:42 +05:30
Crowdin Bot
516420d872 New Crowdin translations by GitHub Action 2025-07-01 03:58:45 +00:00
Manav Rathi
358a86f18f [web] More improvements to handling of shared file operations (#6416) 2025-07-01 09:28:01 +05:30
Manav Rathi
52d024a263 Move to tr 2025-07-01 09:00:27 +05:30
Manav Rathi
da3df70544 Prevent bypass using keybinding 2025-07-01 08:57:31 +05:30
Manav Rathi
e3ed92e930 Visually better sequence 2025-07-01 08:47:57 +05:30
Manav Rathi
cfce0bc198 Also for fav 2025-07-01 08:46:10 +05:30
Neeraj
f9b2b90f4e [mob] Use cached mapping for person avatar (#6413) 2025-07-01 08:44:03 +05:30
Manav Rathi
c60aed7f0f Notify elsewhere too 2025-07-01 07:56:17 +05:30
Manav Rathi
1cc9115972 Don't use exceptions for flow control 2025-07-01 07:47:38 +05:30
Manav Rathi
332d4219ac Reusable 2025-07-01 07:38:03 +05:30
laurenspriem
3bda830156 Don't use isolate for compression 2025-06-30 19:52:38 +02:00
laurenspriem
00799c531a Single computer call for compression 2025-06-30 17:53:18 +02:00
laurenspriem
883b5b66e9 image quality 2025-06-30 17:40:49 +02:00
Manav Rathi
759bea83bb [web] Support removing from shared albums (#6412) 2025-06-30 21:05:02 +05:30
laurenspriem
51ba11cfcc Compress all face thumbnails 2025-06-30 17:28:24 +02:00
laurenspriem
4c82d6bc84 Smaller in memory cache 2025-06-30 17:17:16 +02:00
Manav Rathi
f66f6ab9be Don't show two dialogs 2025-06-30 20:43:21 +05:30
Manav Rathi
5f76391379 Fix 2025-06-30 20:35:31 +05:30
Manav Rathi
fa39effe9c Scaffold 2025-06-30 20:27:02 +05:30
Manav Rathi
61a7b4f07a Handle remove separately 2025-06-30 20:15:24 +05:30
Manav Rathi
798a03007a Catch 2025-06-30 20:02:05 +05:30
laurenspriem
8386e3a4f1 Variable width file info face thumbnail 2025-06-30 16:26:21 +02:00
Manav Rathi
3575704724 Remove from shared 2025-06-30 19:43:25 +05:30
laurenspriem
e8b68d7d28 Name truncate logic 2025-06-30 14:48:52 +02:00
Prateek Sunal
c7bf3a0a9d [mob][photos] widget fixes and cleanup (#6407)
## Description

Cleaning up and refactor widget related code.

## Tests
2025-06-30 16:44:51 +05:30
laurenspriem
66617ada86 Close button 2025-06-30 13:13:50 +02:00
ashilkn
edacaaa334 Merge branch 'clean_up_memories' into memory_improvement 2025-06-30 16:40:25 +05:30
Prateek Sunal
dfec66f971 Merge branch 'wid-fix' of https://github.com/ente-io/ente into wid-fix 2025-06-30 16:31:18 +05:30
Prateek Sunal
70faf61391 fix: don't partial sync for people 2025-06-30 16:30:57 +05:30
Neeraj Gupta
9903201fa8 Minor refactor 2025-06-30 16:21:31 +05:30
Manav Rathi
4a0f0f295d Rename 2025-06-30 16:19:06 +05:30
laurenspriem
16a2a5cc13 Fix name overflow 2025-06-30 12:43:32 +02:00
AmanRajSinghMourya
6405886aca Hide Play original option when showing memories 2025-06-30 16:07:48 +05:30
Manav Rathi
ad0cf583b5 Cleanup 2025-06-30 15:57:57 +05:30
ashilkn
2608a8c9ab Performance improvement in memories animation 2025-06-30 15:53:47 +05:30
ashilkn
d4e9bdd035 Use better names 2025-06-30 15:49:52 +05:30
laurenspriem
b6de9497d3 Bump version to match internal branch 2025-06-30 12:18:01 +02:00
ashilkn
e27f4544d0 Remove unnecessary scroll controller 2025-06-30 15:43:37 +05:30
Prateek Sunal
ac8efa9d7d fix: add debouncer to memories toggle 2025-06-30 15:42:11 +05:30
ashilkn
489c806923 Add mounted check 2025-06-30 15:36:38 +05:30
Prateek Sunal
e1a2946a2b chore: lint fixes 2025-06-30 15:36:07 +05:30
ashilkn
354c08921b Remove unnecessary AnimatedBuilder 2025-06-30 15:35:30 +05:30
Prateek Sunal
a7f89d0077 fix: replace awaited updateVariables calls with unawaited versions in MemoriesWidgetSettings 2025-06-30 15:35:23 +05:30
Manav Rathi
7d8fb296af Cleanup 2025-06-30 15:29:40 +05:30
laurenspriem
7509a367c5 Fix suggestion not using previous negative feedback 2025-06-30 11:43:22 +02:00
Prateek Sunal
5f0154f9fe fix: add unawaited to PeopleWidgetSettings 2025-06-30 15:12:28 +05:30
Manav Rathi
0c6cc8f7a1 [web] File selection handler options refactoring (#6410) 2025-06-30 15:11:02 +05:30
Manav Rathi
7f0ac9629e Lint fix 2025-06-30 15:06:56 +05:30
Prateek Sunal
c4a9b2e4f9 fix: improve album home widget service 2025-06-30 15:00:52 +05:30
Prateek Sunal
fcef3fd4e5 fix: make people and albums widget better 2025-06-30 14:46:12 +05:30
Manav Rathi
a434862b2f Rearrange 2025-06-30 14:33:10 +05:30
laurenspriem
c91ad8348e Horizontally center thumbnails 2025-06-30 11:01:58 +02:00
AmanRajSinghMourya
cac053f4e9 Minor fix 2025-06-30 14:12:53 +05:30
Manav Rathi
99b379280f Tweak 2025-06-30 13:58:48 +05:30
Neeraj
0529c8cf9b [mob] Remove old migration code (#6408)
## Description

## Tests
2025-06-30 13:50:09 +05:30
laurenspriem
5ae5341658 padding around save as another person button 2025-06-30 10:17:29 +02:00
laurenspriem
b3bff83a40 file info name fixed width 2025-06-30 10:15:32 +02:00
Manav Rathi
9efd99fd10 Extract 2025-06-30 13:19:19 +05:30
Prateek Sunal
7fc4f36970 fix: migrate most of the changes to people and albums widget as well 2025-06-30 12:39:35 +05:30
laurenspriem
fc5837ea3b Center name 2025-06-30 09:05:51 +02:00
Prateek Sunal
7ebb039b35 chore: lint fix and revert 2025-06-30 12:26:48 +05:30
Ashil
f33eb83eef [mob][auth] Bump up auth version to 4.4.1 (#6406)
## Description

For test flight release
2025-06-30 12:25:50 +05:30
Prateek Sunal
81947c61ab Merge remote-tracking branch 'origin/main' into wid-fix 2025-06-30 12:24:47 +05:30
Manav Rathi
8d3057e011 Extract 2025-06-30 11:56:48 +05:30
Prateek Sunal
d5a46f273a fix: begin widget code cleanup 2025-06-30 11:47:43 +05:30
Manav Rathi
b02e987fdc Tweak 2025-06-30 11:13:47 +05:30
ashilkn
ed6e401688 bump up auth version to 4.4.1 2025-06-30 11:12:40 +05:30
Manav Rathi
1256852259 Move 2025-06-30 10:55:44 +05:30
Manav Rathi
5b360a549a Rename etc 2025-06-30 10:44:39 +05:30
Aman Raj Singh Mourya
0337cccea4 [auth][mob] Fall back to Passcode if FaceId not detected on iOS (#6396)
## Description
Fallback to Pin/Passcode on iOS if fail to detect TouchID/FaceID
2025-06-30 10:36:58 +05:30
Manav Rathi
7514b93261 [desktop] Special case for systematic ML errors (#6405) 2025-06-30 09:52:16 +05:30
Manav Rathi
f5c5ffd86d Special case for many ML errors 2025-06-30 09:48:40 +05:30
Manav Rathi
ac4b737e89 [web] New translations (#6400)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2025-06-30 08:48:58 +05:30
Manav Rathi
4792775630 [destkop] Electron regular version update (#6403) 2025-06-30 08:35:02 +05:30
Manav Rathi
f22ca13205 + electron 2025-06-30 08:19:15 +05:30
Crowdin Bot
7076deb46e New Crowdin translations by GitHub Action 2025-06-30 00:42:58 +00:00
Keerthana
4eebcc03b9 [docs] Fixed typos in tailscale.md (#6393)
Fix small typing mistakes

## Description

## Tests
2025-06-29 11:51:46 +05:30
AmanRajSinghMourya
7eed321c99 Fall back to Passcode if FaceId not detected on iOS 2025-06-29 00:04:31 +05:30
AmanRajSinghMourya
9b39dd2697 Fix border radius for album items 2025-06-28 14:03:58 +05:30
Bl4ckspell
8e34fa7bf3 [auth] fix ibkr icon (#6374)
## Description
Fix the icon added in #6329 not displaying.

## Tests

| before | after |
| ---- | ---- |
| ![Screenshot From 2025-06-26
13-13-24](https://github.com/user-attachments/assets/6873aaa9-da8a-4f2d-92a4-a8c2117e05da)
| ![Screenshot From 2025-06-26
13-13-50](https://github.com/user-attachments/assets/6a5b142e-bbbb-4b54-80b9-71ddeae6c02b)
|
2025-06-28 13:39:37 +05:30
ashilkn
4be696dd6d Remove unnecessary Scaffold 2025-06-28 12:27:46 +05:30
laurenspriem
ea90f5c6cb Text under person 2025-06-28 11:22:14 +05:30
laurenspriem
ccaa00152e Yes/no buttons 2025-06-28 09:59:15 +05:30
Lappies
1b4ead7f77 Update tailscale.md
Fix small typing mistakes
2025-06-27 22:05:44 -06:00
ashilkn
a9b454a631 Update UI of title of memories and make it more visible by increasing bottom gradient when title is shown 2025-06-27 20:01:45 +05:30
ashilkn
a44db791d3 UI tweaks to full screen memory widget 2025-06-27 19:33:47 +05:30
Manav Rathi
23b017c17d [web] Collection summary refactoring (#6390) 2025-06-27 19:00:08 +05:30
Manav Rathi
4a81c56a55 Elsewhere 2025-06-27 18:55:04 +05:30
Manav Rathi
5141b04695 attr fin 2025-06-27 18:44:40 +05:30
Manav Rathi
e70d704ced attr 2025-06-27 18:44:40 +05:30
Manav Rathi
3f87fd1a5a Rename 2025-06-27 18:44:40 +05:30
Manav Rathi
72028ec9d2 attr 2025-06-27 18:44:39 +05:30
Manav Rathi
7af11786fb attr 2025-06-27 18:44:39 +05:30
Manav Rathi
61fb167cec Use 2025-06-27 18:44:39 +05:30
Manav Rathi
9fd950f928 Move up 2025-06-27 18:44:38 +05:30
Manav Rathi
a888d40722 Retain the active cs 2025-06-27 18:43:49 +05:30
Manav Rathi
5d594b4952 as attr 2025-06-27 18:43:49 +05:30
Manav Rathi
55a21c1233 only as attr 2025-06-27 18:43:49 +05:30
Manav Rathi
49e2ae3120 As attribute 2025-06-27 18:43:49 +05:30
Manav Rathi
5ee16e992b Conv 2025-06-27 18:43:49 +05:30
Manav Rathi
ad269fe995 [web] Fix avatar on share menu (#6389) 2025-06-27 18:43:29 +05:30
Manav Rathi
17937f8c54 Fix avatar on share menu 2025-06-27 18:40:02 +05:30
Keerthana
886ceec05c [email] reduce ambiguity in OTT verification (#6386)
## Description
This PR reduces ambiguity in OTT verification where some users replies
to our mail for verification instead of entering the code in the
application
2025-06-27 18:04:19 +05:30
Laurens Priem
433be55081 [mob][photos] Fix incorrectly showing ml consent bar (#6387)
## Description

Fix incorrectly showing ml consent bar

## Tests

Tested in debug mode on my pixel phone.
2025-06-27 17:14:53 +05:30
laurenspriem
e664a3ec70 Fetch user flags on login 2025-06-27 17:05:02 +05:30
laurenspriem
ad9fd6d547 show ml consent banner after syncing flags only 2025-06-27 16:51:55 +05:30
Keerthana
d921541d5d [email] reset formatting for ott mail 2025-06-27 16:48:20 +05:30
laurenspriem
6b16f7f172 Always init ml service 2025-06-27 16:44:03 +05:30
laurenspriem
e463d68688 Remove unneeded getter 2025-06-27 16:38:25 +05:30
Keerthana
41cda039ec [email] reduce ambiguity in OTT verification 2025-06-27 16:20:28 +05:30
AmanRajSinghMourya
4989204b59 Show border for device item 2025-06-27 16:05:33 +05:30
AmanRajSinghMourya
04ae708f33 Show border around album row items 2025-06-27 15:55:51 +05:30
Manav Rathi
d803c31d63 [web] Remove from collection internals refactoring (#6383) 2025-06-27 15:02:44 +05:30
Manav Rathi
903c46bae0 Sort prio 2025-06-27 14:57:37 +05:30
Manav Rathi
6b965b1aa6 Inline 2025-06-27 14:57:37 +05:30
Manav Rathi
04395739d5 Prune 2025-06-27 14:57:37 +05:30
Manav Rathi
c5ec0891c9 Conv to set 2025-06-27 14:57:37 +05:30
Manav Rathi
3213735a4d Inline 2025-06-27 14:57:36 +05:30
Manav Rathi
b854a603af Document and use 2025-06-27 14:57:36 +05:30
Manav Rathi
641f48e27d Fix 2025-06-27 14:57:36 +05:30
Manav Rathi
7016861281 Use 2025-06-27 14:57:36 +05:30
Manav Rathi
ae5144635e Sketch 2025-06-27 14:57:36 +05:30
Manav Rathi
a0a0556037 Conv 2025-06-27 14:57:36 +05:30
Manav Rathi
be8d1932b1 [web] Fallback for Map's values iterator's map method (#6382)
2025 baseline, but some customers have browsers which don't support it
yet

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Iterator/map
2025-06-27 14:41:54 +05:30
ashilkn
b127cf724b Fix memories UX when deleting a memory or closing one (from memories) 2025-06-27 14:40:25 +05:30
Manav Rathi
cc1177150b Fallback for Map-iterator values method
2025 baseline, but some customers have browsers which don't support it yet
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Iterator/map
2025-06-27 14:35:34 +05:30
Keerthana
9f82c3788b [docs] update with minio troubleshooting for deprecated command (#6381)
## Description
This PR updates documentation for users who are self-hosting Ente to
update post_start hook for MinIO provisioning and bucket creation to
work properly with the latest version of MinIO
2025-06-27 14:25:06 +05:30
ashilkn
67be26604f Show blurred background for live photos too in memories 2025-06-27 14:13:16 +05:30
Keerthana
ec4deb5179 [docs] update with minio troubleshooting for deprecated command 2025-06-27 13:38:53 +05:30
Keerthana
f02f10f832 [server][quickstart] migrate to mc alias set for creating bucket (#6380)
## Description
This PR fixes the infinite looping due to mc config not being found in
latest server images, which is replaced in favor of mc alias set,
responsible for creating buckets in post_start hook. This should fix the
issue that users run into while using our quickstart script

## Tests
- [x] I have tested with the latest MinIO server image
2025-06-27 13:30:19 +05:30
laurenspriem
eb75b2addf Fix gallery reload issue 2025-06-27 13:22:19 +05:30
ashilkn
a0061da938 Remove redundant setState rebulding VideoWidgtNative at high frequency 2025-06-27 12:27:09 +05:30
Keerthana
e5fbd5fde5 [server][quickstart] migrate to mc alias set for creating bucket 2025-06-27 12:05:21 +05:30
AmanRajSinghMourya
6c53421e36 Merge branch 'main' into album_fixes 2025-06-26 22:52:41 +05:30
Manav Rathi
e38477aa64 [web] Collection ops refactoring - Part 2 (#6379) 2025-06-26 20:30:07 +05:30
Manav Rathi
27380d3c42 Fav 2025-06-26 20:24:47 +05:30
Manav Rathi
a70f9327aa hide files 2025-06-26 20:02:33 +05:30
Manav Rathi
5dd6482937 New prim 2025-06-26 19:46:10 +05:30
Manav Rathi
6465106302 Rename 2025-06-26 19:21:49 +05:30
Manav Rathi
5b6d0e7a2a Use abstraction 2025-06-26 19:19:27 +05:30
Manav Rathi
8b46cf6bc5 [web] New collection diff implementation (#6376) 2025-06-26 18:53:20 +05:30
Manav Rathi
090e8bbf40 Simplify 2025-06-26 18:18:07 +05:30
laurenspriem
4ccb782740 Extract strings 2025-06-26 18:04:11 +05:30
laurenspriem
54722ac5c3 Different design on all people page 2025-06-26 18:00:30 +05:30
AmanRajSinghMourya
8e1711c951 Merge branch 'memory_improvement' of https://github.com/ente-io/ente into memory_improvement 2025-06-26 17:19:45 +05:30
AmanRajSinghMourya
088630ccce Enable swipe between memories when opened from notifications 2025-06-26 17:17:25 +05:30
laurenspriem
799b1b0d03 Remove redundant code 2025-06-26 16:59:31 +05:30
laurenspriem
dc787a2754 Prevent flicker on suggestion 2025-06-26 16:57:53 +05:30
Bl4ckspell
d319f42a4d [auth] add warner bros. icon 2025-06-26 13:03:35 +02:00
laurenspriem
aea62fcd2c Give least likely face thumbnail 2025-06-26 16:03:43 +05:30
AmanRajSinghMourya
b8eb200295 Enable swipe between memories when openend from widgets 2025-06-26 16:00:45 +05:30
laurenspriem
f16b75ae9c Integrate suggestion on all people screen 2025-06-26 15:31:46 +05:30
laurenspriem
47359051a1 Adapt PersonGallerySuggestion for all people 2025-06-26 15:31:24 +05:30
Manav Rathi
b273a70a3e new impl - tweak 2025-06-26 14:23:06 +05:30
Manav Rathi
3b3038ebb9 new diff impl wip 2025-06-26 14:09:31 +05:30
Manav Rathi
569a16cc5b [web] Support numeric query params in fetch helper (#6371) 2025-06-26 13:47:36 +05:30
Manav Rathi
3780d41765 Tweak 2025-06-26 13:27:56 +05:30
Manav Rathi
78b9ce1674 Conv 2025-06-26 13:09:18 +05:30
Manav Rathi
601a1d029b Support num qp 2025-06-26 12:54:13 +05:30
Manav Rathi
5c55e52cc1 New 2025-06-26 12:45:48 +05:30
Manav Rathi
2740ad75af Move 2025-06-26 12:38:21 +05:30
Manav Rathi
e3a72987ce Doc 2025-06-26 12:34:12 +05:30
Manav Rathi
6870ed24f2 [web] Prune gallery context (#6370) 2025-06-26 11:39:42 +05:30
Manav Rathi
ab2d49b162 Prune 2025-06-26 11:34:50 +05:30
laurenspriem
cd98458ada Comment 2025-06-26 11:08:14 +05:30
Manav Rathi
909cba41bc Update 2025-06-26 11:07:48 +05:30
Manav Rathi
3fdfb6c57d Forward 2025-06-26 10:49:43 +05:30
Manav Rathi
2fbce97f89 Fix gaps in notifications when downloading empty albums 2025-06-26 10:28:07 +05:30
Manav Rathi
e4fd78250d Use 2025-06-26 10:21:18 +05:30
Manav Rathi
cef3679bb3 Key warning 2025-06-26 10:10:08 +05:30
Manav Rathi
e65b5cefdc Use 2025-06-26 10:10:08 +05:30
Manav Rathi
71650df31f Use 2025-06-26 10:01:56 +05:30
Manav Rathi
b785fe69f4 Shared date select 2025-06-26 09:44:50 +05:30
Manav Rathi
67c3375ace Move 2025-06-26 09:41:05 +05:30
Manav Rathi
bdb5f5894e Forward 2025-06-26 09:14:28 +05:30
Manav Rathi
a0d4326d62 Prune 2025-06-26 08:31:04 +05:30
Manav Rathi
a16b20122d [desktop] Improve first CLIP query behaviour (#6369)
Keep some leeway so that the first CLIP query in a session also gets
resolved (on app starts after the model has been downloaded).
2025-06-26 08:23:20 +05:30
Manav Rathi
b981152dee Keep some leeway for fs.stat 2025-06-26 08:17:20 +05:30
Manav Rathi
63c1e63035 Prune 2025-06-26 08:12:18 +05:30
Manav Rathi
2c2b8f77cb sync => pull or other apropos 2025-06-26 07:50:17 +05:30
Manav Rathi
ef4b9ebc42 Rename 2025-06-26 07:45:51 +05:30
Manav Rathi
1babaf529e [web] Nomenclature cleanup (sync => pull) - Part 2 (#6368) 2025-06-26 07:41:35 +05:30
Manav Rathi
f4ec5f348d Prune 2025-06-26 07:17:01 +05:30
Manav Rathi
5a881440d9 Update 2025-06-26 07:10:58 +05:30
Manav Rathi
44f8d80b22 Use in collection share 2025-06-26 06:32:31 +05:30
Manav Rathi
477c01bc55 Update 2025-06-26 06:06:35 +05:30
Manav Rathi
b2df63e499 Doc and tweak 2025-06-26 05:43:27 +05:30
Manav Rathi
038de1d7ad [web] Serialize remote pulls (#6365) 2025-06-25 20:57:36 +05:30
Manav Rathi
5f1e393ac7 Simplify 2025-06-25 20:49:35 +05:30
Manav Rathi
e38a39200a Remove potentially illdefined forcing support 2025-06-25 20:41:21 +05:30
Manav Rathi
217b40a107 Serialize 2025-06-25 20:29:27 +05:30
Manav Rathi
938e7284d7 nerf ret 2025-06-25 20:17:34 +05:30
Manav Rathi
8fe3182b79 [web] Nomenclature cleanup (sync => pull) (#6364) 2025-06-25 20:05:21 +05:30
Manav Rathi
d271472984 Lint fix 2025-06-25 19:58:54 +05:30
Manav Rathi
3acb04f4cc Rename 3 2025-06-25 19:53:00 +05:30
Manav Rathi
9628bf8723 Rename 2 2025-06-25 19:41:51 +05:30
Manav Rathi
4161371a8e Post rename - 1 2025-06-25 19:24:51 +05:30
Manav Rathi
0bb10f2ee0 Rename 2025-06-25 18:53:41 +05:30
Manav Rathi
3f50771e18 Update 2025-06-25 18:50:50 +05:30
Manav Rathi
9d707fcb48 Update 2025-06-25 18:48:05 +05:30
ashilkn
a13db6b268 fix UI 2025-06-25 18:42:44 +05:30
Manav Rathi
2b9d80d23f Update 2025-06-25 18:40:12 +05:30
ashilkn
8706b368ba Update memories title size 2025-06-25 18:27:29 +05:30
AmanRajSinghMourya
d46b27e81f Revert memory notification and swipe improvements 2025-06-25 18:02:16 +05:30
Manav Rathi
58f3144ea0 [web] Rework the handling of hidden files (#6362) 2025-06-25 17:05:24 +05:30
ashilkn
d65aeaf181 UI tweaks 2025-06-25 16:53:32 +05:30
Manav Rathi
da8b9daff0 Retain prior behavior 2025-06-25 16:48:58 +05:30
Manav Rathi
a6a1b4baa8 file IDs 2025-06-25 16:32:50 +05:30
ashilkn
b9f6d19152 Resolve merge conflicts and merge UI/UX improvements to memory_improvement branch 2025-06-25 16:27:40 +05:30
ashilkn
324d2fbe4f Minor UI tweaks 2025-06-25 16:17:17 +05:30
ashilkn
86446ab8bf Improve FullScreenMemeory UI 2025-06-25 15:55:04 +05:30
Neeraj
380289e660 [docs] Fix git rename (#6361)
## Description

## Tests
2025-06-25 15:21:17 +05:30
Manav Rathi
c66ee58d85 norm + hidden - fin 2025-06-25 15:07:32 +05:30
Manav Rathi
37a70125b9 norm + hidden - wip 6 2025-06-25 14:56:17 +05:30
Manav Rathi
c8715ca846 norm + hidden - wip 5 2025-06-25 14:38:59 +05:30
Manav Rathi
d3491b80ee Move to reducer 2025-06-25 14:12:44 +05:30
Neeraj
fa62abb7be [auth] fix unknown hard error on windows (#6360)
## Description

Fixes https://github.com/ente-io/ente/issues/5789
https://github.com/ente-io/ente/issues/4523
https://github.com/ente-io/ente/issues/4099
https://github.com/ente-io/ente/issues/4270

## Tests
2025-06-25 14:08:48 +05:30
Manav Rathi
2b57a59b47 Tweak 2025-06-25 13:57:20 +05:30
Manav Rathi
3bf3018d22 normal + hidden - wip 4 2025-06-25 13:51:54 +05:30
Prateek Sunal
fd331c0733 fix: unknown hard error on windows 2025-06-25 13:49:31 +05:30
Manav Rathi
b5f12b56fa normal + hidden - wip 3 2025-06-25 12:52:38 +05:30
Neeraj
096a1dd043 Fix: Do not request compute lock if streaming is disabled (#6358)
## Description


## Tests
During testing, i noticed a log saying the ML lock is denied because
stream is getting generated. I hadn't enabled video streaming on that
device.
2025-06-25 12:33:58 +05:30
Manav Rathi
02e2abef07 hidden + normal - wip 2 2025-06-25 12:17:29 +05:30
Aman Raj Singh Mourya
e629db5bb1 [mob][photos] Memory notification improvement (#6359)
## Description
Enable swiping between memory blocks when opening a memory from
notification.
2025-06-25 12:07:55 +05:30
AmanRajSinghMourya
1274ea21d4 Enable swipe between memory block when opened from notification 2025-06-25 12:04:34 +05:30
Neeraj Gupta
6fda320c83 reduce log severity 2025-06-25 11:55:45 +05:30
Neeraj Gupta
7a3cd9a139 refactor 2025-06-25 11:52:51 +05:30
Manav Rathi
06a5611a56 normal and hidden files storage merge - wip 2025-06-25 11:46:29 +05:30
Neeraj Gupta
db8fa98ac6 Fix: Do not request compute lock if streaming is disabled 2025-06-25 11:45:41 +05:30
Neeraj
952f8212dc [mob][photos] Faces UX improvements (#6343)
## Description

- Show smaller clusters (solves
[#4091](https://github.com/ente-io/ente/discussions/4091))
- New suggestions in people page
- Give feedback from file info
- Multi select actions in all people page
- Better face thumbnail caching

## Tests

Tested in debug mode on my pixel phone.
2025-06-25 11:43:15 +05:30
ashilkn
24507f5f23 Use better name 2025-06-25 11:11:43 +05:30
Manav Rathi
66079b0af2 Outline 2025-06-25 11:08:14 +05:30
ashilkn
88498f11fc Start scale animation in FullScreenMemory widget only if final image is loaded 2025-06-25 10:45:19 +05:30
Manav Rathi
c5afc6d453 Conv 2025-06-25 10:38:40 +05:30
Neeraj
5d7848752f [auth] Added Zitadel icon (#6355)
The Zitadel icon is not available.
2025-06-25 09:23:02 +05:30
ashilkn
bf93e28a3d Improve UX of FullScreenMemory widget 2025-06-25 09:19:56 +05:30
Manav Rathi
124006929f Doc and tweak 2025-06-24 21:42:13 +05:30
Manav Rathi
bf8713ba21 Refactor 2025-06-24 21:42:13 +05:30
AmanRajSinghMourya
878b46631f Enable swipe to next memory block when opened from home-memory-widget 2025-06-24 18:07:39 +05:30
laurenspriem
4832739ff8 Fix reset of scroll position 2025-06-24 17:27:45 +05:30
laurenspriem
67f43453aa Change logger.finest to logger.info 2025-06-24 17:18:29 +05:30
Neeraj
43eb6ca30f [mob][photos] Schedule birthday notifications for everyone (#6354)
## Description

Makes sure that birthday notifications are scheduled even for persons
who haven't been in any recent pictures.
2025-06-24 17:15:20 +05:30
laurenspriem
2449c6d592 Specify value key 2025-06-24 16:39:11 +05:30
laurenspriem
f41bd1818d Fix state issue in face file info 2025-06-24 16:23:22 +05:30
sickjuicy
8f8056a918 Added Zitadel icon 2025-06-24 12:18:40 +02:00
Prateek Sunal
c14846f4fc [mob][photos] add hash check for people widget (#6341)
## Description

- [x] Add hash functionality to PeopleHomeWidget to track updation
- [x] Clear hash on albums widget clear

## Tests

- [x] Test if updating different people trigger it or not
2025-06-24 15:33:40 +05:30
laurenspriem
2eaa2d6ee2 schedule birthday notifications for everyone 2025-06-24 15:16:59 +05:30
laurenspriem
d183000fe3 make more tappable 2025-06-24 14:55:12 +05:30
AmanRajSinghMourya
396b893f43 Refactor FullScreenMemory layout and improve title styling 2025-06-24 14:46:57 +05:30
Prateek Sunal
fffb1e2734 refactor: rename getUpdatedAtHash to getPreHashForEntities for clarity 2025-06-24 14:38:51 +05:30
Prateek Sunal
4419090831 fix: move the concat logic to sql side 2025-06-24 14:38:19 +05:30
laurenspriem
f6e464bb21 Remove redundant code 2025-06-24 14:13:01 +05:30
laurenspriem
88d3f2388c Remove suggestion banner 2025-06-24 14:09:48 +05:30
laurenspriem
7bbbeceab5 Compress face thumbnail in regular isolate 2025-06-24 14:05:06 +05:30
AmanRajSinghMourya
8d35e16abe Preload the first unseen memory for each unseen memory 2025-06-24 13:03:35 +05:30
Prateek Sunal
282f908ffd chore: remove unwanted param 2025-06-24 12:45:39 +05:30
AmanRajSinghMourya
9f86b3fdd2 Merge branch 'memory_improvement' of https://github.com/ente-io/ente into memory_improvement 2025-06-24 11:59:09 +05:30
ashilkn
a3c011070a Clip items of page view used in memories 2025-06-24 11:51:15 +05:30
laurenspriem
ef76904b4d Use old logic for suggestions 2025-06-24 11:27:33 +05:30
ashilkn
aa4b44f8bd Add animation between the blurred thumbnails of items of a memory as a workaround for the flash between items when transitioning 2025-06-24 11:26:35 +05:30
laurenspriem
311b7ef77e Increase tappable area 2025-06-24 11:15:40 +05:30
ashilkn
2678b94433 Use ImageFilterd widget to blur image instead of BackdropFilter for better performance 2025-06-24 10:25:10 +05:30
laurenspriem
eac85d1708 String extract 2025-06-24 10:14:09 +05:30
laurenspriem
766608696d Revert memory cache 2025-06-24 10:14:02 +05:30
laurenspriem
59b761bf33 Remove duplicate time 2025-06-24 10:07:43 +05:30
laurenspriem
b93f78b3c9 Compression min dimensions 2025-06-24 09:57:47 +05:30
ashilkn
bcc293358f chore 2025-06-24 09:47:34 +05:30
laurenspriem
4c30d9d6d1 Less logging 2025-06-24 09:27:37 +05:30
laurenspriem
022dd35d5a Higher logging level in production 2025-06-24 09:22:49 +05:30
Neeraj
9351c1121e [Auth] Add custom icon - IBKR (#6329)
## Description
Add custom icon for  IBKR (Interactive Brokers) investing platform
## Tests
2025-06-24 08:57:24 +05:30
Manav Rathi
a7a69aa558 [web] Systematize trash internals (#6350) 2025-06-24 08:56:16 +05:30
laurenspriem
3923f18cd8 initState first 2025-06-24 08:48:09 +05:30
Manav Rathi
fbd0bf257e Tweak 2025-06-24 08:17:40 +05:30
Manav Rathi
86d09d997a refactor 2025-06-24 08:06:08 +05:30
Manav Rathi
241e1cbf88 Inv 2025-06-24 07:21:05 +05:30
Manav Rathi
fc4379f4e1 Prune 2025-06-24 06:54:29 +05:30
Manav Rathi
d84c42e5c1 Rework 2025-06-23 20:34:12 +05:30
Manav Rathi
b092fcaf29 rework 2025-06-23 19:26:40 +05:30
Prateek Sunal
3dd9696f75 Merge remote-tracking branch 'origin/main' into widgets-imp 2025-06-23 18:13:45 +05:30
Prateek Sunal
0eba503d2f chore: bump lock 2025-06-23 18:13:38 +05:30
Prateek Sunal
b6ea502bc3 fix: fetch from cgroup and check if preHash is empty 2025-06-23 18:13:31 +05:30
Manav Rathi
e603853e52 [web] File internals cleanup - Part 3/x (#6345) 2025-06-23 18:10:11 +05:30
Manav Rathi
fa137dcccc Move to use site 2025-06-23 17:55:43 +05:30
Prateek Sunal
7719c4604e fix: remove updatedAt from [PersonEntity], better hash logic 2025-06-23 17:27:18 +05:30
Manav Rathi
4b82516909 Move 2025-06-23 17:13:22 +05:30
Manav Rathi
17648c582a Simplify 2 2025-06-23 16:44:54 +05:30
Manav Rathi
1559ae7f42 Simplify 2025-06-23 16:28:04 +05:30
Manav Rathi
498a60d752 Discr union 2025-06-23 16:22:43 +05:30
laurenspriem
22b6707e92 Extract strings 2025-06-23 16:14:43 +05:30
laurenspriem
08b92cc560 Add save to person button to old suggestions flow 2025-06-23 16:00:57 +05:30
Manav Rathi
37bc453de6 Parse res 2025-06-23 15:50:10 +05:30
Manav Rathi
493fe4b3a5 [web] Files internals code cleanup (#6342) 2025-06-23 15:42:11 +05:30
laurenspriem
f22a065c15 Fire event only once 2025-06-23 15:40:59 +05:30
Manav Rathi
6b50b24abf Prune 2025-06-23 15:34:44 +05:30
Prateek Sunal
b0b8169e2e fix: remove redundant log 2025-06-23 15:34:34 +05:30
laurenspriem
53ab5b05c3 Stay on same page when user doesn't save as other person 2025-06-23 15:30:48 +05:30
laurenspriem
bd93fe5538 Make button more tappable 2025-06-23 15:21:55 +05:30
Prateek Sunal
96ebaf3c7f fix: add updatedAt to [PersonEntity], add hash to people widget check, clear hash on clearWidget for Albums 2025-06-23 15:18:29 +05:30
Manav Rathi
0ba9bdb666 ll edits 2025-06-23 15:14:35 +05:30
laurenspriem
f66a433442 Improve state update when added face to person 2025-06-23 15:11:18 +05:30
laurenspriem
c14021f2a7 Improve state update when removing face 2025-06-23 15:02:29 +05:30
Manav Rathi
85ac983ab9 edits time 2025-06-23 14:44:43 +05:30
Manav Rathi
3f0897ae77 Conv 2025-06-23 14:16:46 +05:30
laurenspriem
f7e96794cd Fix gallery reload issue 2025-06-23 14:12:55 +05:30
Prateek Sunal
1624ef52d7 [mob] improve background processing (#5442)
## Description

Use workmanager on android and iOS.

## Tests
2025-06-23 14:12:49 +05:30
Prateek Sunal
b7541e02e1 chore: remove internal checks 2025-06-23 14:05:18 +05:30
Prateek Sunal
db69caedf9 Merge remote-tracking branch 'origin/main' into improve-bg-processing 2025-06-23 14:04:31 +05:30
Prateek Sunal
9dac908dc1 chore: bump locks 2025-06-23 14:04:21 +05:30
Prateek Sunal
7211f4992a fix: remove reference of background_fetch 2025-06-23 14:03:35 +05:30
Manav Rathi
606a838ad0 transform on read so that we can handle the other case too 2025-06-23 13:34:59 +05:30
Manav Rathi
65bf785cce tx 2025-06-23 12:51:48 +05:30
laurenspriem
3bcab0216f Generated strings 2025-06-23 11:43:54 +05:30
laurenspriem
cb83a19edf Merge branch 'main' into faces_ux 2025-06-23 11:32:38 +05:30
Manav Rathi
6df16159d0 Use 2025-06-23 10:31:25 +05:30
Manav Rathi
a840950fbb Direct 2025-06-23 10:25:11 +05:30
Manav Rathi
8ae29074c5 Bench scaffolding 2025-06-23 10:16:34 +05:30
Manav Rathi
f22372c271 Sketch 2025-06-23 10:07:44 +05:30
Manav Rathi
568d4eadff Rest 2025-06-23 09:51:57 +05:30
Manav Rathi
755de42dbe Reuse 2025-06-23 09:44:56 +05:30
Manav Rathi
1016706a6b Sketch 2025-06-23 09:31:24 +05:30
Manav Rathi
76bff25de1 [web] New translations (#6337)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2025-06-23 09:16:00 +05:30
Crowdin Bot
d1c393b177 New Crowdin translations by GitHub Action 2025-06-23 00:42:51 +00:00
AmanRajSinghMourya
4e52caf23b Reduce sigma values & use ClipRect to avoid zoom overflow 2025-06-22 20:31:56 +05:30
SteamRadionice
03462771a4 Add files via upload 2025-06-21 11:19:41 +00:00
SteamRadionice
c9304c1992 [Auth] Add custom icon - IBKR
Add custom icon for  IBKR (Interactive Brokers) investing platform
2025-06-21 11:03:27 +00:00
laurenspriem
2baeaf1119 Make people all page selectable 2025-06-21 15:05:37 +05:30
laurenspriem
6cdc6ce9b4 Put person face thumbnails in documents directory 2025-06-21 12:22:09 +05:30
laurenspriem
97307598f0 Compress face thumbnail if needed 2025-06-21 12:09:18 +05:30
Neeraj
de4bbf44d7 [cli] Improve support handling passkey login for selfhost (#6328)
## Description
Removed the need for specifying account's app url as server returns the
same in the response to auth challenge.

## Tests
2025-06-21 10:11:43 +05:30
Neeraj Gupta
bc39f60183 cli: Improve support handling passkey login for selfhost 2025-06-21 10:09:50 +05:30
Neeraj
45308a70a8 [mob] Fix for duplicate page open for album link (#6327)
## Description

## Tests
2025-06-21 09:49:13 +05:30
Neeraj Gupta
450c7b187f Clean up logs 2025-06-21 09:46:11 +05:30
Neeraj Gupta
f3438751ed Fix for duplicate page open for album link 2025-06-21 09:43:34 +05:30
Manav Rathi
919d1a4503 [web] Switch to new EnteFile TypeScript type (internal) (#6323) 2025-06-20 20:30:32 +05:30
Manav Rathi
de0f3205ac Update 2025-06-20 20:04:55 +05:30
Neeraj
d8f2965f82 [mob][photos] use correct tonemap logic (#6322)
## Description

Fixes the tonemap logic

## Tests
2025-06-20 19:43:19 +05:30
Manav Rathi
7954b143b5 Swap 2025-06-20 19:42:36 +05:30
Prateek Sunal
17d33fc9f6 fix: issue with streaming 2025-06-20 19:28:41 +05:30
Manav Rathi
c18b1a7e83 Split 2025-06-20 19:12:09 +05:30
Manav Rathi
21ec31d4d3 Parse 2025-06-20 19:02:40 +05:30
laurenspriem
bd0f04258a Extract strings and change colours 2025-06-20 18:39:01 +05:30
laurenspriem
7d995bd83a Make the suggestion dismissible 2025-06-20 18:13:59 +05:30
Manav Rathi
98fd2021b7 [web] File internals cleanup (#6320) 2025-06-20 18:03:04 +05:30
Manav Rathi
63fc066301 Schema 2025-06-20 17:53:49 +05:30
Manav Rathi
d9fa30dbef Unused 2025-06-20 17:48:08 +05:30
Manav Rathi
012a3bef0a Replace 2025-06-20 17:40:54 +05:30
Manav Rathi
c23cd8d2f0 Cleanup 2025-06-20 17:37:10 +05:30
Manav Rathi
9e80aeb061 Cleanup 2025-06-20 17:32:04 +05:30
laurenspriem
cbf82f464d More smooth animation 2025-06-20 17:29:25 +05:30
ashilkn
6d576adce0 Display group header widget 2025-06-20 17:09:23 +05:30
Manav Rathi
eb5a0cb1db Prune 2025-06-20 17:08:23 +05:30
laurenspriem
43b96776e4 Less aggressive precompute 2025-06-20 16:58:36 +05:30
Manav Rathi
57d919b56f [web] File viewer tweaks (#6319) 2025-06-20 16:52:13 +05:30
Manav Rathi
54b9661ddc Lint 2025-06-20 16:48:38 +05:30
Manav Rathi
b13f4c0b18 Join 2025-06-20 16:42:08 +05:30
ashilkn
af6942e99d Populate grid rows with actual thumbnails 2025-06-20 16:26:33 +05:30
Manav Rathi
d8e5526655 Rewrite
The logic is same, just afresh write
2025-06-20 16:17:07 +05:30
laurenspriem
e4de98b9d6 Prevent annoying reload 2025-06-20 16:13:13 +05:30
ashilkn
bb75627383 Populate grid rows with placeholders 2025-06-20 16:00:21 +05:30
laurenspriem
130148e5d6 Check auto merge on hiding persons 2025-06-20 15:53:02 +05:30
Manav Rathi
e2f40f1e33 Improve robustness of refresh logic 2025-06-20 15:41:50 +05:30
laurenspriem
13c9afb219 Remove redundant parameter 2025-06-20 15:14:06 +05:30
laurenspriem
a32a6e9b9e Redesign and add extra button to gallery suggestion 2025-06-20 15:13:13 +05:30
ashilkn
828ade2609 Get a bare-bones structure of the new gallery working 2025-06-20 14:54:47 +05:30
Prateek Sunal
64d04ca22d fix: move time logger to top 2025-06-20 13:41:19 +05:30
Prateek Sunal
1996bc2612 fix: update timeout to 28 second 2025-06-20 13:39:20 +05:30
laurenspriem
eaa15b0d66 (fake) squircles everywhere 2025-06-20 13:16:08 +05:30
Prateek Sunal
8003b8a6b8 fix: update freq in native code 2025-06-20 13:13:20 +05:30
Prateek Sunal
904a2c9743 fix: refactor code, decrease freq for iOS, decrease timout for iOS 2025-06-20 13:13:12 +05:30
laurenspriem
c3d4214ad0 Extract strings 2025-06-20 12:50:29 +05:30
laurenspriem
f641fac98c birthday notifications copy change 2025-06-20 12:48:26 +05:30
Prateek Sunal
b03bdfb9d6 fix: refactor code 2025-06-20 12:46:06 +05:30
laurenspriem
f3484eff79 Another minor state fix 2025-06-20 12:33:01 +05:30
Prateek Sunal
55aa8d73f0 fix: indicate android functions in separate block 2025-06-20 12:21:33 +05:30
Manav Rathi
07da6cece6 New 2025-06-20 12:19:28 +05:30
laurenspriem
6799acf965 Null safety check 2025-06-20 12:19:02 +05:30
Manav Rathi
b3bb79ecd4 Time upd 2025-06-20 12:13:29 +05:30
Prateek Sunal
858d9d3f04 Merge remote-tracking branch 'origin/main' into improve-bg-processing 2025-06-20 12:07:45 +05:30
Prateek Sunal
caa180ba1a fix: init user service as well 2025-06-20 12:06:01 +05:30
Manav Rathi
d58388e5d2 Improve usability on small screens 2025-06-20 12:03:48 +05:30
laurenspriem
6b5c4f07c2 Fix people_all_page missing small person 2025-06-20 11:52:53 +05:30
Prateek Sunal
03e7ad6268 [mob][photos] fix streaming (#6316)
## Description

- [x] Add missing filter
- [x] Log only params for ffmpeg command

## Tests

- [x] Test HDR and non-HDR videos
2025-06-20 11:51:47 +05:30
Prateek Sunal
61bd4eefa7 fix: only log params used for ffmpeg command for future debug 2025-06-20 11:44:44 +05:30
Manav Rathi
92e33c8c20 Caption 2025-06-20 11:43:14 +05:30
Manav Rathi
82063ce972 Mention file rename 2025-06-20 11:24:59 +05:30
Manav Rathi
fd8bbc3c95 Take 1 2025-06-20 11:12:33 +05:30
Manav Rathi
9cca314ea9 Relay 2025-06-20 11:08:36 +05:30
laurenspriem
33a64106be Fix UI flash 2025-06-20 11:01:33 +05:30
Manav Rathi
519287805f new 2025-06-20 10:47:45 +05:30
ashilkn
36880fac6d Custom render sliver for a completely lazyloading gallery and improved scroll performance 2025-06-20 10:40:28 +05:30
laurenspriem
83bf37c8bb Small improvements to file info face editor 2025-06-20 10:31:29 +05:30
ashilkn
328b2f5961 Create FixedExtentSectionLayout to keep layout data of each section (group) in gallery 2025-06-20 09:51:57 +05:30
ashilkn
3244686058 Create GallerySections model for holding data about a gallery 2025-06-20 09:50:16 +05:30
Manav Rathi
8af2aa35d4 [web] Batched visibility updates for file selections (#6315) 2025-06-20 09:26:14 +05:30
Manav Rathi
f743dc14d5 Swap 2025-06-20 09:12:41 +05:30
Manav Rathi
573d269aac Batch 2025-06-20 09:07:51 +05:30
Manav Rathi
18ef86ddc3 Multi 2025-06-20 08:54:55 +05:30
Manav Rathi
d6a340ac79 Sketch 2025-06-20 08:47:42 +05:30
Manav Rathi
b217093bc9 Funnel 2025-06-20 07:46:45 +05:30
Manav Rathi
d265181c26 Conv 2025-06-20 07:42:44 +05:30
Manav Rathi
a022d4aaa2 [web] General code improvements (#6314) 2025-06-20 06:52:26 +05:30
Manav Rathi
c4f6ed6938 Fix 2025-06-20 06:44:19 +05:30
Manav Rathi
6e3a0b1b94 Restrict 2025-06-20 06:33:18 +05:30
Manav Rathi
f6b6cfa4d0 Tweak 2025-06-20 06:21:02 +05:30
Manav Rathi
3ba6ecc3c2 Rename 2025-06-20 06:11:48 +05:30
Manav Rathi
bdfaf6dcd2 Unused (ft enum is now a number) 2025-06-20 05:55:30 +05:30
Manav Rathi
6e5fb95e8f Re 2025-06-20 05:46:56 +05:30
Manav Rathi
0c81d2ff56 Prune 2025-06-20 05:19:10 +05:30
Manav Rathi
d1dd9aacfe [web] Handle custom errors from new API code paths (#6312) 2025-06-19 20:28:38 +05:30
Manav Rathi
7f18c4e669 Revert to older behaviour 2025-06-19 20:23:56 +05:30
Manav Rathi
fe334c0a24 Include case 2025-06-19 19:54:30 +05:30
Manav Rathi
8e0172eb03 Prune 2025-06-19 19:40:39 +05:30
Manav Rathi
95b73953d8 Use 2025-06-19 19:30:52 +05:30
Manav Rathi
34c606ddba Tweak 2025-06-19 19:16:31 +05:30
Manav Rathi
63597b3bc4 Handle in same file 2025-06-19 18:43:25 +05:30
Manav Rathi
7dd6e46543 Reduce indent 2025-06-19 18:31:57 +05:30
Manav Rathi
c090609045 case 2 2025-06-19 18:26:45 +05:30
Prateek Sunal
4c9e7956c1 fix: add missing filter 2025-06-19 18:22:41 +05:30
Manav Rathi
1b0bc7fd1e case 1 2025-06-19 18:21:36 +05:30
Manav Rathi
2baa16bba7 Reroute 2025-06-19 18:12:15 +05:30
Manav Rathi
3587f8cafd Conv 2 2025-06-19 17:55:58 +05:30
Manav Rathi
8e756215c0 Conv wip 2025-06-19 17:46:02 +05:30
Manav Rathi
6512820653 Conv 2025-06-19 17:13:48 +05:30
Manav Rathi
8dd4a178dd Outline 2025-06-19 17:01:52 +05:30
laurenspriem
89cb13ffde Fix UI alignment issues 2025-06-19 16:54:44 +05:30
Manav Rathi
81cb6c5ee4 Inline 2025-06-19 16:49:52 +05:30
Manav Rathi
d3cd20ef1a Inline 2025-06-19 16:48:15 +05:30
Manav Rathi
0670d02bb8 Inline 2025-06-19 16:44:22 +05:30
laurenspriem
eef3f19644 Fix setState after disposal 2025-06-19 16:29:08 +05:30
Manav Rathi
b1e1f877d0 Inline 2025-06-19 16:14:20 +05:30
Manav Rathi
6be2d19b35 Handle sub expired from new code 2025-06-19 15:48:04 +05:30
Manav Rathi
1b700c894d ft cleanup 2025-06-19 15:23:57 +05:30
Manav Rathi
2ec460a01e [desktop] [web] Regular dependency updates (#6310) 2025-06-19 14:54:40 +05:30
Manav Rathi
ac25abf7d5 Fixed upstream 2025-06-19 14:49:49 +05:30
Manav Rathi
19d6f437e3 web deps 2025-06-19 14:34:55 +05:30
Manav Rathi
c9edc409bc Dep updates
Removed @types/ffmpeg-static because their npm page says:

" This package has been deprecated. This is a stub types definition. ffmpeg-static provides its own type definitions, so you do not need this installed."
2025-06-19 14:26:53 +05:30
Manav Rathi
599ca52e16 [desktop] Fix macOS build - Take 2 (#6309) 2025-06-19 14:22:59 +05:30
Manav Rathi
023de8274d Fix macOS build - Take 2 2025-06-19 14:16:55 +05:30
Manav Rathi
1b77d0eca6 [desktop] Fix macOS CI build (#6308) 2025-06-19 13:09:01 +05:30
Manav Rathi
e9092fe01d Fix build - Take 2 2025-06-19 13:07:59 +05:30
Manav Rathi
8bc60f9b5b [desktop] Fix nightly build (#6307) 2025-06-19 12:36:36 +05:30
Manav Rathi
a851a1132d Fix build 2025-06-19 12:33:25 +05:30
Manav Rathi
93930d0636 [web] File handling internals refactoring (#6306) 2025-06-19 12:12:10 +05:30
Manav Rathi
d9941a7711 Use accessor 2025-06-19 11:53:16 +05:30
laurenspriem
d8be34000b Better alignment 2025-06-19 11:48:35 +05:30
Neeraj
da993fa9f6 [mob] Show download percentage (#6305)
## Description

## Tests
2025-06-19 11:38:03 +05:30
laurenspriem
f76e07337d Smaller debug info 2025-06-19 11:12:08 +05:30
Neeraj Gupta
b09f7d57a0 Show download percentage 2025-06-19 11:09:25 +05:30
Manav Rathi
2c1dd14098 fn accessor 2025-06-19 11:09:12 +05:30
Manav Rathi
6249e5e4d6 Skip parsing of fields we don't use 2025-06-19 10:50:11 +05:30
Manav Rathi
3aa6e5712b Move 2025-06-19 10:32:58 +05:30
laurenspriem
a9d2b09260 Fix no faces cases 2025-06-19 09:46:30 +05:30
laurenspriem
a964976b67 Remove redundant code 2025-06-19 09:39:13 +05:30
laurenspriem
e48caecfe0 Organize 2025-06-19 09:36:14 +05:30
laurenspriem
686ab262b2 Lower face detection threshold during indexing 2025-06-19 09:30:10 +05:30
Manav Rathi
2418c24901 Rename 2025-06-19 09:09:10 +05:30
Manav Rathi
9c5e46ee11 Sketch 2025-06-19 09:05:06 +05:30
laurenspriem
1bbdefbd41 UI improvements 2025-06-19 08:59:16 +05:30
laurenspriem
3dcd2570ad Fix buttons working 2025-06-19 08:28:35 +05:30
Manav Rathi
2ed28c3b70 [desktop] Revert HLS flag until release spec finalization (#6302) 2025-06-18 20:52:36 +05:30
Manav Rathi
3c87ef0d28 Revert HLS flag until release spec finalization 2025-06-18 20:47:56 +05:30
Manav Rathi
d0fc047fc9 [web] File handling internals refactoring (#6301)
There are quite a few TODOs, but for the only case where the new code is
running (cast), the unfinished business should not get in the way.
2025-06-18 20:40:45 +05:30
Manav Rathi
3e0448bbe5 Lint workrounds for photos tsc 2025-06-18 20:32:02 +05:30
Manav Rathi
773d98e20c Doc 2025-06-18 20:27:41 +05:30
Manav Rathi
29afe01c40 Fix error handling 2025-06-18 20:11:40 +05:30
Manav Rathi
d49288a1c0 Use new type in cast 2025-06-18 20:02:42 +05:30
Manav Rathi
d7faaa6592 Handle 2025-06-18 17:03:15 +05:30
Manav Rathi
b99b3646da Doc 2025-06-18 16:53:51 +05:30
Prateek Sunal
d4ca156f53 Merge remote-tracking branch 'origin/main' into improve-bg-processing 2025-06-18 16:46:52 +05:30
Prateek Sunal
4e59a4af5f fix: run suicide and cancellable operation simultaneously 2025-06-18 16:46:11 +05:30
Neeraj
15eb0321ac [server] Gracefully handle client retry (#6285)
## Description

## Tests
2025-06-18 16:42:27 +05:30
laurenspriem
f7dfb5df24 MVP file info feedback 2025-06-18 16:39:22 +05:30
Neeraj Gupta
52103c4b2f Fix: match value instead of ptr 2025-06-18 16:23:05 +05:30
Prateek Sunal
9fd724ff2d fix: restrict initial delay to internal users 2025-06-18 16:19:23 +05:30
Prateek Sunal
230244f2e5 Merge remote-tracking branch 'origin/main' into improve-bg-processing 2025-06-18 16:02:30 +05:30
Neeraj
7f14bdd0a0 [mob] Streaming minor fixes & refactoring (#6292)
## Description

- [x] Better HDR Detection
- [x] Code side all options are merged to one with more documentation
- [x] Better cutoff date
- [x] Max FPS 30
- [x] Max height 720p
- [x] Better Tonemapping
- [x] Remove redundant hls time and video bitrate

## Tests
2025-06-18 15:48:02 +05:30
laurenspriem
f71e5accce Restore face score minimum for ui 2025-06-18 15:32:44 +05:30
Neeraj
e055c750aa [mob] Log req id on network error (#6300)
## Description
We can use this to trace the request on the server (if it actually
reached server).

## Tests
2025-06-18 15:08:22 +05:30
Neeraj Gupta
11f2cce274 Log reqest id on error 2025-06-18 14:37:46 +05:30
Neeraj Gupta
69eef7043f Use nanoID for request id 2025-06-18 14:37:46 +05:30
Neeraj
60cc6fda96 [mob] Log event source for public link handling (#6298)
## Description
Opening public link within the app opens the collection twice, adding
logs to investigate the root cause.
## Tests
2025-06-18 14:36:55 +05:30
laurenspriem
ee603ba82e Log faceID issues 2025-06-18 14:26:19 +05:30
Prateek Sunal
8c8f0b46ef Merge remote-tracking branch 'origin/main' into streaming-out-of-beta 2025-06-18 14:03:30 +05:30
Prateek Sunal
231a77239f fix: disable streaming by default 2025-06-18 14:00:58 +05:30
Manav Rathi
89f58bf043 Sketch 2025-06-18 13:28:57 +05:30
Manav Rathi
4dc3421ab9 Split 2025-06-18 13:28:57 +05:30
Manav Rathi
ce9c227780 Type 2025-06-18 13:28:57 +05:30
Manav Rathi
0d77c0a49b Conv 2025-06-18 13:28:57 +05:30
Manav Rathi
f9b67e2197 R1 2025-06-18 13:28:57 +05:30
Manav Rathi
114ff5dc9b Take 1 at remote type 2025-06-18 13:28:57 +05:30
Manav Rathi
2a85d17cc1 Outline 2025-06-18 13:28:57 +05:30
Neeraj
d430a5cf31 [mob] Skip hash check for local only assets (#6295)
## Description
Also logging the stackTrace on exception
## Tests
2025-06-18 12:12:34 +05:30
Laurens Priem
f484f953fa [mob] Fix: use OS specific logic for computing device health (#6296)
## Description

## Tests
2025-06-18 12:11:36 +05:30
Francisco Pires Negromonte
c23d9cb96f [auth] Add custom icons for memed and sei (#6297)
Custom icons added for:

- Memed (a brazilian online prescription service)
- Sei! (Sistema Eletrônico de Informações)
2025-06-18 11:40:14 +05:30
Neeraj Gupta
eca8f3432e [mob] Fix: use OS specific logic for computing device health 2025-06-18 11:29:16 +05:30
Neeraj Gupta
2edce34f29 Generate l10n files 2025-06-18 11:23:40 +05:30
Neeraj Gupta
af0fccf36e Fix lint 2025-06-18 11:19:17 +05:30
Neeraj Gupta
f00d04c0b8 Fix translation 2025-06-18 11:13:54 +05:30
Neeraj Gupta
a310fbe14f Skip hash check for local only assets 2025-06-18 11:07:19 +05:30
laurenspriem
fc1e119fcd Return new clusterID 2025-06-18 11:07:12 +05:30
Laurens Priem
569423af12 [mob][photos] Various tiny changes (#6294)
## Description

Just copy and rename changes.
2025-06-18 10:02:05 +05:30
laurenspriem
8cd25252f8 Better copy 2025-06-18 09:53:35 +05:30
laurenspriem
1e63fe72cf More logging for birthday notification redirect 2025-06-18 09:49:17 +05:30
Prateek Sunal
1a5a7d71b6 fix: extract filters to simplify command 2025-06-17 20:46:26 +05:30
Prateek Sunal
91198d02e3 fix: remove the concept of cutoff date 2025-06-17 20:19:52 +05:30
Prateek Sunal
aa45fe898a Revert "fix: remove the limit for size and duration"
This reverts commit 9acfbf355c.
2025-06-17 20:07:09 +05:30
Prateek Sunal
92e013d5c9 fix: set streaming on by default 2025-06-17 20:03:43 +05:30
Prateek Sunal
9acfbf355c fix: remove the limit for size and duration 2025-06-17 20:02:03 +05:30
Prateek Sunal
59f64da447 fix: merge all options for ffmpeg hls 2025-06-17 19:56:22 +05:30
Manav Rathi
31f3958925 [web] Collection internals refactoring (#6290) 2025-06-17 19:21:03 +05:30
Manav Rathi
c78588c9c2 Fix "A component is changing an uncontrolled input to be controlled" 2025-06-17 19:15:16 +05:30
Manav Rathi
2dbeffe380 Match the behaviour of LocalCollection 2025-06-17 19:05:47 +05:30
Manav Rathi
9f9aa17cb4 Reorder 2025-06-17 18:59:15 +05:30
Manav Rathi
44ea3d92e2 Conv 2025-06-17 18:55:25 +05:30
Manav Rathi
21d3f42e2a Conv 2025-06-17 18:44:14 +05:30
Manav Rathi
b4052fcc00 Swap 2025-06-17 18:36:38 +05:30
Manav Rathi
fc7b8c18cb Fix error on unarchiving last archived item 2025-06-17 18:33:37 +05:30
Manav Rathi
6983dd9364 Pass directly 2025-06-17 18:12:42 +05:30
Manav Rathi
5877d64449 ontology 2025-06-17 18:06:15 +05:30
Manav Rathi
cc54faf78a Move 2025-06-17 17:40:26 +05:30
Manav Rathi
446b7bbd00 Conv 2025-06-17 17:21:00 +05:30
Manav Rathi
53468c9c3e Reactive 2025-06-17 17:01:53 +05:30
Manav Rathi
67e1cddfa1 Conv 2025-06-17 16:43:11 +05:30
Manav Rathi
5c83f3aa15 Outline 2025-06-17 16:34:05 +05:30
Manav Rathi
d32b44bc2d Outline 2025-06-17 15:52:32 +05:30
Manav Rathi
b70c216131 Rename 2025-06-17 15:43:51 +05:30
Manav Rathi
58e2b8ab52 Rename 2025-06-17 15:43:51 +05:30
Manav Rathi
8b7e630bed Move 2025-06-17 15:43:51 +05:30
laurenspriem
323c37c34e Change birthday copy 2025-06-17 15:35:59 +05:30
laurenspriem
b593f2d390 Rename file 2025-06-17 15:23:20 +05:30
laurenspriem
3800ba1dc9 Rename variables for clarity 2025-06-17 15:11:46 +05:30
laurenspriem
8a00cfe2e7 cluster feedback method for face level feedback 2025-06-17 15:04:29 +05:30
Manav Rathi
e8e0ff63fc [web] Collection storage internals refactoring (#6289) 2025-06-17 14:34:03 +05:30
Neeraj
c324267c5f [mob] Remove dead code (#6288)
## Description

## Tests
2025-06-17 13:33:21 +05:30
Manav Rathi
6a481f40da Impl 2025-06-17 13:29:45 +05:30
Manav Rathi
d02650047a Outline 2025-06-17 13:08:13 +05:30
Neeraj Gupta
b908fd8efb Remove dead code 2025-06-17 12:38:39 +05:30
laurenspriem
0aaed84549 Switch back to round face thumbnails 2025-06-17 12:32:28 +05:30
laurenspriem
7b980d83c1 Fix suggestion result not updating 2025-06-17 11:43:23 +05:30
Neeraj
dc9a90046e [mob][l10n] Fix arb with multiple plurals (#6287)
## Description

## Tests
2025-06-17 11:40:13 +05:30
laurenspriem
3cd5610b45 person gallery suggestion UI 2025-06-17 11:36:31 +05:30
Neeraj Gupta
48a392ef78 Fix arb 2025-06-17 11:21:25 +05:30
Neeraj Gupta
1e324b3e5c Update Podfile.lock 2025-06-17 11:06:08 +05:30
Manav Rathi
37967ecc05 Impl 1 2025-06-17 10:55:18 +05:30
Manav Rathi
b3776600e6 Sketch 2025-06-17 10:33:57 +05:30
Neeraj
90f3deb5e7 [mobile] New translations (#6269)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-app)
2025-06-17 10:28:39 +05:30
Neeraj Gupta
79d35f3710 Gracefully handle client retry 2025-06-17 10:16:49 +05:30
Manav Rathi
5b2463258c Take 2 2025-06-17 09:53:41 +05:30
Manav Rathi
7607003dd5 Trim 2025-06-17 09:43:52 +05:30
Manav Rathi
c4abdc3230 More details 2025-06-17 09:35:25 +05:30
laurenspriem
de079ca3b8 Fix in suggestion calc logic 2025-06-17 09:20:44 +05:30
Manav Rathi
80f1420170 Split 2025-06-17 09:13:35 +05:30
Manav Rathi
e3c7c8c994 Update 2025-06-17 08:35:09 +05:30
Manav Rathi
dabdb01ce6 Swap 2025-06-17 08:09:17 +05:30
Neeraj
6a4a971863 [mob] Refactor auth for public collections (#6278)
## Description

## Tests
2025-06-16 23:00:00 +05:30
Neeraj
de6a0ab5bc [auth] New translations (#6270)
New translations from
[Crowdin](https://crowdin.com/project/ente-authenticator-app)
2025-06-16 21:20:00 +05:30
Manav Rathi
41102dab4b Impl 1 2025-06-16 20:42:15 +05:30
Manav Rathi
9ac77d832f Take 1 2025-06-16 20:28:18 +05:30
Manav Rathi
2ab250e7db Outline 2025-06-16 20:21:45 +05:30
Manav Rathi
75e289640a Trim 2025-06-16 19:34:44 +05:30
Vishnu Mohandas
6bf4b9faf4 [auth] Remove dead code related to recovery key verification (#6281) 2025-06-16 19:27:17 +05:30
vishnukvmd
15925b47fb Remove dead code related to recovery key verification 2025-06-16 19:26:56 +05:30
Manav Rathi
a58ab7cd16 conv 2 2025-06-16 19:25:19 +05:30
Manav Rathi
e566b1596d convert wip 1 2025-06-16 17:48:33 +05:30
Manav Rathi
a61389b776 by id 2025-06-16 16:29:28 +05:30
Manav Rathi
14c9dad567 Inline 2025-06-16 16:29:28 +05:30
Manav Rathi
fc1f3d66a2 Rename 2025-06-16 16:29:28 +05:30
Manav Rathi
1d45f09162 Swap 2025-06-16 16:29:28 +05:30
Manav Rathi
33c321c7ff [photos] [desktop] Windows code signing (#6279) 2025-06-16 16:18:02 +05:30
Neeraj Gupta
6b336ed19a Remove redundant future 2025-06-16 16:08:57 +05:30
Neeraj Gupta
c6d57fe689 Refactor 2025-06-16 16:07:19 +05:30
Neeraj
154fb77a1f [mob] Add support for playing preview for shared public links (#6277)
## Description

## Tests
Tested locally and verified that I am able to play video preview
2025-06-16 16:02:26 +05:30
Neeraj Gupta
de1a87b855 Fix lint 2025-06-16 15:55:39 +05:30
Neeraj Gupta
d121bd5ed2 Refactor 2025-06-16 15:37:11 +05:30
Neeraj Gupta
fb55b785c2 Add support for playing preview for public links 2025-06-16 15:31:15 +05:30
laurenspriem
9ec9282492 Refactor methods 2025-06-16 15:03:27 +05:30
Neeraj Gupta
cf8ad57eea Merge remote-tracking branch 'origin/main' into shared_link_preview 2025-06-16 14:52:46 +05:30
Neeraj
0dad2dedeb [mob] Route to asset if sharedCollection has single asset (#6276)
## Description

## Tests
2025-06-16 14:52:31 +05:30
laurenspriem
276d75b47d Simple method for getting fast person suggestions 2025-06-16 14:41:49 +05:30
Neeraj Gupta
1230ed3018 Rename PreviewVideoStore - VideoPreviewService 2025-06-16 14:41:18 +05:30
Manav Rathi
c0d26e80b3 Windows code signing 2025-06-16 14:30:35 +05:30
laurenspriem
ea439c939f Tiny performance improvement 2025-06-16 14:29:08 +05:30
Neeraj
7976873384 [mob] Enable resumable download for all (#6275)
## Description

## Tests
2025-06-16 14:25:02 +05:30
Neeraj Gupta
bedda2cbc4 Rename 2025-06-16 14:21:46 +05:30
Neeraj Gupta
dd8a355ac4 Enable resumable download for all 2025-06-16 14:16:22 +05:30
Neeraj
f2bc7a3f20 [mob] Increase fileSize limit to 10GiB (#6274)
## Description

## Tests
2025-06-16 14:09:15 +05:30
Neeraj Gupta
5820bb6c1b Increase fileSize limit to 10GiB 2025-06-16 14:04:23 +05:30
Manav Rathi
d93f52ad1a Up 2025-06-16 13:39:11 +05:30
Manav Rathi
383c12f11b [desktop][web] Increase file size limit to 10 GB (#6273)
For all users
2025-06-16 13:31:48 +05:30
Manav Rathi
5839bbd690 Prep for release 2025-06-16 13:27:45 +05:30
Prateek Sunal
60b040f54b fix: logging in bg 2025-06-16 13:02:52 +05:30
Manav Rathi
60c7adbb8a [web] Collection APIs refactoring (#6272) 2025-06-16 11:50:57 +05:30
Manav Rathi
d45d3c38e6 Switch 2025-06-16 11:37:14 +05:30
Manav Rathi
89897aef4b Match casing 2025-06-16 11:30:25 +05:30
Manav Rathi
dc3a242dcb Close parent menu after closing child menu
Fixes the errors on console when selecting an collection sort order
2025-06-16 11:28:38 +05:30
Manav Rathi
03f418245d Update 2025-06-16 11:12:01 +05:30
Manav Rathi
8046e2fd74 New and use 2025-06-16 10:51:58 +05:30
Manav Rathi
2e05ff06f4 Use 2025-06-16 10:40:21 +05:30
Keerthana
bf831a3057 [auth] Add Ankara University icon support (#6260)
## Add Ankara University custom icon to Auth

Ankara University has recently started implementing 2FA in their student
information system.
2025-06-16 10:18:40 +05:30
Manav Rathi
8b691fe905 New 2025-06-16 10:03:28 +05:30
Manav Rathi
7b8230fa6c Sketch 2025-06-16 09:41:06 +05:30
Manav Rathi
379491f3de [web] New translations (#6268)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2025-06-16 08:33:28 +05:30
Crowdin Bot
9643b244f6 New Crowdin translations by GitHub Action 2025-06-16 01:17:54 +00:00
Crowdin Bot
48c16e92e9 New Crowdin translations by GitHub Action 2025-06-16 01:05:02 +00:00
Crowdin Bot
6143b68eb1 New Crowdin translations by GitHub Action 2025-06-16 00:41:45 +00:00
Vishnu Mohandas
73521f8253 [auth] Consolidate lock screen settings (#6267)
## Description

Move code related to lock screen settings from `Configuration` to
`LockScreenSettings`.
2025-06-15 20:08:12 +05:30
vishnukvmd
673ae95aa8 Typo 2025-06-15 18:56:53 +05:30
vishnukvmd
33a64c9887 Consolidate lock screen settings 2025-06-15 18:49:11 +05:30
Keerthana
576350bc1f [docs][script] update quickstart to provide choice to start cluster (#6257)
## Description
- This PR updates `quickstart.sh` to prompt user to start cluster, which
acts as a way to modify default configuration.
- Further, indication of usage of MinIO web console is provided in the
`quickstart.sh` in commented form, allowing users to administer the
object storage using web based interface.
- Updation of requirements to provide more clarity in self-hosting
documentation

## Tests
- [x] I have tested these changes on my system
2025-06-15 18:05:57 +05:30
Vishnu Mohandas
ad3a85d80b [auth] Remove dead code (#6266) 2025-06-15 17:53:36 +05:30
vishnukvmd
e27cc11a49 [auth] Remove dead code 2025-06-15 17:53:20 +05:30
Vishnu Mohandas
8504b3984a [docs] Update export/index.md 2025-06-14 21:52:25 +05:30
Laurens Priem
68f5f08df5 [mob][photos] Improve caching for memories and magic (#6252)
## Description

- Fixes issues with chinese characters
- Runs decoding in computer

## Tests

Tested in debug mode on my pixel phone.
2025-06-14 10:55:43 +05:30
Keerthana
29024b91fe [server] uncomment environment variables for web 2025-06-14 10:07:03 +05:30
Yusuf Danış
d96a24c2ca [auth] Add Ankara University icon support fix 2025-06-13 21:41:34 +03:00
Yusuf Danış
0f41eb99f2 [auth] Add Ankara University icon support 2025-06-13 21:26:13 +03:00
Manav Rathi
7ad277c666 [web] Code improvements (#6259)
(Public links etc)
2025-06-13 17:28:52 +05:30
Manav Rathi
002cfd5419 Leftovers 2025-06-13 17:17:10 +05:30
Manav Rathi
9e8e57051a Lint workarounds 2025-06-13 17:08:10 +05:30
Manav Rathi
08c446a57c Tweak 2025-06-13 16:58:04 +05:30
Manav Rathi
fe59a6f5b9 2 2025-06-13 16:40:31 +05:30
Manav Rathi
c234688542 re 2025-06-13 16:36:52 +05:30
Manav Rathi
f96e7507bc Conv 2025-06-13 16:28:07 +05:30
Manav Rathi
beac9f5756 New 2025-06-13 16:22:04 +05:30
Laurens Priem
3eb700661b Update mobile/lib/utils/cache_util.dart
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-06-13 16:02:12 +05:30
Manav Rathi
17f9c8299f Re 2025-06-13 15:19:29 +05:30
Manav Rathi
7cecb80a64 Reuse 2025-06-13 14:06:16 +05:30
Manav Rathi
e4ae03a252 Tweak 2025-06-13 13:46:38 +05:30
Manav Rathi
c52df50faf wrap 2025-06-13 13:36:29 +05:30
Manav Rathi
3502579b11 Unused 2025-06-13 13:21:16 +05:30
Manav Rathi
d58c500c97 Reroute 2025-06-13 12:59:27 +05:30
Manav Rathi
3ee741abbb Impl 2025-06-13 12:21:08 +05:30
Manav Rathi
cf424e59f6 Sugar
> Because primitives can be spread into objects as well, and from the
> observation that all falsy values do not have enumerable properties, we can
> simply use a logical AND
>
> https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax
2025-06-13 12:05:46 +05:30
Manav Rathi
634a4e595c Impl 2025-06-13 11:49:10 +05:30
Manav Rathi
3da404a714 Sketch 2025-06-13 11:10:49 +05:30
Keerthana
bdcd75a3be [docs] refactor docker compose start in quickstart 2025-06-13 10:27:59 +05:30
Manav Rathi
a75b9c0574 [web] Iterate on the new collection handling lower layers (#6258) 2025-06-13 10:27:38 +05:30
Manav Rathi
f407af363a Lint workaround 2025-06-13 10:20:35 +05:30
Manav Rathi
17378319f6 Other places too 2025-06-13 10:03:52 +05:30
Manav Rathi
86dc335137 Both 2025-06-13 09:34:25 +05:30
Manav Rathi
4d9b7fa905 Alt 2025-06-13 08:49:44 +05:30
Manav Rathi
9fde80593f Temp scaffold and cast 2025-06-13 06:40:30 +05:30
Manav Rathi
fdc428bde4 Reorder 2025-06-13 06:19:16 +05:30
Manav Rathi
4edc144255 fin 2025-06-13 06:19:16 +05:30
Manav Rathi
e5b60d434d Pub 2025-06-13 06:19:16 +05:30
Manav Rathi
7ee222925d MM type 2025-06-13 06:19:16 +05:30
Manav Rathi
42a6697531 Not really 2025-06-13 06:19:16 +05:30
Manav Rathi
223fd9a7d5 Start count at 1 (same as existing code) 2025-06-13 06:19:16 +05:30
Keerthana
9693cb3c8d [docs] Added socials to docs
## Description
Added Ente's Bluesky and Instagram accounts
2025-06-13 04:46:27 +05:30
Keerthana
898c0e31a1 [docs] update quickstart documentation 2025-06-13 03:54:53 +05:30
Keerthana
bab661914d [docs][script] provide option to start cluster and update pre-requisites 2025-06-13 03:40:33 +05:30
AmanRajSinghMourya
3c4a92612d Fix grid view size 2025-06-12 19:15:00 +05:30
AmanRajSinghMourya
000002c327 Fix text alignment 2025-06-12 18:58:51 +05:30
Manav Rathi
dc051e75e3 [web] Code improvements (#6253)
Still iterating on the code structure for this
2025-06-12 17:28:52 +05:30
Manav Rathi
b500912650 Refactor 2025-06-12 17:09:23 +05:30
Manav Rathi
7e13f8b1cc Rearrange 2025-06-12 16:32:58 +05:30
Manav Rathi
d535cfc5a4 sk 3 2025-06-12 16:08:15 +05:30
Prateek Sunal
25b96825cc Merge remote-tracking branch 'origin/main' into improve-bg-processing 2025-06-12 15:58:58 +05:30
Prateek Sunal
6d952cc89e fix: only throw notifications for sync to internal users 2025-06-12 15:52:33 +05:30
laurenspriem
e0303cd2a6 Set minimum cluster size to 2 2025-06-12 15:16:03 +05:30
Prateek Sunal
4d0a6e93ea fix(remote_sync): prioritize non-updated files, push videos to back in bg for uploads 2025-06-12 15:15:18 +05:30
laurenspriem
15f844e538 import 2025-06-12 15:09:39 +05:30
laurenspriem
56db78d699 Caching test in moments section 2025-06-12 15:09:33 +05:30
laurenspriem
a9cf299a4f Dev logging in computer 2025-06-12 15:06:23 +05:30
laurenspriem
5f75db4e1f Clean old method 2025-06-12 15:02:46 +05:30
laurenspriem
8459d7ead6 Integrate better caching methods 2025-06-12 15:01:14 +05:30
Manav Rathi
64e671b0d2 Try without it first 2025-06-12 14:39:49 +05:30
Manav Rathi
23609c4bb9 Revert the envelope terminology 2025-06-12 14:35:41 +05:30
Prateek Sunal
331521306e fix(bg): don't run HomeWidget sync in bg 2025-06-12 14:33:44 +05:30
Prateek Sunal
141b5603eb fix: simplify remote sync code 2025-06-12 14:33:10 +05:30
Manav Rathi
8585f3881c Sketch 2 2025-06-12 14:12:26 +05:30
Manav Rathi
432d44f4af Sketch 2025-06-12 13:43:46 +05:30
Manav Rathi
49b4adc843 Test a suffix 2025-06-12 13:29:14 +05:30
Manav Rathi
228bf55a8d C2 2025-06-12 12:29:36 +05:30
Manav Rathi
00aabfc283 Separate concerns 2025-06-12 12:11:41 +05:30
laurenspriem
8463dc8721 Separate caching util in computer 2025-06-12 11:54:07 +05:30
Manav Rathi
fe224b5ab2 dec 2025-06-12 11:43:01 +05:30
Manav Rathi
6e9f3bfbe2 [web] Explore alternative internal API for magic metadata (#6250) 2025-06-12 11:24:22 +05:30
Manav Rathi
d44fe31277 Implement 2025-06-12 11:14:02 +05:30
Keerthana
709a9f5996 Merge branch 'main' into docs/revamp 2025-06-12 10:43:59 +05:30
Manav Rathi
71867dd63e Move and doc 2025-06-12 09:56:43 +05:30
Manav Rathi
3db9ded294 Schema 1 2025-06-12 08:39:17 +05:30
Manav Rathi
844b893ebf Doc 2025-06-12 08:25:22 +05:30
Prateek Sunal
a6c69b80e3 fix: init hw prefs 2025-06-11 20:27:45 +05:30
Manav Rathi
7885ad18c6 Take 3 2025-06-11 20:14:53 +05:30
Manav Rathi
dab8b634bd Take 2 2025-06-11 18:51:29 +05:30
Manav Rathi
d59eed6974 Take 1 2025-06-11 18:35:30 +05:30
AmanRajSinghMourya
b1837dec75 Resolve merge conflict 2025-06-11 18:28:41 +05:30
Manav Rathi
b5edd39517 Trim 2025-06-11 18:09:19 +05:30
Manav Rathi
0931e590a9 Conv 2025-06-11 18:00:44 +05:30
Prateek Sunal
89917d6168 fix: bump version code and number 2025-06-11 17:42:16 +05:30
Prateek Sunal
41ebc50538 Merge remote-tracking branch 'origin/main' into improve-bg-processing 2025-06-11 17:40:41 +05:30
Prateek Sunal
f7ace0a57f fix: re-enable foreground sync 2025-06-11 17:39:12 +05:30
Manav Rathi
b7b7d2382b [web] General code improvements (#6246) 2025-06-11 17:30:19 +05:30
Manav Rathi
49d3b033cb Update patch versions 2025-06-11 17:21:39 +05:30
Manav Rathi
5a78b77da5 Match the package.json name 2025-06-11 17:15:55 +05:30
Manav Rathi
34f3c55573 Prevent layout shift 2025-06-11 17:04:35 +05:30
Manav Rathi
6521921687 Reduce layout shift 2025-06-11 16:56:34 +05:30
Prateek Sunal
806bf2cd31 fix: update period to 60m, make BgTask cancellable, init crypto 2025-06-11 16:47:13 +05:30
Prateek Sunal
ff3d105271 chore: add async & update workmanager source 2025-06-11 16:46:10 +05:30
Prateek Sunal
4d30d8837a chore: lint fix 2025-06-11 16:45:54 +05:30
Prateek Sunal
f35e2fb49c fix: only throttle for videos when multipart is not enabled 2025-06-11 16:45:45 +05:30
Prateek Sunal
cae140b239 chore: lint fix 2025-06-11 16:45:06 +05:30
Prateek Sunal
b11452d29a fix: content type not set issue 2025-06-11 16:44:57 +05:30
Manav Rathi
155d939ae8 The button remains disabled if first input is empty 2025-06-11 16:38:33 +05:30
AmanRajSinghMourya
11383d3689 Merge branch 'main' into memory_improvement 2025-06-11 16:36:07 +05:30
Manav Rathi
00d4d27277 Update 2025-06-11 16:34:16 +05:30
Aman Raj Singh Mourya
97309e9a6e [mob][photos] Memory swipe (#6245)
## Description
Enable swipe between memories.
2025-06-11 16:31:02 +05:30
Manav Rathi
501bba0283 Unyup 2025-06-11 16:29:38 +05:30
AmanRajSinghMourya
e51506b9f8 Pause animtaion when delete/share action is performed 2025-06-11 16:28:34 +05:30
Manav Rathi
df5b46e0d3 Redo 2025-06-11 16:28:32 +05:30
AmanRajSinghMourya
55dd0ea830 Refactor tap handling in video widgets to prevent interaction when viewing memories 2025-06-11 16:27:23 +05:30
Manav Rathi
7e76f40f43 Handle 2025-06-11 15:28:29 +05:30
Manav Rathi
1c2e81353d New 2025-06-11 14:54:04 +05:30
Manav Rathi
bf53b61d03 redo 2 2025-06-11 14:33:44 +05:30
laurenspriem
6256ddfc78 Extra error handling around face thumbnail caching 2025-06-11 14:17:09 +05:30
Manav Rathi
6937701fa4 vis 2025-06-11 14:16:29 +05:30
AmanRajSinghMourya
29962197d7 Refractor 2025-06-11 14:13:22 +05:30
AmanRajSinghMourya
287e6da537 To avoid shuffling of memories when user see all the files in one memory 2025-06-11 14:13:06 +05:30
Manav Rathi
069958d220 Unyup and redo 2025-06-11 14:06:38 +05:30
Neeraj
d95fb14f8e [mob] Reduce home gallery refresh during iOS upload/indexing (#6242) 2025-06-11 13:49:56 +05:30
Manav Rathi
4c231691f6 re 2025-06-11 13:49:39 +05:30
Prateek Sunal
718a81e41d chore: bump locks 2025-06-11 13:49:13 +05:30
laurenspriem
8d67d07f27 Increase face thumbnail cache 2025-06-11 13:46:31 +05:30
Manav Rathi
e965aa370c Inline 2025-06-11 13:42:09 +05:30
Manav Rathi
daaefd8e18 Match padding 2025-06-11 13:39:50 +05:30
Manav Rathi
138b4a5cc4 Conv 2025-06-11 13:19:34 +05:30
Manav Rathi
ed48c74885 Specific 2025-06-11 13:06:44 +05:30
Manav Rathi
27b816e50e Sp 2025-06-11 13:01:06 +05:30
Manav Rathi
b5ac9a9591 Rework 2025-06-11 12:53:19 +05:30
laurenspriem
7ec1eaf334 Extract strings 2025-06-11 12:51:55 +05:30
laurenspriem
e1e66ca670 Keep button in place 2025-06-11 12:47:13 +05:30
Manav Rathi
673a8df520 unyup 2025-06-11 12:41:41 +05:30
Manav Rathi
f55e718aca Conv 2025-06-11 12:39:02 +05:30
Manav Rathi
15008d0559 Conv 2025-06-11 12:35:13 +05:30
Manav Rathi
a1a45df14e use 2025-06-11 12:29:07 +05:30
Prateek Sunal
c7b06d8a69 Merge remote-tracking branch 'origin/main' into improve-bg-processing 2025-06-11 12:25:26 +05:30
laurenspriem
c0b0fa44af Smooth grid extension 2025-06-11 12:11:25 +05:30
Neeraj Gupta
38bacb17e0 Simplify 2025-06-11 11:57:47 +05:30
Neeraj Gupta
6febb54478 Ignore fileUpdate event if asset was recently requested 2025-06-11 11:53:34 +05:30
Manav Rathi
263bfa55e5 [web] SRP code improvements (#6241) 2025-06-11 11:35:10 +05:30
laurenspriem
4c9a09866b Use slivers instead 2025-06-11 11:23:41 +05:30
Manav Rathi
a43d19fb79 Obs 2025-06-11 11:13:27 +05:30
Manav Rathi
999cc91f6c Fix cyclic dep 2025-06-11 11:12:55 +05:30
Manav Rathi
488886d685 Rename 2025-06-11 11:06:32 +05:30
Manav Rathi
485fbcf393 Doc 2025-06-11 11:04:06 +05:30
Manav Rathi
f434e0dd67 Part of the subclass 2025-06-11 10:44:07 +05:30
Manav Rathi
cbb35a8e3c Rearrange 2025-06-11 10:39:22 +05:30
laurenspriem
caff966d3b More faces option 2025-06-11 10:38:00 +05:30
Manav Rathi
7539a1003c re 2025-06-11 10:34:18 +05:30
laurenspriem
ee24d12d8c Simpler fallback for little faces 2025-06-11 10:32:27 +05:30
Manav Rathi
4dc424464e Doc and cleanup 2025-06-11 10:03:21 +05:30
Manav Rathi
977552fa81 Unlog 2025-06-11 09:36:19 +05:30
Manav Rathi
644bfe72af Move to service layer 2025-06-11 09:32:33 +05:30
Manav Rathi
fc21932a34 Conv 2025-06-11 09:09:18 +05:30
Manav Rathi
a1a480f35e Rename 2025-06-11 09:04:34 +05:30
Manav Rathi
61d07242ad Conv 2025-06-11 09:03:51 +05:30
laurenspriem
ea217404e9 Early stopping for efficiency 2025-06-11 09:00:18 +05:30
laurenspriem
6f7250d179 Remove unneeded fallback 2025-06-11 08:58:13 +05:30
laurenspriem
9e27951c3e Remove old comment 2025-06-11 08:49:41 +05:30
Manav Rathi
91891fc5b5 Rearrange 2025-06-11 08:15:22 +05:30
Manav Rathi
b62ea7b28f [web] SRP related refactoring (#6239) 2025-06-10 20:44:35 +05:30
Manav Rathi
893e1e307d Conv 2025-06-10 20:34:01 +05:30
Manav Rathi
6b4653a996 Conv 2025-06-10 20:29:41 +05:30
Manav Rathi
06dcc697f9 Tweak 2025-06-10 20:06:23 +05:30
Manav Rathi
f62872808d Reorder 2025-06-10 19:50:52 +05:30
Manav Rathi
0fe5b45f8b Use 2025-06-10 19:30:51 +05:30
Manav Rathi
44e71d8b09 New 2025-06-10 19:25:21 +05:30
Manav Rathi
abc1f2cd64 Rename 2025-06-10 19:23:08 +05:30
Manav Rathi
8a8d0e4069 Reorder 2025-06-10 19:21:04 +05:30
Manav Rathi
ec3df01606 Tweak 2025-06-10 19:20:14 +05:30
Manav Rathi
851fd08d5d inline hop 2025-06-10 19:13:58 +05:30
AmanRajSinghMourya
c7cb728feb Merge branch 'main' into album_fixes 2025-06-10 19:07:27 +05:30
Manav Rathi
43ae1de2b5 Move 2025-06-10 19:07:07 +05:30
AmanRajSinghMourya
13bac40aeb Fix: resolve conflict in pubspec.yaml 2025-06-10 19:03:41 +05:30
AmanRajSinghMourya
1e5abf20cd Improve memory navigation and data handling in memory widgets 2025-06-10 18:58:19 +05:30
AmanRajSinghMourya
6a796debb8 Callback to go to next/previous memories 2025-06-10 18:56:49 +05:30
Manav Rathi
7373a07a71 Stash and unstash 2025-06-10 18:53:15 +05:30
Manav Rathi
f9fc6b83d0 schema 2025-06-10 18:46:21 +05:30
Manav Rathi
6ff586c3e9 Move 2025-06-10 18:30:29 +05:30
Manav Rathi
fc9b2a186b Unnest 2025-06-10 18:20:05 +05:30
Manav Rathi
dfbf51fa36 Conv 2025-06-10 18:16:48 +05:30
Manav Rathi
6a417750b2 [web] Translation tweaks (#6238) 2025-06-10 18:13:23 +05:30
Manav Rathi
0d08907e9c Casing 2025-06-10 18:09:33 +05:30
Manav Rathi
589acf459d Rename 2025-06-10 18:07:35 +05:30
Manav Rathi
5d0dff7172 [web] Signup flow code improvements (#6237) 2025-06-10 17:58:17 +05:30
Manav Rathi
9827ca5048 Fix 2025-06-10 17:51:24 +05:30
Manav Rathi
c7341e65e9 Below 2025-06-10 17:42:22 +05:30
Neeraj
c1a2c76a38 [mob] Fix: Take wakelock to continue video download (#6234)
## Description
Note: Review by commit, we have just removed old widget and renamed the
media_kit_new to media_kit.

Previously, while using media_kit, as we were not taking wakeload before
video playback actually starts, the download was getting paused when
dispose was getting called.

Also, increased the file size limit for internal users.



## Tests
2025-06-10 17:39:06 +05:30
AmanRajSinghMourya
3d58698bfc Use better name + code refractoring 2025-06-10 17:05:25 +05:30
laurenspriem
71c70dcc8c Fix people cascade effect 2025-06-10 17:01:33 +05:30
Manav Rathi
584ca125a6 Unyup 2025-06-10 16:35:02 +05:30
Manav Rathi
4b616dcbe1 Unnest 2025-06-10 16:31:32 +05:30
Manav Rathi
ac59eae329 Vis 2025-06-10 16:21:37 +05:30
Neeraj Gupta
44a1e6c28b Increase file size for internal users 2025-06-10 16:18:00 +05:30
Neeraj Gupta
d6500f8cb7 Fix: Take wakelock before playback to continue downloading 2025-06-10 16:15:32 +05:30
Manav Rathi
769704f0fc Use built in prop 2025-06-10 16:13:10 +05:30
Neeraj Gupta
ba7fbcc02f Rename 2025-06-10 16:12:23 +05:30
Neeraj Gupta
613a08dd3a Remove unused widget 2025-06-10 16:09:59 +05:30
Manav Rathi
7087de0c94 Form prop 2025-06-10 16:06:14 +05:30
Manav Rathi
afa0d87c76 Label 2025-06-10 15:53:52 +05:30
Manav Rathi
a6428608e6 Use majority terminology in more places 2025-06-10 15:28:16 +05:30
Manav Rathi
550d026061 Update 2025-06-10 15:22:44 +05:30
Manav Rathi
45a41497df Conv 2025-06-10 14:59:51 +05:30
Manav Rathi
a0e9d8340c Add temp check 2025-06-10 14:49:21 +05:30
Manav Rathi
a48b40fc0c Tweak 2025-06-10 14:22:11 +05:30
Keerthana
fa7d534c56 Merge branch 'main' into docs/revamp 2025-06-10 14:12:24 +05:30
Keerthana
92d1a9d335 [docs] refactor requirements 2025-06-10 14:10:22 +05:30
Manav Rathi
b8f8d90d13 Conv 2025-06-10 14:09:59 +05:30
Manav Rathi
c1c40581d5 Storage layer 2025-06-10 13:50:51 +05:30
Manav Rathi
4aacd1e47a Conv 2025-06-10 13:44:14 +05:30
Manav Rathi
4cc9311343 Schema 2025-06-10 13:34:50 +05:30
Manav Rathi
9f0e5d712f Update 2025-06-10 13:22:40 +05:30
Manav Rathi
92096e6a21 casing 2025-06-10 13:21:29 +05:30
Manav Rathi
002ef8ca5c Tweak 2025-06-10 13:17:50 +05:30
Manav Rathi
0e4ce445e0 Doc 2 2025-06-10 13:13:12 +05:30
Manav Rathi
7a11547a14 Doc 2025-06-10 13:08:49 +05:30
Manav Rathi
29ac7b7df9 Move and rename 2025-06-10 12:58:03 +05:30
Manav Rathi
3b749f0e75 Doc 2025-06-10 12:23:54 +05:30
AmanRajSinghMourya
edc9917b57 Work around for swipe between memories 2025-06-10 12:09:51 +05:30
Manav Rathi
bab5c3697b Doc 2025-06-10 12:07:04 +05:30
Manav Rathi
043b8e42c0 Outline 2025-06-10 11:46:15 +05:30
Laurens Priem
29d955933d [Docs] Ente help on local indexing and notifications (#6226)
## Description

- Add some info on (disabling) local indexing
- Add some info on notifications

## Tests
2025-06-10 11:12:32 +05:30
Manav Rathi
a3b5d8dcfd [web] SRP code refactoring (#6232) 2025-06-10 10:26:36 +05:30
Manav Rathi
86ba7a6d7a Outline 2025-06-10 10:08:33 +05:30
Manav Rathi
38bbd8a5d7 Note 2025-06-10 09:40:12 +05:30
Keerthana
8339e9e1ca [docs] fix caddy configuration 2025-06-10 09:38:16 +05:30
Manav Rathi
b359258d8b Refactor 2025-06-10 09:32:11 +05:30
Manav Rathi
f94a65fcfb Refactor 2025-06-10 09:10:47 +05:30
Manav Rathi
58c4ada254 Specific error 2025-06-10 08:29:24 +05:30
Manav Rathi
a57b2448d0 Reorder 2025-06-10 08:02:20 +05:30
Manav Rathi
f8093a65a6 Move 2025-06-10 07:57:44 +05:30
Manav Rathi
81eff305d3 Split 2025-06-10 07:57:44 +05:30
Manav Rathi
093ff9c395 Split 2025-06-10 07:57:44 +05:30
Manav Rathi
857fabadbe Tweak 2025-06-10 07:57:44 +05:30
Manav Rathi
9074441c5a Tweak 2025-06-10 07:57:44 +05:30
Manav Rathi
d2b33defa1 [desktop] Proceed gracefully if safe store is unavailable when saving (#6231) 2025-06-10 05:31:59 +05:30
Manav Rathi
aec107b6b7 [desktop] Proceed gracefully if safe store is unavailable when saving 2025-06-10 05:21:09 +05:30
Brogio
7d56db701c Add socials
Added Ente's Bluesky and Instagram accounts
2025-06-09 18:00:07 +02:00
Keerthana
de9e48aa98 [docs] revamp introduction and remove deprecations
## Description

This PR revamps introduction page to be self-contained, eliminating the
need for overview section. Dead configuration,deprecated warning and
inconsistencies have been fixed for Tailscale community guide.

A preview of the updated documentation can be tracked at:
https://ente-wy9m.vercel.app/
2025-06-09 19:00:25 +05:30
Laurens Priem
6d13535d8d [mob][photos] Lower on this day requirements (#6227)
## Description

## Tests
2025-06-09 18:54:08 +05:30
laurenspriem
0df7b20fae Lower on this day requirements 2025-06-09 18:27:57 +05:30
laurenspriem
84f7b96998 Add notifications entry 2025-06-09 18:13:38 +05:30
laurenspriem
b1810c7ea6 Add local indexing info 2025-06-09 17:50:43 +05:30
laurenspriem
6aeb508d6e Remove old info 2025-06-09 17:50:31 +05:30
Keerthana
d9d4ebdc01 [docs] remove deprecated caution on docker in Tailscale guide 2025-06-09 17:11:03 +05:30
Keerthana
2b70b22117 [docs] lint and remove unneeded vite config 2025-06-09 17:06:13 +05:30
Keerthana
a12088f2f1 [docs] update introduction page 2025-06-09 17:01:28 +05:30
github-actions[bot]
dbea39c182 [mobile] New translations (#6220)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-app)

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-06-09 16:53:10 +05:30
t4ba
269e9ceea7 [auth] Custom Icon for tebex.io (#6196)
pterodactyl game panel icon and tebex icon
2025-06-09 16:51:22 +05:30
AmanRajSinghMourya
80adeecb6b Minor UI changes 2025-06-09 16:33:29 +05:30
AmanRajSinghMourya
19eb3a5141 fix: set defailt time to 10 seconds if the video duration is null & avoid un-necessary playbackCallback is isFromMemories is true 2025-06-09 16:33:05 +05:30
Manav Rathi
25bc6220b3 [web] General code improvements (#6223) 2025-06-09 15:32:21 +05:30
Manav Rathi
a938c82fc6 Join 2025-06-09 14:58:46 +05:30
Manav Rathi
147b06f08e Inline 2025-06-09 14:56:58 +05:30
Manav Rathi
55be8bc5d7 Conv 2025-06-09 14:47:15 +05:30
Manav Rathi
dfd80a136b Conv 2025-06-09 14:44:05 +05:30
Manav Rathi
31f393ad5b Tweak 2025-06-09 14:36:07 +05:30
Manav Rathi
5b3f15de34 Conv 2025-06-09 14:31:19 +05:30
Manav Rathi
009408581d Conv 2025-06-09 14:20:35 +05:30
Manav Rathi
960d2fd2b1 Tweak 2025-06-09 14:06:28 +05:30
Manav Rathi
b4b34e89bc Move 2025-06-09 13:59:22 +05:30
Manav Rathi
cc8dc77f92 re 3 2025-06-09 13:48:07 +05:30
Manav Rathi
350af6a43f re 2 2025-06-09 13:45:48 +05:30
Manav Rathi
71308f28c3 re 2025-06-09 13:40:18 +05:30
Manav Rathi
2d2f9d348d norm 2025-06-09 13:29:10 +05:30
AmanRajSinghMourya
6d5a2a956f Minor fix 2025-06-09 13:23:53 +05:30
Manav Rathi
938afa34c9 Min 2025-06-09 13:23:32 +05:30
Manav Rathi
4df59e7bf2 That's why 2025-06-09 13:21:03 +05:30
AmanRajSinghMourya
613230d218 Refactor: add border radius to NoThumbnailWidget 2025-06-09 13:08:07 +05:30
AmanRajSinghMourya
65add2e448 Fix merge conflict 2025-06-09 13:07:33 +05:30
Manav Rathi
bfa396b93f [web] General code improvements (#6222) 2025-06-09 13:01:30 +05:30
Manav Rathi
e473c1852c lint 2025-06-09 12:57:31 +05:30
Manav Rathi
088cf4adef Conv 2025-06-09 12:43:01 +05:30
Manav Rathi
5b0a04142f Outline 2025-06-09 11:56:19 +05:30
Manav Rathi
d1d7af4f7e Outline 2025-06-09 11:47:38 +05:30
Aman Raj Singh Mourya
7b0190ff8a [photos][mob] Deselect albums with back navigation in albums list (#6183)
## Description

This is very similar to #6182. However instead of the album selection in
the second home tab, it applies to the full albums list.

## Tests
2025-06-09 11:39:26 +05:30
Manav Rathi
e2d103f20f Use correct type 2025-06-09 11:34:30 +05:30
Manav Rathi
7bfb2f0fe8 Update 2025-06-09 11:21:31 +05:30
Manav Rathi
8adebbba3f Doc 2025-06-09 11:09:29 +05:30
Manav Rathi
719c8f7b9c Move and doc 2025-06-09 11:04:33 +05:30
Neeraj
af0f1600d9 [auth] New translations (#6221)
New translations from
[Crowdin](https://crowdin.com/project/ente-authenticator-app)
2025-06-09 11:00:36 +05:30
Neeraj
b014cb57c0 [auth] Add custom icon for FZJ (#6195)
Add custom icon for FZJ (Forschungszentrum Jülich)
2025-06-09 11:00:00 +05:30
Manav Rathi
1832f9f996 Conv 2025-06-09 10:40:30 +05:30
Manav Rathi
a94a0f199a Rearrange 2025-06-09 10:33:49 +05:30
Neeraj
2c0dc85d70 fix(android): allow cleartext traffic for domains other ente (#6201)
Fixes #6186

## Description

It seems that while trying to show user certificates we broke cleartext
connections. Since having an SSL certificate for self hosted ente
deployments is not mandatory, we shouldn't restrict users from making
cleartext connections
2025-06-09 10:25:16 +05:30
Manav Rathi
ca748f731e Conv 2025-06-09 08:17:52 +05:30
Manav Rathi
ebf6c15655 [web] New translations (#6219)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2025-06-09 08:06:44 +05:30
Crowdin Bot
95271a45b6 New Crowdin translations by GitHub Action 2025-06-09 01:18:02 +00:00
Crowdin Bot
e5d5ea9d3e New Crowdin translations by GitHub Action 2025-06-09 00:42:03 +00:00
Neeraj
94351f68fb [server] Fix expiry time for free users (#6213)
## Description
Fix the bug introduced by
69c71d23c3
where we reset the expiry-time for free users.
2025-06-09 05:47:02 +05:30
vishnukvmd
87c1877736 Fix expiry time for free users 2025-06-08 23:33:30 +05:30
Jacques Lucke
bc6529a35f Merge branch 'main' into pop-album-selection 2025-06-07 19:06:16 +02:00
Denys Vitali
d2ee45653c fix(android): allow cleartext traffic for domains other ente
Fixes #6186
2025-06-07 15:27:14 +02:00
Sam Maloney
d0d35937e8 add FZJ metadata to custom-icons.json 2025-06-06 17:29:13 +02:00
Sam Maloney
f9d428e2c1 add fzj.svg icon 2025-06-06 17:23:23 +02:00
Manav Rathi
68fda97f9e [web] Crypto API cleanup (non functional) - Part 4/4 (#6192)
Fin!
2025-06-06 18:29:56 +05:30
Manav Rathi
f8fa731a32 Simplify 2025-06-06 18:24:57 +05:30
Manav Rathi
38a4d96035 Unused 2025-06-06 18:06:10 +05:30
Manav Rathi
9cacbb4f34 Restore older behaviour
accidentally left off in 9a5bac774e
2025-06-06 17:55:23 +05:30
AmanRajSinghMourya
bc6fce30ed Merge branch 'main' into album_fixes 2025-06-06 17:41:33 +05:30
Manav Rathi
930070ad14 Swap 2025-06-06 17:36:52 +05:30
Ashil
11e5704414 [photos][mob] Deselect albums with back navigation in second tab (#6182)
## Description

Previously, back navigation would always go to the home screen, even
when albums are currently selected. This is unexpected because typically
back navigation first deselect everything if anything is selected.

This patch implements this expected behavior for albums on the second
tab. If at least one album is selected, all will be deselected when
going-back. Only when everything is deselect, the app transitions to the
first tab like before.

## Tests
2025-06-06 17:30:27 +05:30
Manav Rathi
81eca40f13 Via 2025-06-06 17:30:06 +05:30
Manav Rathi
0fdb27ccd7 Swap 2025-06-06 17:22:20 +05:30
Manav Rathi
8b4e66e37c Reorder 2025-06-06 17:17:02 +05:30
Manav Rathi
d409935ceb Tweak 2025-06-06 17:10:52 +05:30
Manav Rathi
4d985abd07 Trim 2025-06-06 17:07:38 +05:30
Manav Rathi
3a127bcd8b New 2025-06-06 17:00:26 +05:30
Manav Rathi
a1e506eb85 Impl 2025-06-06 16:52:20 +05:30
Manav Rathi
b82427a6cf Swap 2025-06-06 16:43:39 +05:30
Manav Rathi
a3b4a0b80c Swap 2025-06-06 16:37:01 +05:30
Manav Rathi
df0b8cc44e Direct 2025-06-06 16:27:06 +05:30
Manav Rathi
709eb66614 Swap 2025-06-06 16:17:10 +05:30
Manav Rathi
0381cf66dc Rename 2025-06-06 16:08:22 +05:30
Prateek Sunal
2317a4cadb fix: error 2025-06-06 16:00:21 +05:30
Prateek Sunal
5c6397e8ad Merge remote-tracking branch 'origin/main' into improve-bg-processing 2025-06-06 15:58:41 +05:30
AmanRajSinghMourya
6f0828858d Fix: update color scheme 2025-06-06 15:48:00 +05:30
Manav Rathi
76cff8d386 Swap 2025-06-06 15:47:19 +05:30
Manav Rathi
37c0fa1cd6 Scaffold more infra 2025-06-06 15:43:24 +05:30
Manav Rathi
63830b798b Save 1 2025-06-06 14:47:17 +05:30
Manav Rathi
b707b3e3dc Conv 2025-06-06 14:31:48 +05:30
Manav Rathi
af391346d1 Move 2025-06-06 14:23:39 +05:30
Manav Rathi
e96774e325 Conv 2025-06-06 14:15:56 +05:30
Manav Rathi
e3329a8d73 Conv 2025-06-06 14:04:03 +05:30
Manav Rathi
da8174bcc7 [web] General refactoring (#6190) 2025-06-06 13:57:30 +05:30
Manav Rathi
5b1b52e529 Don't keep the spinners spinning
(this handles other types of cancel too)
2025-06-06 13:40:42 +05:30
Manav Rathi
0165f07bb9 Handle cancel on the delete prompt 2025-06-06 13:35:59 +05:30
Manav Rathi
7dee2c1526 Fix dialog state not getting reset on reopening
...without going back from accounts page.
2025-06-06 13:30:54 +05:30
AmanRajSinghMourya
52d2bea970 Make album UI consistent in archive & hidden section 2025-06-06 13:08:39 +05:30
AmanRajSinghMourya
e26f78d9ed Show newly created album at top while adding photos to multiple album 2025-06-06 13:07:44 +05:30
Neeraj
e0b62ded5a [mob][photos] Birthday notification + memories decoding improvements (#6177)
## Description

- Schedule birthday notifications for named persons.
- Minor performance improvements to memories cache decoding

## Tests

Tested in debug mode on my pixel 8:

- [X]  Notifications are scheduled at correct time
- [X] Tapping notifications navigates to memory of that person
2025-06-06 12:22:00 +05:30
Neeraj
b17821685f [mob] Minor fixes for resumable download (#6189)
## Description

## Tests
2025-06-06 11:43:57 +05:30
Neeraj
a5016b0984 [auth] Add R10.net icon support (#6185)
Add custom icon support for R10.net auth.

## Changes
- Add `r10.svg` icon file to `auth/assets/custom-icons/icons/`
- Add R10.net entry to `custom-icons.json` with proper configuration
- Include alternative names: "R10", "r10.net" for better user matching
2025-06-06 11:43:34 +05:30
alewi7
b5ad82f5ba Add 5 new icons and rename existing icon (#6104)
## Description

Added 5 new custom SVG icons:

- **cronometer.svg**
- **xai.svg**
- **toshl_finance.svg**
- **aternos.svg**
- **atomic_mail.svg**

Also renamed an existing icon **'mercado_livre.svg'** to
**'mercado_libre.svg'** to match the brand's official name.

## Tests

No formal tests added. Verified manually that all SVGs open correctly in
the browser and display as expected.
2025-06-06 11:40:47 +05:30
Neeraj Gupta
14da860973 Handle incorrect pause 2025-06-06 11:37:07 +05:30
Vishnu Mohandas
2b381e7e2f [docs] Minor update (#6174)
## Description

Commits.
2025-06-06 11:22:11 +05:30
Manav Rathi
4152751d52 Fix 2025-06-06 10:38:19 +05:30
Neeraj
e8a35bf6e6 [photos][mob] Trim whitespace from new album name (#6181)
## Description

Previously, newly created albums could easily end with trailing
whitespace, especially when using auto-completion that automatically
adds the next space character. It's not super bad obviously, but I found
it slightly annoying. I can't think of any good reason for why an album
name should ever start or end with whitespace.

## Tests
2025-06-06 10:37:30 +05:30
Manav Rathi
abdc3bbca1 Alt 2025-06-06 10:08:49 +05:30
Manav Rathi
8519183013 kp 2025-06-06 09:54:39 +05:30
Manav Rathi
7c0450c364 Conv and simplify 2025-06-06 09:45:52 +05:30
Manav Rathi
eed1341003 Conv 2025-06-06 09:36:41 +05:30
Manav Rathi
3671080cfc Conv 2025-06-06 08:35:53 +05:30
Manav Rathi
c8481fdb3e Variant 2025-06-06 08:10:52 +05:30
Manav Rathi
146db578b6 Move 2025-06-06 07:29:21 +05:30
Yusuf Danış
c98726e4d0 [auth] Add R10.net icon support 2025-06-05 23:03:27 +03:00
vishnukvmd
4b49bab0bd Prettify 2025-06-05 23:57:51 +05:30
Jacques Lucke
385f35b6e5 pop album selection 2025-06-05 19:41:48 +02:00
Jacques Lucke
a86e9b8f57 still support returning to home 2025-06-05 18:20:53 +02:00
Jacques Lucke
e06ccc35a0 deselect albums on pop 2025-06-05 18:16:43 +02:00
Jacques Lucke
7bdcbcca02 trim new album name 2025-06-05 18:03:36 +02:00
Manav Rathi
e1cb8e06a1 [web] Crypto API cleanup (non functional) - Part 3 (#6180) 2025-06-05 20:27:03 +05:30
Manav Rathi
1a15bcb7e0 lint fix 2025-06-05 20:17:39 +05:30
Manav Rathi
2df06ccf61 Use 2025-06-05 20:04:30 +05:30
Manav Rathi
560533b2d4 accessor 2025-06-05 19:49:58 +05:30
Manav Rathi
60a2febe46 Move 2025-06-05 19:43:33 +05:30
Manav Rathi
ed2a98b341 Rename 2025-06-05 18:55:31 +05:30
Manav Rathi
e8187356af Rename 2025-06-05 18:48:35 +05:30
Manav Rathi
21febab897 Del 2025-06-05 18:39:30 +05:30
Manav Rathi
250aad43bc Switch 2025-06-05 18:36:45 +05:30
Manav Rathi
5e9e8bd76b Switch 2025-06-05 18:30:37 +05:30
Manav Rathi
7b3ea32963 Go the other way for better future composability 2025-06-05 18:03:35 +05:30
Manav Rathi
ac9cee8fa3 Specialize 2025-06-05 18:00:40 +05:30
Manav Rathi
4a3d503992 Dup 2025-06-05 17:55:38 +05:30
Manav Rathi
7bfc63ffc7 [web] Crypto API cleanup (non functional) (#6178) 2025-06-05 17:40:09 +05:30
laurenspriem
b359d97b95 Fix typo 2025-06-05 17:32:58 +05:30
laurenspriem
19a0a8a7ec Merge branch 'main' into birthday_notification 2025-06-05 17:29:39 +05:30
Manav Rathi
51a736dbce Adapt 2025-06-05 17:25:38 +05:30
laurenspriem
36928e4f39 memories decoding optimization 2025-06-05 17:24:33 +05:30
laurenspriem
bfe738c846 Fix duplicate memories decoding 2025-06-05 17:17:25 +05:30
AmanRajSinghMourya
47c52e31ae Fix: update border radius & colors for consistency and adjust spacing 2025-06-05 17:14:31 +05:30
Manav Rathi
d62865f9e5 Inline 2025-06-05 17:10:22 +05:30
Manav Rathi
f7dcaffc32 Move 2025-06-05 17:10:11 +05:30
Manav Rathi
c88a43d2dc Use 2025-06-05 17:10:11 +05:30
Manav Rathi
a5fe20b0e9 Rename 2025-06-05 17:10:11 +05:30
Manav Rathi
3dffebf733 Same place both 2025-06-05 17:10:11 +05:30
Manav Rathi
4be5ac8780 types 2025-06-05 17:10:11 +05:30
Manav Rathi
d858fdef75 More annotation 2025-06-05 17:10:11 +05:30
Manav Rathi
f1d9fc61c5 Annotate 2025-06-05 17:10:11 +05:30
Manav Rathi
931dafd264 Reroute 2025-06-05 17:10:11 +05:30
Manav Rathi
40f3ad592f type 2025-06-05 17:10:11 +05:30
Manav Rathi
723362fc33 Rename 2025-06-05 17:10:11 +05:30
Manav Rathi
94c5cf316b Swap 2025-06-05 17:10:11 +05:30
Manav Rathi
5de4b3c1b0 Swap 2025-06-05 17:10:11 +05:30
Manav Rathi
6eab85b7e1 enc 2025-06-05 17:10:11 +05:30
Manav Rathi
40e7d58c0b utf-8 2025-06-05 17:10:11 +05:30
Manav Rathi
c85aac613e Prune 2025-06-05 17:10:11 +05:30
Manav Rathi
9387320948 Conv 2025-06-05 17:10:11 +05:30
Manav Rathi
9e1b1b0850 Convert 2025-06-05 17:10:11 +05:30
Manav Rathi
b656d4fe1f Addendum
https://github.com/jedisct1/libsodium.js/issues/112#issuecomment-337389964
2025-06-05 17:10:11 +05:30
Manav Rathi
76cca72bec Conv 2025-06-05 17:10:11 +05:30
Manav Rathi
3f6a706e9a Conv 2025-06-05 17:10:11 +05:30
Neeraj Gupta
9245af5080 Fix oom during chunk combination 2025-06-05 16:30:51 +05:30
AmanRajSinghMourya
7953337f15 Enhance shared collections layout with consistent size across all screens 2025-06-05 16:23:29 +05:30
AmanRajSinghMourya
3facf47540 Refactor: rename NewProgressIndicator to MemoryProgressIndicator 2025-06-05 15:42:08 +05:30
AmanRajSinghMourya
629d902745 Fix reseting progress bar to full before starting new memory & improve paly/pause for video memory 2025-06-05 15:40:53 +05:30
Vishnu Mohandas
0717d12d65 [docs] Update general.md 2025-06-05 15:30:39 +05:30
vishnukvmd
107e8e665a Minor 2025-06-05 15:09:33 +05:30
vishnukvmd
d9040047ec Add a line to avoid starting articles with line-breaks that precede an H2 2025-06-05 15:09:26 +05:30
laurenspriem
4fb2be51e0 Logging 2025-06-05 14:51:47 +05:30
laurenspriem
a99cdbedc4 Fix out of range issue 2025-06-05 14:35:03 +05:30
Neeraj Gupta
a543b8c0f6 Pass token in query param for direct download 2025-06-05 14:21:38 +05:30
Neeraj Gupta
f5ca4a9d15 Logs for resumable download failure 2025-06-05 14:19:58 +05:30
Manav Rathi
5ab0299751 [web] Crypto API cleanup (non functional) (#6173) 2025-06-05 11:28:52 +05:30
Neeraj
f1097a93f7 [mob] Fix: Handle already linked email err (#6172)
## Description
While linking contact to a person, we were not gracefully handling the
error where email id is already mapped to another person. And when such
person doesn't have any face attached, they don't have any way to unlink
the email from that person entity.
## Tests
2025-06-05 11:26:56 +05:30
Manav Rathi
7bce2e358b Conv 2025-06-05 11:18:23 +05:30
Manav Rathi
75b3d2354f Simplify 2025-06-05 11:14:31 +05:30
Manav Rathi
52ee86af18 Proxy 2025-06-05 11:06:52 +05:30
Manav Rathi
462aae8f34 Fwd 2025-06-05 11:01:40 +05:30
laurenspriem
496691d236 Schedule at midnight 2025-06-05 10:41:26 +05:30
laurenspriem
f1a6af048d Cleanup 2025-06-05 10:38:44 +05:30
laurenspriem
22e32baf34 route to person memory 2025-06-05 10:36:47 +05:30
Manav Rathi
e864ea367a Rename 2025-06-05 10:30:08 +05:30
Neeraj Gupta
45cf130375 Perf: remove redundant async 2025-06-05 10:24:23 +05:30
Manav Rathi
e6fd962c75 Del 2025-06-05 10:23:02 +05:30
Manav Rathi
f5aefb445d Conv 2025-06-05 10:22:18 +05:30
Neeraj Gupta
917ce21b35 Fix: Handle already linked email err 2025-06-05 10:19:07 +05:30
Manav Rathi
0241e41f0d Tweak 2025-06-05 10:13:44 +05:30
Manav Rathi
65982b6f82 Del 2025-06-05 09:58:16 +05:30
Manav Rathi
69756d5733 Conv 2025-06-05 09:56:11 +05:30
laurenspriem
b17ba26268 Extract strings 2025-06-05 09:52:40 +05:30
Manav Rathi
594671d96c Conv 2025-06-05 09:44:22 +05:30
Manav Rathi
fa1719e3ca Conv 2025-06-05 09:43:10 +05:30
laurenspriem
e2fbb26dce Reorganize 2025-06-05 09:41:58 +05:30
Manav Rathi
6ba7841632 Conv 2025-06-05 09:39:57 +05:30
Manav Rathi
37b52b5cb5 Reduce API surface 2025-06-05 09:28:28 +05:30
Manav Rathi
2e98d8b652 Ret 3 2025-06-05 09:17:22 +05:30
Manav Rathi
ea4d6c5cf1 consistent 2025-06-05 09:15:30 +05:30
Manav Rathi
413f5479ef ret 2 2025-06-05 09:14:13 +05:30
laurenspriem
81bfc83e9d birthday notifications setting 2025-06-05 09:12:51 +05:30
Manav Rathi
92b3da1198 return type consistency 1 2025-06-05 08:53:16 +05:30
laurenspriem
cc98ca70d5 Log scheduling 2025-06-05 08:50:37 +05:30
laurenspriem
544078a40c Optional notification message 2025-06-05 08:45:36 +05:30
laurenspriem
229d438181 Remove 2025-06-05 08:39:17 +05:30
laurenspriem
aab1450c3f remove old parameter comment 2025-06-05 08:38:59 +05:30
laurenspriem
07d7635464 Merge branch 'main' into birthday_notification 2025-06-05 08:35:44 +05:30
Neeraj
88b95da04f [mob] widget customizations (+ new widgets) (#5882) 2025-06-04 20:57:22 +05:30
Manav Rathi
32707e2909 [desktop] macOS folder watch EMFILE workaround (#6170) 2025-06-04 20:18:41 +05:30
Manav Rathi
e28ee8ca66 [desktop] macOS folder watch EMFILE workaround 2025-06-04 20:15:19 +05:30
Manav Rathi
751d107518 [web] One less nit (#6169) 2025-06-04 20:09:50 +05:30
AmanRajSinghMourya
277b88f332 Refactor: removing null check for _imageProvider when calling onFinalFileLoad 2025-06-04 19:54:45 +05:30
AmanRajSinghMourya
0473bcc543 Refactor: update onFinalFileLoad method to accept memoryDuration parameter 2025-06-04 19:40:35 +05:30
Manav Rathi
439dfcab58 One less nit 2025-06-04 19:36:17 +05:30
AmanRajSinghMourya
79c1affc39 fix: update border radius and text style 2025-06-04 19:19:20 +05:30
Manav Rathi
3f9f0d6d10 [web] General code improvements (#6168) 2025-06-04 19:15:25 +05:30
Manav Rathi
506b915f65 conv 2025-06-04 19:02:55 +05:30
Manav Rathi
65a8923799 Conv 2025-06-04 18:53:14 +05:30
Manav Rathi
e6707d9fcb Move 2025-06-04 18:43:05 +05:30
Manav Rathi
3dbc336687 Doc 2025-06-04 18:36:49 +05:30
Manav Rathi
8441aafe81 Inline 2025-06-04 18:26:53 +05:30
Manav Rathi
5d3f431ee0 Doc 2025-06-04 18:25:28 +05:30
Manav Rathi
ce591e6267 Conv 2025-06-04 18:11:28 +05:30
Prateek Sunal
132a7862fe fix: clear directory on log out 2025-06-04 17:50:21 +05:30
Prateek Sunal
f4167be4b4 fix: update people changed debouncer to 1500 2025-06-04 17:42:46 +05:30
Prateek Sunal
4e17a861dc fix: separate asset resources 2025-06-04 17:41:22 +05:30
Manav Rathi
86f282bb06 Scope 2025-06-04 17:36:50 +05:30
Manav Rathi
334a996357 Scope 2025-06-04 17:27:46 +05:30
Manav Rathi
9a5bac774e Unused 2025-06-04 17:24:08 +05:30
Manav Rathi
04ae02c130 [meta] Issue template (#6166) 2025-06-04 17:13:41 +05:30
Manav Rathi
31232390e8 [meta] Issue template 2025-06-04 17:07:03 +05:30
AmanRajSinghMourya
4d27341787 Refactor: remove unnecessary calls to _resetAnimation and handle reset in onFinalFileLoad 2025-06-04 16:56:52 +05:30
Prateek Sunal
7d4ea8092a chore: readd thermal 2025-06-04 16:49:46 +05:30
AmanRajSinghMourya
45d8c236fe Update onFinalFileLoad to remove unused parameter 2025-06-04 16:48:08 +05:30
AmanRajSinghMourya
4412b016ce Refactor: rename onFileLoad to onFinalFileLoad for consistency across file handling 2025-06-04 16:44:00 +05:30
AmanRajSinghMourya
3cea8e8a90 Hide seekbar and play/pause button for videos shown in memories & long press to play/pause video 2025-06-04 16:43:34 +05:30
Manav Rathi
e80f91ca92 [web] General refactoring (#6164) 2025-06-04 16:42:28 +05:30
Manav Rathi
523d1961b7 other dep 2025-06-04 16:32:08 +05:30
Manav Rathi
6091a0d446 Lockfile updates 2025-06-04 16:28:33 +05:30
Manav Rathi
12d84d0dbe Avoid exceptions for flow control 2025-06-04 16:27:24 +05:30
Manav Rathi
a244140348 tweak 2025-06-04 16:27:24 +05:30
Manav Rathi
2715bd81b0 vis 2025-06-04 16:27:24 +05:30
Manav Rathi
d65424cef2 Document and move 2025-06-04 16:27:24 +05:30
Manav Rathi
a07d39512b Prune ids 2025-06-04 16:27:24 +05:30
Manav Rathi
223ed36d61 Conv 2025-06-04 16:27:24 +05:30
Neeraj
3e893a7b39 [mob] Use file stream to improve hashing speed (#6163)
## Description

## Tests
For 3.38 GB file on iPhone 11
Old Hashing took 24792 ms
Hashing v2 took 10365 ms

Also tested it on a smaller file

```dart
// Returns the hash for a given file, chunking it in batches of hashChunkSize
Future<Uint8List> cryptoGenericHash(Map<String, dynamic> args) async {
  final int startTime = DateTime.now().millisecondsSinceEpoch;
  final sourceFile = File(args["sourceFilePath"]);
  final sourceFileLength = await sourceFile.length();
  final inputFile = sourceFile.openSync(mode: FileMode.read);
  final state =
      Sodium.cryptoGenerichashInit(null, Sodium.cryptoGenerichashBytesMax);
  var bytesRead = 0;
  bool isDone = false;
  while (!isDone) {
    var chunkSize = hashChunkSize;
    if (bytesRead + chunkSize >= sourceFileLength) {
      chunkSize = sourceFileLength - bytesRead;
      isDone = true;
    }
    final buffer = await inputFile.read(chunkSize);
    bytesRead += chunkSize;
    Sodium.cryptoGenerichashUpdate(state, buffer);
  }
  await inputFile.close();
  final hash =
      Sodium.cryptoGenerichashFinal(state, Sodium.cryptoGenerichashBytesMax);

  final int endTime = DateTime.now().millisecondsSinceEpoch;
  final hash2 = await cryptoGenericHashV2(args);
  final endTime2 = DateTime.now().millisecondsSinceEpoch;
  if (hash.length != hash2.length) {
    throw Exception(
      "Hash length mismatch: ${hash.length} != ${hash2.length}",
    );
  }
  if (!const ListEquality().equals(hash, hash2)) {
    throw Exception("not equal: hash");
  }
  print("Hashing took ${endTime2 - startTime} ms");
  print("Hashing v2 took ${endTime2 - endTime} ms");
  return hash;
}

Future<Uint8List> cryptoGenericHashV2(Map<String, dynamic> args) async {
  final file = File(args["sourceFilePath"]);
  final state =
      Sodium.cryptoGenerichashInit(null, Sodium.cryptoGenerichashBytesMax);
  await for (final chunk in file.openRead()) {
    Sodium.cryptoGenerichashUpdate(state, Uint8List.fromList(chunk));
  }
  return Sodium.cryptoGenerichashFinal(state, Sodium.cryptoGenerichashBytesMax);
}
```
2025-06-04 14:33:47 +05:30
Neeraj
eea70db1fd Avoid redundant copy
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-06-04 14:31:51 +05:30
Neeraj Gupta
85c14b884b [mob] Use file stream to improve hashing speed 2025-06-04 13:43:01 +05:30
laurenspriem
9a0722ffcc todos for after merge 2025-06-04 13:25:32 +05:30
laurenspriem
49dcb55de7 schedule birthdays notifications 2025-06-04 13:22:47 +05:30
laurenspriem
fa37b11c7f Specify birthdays clearer 2025-06-04 13:20:59 +05:30
Prateek Sunal
884b3716ba fix: add debouncer 2025-06-04 12:52:48 +05:30
Prateek Sunal
6f3ee24ac1 chore: update lock files 2025-06-04 12:46:27 +05:30
Prateek Sunal
292ed5fd6d Merge remote-tracking branch 'origin/main' into widget-superpowered 2025-06-04 12:45:21 +05:30
Prateek Sunal
54d2040f2b fix: remove .fvm 2025-06-04 12:43:35 +05:30
Neeraj
15954ce396 [mob] Remember last scroll offset while adding assets from device (#6159)
## Description
Also increased the items in grid, as there's no scrollbar (pkg does not
support it yet afaik)

## Tests
2025-06-04 12:24:32 +05:30
Laurens Priem
86a9e5ec86 [mob][photos] Compute controller (#6158)
## Description

Refactored MLController (now ComputeController) so that ML and Streaming
both first have to ask for its permission to run.

## Tests
2025-06-04 12:02:57 +05:30
Manav Rathi
52c9a15c2c [web] Migrate to zod v4 (#6162) 2025-06-04 11:58:00 +05:30
Manav Rathi
3c514476c2 Reintroduce with new zod 2025-06-04 11:53:49 +05:30
laurenspriem
31b26a1b26 Reduce logs 2025-06-04 11:52:33 +05:30
Manav Rathi
5e26a895d3 passthrough => looseObject
https://zod.dev/v4/changelog?id=deprecates-strict-and-passthrough
2025-06-04 11:45:12 +05:30
Manav Rathi
4b4d9d0fd8 Migrate
https://zod.dev/v4/changelog
2025-06-04 11:45:12 +05:30
laurenspriem
a4f49b8e84 Try trigger streaming when ML is done 2025-06-04 11:11:21 +05:30
Neeraj
1722277141 [mobile] New translations (#6125)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-app)
2025-06-04 11:02:00 +05:30
Manav Rathi
6a6547a984 Up 2025-06-04 11:01:41 +05:30
Manav Rathi
4c78d1ab78 [web] Convert more cases of deprecated single input form (#6160) 2025-06-04 10:58:03 +05:30
Neeraj
8cd87b964a [photos][mob] Trim whitespace from search query (#6153)
## Description

Previously, when searching for e.g. `test ` would not find an album
called `test`. That's because the trailing whitespace is not ignored. On
mobile this can be especially annoying because sometimes auto-completion
automatically inserts whitespace after a word.

This patch trims whitespace of the search query in two places:
* When searching for an album name when moving photos to an album.
* When using the global search.

## Tests
2025-06-04 10:52:40 +05:30
Manav Rathi
68844eb790 Try to retain similar DOM structure as before 2025-06-04 10:52:18 +05:30
Neeraj Gupta
b24b0d340b Remember last scrollOffset while picking asset from device 2025-06-04 10:50:06 +05:30
Neeraj Gupta
47e8ccd5d8 Update asset_picker pkg 2025-06-04 10:49:41 +05:30
Manav Rathi
e0ae9eb911 vis 2025-06-04 10:48:12 +05:30
laurenspriem
c8d53faa5d Don't queue streaming if controller doesn't allow 2025-06-04 10:44:44 +05:30
laurenspriem
b494dc8cad Allow multiple request calls 2025-06-04 10:44:19 +05:30
Manav Rathi
5d3acca7ed Conv 2025-06-04 10:39:40 +05:30
laurenspriem
d6ea8d4ec3 less loging 2025-06-04 10:30:22 +05:30
Manav Rathi
1850aa1aec ref uploader name 2025-06-04 10:15:11 +05:30
laurenspriem
42239fe30d don't stop on force 2025-06-04 10:14:14 +05:30
Neeraj
35f6dc2361 [mob] Switch to exif_reader (#6154) 2025-06-04 10:01:35 +05:30
Manav Rathi
bbfae3731a Swap 2025-06-04 09:21:35 +05:30
Manav Rathi
d99b3e422b Change default to the more frequently needed value 2025-06-04 09:14:52 +05:30
Manav Rathi
5fe497df3b Swap 2025-06-04 09:06:28 +05:30
Manav Rathi
2e5deda9ae [web] Reset cast dialog view on reopen (#6157) 2025-06-04 08:54:05 +05:30
Manav Rathi
c4fc03d933 Reset cast dialog view on reopen 2025-06-04 08:40:40 +05:30
Prateek Sunal
a1c180485d Merge remote-tracking branch 'origin/main' into widget-superpowered 2025-06-04 01:18:56 +05:30
Prateek Sunal
c865e263e5 fix: remove shrink wrap and use casting for GenericSearchResult 2025-06-04 01:06:09 +05:30
Prateek Sunal
4b72acf3c0 chore: add lock files 2025-06-04 01:05:34 +05:30
Manav Rathi
083eb0516a [web] LP and video playback tweaks (#6156) 2025-06-03 21:15:45 +05:30
Manav Rathi
c5f993571e vid tweaks 2025-06-03 21:11:21 +05:30
Manav Rathi
5b698a926e z 2025-06-03 21:05:52 +05:30
Manav Rathi
760cc4b8e0 Take 2 2025-06-03 21:01:01 +05:30
Manav Rathi
5f722f50e6 Reset 2025-06-03 20:29:23 +05:30
Manav Rathi
ddef5a565f 4 2025-06-03 20:06:28 +05:30
laurenspriem
75042010e8 Integrate computeController requests 2025-06-03 19:43:50 +05:30
Manav Rathi
730746781c 3 2025-06-03 19:43:34 +05:30
laurenspriem
eeadc1d0d3 requesting to computeController methods 2025-06-03 19:43:01 +05:30
Manav Rathi
5b7c112c9a 2 2025-06-03 19:39:41 +05:30
Manav Rathi
c0d57c72bf LP tweaks 2025-06-03 19:33:03 +05:30
Manav Rathi
65abbb4126 [web] General improvements to code dealing with keys (#6155)
(Non functional)
2025-06-03 17:28:26 +05:30
Manav Rathi
113b820451 Same name 2025-06-03 16:54:17 +05:30
Neeraj Gupta
c17a8d4c38 Fix fr arb 2025-06-03 16:23:16 +05:30
Neeraj Gupta
0202cd1447 Switch to exif_reader 2025-06-03 16:23:08 +05:30
Manav Rathi
6ce7921a16 Inline 2025-06-03 16:16:08 +05:30
Manav Rathi
2d7689a6da Consolidate and move 2025-06-03 16:03:51 +05:30
Manav Rathi
f0aac696ca Conv 2025-06-03 15:50:43 +05:30
Manav Rathi
7112e96c75 Swap 2025-06-03 15:46:15 +05:30
Manav Rathi
f4ff63ec0a Swap 2025-06-03 15:41:47 +05:30
Manav Rathi
48dc3a6b69 Redirect 2025-06-03 15:38:23 +05:30
Jacques Lucke
1b62dbbb78 also trim in album search 2025-06-03 12:08:00 +02:00
laurenspriem
d9a4ffd8f7 rename to ComputeController 2025-06-03 15:32:47 +05:30
Jacques Lucke
f749e1ee22 trim search query 2025-06-03 11:59:02 +02:00
Manav Rathi
78669a8550 Match mobile and architecture docs
From libsodium source

crypto_secretbox_keygen(unsigned char k[crypto_secretbox_KEYBYTES])
{
    randombytes_buf(k, crypto_secretbox_KEYBYTES);
}

crypto_kdf_keygen(unsigned char k[crypto_kdf_KEYBYTES])
{
    randombytes_buf(k, crypto_kdf_KEYBYTES);
}
2025-06-03 15:20:20 +05:30
laurenspriem
3d5c53b041 Simplify 2025-06-03 15:04:56 +05:30
laurenspriem
e493702c64 Integrate thermal state in check 2025-06-03 14:59:23 +05:30
AmanRajSinghMourya
20314a5d2d Reduce size of 'Delete empty albums' button 2025-06-03 14:53:06 +05:30
Manav Rathi
7cdef46385 Update 2025-06-03 14:44:20 +05:30
Manav Rathi
97314b7dc1 conv 2025-06-03 14:15:15 +05:30
Manav Rathi
9d9ed0f01f Refactor API 2025-06-03 14:09:08 +05:30
Manav Rathi
5df1b12ef5 use new api 2025-06-03 14:02:33 +05:30
Manav Rathi
25cadce651 Vars 2025-06-03 13:56:41 +05:30
Manav Rathi
0e0044693c Remove unnecessary roundtrip 2025-06-03 13:56:41 +05:30
Vishnu Mohandas
32bffcb80b [docs] Update deduplicate.md 2025-06-03 13:50:40 +05:30
AmanRajSinghMourya
2bb839e26c Refactor: remove scaling and make memories widget of same size 2025-06-03 13:49:02 +05:30
Manav Rathi
241577739a doc 2025-06-03 13:21:18 +05:30
Manav Rathi
8c99a3e5af Other way 2025-06-03 13:11:54 +05:30
Manav Rathi
c92141b9dc Use 2025-06-03 13:01:52 +05:30
Manav Rathi
54b5100e89 Use 2025-06-03 13:01:52 +05:30
Manav Rathi
d6060e1194 Extract 2025-06-03 13:01:52 +05:30
AmanRajSinghMourya
63d0f23742 Fix: reset animation when switching to next/previous page before starting the next/previous page animation 2025-06-03 12:44:59 +05:30
Vishnu Mohandas
d895e6a0c3 [server] Fix migration index (#6150) 2025-06-03 12:42:54 +05:30
vishnukvmd
55fd87face [server] Fix migration index 2025-06-03 12:42:25 +05:30
AmanRajSinghMourya
36e7a664ff Make zoom-in/zoom-out animation alternate 2025-06-03 11:37:07 +05:30
Manav Rathi
6e8acbab1a [infra] Forward headers from workers + ditto cast (#6149) 2025-06-03 10:42:51 +05:30
Manav Rathi
9dd8cd3558 up 2025-06-03 10:27:52 +05:30
Manav Rathi
a227e8541d + range for files 2025-06-03 10:12:40 +05:30
Neeraj
f4f6f2906c [photos][mob] Fix: Close input dialog after album creation (#6148)
## Description

There is an annoyingly flashing dialog when creating exiting a newly
created album. The solution is to close the new-album-dialog before
entering the album so that it is not visible anymore when leaving the
album again.

The dialog is closed after the album is created and before routing to
the album. An alternative is to close it directly when tapping on the
Create button, but then the dialog disappears and it might take a while
until the album is opened which feels worse.

Old (note how the dialog is still open when leaving the album):


https://github.com/user-attachments/assets/e57d27af-2339-4ba7-a5d8-be052aede99c

New (note how there is no dialog when leaving the album):


https://github.com/user-attachments/assets/874164a3-9550-4fc3-9144-342b5888dbb7

## Tests

I don't know how to add tests for this.
2025-06-03 09:47:17 +05:30
Prateek Sunal
265bad28b0 fix: people selection logic as well 2025-06-03 09:45:02 +05:30
Prateek Sunal
9ee52b5dee fix: don't depend on FaceFilter for fetching personId 2025-06-03 09:43:06 +05:30
Prateek Sunal
1d7baf9dd6 chore: remove unwanted author copyright 2025-06-03 09:38:38 +05:30
Manav Rathi
a5f266421a Also from cast 2025-06-03 09:35:57 +05:30
Manav Rathi
dbbcd44f5b Fwd headers 2025-06-03 09:26:52 +05:30
Manav Rathi
38798e92a3 [web][desktop] Routine dep updates (#6146)
feat. MUI v7
2025-06-03 09:04:26 +05:30
Manav Rathi
fda4f47cba disabled is not a color
lint errors on ci
2025-06-03 08:52:12 +05:30
Jacques Lucke
d0ddce2803 Avoid flashing dialog when leaving newly created album 2025-06-02 20:16:12 +02:00
Manav Rathi
4bfc495f39 Fix errors on ci
[eslint] /home/runner/work/ente/ente/web/packages/new/photos/components/ImageEditorOverlay.tsx
[eslint]   1313:41  error  This assertion is unnecessary since it does not change the type of the expression  @typescript-eslint/no-unnecessary-type-assertion
[eslint]   1325:39  error  This assertion is unnecessary since it does not change the type of the expression  @typescript-eslint/no-unnecessary-type-assertion
[eslint]   1338:35  error  This assertion is unnecessary since it does not change the type of the expression  @typescript-eslint/no-unnecessary-type-assertion
[eslint]   1350:41  error  This assertion is unnecessary since it does not change the type of the expression  @typescript-eslint/no-unnecessary-type-assertion
2025-06-02 19:58:49 +05:30
Manav Rathi
7cbc80adc6 Stick to non-private imports 2025-06-02 19:49:30 +05:30
Manav Rathi
414265de4a mui update 2025-06-02 19:28:55 +05:30
Manav Rathi
a2c032e77b desktop deps 2025-06-02 19:27:11 +05:30
Manav Rathi
b567dddfc3 routine dep update 2025-06-02 19:26:47 +05:30
AmanRajSinghMourya
e9631c2eb2 Add zoom-in/out effect and background blur effect 2025-06-02 19:07:13 +05:30
Manav Rathi
dea77b5dd0 [web] Fix trash open (#6144) 2025-06-02 19:02:28 +05:30
Manav Rathi
1b8a8a2717 [web] Fix trash open 2025-06-02 18:58:34 +05:30
Keerthana
549cd74537 [docs]: lint and refactor navigation and overview structure (#6132)
## Description
This PR introduces the following changes in the documentation:
- Restructuring of sidebar for intuitive navigation for
overview/introduction. **Note:** The content covered by the section
along with rest of the documentation is still under major revision and
the skeleton of the documentation is being provided for easier access to
end-users.
- Updation of information regarding lack of availability of Bucket CORS
for MinIO community edition that's used by compose clusters by default.
- Linting for documentation for consistency with prettier.
2025-06-02 18:21:13 +05:30
Keerthana
2d6c754c15 [docs][actions] add lint checks for PRs 2025-06-02 18:18:35 +05:30
Keerthana
5fe0e424cd [docs] refactor community and help pages in overview 2025-06-02 18:16:58 +05:30
Neeraj
991bfbb7ef [mob] Enable resumable upload for all (#6141)
## Description

## Tests
2025-06-02 17:48:52 +05:30
Laurens Priem
3292ab2d95 [mob][photos] Face thumbnails refactor (#6128)
## Description

- Refactored PersonFaceWidget into separate FileFaceWidget and
PersonFaceWidget. PersonFaceWidget now only requires a person or cluster
ID, no longer is any file needed
- Face thumbnail choice is now made based on highest face score instead
of recency, meaning less changes in face thumbnails and less re-computes
- More aggressive caching of face thumbnails in memory
- Added option to change person cover from top menu
- Fixed issue with decoding HEIC for face thumbnails on Android

## Tests

Tested in debug mode on my pixel 8.
2025-06-02 16:58:18 +05:30
Neeraj Gupta
8eddf3ff4e Upload videos along with photos 2025-06-02 16:21:15 +05:30
Neeraj Gupta
2dca25778b Enable multipart upload for everyone 2025-06-02 16:18:14 +05:30
Manav Rathi
2316f6323e [web] New translations (#6135)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2025-06-02 16:05:46 +05:30
Neeraj
d15c11cc26 [server] Defer file data replication for 10min (#6139)
## Description

## Tests
2025-06-02 16:04:48 +05:30
Manav Rathi
f32c712c72 [meta] fr => enhancements (#6137) 2025-06-02 16:04:26 +05:30
Vishnu Mohandas
9060eaa0e5 [server] Update first-upload copy (#6138) 2025-06-02 16:01:02 +05:30
vishnukvmd
3a9d507c35 Update copy 2025-06-02 15:59:33 +05:30
Ashil
ed0c1a1ebc [mob][photos] Fix missing 'Added by' indicator in gallery file element and file info for when opening public links via deeplink (#6136)
## Description

User avatar in gallery file element and 'added by' field in file info
were missing for files in public links opened via deeplink. This PR
fixes this issue.
2025-06-02 15:58:30 +05:30
Manav Rathi
6e1b959a61 [meta] fr => enhancements 2025-06-02 15:57:41 +05:30
ashilkn
95a9baa4e2 Show avatar in gallery file element and 'added by' in file info for public links opened via deeplink 2025-06-02 15:53:05 +05:30
ashilkn
0ccc333dad chore 2025-06-02 15:52:25 +05:30
Crowdin Bot
a5224628b7 New Crowdin translations by GitHub Action 2025-06-02 10:11:04 +00:00
Manav Rathi
4d4d961628 [desktop] Post release toggles (#6134) 2025-06-02 15:40:13 +05:30
Manav Rathi
e22f74d653 bg ml and export 2025-06-02 15:33:31 +05:30
Neeraj Gupta
b4fdf441ec Defer filedata replication for 10min 2025-06-02 15:30:31 +05:30
Vishnu Mohandas
e798ac02c6 [server] Check in with paid customers (#6106)
## Description
Update the `subscriptions` table to store the time at which
subscriptions were upgraded (`upgraded_at`).

Reach out to customers who upgraded 7 days ago to make sure all is well.
<img width="628" alt="Screenshot 2025-05-31 at 1 41 09 PM"
src="https://github.com/user-attachments/assets/7d1e970a-c7fa-4666-8d4f-db13ba7c105d"
/>

Store this information within `notification_history` so they are not
contacted again (in case of admin interventions).

> Note: We will not be back-filling data for existing subscriptions.

## Tests
- [x] Tested locally to make sure only customers who upgraded 7 days ago
were pinged.
2025-06-02 15:25:23 +05:30
Manav Rathi
6c41f575c3 fav cast 2025-06-02 15:22:23 +05:30
Manav Rathi
15e211b3a5 typo 2025-06-02 15:18:33 +05:30
Manav Rathi
9ce3fe7756 post rel 2025-06-02 15:18:17 +05:30
Manav Rathi
215bb43f39 [web] FS limit test (#6133) 2025-06-02 15:17:47 +05:30
Manav Rathi
793ee58e2b fs limit test 2025-06-02 15:14:39 +05:30
Manav Rathi
a6ae092839 [desktop] Make video upload retries idempotent (#6131) 2025-06-02 14:33:33 +05:30
Keerthana
088afe7f2a [fix]: dead links in overview 2025-06-02 14:32:53 +05:30
Manav Rathi
d212d55dca Make retries idempotent 2025-06-02 14:12:37 +05:30
Manav Rathi
bc88a378b0 Note 2025-06-02 14:00:07 +05:30
Keerthana
b0bb5fc916 [docs]: lint and refactor navigation and structure for overview 2025-06-02 13:58:49 +05:30
Neeraj
b3b3f8445a [auth] New translations (#6126) 2025-06-02 12:28:10 +05:30
laurenspriem
9d87b8f303 Rename to clarify Android 2025-06-02 11:43:21 +05:30
Alexander
15e7d9658c [auth] Add new custom icons in auth (#6114)
New icons added:

- CSSBuy
- uollet
2025-06-02 11:38:33 +05:30
Neeraj
fb262c7dc4 [auth] fix: rename GIRAD icon to GERID (#6107)
Made a typo in the previous PR 😅. This PR changes it to the correct name
(GIRAD -> GERID)
2025-06-02 11:37:58 +05:30
Laurens Priem
3080859593 timeout on this day notification android at eod (#6130)
## Description

Auto dismiss 'On this day' notification at the end of the day. Only on
Android since there's no API for this on iOS.

## Tests

Tested in debug mode on my pixel 8 phone.
2025-06-02 11:25:31 +05:30
laurenspriem
9ea70c70d5 timeout on this day notification android at eod 2025-06-02 11:21:01 +05:30
Manav Rathi
a6291f34f9 [web] New translations (#6124)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2025-06-02 10:25:04 +05:30
Crowdin Bot
40a8449ea5 New Crowdin translations by GitHub Action 2025-06-02 01:17:53 +00:00
Crowdin Bot
765b0982ed New Crowdin translations by GitHub Action 2025-06-02 01:05:16 +00:00
Crowdin Bot
199f4acccc New Crowdin translations by GitHub Action 2025-06-02 00:41:26 +00:00
laurenspriem
026f9a2bb8 Fix heic decoding issue for face thumbnails 2025-06-01 17:58:55 +05:30
AmanRajSinghMourya
b43bc8a5bd feat: add light and dark mode SVG icons for collection and search actions 2025-05-31 20:24:45 +05:30
AmanRajSinghMourya
27932679dd Add onFileLoad callback to file_widget for better loading of progress animation 2025-05-31 18:58:48 +05:30
Sven
571995bbd9 fix: rename GIRAD icon to GERID 2025-05-31 12:44:54 +02:00
vishnukvmd
a15084374b Setup cron 2025-05-31 13:45:55 +05:30
vishnukvmd
c0ceb68dc6 Say hello to paid customers 2025-05-31 13:45:51 +05:30
vishnukvmd
0b87152057 Hello email 2025-05-31 13:45:27 +05:30
vishnukvmd
feb6a82755 Mark upgrades 2025-05-31 13:44:55 +05:30
vishnukvmd
85c418c9f6 Update query 2025-05-31 13:44:32 +05:30
vishnukvmd
cc68189004 Update model 2025-05-31 13:44:25 +05:30
vishnukvmd
21c1328428 Add column to store upgraded-at timestamps 2025-05-31 13:42:13 +05:30
vishnukvmd
1375b4df12 Fix typo 2025-05-31 13:06:52 +05:30
AmanRajSinghMourya
ab3808adbf fix: show newly created album in the collection sheet for batch operation 2025-05-31 12:52:50 +05:30
Neeraj
7f0eeece9c [auth] Bump auth version 4.4.0 (#6103)
## Description

## Tests
2025-05-31 10:14:13 +05:30
Neeraj Gupta
7fb30ed477 Add release 4.4.0 to appdata.xml 2025-05-31 10:13:23 +05:30
Neeraj Gupta
91ea5763fb Bump auth version: 4.4.0 2025-05-31 10:13:07 +05:30
Neeraj
f29f9f2a94 [auth] Sign windows binary using trust store (#6102)
## Description

## Tests
2025-05-31 10:12:23 +05:30
Neeraj Gupta
5138898d73 Sign auth windows binary using trust store 2025-05-31 10:11:13 +05:30
Neeraj Gupta
171be22113 Fix typo 2025-05-31 10:08:51 +05:30
Neeraj
6a3575feb4 [auth] Add GIRAD icon (#6100)
Add GIRAD custom icon, as requested here:
https://github.com/ente-io/ente/issues/6075
2025-05-31 09:53:35 +05:30
Neeraj Gupta
4e80c82a6f Revert "Avoid building for testing sign"
This reverts commit 0c0acd9592.
2025-05-31 09:36:56 +05:30
Neeraj Gupta
0c0acd9592 Avoid building for testing sign 2025-05-31 09:34:03 +05:30
Neeraj Gupta
26384513f2 Mention absolute path 2025-05-31 08:45:53 +05:30
Neeraj
acd05e0a55 [meta] Workflow to test windows sign (#6101)
## Description

## Tests
2025-05-31 08:12:55 +05:30
Neeraj Gupta
91a48943b7 Rename worflow 2025-05-31 08:10:58 +05:30
Neeraj Gupta
a8111eab04 Add workflow for testing trust signing 2025-05-31 08:09:37 +05:30
Sven
0084a3cf59 Add GIRAD icon and entry to custom icons list 2025-05-30 19:10:18 +02:00
Manav Rathi
82e1fd3b0a [web] Convert more uses of older single input form (#6099)
Only a handful left to go.
2025-05-30 18:36:51 +05:30
Manav Rathi
d57c68188c Update for new API methods 2025-05-30 18:32:46 +05:30
Manav Rathi
65a7a49d07 Swap 2025-05-30 18:25:52 +05:30
Manav Rathi
631c46681d Nicer animation 2025-05-30 18:12:50 +05:30
Manav Rathi
023d8ab8b3 Format 2025-05-30 18:07:50 +05:30
Manav Rathi
a1e3cdd5d2 Remove inconsistent trim in one direction
- No other password inputs are trimmed
- The code was trimming here, but not when verifying it
2025-05-30 18:00:13 +05:30
laurenspriem
2df9041e34 Set cover sheet in people app bar 2025-05-30 17:55:11 +05:30
Manav Rathi
b1051bbd47 Swap 2025-05-30 17:51:45 +05:30
laurenspriem
f869483c68 Change icon and reorder 2025-05-30 17:41:40 +05:30
Manav Rathi
8682e3338b Rename 2025-05-30 17:40:51 +05:30
Manav Rathi
ee96b44b74 Use 2025-05-30 17:38:14 +05:30
Manav Rathi
e992db4846 augment 2025-05-30 17:30:30 +05:30
AmanRajSinghMourya
8d8de53167 fix: remove borderRadius 2025-05-30 17:26:48 +05:30
laurenspriem
0d95f8c5a2 Remove redundant 2025-05-30 17:09:10 +05:30
laurenspriem
4b9f6619b5 Rename 2025-05-30 17:02:59 +05:30
laurenspriem
9e30d08fae Don't remove faceAvatar 2025-05-30 17:01:45 +05:30
laurenspriem
2c50b84e30 Better update in memory cache 2025-05-30 16:55:48 +05:30
Neeraj
686d04339d [auth] Fix: handle incorrect device time during code generation (#6096)
## Description

## Tests
2025-05-30 16:50:56 +05:30
Neeraj Gupta
5d0a86c248 Fix progress bar when local time is incorrect 2025-05-31 16:23:06 +05:30
Manav Rathi
2a375e56c3 [web] Update uses of deprecated collection namer (#6098) 2025-05-30 16:43:02 +05:30
laurenspriem
ba468d32f5 Refactor remove redundant method 2025-05-30 16:40:02 +05:30
Manav Rathi
ce3b6b1c1f Remove unnecessary dep 2025-05-30 16:38:26 +05:30
Manav Rathi
52451cd0af Update 2025-05-30 16:35:19 +05:30
Manav Rathi
03a25c2625 Unused 2025-05-30 16:33:51 +05:30
Manav Rathi
f425dc6eaf Use 2025-05-30 16:33:51 +05:30
Manav Rathi
26d111da42 Tweak 2025-05-30 16:33:51 +05:30
Manav Rathi
7b100e8dae Use 2025-05-30 16:33:51 +05:30
Manav Rathi
b5d059c61b Use 2025-05-30 16:33:51 +05:30
Manav Rathi
70c3c1d541 [web] New translations (#6097)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2025-05-30 16:33:11 +05:30
Crowdin Bot
01b05d243d New Crowdin translations by GitHub Action 2025-05-30 10:59:57 +00:00
Neeraj Gupta
b560e5b71a Fix: handle incorrect device time during code generation 2025-05-30 16:24:43 +05:30
laurenspriem
3354416543 Query typo 2025-05-30 16:15:03 +05:30
AmanRajSinghMourya
09199180f3 Add isFromMemories parameter to handle gestures 2025-05-30 16:01:27 +05:30
AmanRajSinghMourya
d9f36f1949 Added with progress animation for FullScreenMemory 2025-05-30 16:00:33 +05:30
laurenspriem
cfeca1f564 Integrate new PersonFaceWidget everywhere 2025-05-30 15:52:06 +05:30
AmanRajSinghMourya
e9b95cce62 Minor changes 2025-05-30 15:41:39 +05:30
Manav Rathi
625b562229 [web] [auth] Automatic handling of browsers with incorrect time (#6093) 2025-05-30 15:16:24 +05:30
Manav Rathi
c8d31b3a7e Mention version 2025-05-30 15:12:48 +05:30
laurenspriem
3f212aa1d1 Refactor face thumbnail caching logic 2025-05-30 14:43:59 +05:30
Neeraj
026669b0d0 [Server] Return epochTime in microSeconds (#6094)
## Description

## Tests
2025-05-30 14:21:55 +05:30
Neeraj Gupta
741aed7565 return utc epochTime in auth diff 2025-05-30 14:19:33 +05:30
Neeraj
6ee58b8e0f [mob] Video stream generation refactor (#6085)
## Description

- Avoid checking stream generation for file is duration or size
information is not available. Size information is almost always present,
and duration was missing for files uploaded via Desktop/Web until
recently. As anyways we are processing local only files, it made sense
to simplify the check and completely avoid processing such files.

**Previously, for such files where duration was missing, if my
understanding is correct, we were always downloading it to getProps
info, even for files larger than 500 MB.**

- Pause video streaming generation if ML is running
- Added delay before queuing files for video streaming immediately after
diff sync.
## Tests
2025-05-30 13:48:08 +05:30
Neeraj Gupta
61df740c01 Limit preview cache for preview with size < 50MB 2025-05-30 13:30:43 +05:30
Neeraj Gupta
3b3b41d55f Remove unused imports 2025-05-30 13:26:55 +05:30
Neeraj
0633582c7e [mob][photos] Update contacts section on PeopleChangedEvent (#6088) 2025-05-30 12:52:17 +05:30
Manav Rathi
1acd1f81f4 Use 2025-05-30 12:49:17 +05:30
Manav Rathi
2b35677227 faq 2025-05-30 12:34:33 +05:30
Manav Rathi
2b390b60c4 Handle browsers with incorrect time 2025-05-30 12:27:17 +05:30
Manav Rathi
a33af20944 [web] MUI - Don't override non-elevated backgrounds (#6092) 2025-05-30 11:10:56 +05:30
Manav Rathi
e8643c662e Alert 2025-05-30 11:04:57 +05:30
Ashil
aea57dd212 [mob][photos] Add uncategorized album in album vertical sheet (#6086)
## Description

- Show Uncategorized album on collection actions (except for collection
actions over hidden items)
- Show Uncategorized album on top

Closes #5833 


![simulator_screenshot_07BA6109-B6FA-45BF-9E75-43205697D0A7](https://github.com/user-attachments/assets/c0dc834b-c676-4cde-9006-1c77216141d0)
2025-05-30 11:04:32 +05:30
Manav Rathi
fe33469a79 Don't override non-elevated backgrounds
In particular, don't apply our shadow to variant "outlined"
2025-05-30 10:46:22 +05:30
Manav Rathi
d660f71f56 Update 2025-05-30 07:49:57 +05:30
Manav Rathi
61eb7c0e99 Swap 2025-05-30 07:49:57 +05:30
ashilkn
e438e35ccd Update contacts section on PeopleChangedEvent 2025-05-29 18:29:08 +05:30
Manav Rathi
d01348414c [desktop] Next release train (#6087) 2025-05-29 16:52:49 +05:30
Manav Rathi
2faa616cab [desktop] Next release train 2025-05-29 16:49:33 +05:30
ashilkn
78bad4e5a5 Show uncategorized album option for all CollectionActionTypes other than for hidden collection actions 2025-05-29 16:42:57 +05:30
ashilkn
466bb40a30 Show uncategorized album as the first option in collection action sheet 2025-05-29 16:34:00 +05:30
Neeraj Gupta
e55dcff9a5 Add delay before queuing files for streaming 2025-05-29 16:22:39 +05:30
Neeraj Gupta
8904916770 Pause streaming if ML is running 2025-05-29 16:22:26 +05:30
Manav Rathi
f3d19155a0 photosd-v1.7.13 (#6084) 2025-05-29 16:20:04 +05:30
Manav Rathi
75440e7c05 photosd-v1.7.13 2025-05-29 16:18:53 +05:30
Neeraj Gupta
7a7a50901f Rename 2025-05-29 16:17:44 +05:30
Neeraj Gupta
09ff43a1ef Simplify check for checking preview req 2025-05-29 16:07:53 +05:30
Neeraj Gupta
7cf4c7bf74 Avoid duplicate preview creation check 2025-05-29 15:35:40 +05:30
ashilkn
a3341202a7 Remove unused CollectionActionType 2025-05-29 15:33:07 +05:30
Neeraj Gupta
c87b2b7542 Only process files with known duration & size 2025-05-29 15:32:00 +05:30
Manav Rathi
2665d98681 [web] Tweak info panel titlebar (#6082)
Fixes https://github.com/ente-io/ente/issues/6081
2025-05-29 15:21:34 +05:30
Manav Rathi
8dd6e7d8ed Fix 6081 2025-05-29 15:17:13 +05:30
Neeraj Gupta
594c18db79 Use service locator 2025-05-29 14:56:33 +05:30
Vishnu Mohandas
320376e98d [docs] Update video-streaming.md 2025-05-29 14:28:17 +05:30
Manav Rathi
dbca5222e5 [desktop] Pre-release touchups (#6080) 2025-05-29 13:06:04 +05:30
Manav Rathi
d06c9174ac Use same constants for both 2025-05-29 13:00:31 +05:30
Manav Rathi
962fa33b04 +fav 2025-05-29 12:56:08 +05:30
Manav Rathi
c163c8ae71 [web] New translations (#6079)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2025-05-29 12:55:50 +05:30
Crowdin Bot
29720b350c New Crowdin translations by GitHub Action 2025-05-29 07:15:52 +00:00
Manav Rathi
b70cfe1309 [web] Split interactive and background requests (#6078) 2025-05-29 12:45:03 +05:30
Manav Rathi
cc5b2697d9 Use for HLS gen 2025-05-29 12:25:42 +05:30
Manav Rathi
1a49770e0b Outline 2025-05-29 11:38:58 +05:30
Neeraj
98137e87ab [mob] Fix: Treat sandbox file as unique file during upload (#6024) 2025-05-29 11:38:52 +05:30
Neeraj Gupta
fa0c70d633 Avoid mixing upload with preview generation to save cpu 2025-05-29 09:32:15 +05:30
Neeraj Gupta
909695ffaa Mark previewIDs as not nullable 2025-05-29 09:28:51 +05:30
Neeraj Gupta
b679d0213f Use hashMap to dedupe for uploadID 2025-05-29 09:19:19 +05:30
Neeraj Gupta
995342bbdb Clean up unused event 2025-05-29 09:05:45 +05:30
Manav Rathi
0786a355ca [desktop] Update Electron (#6077) 2025-05-29 07:46:48 +05:30
Manav Rathi
9683888d82 [web] General refactoring (#6076) 2025-05-29 07:38:13 +05:30
Manav Rathi
3ecaf9a0dc [desktop] Update Electron 2025-05-29 07:35:01 +05:30
Manav Rathi
c985fe9882 pk 2025-05-28 19:56:27 +05:30
Manav Rathi
9b5dcc9a95 custom error 2025-05-28 19:34:42 +05:30
Manav Rathi
17d6860faa optional 2025-05-28 19:21:18 +05:30
AmanRajSinghMourya
3ea09df4c0 Add NewProgressIndicator widget for step progress animation for memories 2025-05-28 19:12:37 +05:30
Manav Rathi
63a3edd053 [web] Convert deprecated titlebar uses (#6074) 2025-05-28 17:32:15 +05:30
Manav Rathi
2764256a02 Conv 2025-05-28 17:23:58 +05:30
Manav Rathi
bcc0403eb6 Last one 2025-05-28 17:19:55 +05:30
laurenspriem
ebfc1103fe Rename to fileFaceWidget 2025-05-28 17:02:31 +05:30
laurenspriem
db07fb35d2 face widget cropping functionality 2025-05-28 17:01:08 +05:30
Manav Rathi
da0d9dfdab Tweak visually 2025-05-28 16:23:51 +05:30
Manav Rathi
5171518d9b Replace 2025-05-28 16:14:59 +05:30
Manav Rathi
27d0c8a838 Pattern 2025-05-28 16:09:09 +05:30
Manav Rathi
76d7f039ea Swap 2025-05-28 16:05:31 +05:30
laurenspriem
7519ed5e15 Use new face widget in file info 2025-05-28 15:51:31 +05:30
Manav Rathi
1afc2e31bf Inline 2025-05-28 15:51:07 +05:30
Manav Rathi
d5a75707f3 Update 2025-05-28 15:47:57 +05:30
Manav Rathi
923a2a60fe re 2025-05-28 15:37:44 +05:30
Manav Rathi
d47c96aa3f Use 2025-05-28 15:22:23 +05:30
Manav Rathi
13ed68c79e Use right 2025-05-28 15:20:12 +05:30
Manav Rathi
79f5d6763c Use 2025-05-28 15:15:33 +05:30
Manav Rathi
68aaedc2d9 abstraction 2025-05-28 14:59:39 +05:30
laurenspriem
97a174ff75 Merge branch 'main' into face_thumbnails 2025-05-28 14:42:00 +05:30
Manav Rathi
2455d34553 Simplify 2025-05-28 14:34:46 +05:30
Neeraj
f045dc8e04 [server] Update limit (#6073)
## Description

## Tests
2025-05-28 14:13:30 +05:30
Neeraj Gupta
7986563443 Update limit 2025-05-28 14:00:43 +05:30
Neeraj
114dfb1f41 [server] Prefer second hot bucket for export (#6071)
## Description

## Tests
2025-05-28 13:15:40 +05:30
Manav Rathi
7ef65568d0 [web] General refactoring (#6072) 2025-05-28 13:15:12 +05:30
Manav Rathi
5a241a8153 Handle error from new fetch stack 2025-05-28 12:54:08 +05:30
Manav Rathi
cbc7c936f7 Inline 2025-05-28 12:46:39 +05:30
Neeraj Gupta
e14510f46e Remove log 2025-05-28 12:46:05 +05:30
Neeraj
f5478c7396 [mobile] New translations (#6034)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-app)
2025-05-28 12:45:21 +05:30
Neeraj Gupta
ea1319b13b Prefer second hot bucket for export 2025-05-28 12:44:38 +05:30
Manav Rathi
b45e270475 Unused 2025-05-28 12:31:38 +05:30
Manav Rathi
cdd82707f7 Conv 2025-05-28 12:03:17 +05:30
Manav Rathi
db33e61af9 Conv 2025-05-28 11:58:46 +05:30
Manav Rathi
36dda95b41 fv 2025-05-28 11:53:45 +05:30
Manav Rathi
61b15ba3ef Simplify 2025-05-28 11:48:05 +05:30
Manav Rathi
0690a32d59 Simplify 2025-05-28 11:42:56 +05:30
Neeraj
463ce4964b [mob] Enable resumable download for internal users (#6022)
## Description
- Enabled for internal users
- Download happens in chunk of 40MB, if individual chunk download fails,
we download that chunk from scratch (we can optimise it resume even the
chunk download, but i felt it would add redundant complexity.
- Download pauses automatically when user moves to next video/image (The
exact behaviour is yet to be decided, may be it should continue download
if on unmetered connection or always download with option to pause the
download on UI)

## Tests
Tested on simulator
2025-05-28 11:36:45 +05:30
Neeraj Gupta
ed05269a42 Merge remote-tracking branch 'origin/main' into resumableDownload 2025-05-28 11:32:04 +05:30
laurenspriem
903366a42c Refactor to simplify 2025-05-28 11:22:21 +05:30
Manav Rathi
d537b8f00b Props 2025-05-28 10:47:53 +05:30
Manav Rathi
84912c1a0e Fix missing negation
and simplify usage
2025-05-28 10:47:53 +05:30
Manav Rathi
15f427ef37 This was a no-op for disabled buttons 2025-05-28 10:47:53 +05:30
Neeraj
89837b79e8 [server] Fix: Typo in bucket name for filedata multipart url (#6070)
## Description

## Tests
2025-05-28 10:38:51 +05:30
Neeraj Gupta
7afb305dbb Fix: Typo in bucket name for filedata multipart url 2025-05-28 10:36:38 +05:30
Manav Rathi
8e6ff3b96c [web] General ref + Uploader name web only until next release (#6068) 2025-05-28 07:19:11 +05:30
Manav Rathi
deb6cfe03a Move 2025-05-28 07:12:56 +05:30
Manav Rathi
dbec318f7b for next release train 2025-05-28 07:03:18 +05:30
Manav Rathi
6f24109669 Conv 2025-05-28 06:29:58 +05:30
Manav Rathi
beda124d3f rf 2025-05-28 06:29:58 +05:30
laurenspriem
015321fa0d Rename widget 2025-05-27 17:51:15 +05:30
laurenspriem
3e1a01c1f3 Move person_face_widget 2025-05-27 17:26:14 +05:30
laurenspriem
351cf50f73 Rename for clarity 2025-05-27 17:19:09 +05:30
Neeraj Gupta
29f9a64bfb Undo testing change 2025-05-27 15:16:16 +05:30
Crowdin Bot
f73fbf4b60 New Crowdin translations by GitHub Action 2025-05-26 01:05:08 +00:00
Neeraj Gupta
8ab01aefe5 Fix lint + add todo 2025-05-24 09:00:52 +05:30
Neeraj Gupta
fa33a1afd9 Fix: Treat sandbox file as unique file during upload 2025-05-24 08:20:02 +05:30
Neeraj Gupta
0f7aae2017 Show resumable download progress for mediaKit 2025-05-24 07:42:19 +05:30
Neeraj Gupta
c1ddb863ad Refactor 2025-05-24 07:38:22 +05:30
Neeraj Gupta
7391f27967 Auto pause download when user move away from video 2025-05-23 17:13:54 +05:30
Neeraj Gupta
f7bb9d5974 Remove db to track download tasks 2025-05-23 16:31:28 +05:30
Neeraj Gupta
e3b72fc929 Show part storage breakup under pending sync 2025-05-23 15:35:09 +05:30
Neeraj Gupta
92dae44a0a Refactor 2025-05-23 15:34:55 +05:30
Neeraj Gupta
6c9107301c Add support for resumable download 2025-05-23 11:21:48 +05:30
Neeraj Gupta
372af94da4 Merge remote-tracking branch 'origin/main' into resumableDownload 2025-05-22 16:41:21 +05:30
Neeraj Gupta
8bc701d104 Download by individual chunks 2025-05-22 15:35:45 +05:30
Neeraj Gupta
78e70a1c05 Merge branch 'main' into resumableDownload 2025-05-21 16:03:58 +05:30
Neeraj Gupta
a5ccae4390 Merge branch 'main' into resumableDownload 2025-05-20 14:21:27 +05:30
Neeraj Gupta
34b53f8443 Show download progress for internal users 2025-05-20 12:29:17 +05:30
Neeraj Gupta
8448be6c68 move model out + clean up 2025-05-20 12:01:13 +05:30
Neeraj Gupta
7f3d4db9a5 Add scaffold (llm) for resumable download 2025-05-19 16:57:41 +05:30
Prateek Sunal
8c58e536de Merge remote-tracking branch 'origin/main' into improve-bg-processing 2025-05-12 14:42:33 +05:30
Prateek Sunal
8eed8a67ee fix(bgsync): better fg check, init deps well, add seppuku function 2025-05-12 14:41:42 +05:30
Prateek Sunal
89ba442731 fix: remove fg sync for now 2025-05-12 14:41:04 +05:30
Prateek Sunal
81965d0d36 fix(bgtask): better logging 2025-05-12 14:40:52 +05:30
Prateek Sunal
674642ac7c Merge remote-tracking branch 'origin/main' into improve-bg-processing 2025-05-09 14:29:22 +05:30
Prateek Sunal
08889bd608 fix: decrease the time to 15 mins on iOS 2025-05-09 14:29:14 +05:30
Prateek Sunal
990d185e86 fix: separate BgTaskUtils for workmanager rel utils 2025-05-08 15:31:11 +05:30
Prateek Sunal
8db7fb3842 fix: add different names for background task identifier's 2025-05-07 19:35:49 +05:30
Prateek Sunal
f18dd26716 Merge remote-tracking branch 'origin/main' into improve-bg-processing 2025-05-07 16:39:47 +05:30
Prateek Sunal
25c5efbb8c fix(work-manager): use different identifier name 2025-05-07 13:31:12 +05:30
Prateek Sunal
f5e0a006c8 Merge remote-tracking branch 'origin/main' into improve-bg-processing 2025-05-06 18:35:35 +05:30
Prateek Sunal
5141493337 fix: add true to debug mode 2025-05-06 18:34:51 +05:30
Prateek Sunal
e0f8e791b3 fix: remove bg fetch 2025-05-06 18:34:41 +05:30
Prateek Sunal
2bb28f83c1 Merge remote-tracking branch 'origin/main' into improve-bg-processing 2025-05-02 17:39:52 +05:30
Prateek Sunal
af52644a4b fix: adjust initial delay for background task and remove unnecessary delay 2025-05-02 11:54:15 +05:30
Prateek Sunal
eb71113d73 chore: update lock files 2025-05-02 11:53:46 +05:30
Prateek Sunal
cd5288eb47 chore: bump locks 2025-05-02 10:58:38 +05:30
Prateek Sunal
c8e5246f44 Merge remote-tracking branch 'origin/main' into improve-bg-processing 2025-05-02 10:58:21 +05:30
Prateek Sunal
00c0f36d71 chore: update pubspec lock 2025-04-07 14:55:01 +05:30
Prateek Sunal
aaca6d62f3 Merge remote-tracking branch 'origin/main' into improve-bg-processing 2025-04-07 14:54:09 +05:30
Prateek Sunal
f62e76eb02 Merge remote-tracking branch 'origin/main' into improve-bg-processing 2025-04-06 21:05:12 +05:30
Prateek Sunal
9717a92142 feat: Register periodic task for iOS background app refresh and simplify setupIntentAction call 2025-03-27 18:53:33 +05:30
Prateek Sunal
cfe091b5b3 chore: Update Podfile.lock with dependency version changes 2025-03-26 23:03:30 +05:30
Prateek Sunal
a450004c19 Merge remote-tracking branch 'origin/main' into improve-bg-processing 2025-03-26 22:47:10 +05:30
Prateek Sunal
939b30c1b2 feat: Remove background_fetch dependency and update workmanager to use git source 2025-03-26 22:46:35 +05:30
Prateek Sunal
68886d72ce Merge remote-tracking branch 'origin/mob_workmanager' into improve-bg-processing 2025-03-26 15:50:40 +05:30
Prateek Sunal
15947c311d chore: change to if else ladder 2024-11-07 20:22:34 +05:30
Prateek Sunal
da7247357a chore: change if else format 2024-11-07 19:14:16 +05:30
Prateek Sunal
2bc84f446b fix: dependency override to support both background_fetch and workmanager 2024-11-07 00:04:37 +05:30
Prateek Sunal
c3f970b5fe fix: move work manager outside 2024-11-06 23:28:49 +05:30
Prateek Sunal
7a69ac730b chore: update translations 2024-11-06 23:25:30 +05:30
Prateek Sunal
0b83bbbe40 Merge remote-tracking branch 'origin/main' into mob_workmanager 2024-11-06 23:24:13 +05:30
Prateek Sunal
e7bf39a770 feat: update work manager methods 2024-11-06 23:18:45 +05:30
Prateek Sunal
3d1b6a40e2 Merge remote-tracking branch 'origin/main' into mob_workmanager 2024-11-05 16:27:43 +05:30
Prateek Sunal
8d55d310da fix: remove background fetch temporarily 2024-10-04 00:51:13 +05:30
3435 changed files with 63487 additions and 38785 deletions

View File

@@ -1,45 +1,22 @@
name: Report a bug
description: Let us know if something's not working the way you expected.
description: Things that were working earlier but don't anymore
labels: []
body:
- type: markdown
attributes:
value: |
Before opening a new bug report, please ensure
1. you are on the latest version (it might've already been fixed),
2. you've searched for existing issues (please add your observations as a comment there instead of creating a duplicate).
If you are self hosting, please create a community [Q&A](https://github.com/ente-io/ente/discussions/categories/q-a) instead.
**Checklist**
1. You've searched existing [issues](https://github.com/search?q=repo%3Aente-io%2Fente+&type=issues) and [discussions](https://github.com/search?q=repo%3Aente-io%2Fente+&type=discussions)
2. It was working earlier (otherwise use [enhancements](https://github.com/ente-io/ente/discussions/categories/enhancements))
3. It is not about self hosting (for those use [this](https://github.com/ente-io/ente/discussions/categories/q-a))
- type: textarea
attributes:
label: Description
description: >
Please describe the bug. If possible, also include the steps to
reproduce the behaviour, and the expected behaviour (sometimes
bugs are just expectation mismatches, in which case this would be
a good fit for [feature
requests](https://github.com/ente-io/ente/discussions/categories/feature-requests)).
validations:
required: true
- type: input
attributes:
label: Version
description: The version can be seen at the bottom of settings.
placeholder: e.g. v1.2.3
- type: input
attributes:
label: Last working version
description: >
The version where the feature was last known to be working. It is
fine if you don't remember the exact version (mention roughly
then), but if there just isn't a last known working version, then
it is likely that what is being reported is not an issue but a
feature request. The difference between the two categories is not
just semantic - feature requests use GitHub discussions and so can
be [upvoted by the
community](https://github.com/ente-io/ente/discussions/categories/feature-requests)
(issues can't be).
placeholder: e.g. v1.2.3
- type: dropdown
attributes:
label: What product are you using?

View File

@@ -1,5 +1,5 @@
blank_issues_enabled: true
contact_links:
- name: Feature requests and questions
- name: Enhacements, feature requests, feedback and questions
url: https://github.com/ente-io/ente/discussions
about: Please use Discussions for everything apart from the above.

View File

@@ -24,8 +24,8 @@ jobs:
- name: Crowdin's action
uses: crowdin/github-action@v2
with:
base_path: "auth/"
config: "auth/crowdin.yml"
base_path: "mobile/apps/auth/"
config: "mobile/apps/auth/crowdin.yml"
upload_sources: true
upload_translations: false
download_translations: false

View File

@@ -23,8 +23,8 @@ jobs:
- name: Crowdin's action
uses: crowdin/github-action@v2
with:
base_path: "auth/"
config: "auth/crowdin.yml"
base_path: "mobile/apps/auth/"
config: "mobile/apps/auth/crowdin.yml"
upload_sources: true
upload_translations: false
download_translations: true

View File

@@ -15,7 +15,7 @@ jobs:
defaults:
run:
working-directory: auth
working-directory: mobile/apps/auth
steps:
- name: Checkout code and submodules
@@ -55,7 +55,7 @@ jobs:
with:
serviceAccountJsonPlainText: ${{ secrets.SERVICE_ACCOUNT_JSON }}
packageName: io.ente.auth
releaseFiles: auth/build/app/outputs/bundle/playstoreRelease/app-playstore-release.aab
releaseFiles: mobile/apps/auth/build/app/outputs/bundle/playstoreRelease/app-playstore-release.aab
track: internal
- name: Notify Discord

View File

@@ -18,7 +18,7 @@ jobs:
runs-on: ubuntu-latest
defaults:
run:
working-directory: auth
working-directory: mobile/apps/auth
steps:
- name: Checkout code and submodules
uses: actions/checkout@v4

View File

@@ -40,7 +40,7 @@ jobs:
defaults:
run:
working-directory: auth
working-directory: mobile/apps/auth
steps:
- name: Checkout code and submodules
@@ -98,7 +98,7 @@ jobs:
- name: Install appimagetool
run: |
wget -O appimagetool "https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage"
wget -O appimagetool "https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage"
chmod +x appimagetool
mv appimagetool /usr/local/bin/
@@ -124,7 +124,7 @@ jobs:
- name: Create a draft GitHub release
uses: ncipollo/release-action@v1
with:
artifacts: "auth/artifacts/*"
artifacts: "mobile/apps/auth/artifacts/*"
draft: true
allowUpdates: true
updateOnlyUnreleased: true
@@ -136,15 +136,16 @@ jobs:
with:
serviceAccountJsonPlainText: ${{ secrets.SERVICE_ACCOUNT_JSON }}
packageName: io.ente.auth
releaseFiles: auth/build/app/outputs/bundle/playstoreRelease/app-playstore-release.aab
releaseFiles: mobile/apps/auth/build/app/outputs/bundle/playstoreRelease/app-playstore-release.aab
track: internal
build-windows:
runs-on: windows-latest
environment: "auth-win-build"
defaults:
run:
working-directory: auth
working-directory: mobile/apps/auth
steps:
- name: Checkout code and submodules
@@ -174,14 +175,22 @@ jobs:
- name: Retain Windows EXE and DLLs
run: cp -r build/windows/x64/runner/Release ente-${{ github.ref_name }}-windows
- name: Code sign Windows installer and EXE
uses: dlemstra/code-sign-action@v1
- name: Sign files with Trusted Signing
uses: azure/trusted-signing-action@v0
with:
certificate: "${{ secrets.WINDOWS_CERTIFICATE }}"
password: "${{ secrets.WINDOWS_CERTIFICATE_PASSWORD }}"
files: |
auth/artifacts/ente-${{ github.ref_name }}-installer.exe
auth/ente-${{ github.ref_name }}-windows/auth.exe
azure-tenant-id: ${{ secrets.AZURE_TENANT_ID }}
azure-client-id: ${{ secrets.AZURE_CLIENT_ID }}
azure-client-secret: ${{ secrets.AZURE_CLIENT_SECRET }}
endpoint: ${{ secrets.AZURE_ENDPOINT }}
trusted-signing-account-name: ${{ secrets.AZURE_CODE_SIGNING_NAME }}
certificate-profile-name: ${{ secrets.AZURE_CERT_PROFILE_NAME }}
files: |
${{ github.workspace }}/mobile/apps/auth/artifacts/ente-${{ github.ref_name }}-installer.exe
${{ github.workspace }}/mobile/apps/auth/ente-${{ github.ref_name }}-windows/auth.exe
file-digest: SHA256
timestamp-rfc3161: http://timestamp.acs.microsoft.com
timestamp-digest: SHA256
- name: Zip Windows EXE and DLLs
run: tar.exe -a -c -f artifacts/ente-${{ github.ref_name }}-windows.zip ente-${{ github.ref_name }}-windows
@@ -192,7 +201,7 @@ jobs:
- name: Create a draft GitHub release
uses: ncipollo/release-action@v1
with:
artifacts: "auth/artifacts/*"
artifacts: "mobile/apps/auth/artifacts/*"
draft: true
allowUpdates: true
updateOnlyUnreleased: true
@@ -202,7 +211,7 @@ jobs:
defaults:
run:
working-directory: auth
working-directory: mobile/apps/auth
steps:
- name: Checkout code and submodules
@@ -289,7 +298,7 @@ jobs:
- name: Create a draft GitHub release
uses: ncipollo/release-action@v1
with:
artifacts: "auth/artifacts/*"
artifacts: "mobile/apps/auth/artifacts/*"
draft: true
allowUpdates: true
updateOnlyUnreleased: true

32
.github/workflows/docs-lint.yml vendored Normal file
View File

@@ -0,0 +1,32 @@
name: "Lint (docs)"
on:
# Run on every pull request (open or push to it) that changes docs/
pull_request:
paths:
- "docs/**"
- ".github/workflows/docs-lint.yml"
permissions:
contents: read
jobs:
lint:
runs-on: ubuntu-latest
defaults:
run:
working-directory: docs
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup node and enable yarn caching
uses: actions/setup-node@v4
with:
node-version: 22
cache: "yarn"
cache-dependency-path: "web/yarn.lock"
- run: yarn install
- run: yarn pretty:check

View File

@@ -5,7 +5,7 @@ on:
branches: [main]
paths:
# Run workflow when mobiles's intl_en.arb is changed
- "mobile/lib/l10n/intl_en.arb"
- "mobile/apps/photos/lib/l10n/intl_en.arb"
# Or the workflow itself is changed
- ".github/workflows/mobile-crowdin.yml"
@@ -24,8 +24,8 @@ jobs:
- name: Crowdin's action
uses: crowdin/github-action@v2
with:
base_path: "mobile/"
config: "mobile/crowdin.yml"
base_path: "mobile/apps/photos/"
config: "mobile/apps/photos/crowdin.yml"
upload_sources: true
upload_translations: false
download_translations: false

View File

@@ -1,4 +1,4 @@
name: "Sync Crowdin translations (mobile)"
name: "Sync Crowdin translations (mobile/photos)"
on:
schedule:
@@ -23,14 +23,14 @@ jobs:
- name: Crowdin's action
uses: crowdin/github-action@v2
with:
base_path: "mobile/"
config: "mobile/crowdin.yml"
base_path: "mobile/apps/photos/"
config: "mobile/apps/photos/crowdin.yml"
upload_sources: true
upload_translations: false
download_translations: true
localization_branch_name: translations/mobile
create_pull_request: true
pull_request_title: "[mobile] New translations"
pull_request_title: "[mobile/photos] New translations"
pull_request_body: "New translations from [Crowdin](https://crowdin.com/project/ente-photos-app)"
pull_request_base_branch_name: "main"
project_id: 574741

View File

@@ -16,7 +16,7 @@ jobs:
defaults:
run:
working-directory: mobile
working-directory: mobile/apps/photos
steps:
- name: Checkout code and submodules
@@ -64,7 +64,7 @@ jobs:
with:
serviceAccountJsonPlainText: ${{ secrets.SERVICE_ACCOUNT_JSON }}
packageName: io.ente.photos
releaseFiles: mobile/build/app/outputs/bundle/playstoreRelease/app-playstore-release.aab
releaseFiles: mobile/apps/photos/build/app/outputs/bundle/playstoreRelease/app-playstore-release.aab
track: internal
- name: Notify Discord

View File

@@ -15,7 +15,7 @@ jobs:
defaults:
run:
working-directory: mobile
working-directory: mobile/apps/photos
steps:
- name: Checkout code and submodules
@@ -55,7 +55,7 @@ jobs:
with:
serviceAccountJsonPlainText: ${{ secrets.SERVICE_ACCOUNT_JSON }}
packageName: io.ente.photos
releaseFiles: mobile/build/app/outputs/bundle/playstoreRelease/app-playstore-release.aab
releaseFiles: mobile/apps/photos/build/app/outputs/bundle/playstoreRelease/app-playstore-release.aab
track: internal
- name: Notify Discord

View File

@@ -4,7 +4,7 @@ on:
# Run on every pull request (open or push to it) that changes mobile/
pull_request:
paths:
- "mobile/**"
- "mobile/apps/photos/**"
- ".github/workflows/mobile-lint.yml"
env:
@@ -18,7 +18,7 @@ jobs:
runs-on: ubuntu-latest
defaults:
run:
working-directory: mobile
working-directory: mobile/apps/photos
steps:
- name: Checkout code and submodules
uses: actions/checkout@v4

View File

@@ -20,7 +20,7 @@ jobs:
defaults:
run:
working-directory: mobile
working-directory: mobile/apps/photos
steps:
- name: Checkout code and submodules
@@ -62,5 +62,5 @@ jobs:
- name: Create a draft GitHub release
uses: ncipollo/release-action@v1
with:
artifacts: "mobile/build/app/outputs/flutter-apk/ente-${{ github.ref_name }}.apk,mobile/build/app/outputs/flutter-apk/sha256sum"
artifacts: "mobile/apps/photos/build/app/outputs/flutter-apk/ente-${{ github.ref_name }}.apk,mobile/apps/photos/build/app/outputs/flutter-apk/sha256sum"
draft: true

View File

@@ -0,0 +1,126 @@
name: "Internal Release V2 (photos)"
on:
workflow_dispatch: # Manual trigger only
env:
FLUTTER_VERSION: "3.24.3"
ANDROID_KEYSTORE_PATH: "keystore/ente_photos_key.jks"
jobs:
build:
runs-on: macos-latest # Required for iOS builds
environment: "ios-build"
permissions:
contents: write
defaults:
run:
working-directory: mobile/apps/photos
steps:
# Common Setup
- name: Checkout code
uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup JDK 17
uses: actions/setup-java@v1
with:
java-version: 17
- name: Install Flutter
uses: subosito/flutter-action@v2
with:
flutter-version: ${{ env.FLUTTER_VERSION }}
cache: true
# Android Build
- name: Setup Android signing key
uses: timheuer/base64-to-file@v1
with:
fileName: ${{ env.ANDROID_KEYSTORE_PATH }}
encodedString: ${{ secrets.SIGNING_KEY_PHOTOS }}
# - name: Build Android AAB
# run: |
# flutter build appbundle \
# --dart-define=cronetHttpNoPlay=true \
# --release \
# --flavor playstore
# env:
# SIGNING_KEY_PATH: ${{ env.ANDROID_KEYSTORE_PATH }}
# SIGNING_KEY_ALIAS: ${{ secrets.SIGNING_KEY_ALIAS_PHOTOS }}
# SIGNING_KEY_PASSWORD: ${{ secrets.SIGNING_KEY_PASSWORD_PHOTOS }}
# SIGNING_STORE_PASSWORD: ${{ secrets.SIGNING_STORE_PASSWORD_PHOTOS }}
# iOS Build (new secure implementation)
- name: Install fastlane
run: gem install fastlane
- name: Create ExportOptions.plist
run: |
cat <<EOF > ios/ExportOptions.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>method</key>
<string>app-store</string>
<key>teamID</key>
<string>${{ secrets.IOS_TEAM_ID }}</string>
</dict>
</plist>
EOF
- name: Setup App Store Connect API Key
run: |
echo '${{ secrets.IOS_API_KEY }}' > api_key.json
chmod 600 api_key.json
- name: Build iOS IPA
run: |
flutter build ipa \
--release \
--export-options-plist=ExportOptions.plist \
--dart-define=cronetHttpNoPlay=true
env:
SIGNING_TEAM_ID: ${{ secrets.IOS_TEAM_ID }}
# Uploads
# - name: Upload to Play Store
# uses: r0adkll/upload-google-play@v1
# with:
# serviceAccountJsonPlainText: ${{ secrets.SERVICE_ACCOUNT_JSON }}
# packageName: io.ente.photos
# releaseFiles: build/app/outputs/bundle/playstoreRelease/app-playstore-release.aab
# track: internal
- name: Upload to TestFlight
run: |
fastlane pilot upload \
--api_key_path api_key.json \
--ipa "build/ios/ipa/Ente Photos.ipa" \
--skip_waiting_for_build_processing \
--apple_id ${{ secrets.IOS_APPLE_ID }} \
--app_identifier "io.ente.photos"
env:
APP_STORE_CONNECT_API_KEY_ID: ${{ secrets.IOS_API_KEY_ID }}
APP_STORE_CONNECT_ISSUER_ID: ${{ secrets.IOS_ISSUER_ID }}
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD: ${{ secrets.IOS_APP_SPECIFIC_PASSWORD }}
- name: Clean sensitive files
run: |
rm -f api_key.json
rm -f ${{ env.ANDROID_KEYSTORE_PATH }}
- name: Notify Discord
uses: sarisia/actions-status-discord@v1
with:
webhook: ${{ secrets.DISCORD_INTERNAL_RELEASE_WEBHOOK }}
title: "🚀 Dual Platform Release Uploaded"
description: |
**Android**: [Play Store Internal](https://play.google.com/store/apps/details?id=io.ente.photos)
**iOS**: TestFlight build processing
color: 0x00ff00

41
.github/workflows/rust-lint.yml vendored Normal file
View File

@@ -0,0 +1,41 @@
name: "Lint (rust)"
on:
# Run on every pull request (open or push to it) that changes rust/
pull_request:
paths:
- "rust/**"
- ".github/workflows/rust-lint.yml"
permissions:
contents: read
# Cancel in-progress lint runs when a new commit is pushed.
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
lint:
runs-on: ubuntu-latest
defaults:
run:
working-directory: rust
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Cache
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- run: cargo fmt --check
- run: cargo clippy
- run: cargo build

View File

@@ -93,3 +93,13 @@ jobs:
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
command: pages deploy --project-name=ente --commit-dirty=true --branch=deploy/payments web/apps/payments/dist
- name: Build locker
run: yarn build:locker
- name: Publish locker
uses: cloudflare/wrangler-action@v3
with:
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
command: pages deploy --project-name=ente --commit-dirty=true --branch=deploy/locker web/apps/locker/out

4
.gitmodules vendored
View File

@@ -3,9 +3,9 @@
url = https://github.com/ente-io/sentry-dart.git
branch = sentry_flutter_ente
[submodule "auth/flutter"]
path = auth/flutter
path = mobile/apps/auth/flutter
url = https://github.com/flutter/flutter.git
branch = stable
[submodule "auth/assets/simple-icons"]
path = auth/assets/simple-icons
path = mobile/apps/auth/assets/simple-icons
url = https://github.com/simple-icons/simple-icons.git

View File

@@ -1,54 +1,42 @@
# Contributing
First and foremost, thank you for your interest in contributing to Ente 🙏
There are many ways to contribute, and most of them don't require writing code.
* [Spread the word](#spread-the-word)
* [Engage with the community](#engage-with-the-community)
* [Translate](#translate)
* [Document](#document)
- [Spread the word](#spread-the-word)
- [Engage with the community](#engage-with-the-community)
- [Translate](#translate)
- [Document](#document)
## Spread the word
This is perhaps the most impactful contribution you can make. [Spread the
word](https://help.ente.io/photos/features/referral-program/). Online on your
favorite social media channels. Offline to your friends and family who are
looking for a privacy-friendly alternative to big tech.
**This is the most impactful contribution you can make**.
[Spread the word](https://help.ente.io/photos/features/referral-program/). Online on your favorite social media channels. Offline to your friends and family who are looking for a privacy-friendly alternative to big tech.
## Engage with the community
Just hang around, enjoy the vibe. Answer someone's query on our
[Discord](https://discord.gg/z2YVKkycX3), or pile on in the sporadic #off-topic
rants there. Chuckle (or wince!) at our [Twitter](https://twitter.com/enteio)
memes. Suggest a new feature in our [Github
Discussions](https://github.com/ente-io/ente/discussions/new?category=feature-requests),
or upvote the existing ones that you feel we should focus on first. Provide your
opinion on existing threads.
Just hang around, enjoy the vibe. The Ente community — the people who are building Ente, and the people who are using Ente — hang out at various places depending on their proclivity:
These might seem like small things, but it provides us energy. Knowing that
there is a community of people who care for what we are building.
- [Discord](https://discord.ente.io)
- [Mastodon](https://fosstodon.org/@ente)
- [X / Twitter](https://twitter.com/enteio)
- [Github Discussions](https://github.com/ente-io/ente/discussions)
Just being around might seem a small thing, but it provides us energy. Knowing that there is a community of people who care for what we are building, **who want us to do better**.
## Translate
If you're interested in helping out with translation, please visit our Crowdin
projects to get started:
| Project | |
| ------------- | ------------- |
| [Auth](https://crowdin.com/project/ente-authenticator-app) | [![Crowdin](https://badges.crowdin.net/ente-authenticator-app/localized.svg)](https://crowdin.com/project/ente-authenticator-app) |
| [Photos](https://crowdin.com/project/ente-photos-app) | [![Crowdin](https://badges.crowdin.net/ente-photos-app/localized.svg)](https://crowdin.com/project/ente-photos-app) |
| [Photos Web / Desktop](https://crowdin.com/project/ente-photos-web) | [![Crowdin](https://badges.crowdin.net/ente-photos-web/localized.svg)](https://crowdin.com/project/ente-photos-web) |
Visit our Crowdin projects to help with translations:
| Project | |
| ------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| [Auth](https://crowdin.com/project/ente-authenticator-app) | [![Crowdin](https://badges.crowdin.net/ente-authenticator-app/localized.svg)](https://crowdin.com/project/ente-authenticator-app) |
| [Photos](https://crowdin.com/project/ente-photos-app) | [![Crowdin](https://badges.crowdin.net/ente-photos-app/localized.svg)](https://crowdin.com/project/ente-photos-app) |
| [Photos Web / Desktop](https://crowdin.com/project/ente-photos-web) | [![Crowdin](https://badges.crowdin.net/ente-photos-web/localized.svg)](https://crowdin.com/project/ente-photos-web) |
If your language is not listed for translation, please [create a GitHub
issue](https://github.com/ente-io/ente/issues/new?title=Request+for+New+Language+Translation&body=Language+name%3A+%0AProject%3A+auth%2Fphotos%2Fboth)
to have it added. It is okay to have partial translations. Once ~90% of the
strings in a language get translated, we will start surfacing it in the apps.
Thank you for your support.
## Document
The help guides and FAQs for users of Ente products are also open source, and
@@ -60,25 +48,9 @@ See [docs/](docs/README.md) for how to edit these documents.
## Code contributions
Code is a small aspect of community, and the ways mentioned above are more
important in helping us. But if you'd _really_ like to contribute code, it is
best to start small. Consider some well-scoped changes, say like adding more
[custom icons to auth](auth/docs/adding-icons.md).
If you'd like to contribute code, it is best to start small. Consider some well-scoped changes, say like adding more [custom icons to auth](auth/docs/adding-icons.md), or fixing a specific bug.
Each of the individual product/platform specific directories in this repository
have instructions on setting up a dev environment.
For anything beyond trivial bug fixes, please use [features requests and
discussions](https://github.com/ente-io/ente/discussions) instead of performing
code changes directly.
> [!TIP]
>
> Please remember that code is a important, but small, part of the overall big
> picture that makes a product a joy to use. Something that's easy in code is
> not necessarily the right choice for the product as a whole. So we'll repeat -
> there are other ways to contribute than code that we'd request you to
> consider.
Code that changes the behaviour of the product might not get merged, at least not initially. The PR can serve as a discussion bed, but you might find it easier to just start a discussion instead, or post your perspective in the (likely) existing thread about the behaviour change or new feature you wish for.
## Leave a review or star

View File

@@ -1,97 +0,0 @@
{
"account": "Уліковы запіс",
"unlock": "Разблакіраваць",
"recoveryKey": "Ключ аднаўлення",
"counterAppBarTitle": "Лічыльнік",
"@counterAppBarTitle": {
"description": "Text shown in the AppBar of the Counter Page"
},
"onBoardingBody": "Бяспечна зрабіць рэзервовую копію кодаў 2ФА",
"onBoardingGetStarted": "Пачаць",
"setupFirstAccount": "Наладзіць ваш першы ўліковы запіс",
"importScanQrCode": "Сканіраваць код QR-код",
"qrCode": "QR-код",
"importEnterSetupKey": "Увесці ключ наладжвання",
"importAccountPageTitle": "Увесці падрабязнасці ўліковага запісу",
"secretCanNotBeEmpty": "Сакрэт не можа быць пустым",
"bothIssuerAndAccountCanNotBeEmpty": "І выдавец, і ўліковы запіс не могуць быць пустымі",
"incorrectDetails": "Няправільныя падрабязнасці",
"pleaseVerifyDetails": "Праверце падрабязнасці і паспрабуйце яшчэ раз",
"codeIssuerHint": "Выдавец",
"codeSecretKeyHint": "Сакрэтны ключ",
"secret": "Сакрэт",
"all": "Усе",
"notes": "Нататкі",
"notesLengthLimit": "Максімальная колькасць сімвалаў у нататках не больш за {count}",
"@notesLengthLimit": {
"description": "Text to indicate the maximum number of characters allowed for notes",
"placeholders": {
"count": {
"description": "The maximum number of characters allowed for notes",
"type": "int",
"example": "100"
}
}
},
"codeAccountHint": "Уліковы запіс (vy@damen.com)",
"codeTagHint": "Тэг",
"accountKeyType": "Тып ключа",
"sessionExpired": "Сеанс завяршыўся",
"@sessionExpired": {
"description": "Title of the dialog when the users current session is invalid/expired"
},
"pleaseLoginAgain": "Аўтарызуйцеся яшчэ раз",
"loggingOut": "Выхад...",
"timeBasedKeyType": "Заснаваныя на часе (TOTP)",
"counterBasedKeyType": "Заснаваныя на лічыльніку (HOTP)",
"saveAction": "Захаваць",
"nextTotpTitle": "наступны",
"deleteCodeTitle": "Выдаліць код?",
"deleteCodeMessage": "Вы сапраўды хочаце выдаліць гэты код? Гэта дзеянне з'яўляецца незваротным.",
"trashCode": "Выдаліць код?",
"trashCodeMessage": "Вы сапраўды хочаце выдаліць код для {account}?",
"trash": "Сметніца",
"viewLogsAction": "Паглядзець журнал",
"preparingLogsTitle": "Падрыхтоўка журнала...",
"emailLogsTitle": "Адправіць журнал па электроннай пошце",
"exportLogsAction": "Экспартаваць журнал",
"reportABug": "Паведаміць пра памылку",
"reportBug": "Паведаміць пра памылку",
"contactSupport": "Звярнуцца ў службу падтрымкі",
"blog": "Блог",
"verifyPassword": "Праверыць пароль",
"pleaseWait": "Пачакайце...",
"generatingEncryptionKeysTitle": "Генерацыя ключоў шыфравання...",
"recreatePassword": "Стварыць пароль паўторна",
"useRecoveryKey": "Выкарыстоўваць ключ аднаўлення",
"incorrectPasswordTitle": "Няправільны пароль",
"welcomeBack": "З вяртаннем!",
"changePassword": "Змяніць пароль",
"data": "Даныя",
"importCodes": "Імпартаваць коды",
"passwordEmptyError": "Пароль не можа быць пустым",
"importFromApp": "Імпартаваць коды з {appName}",
"exportCodes": "Экспартаваць коды",
"importLabel": "Імпарт",
"selectFile": "Выбраць файл",
"yes": "Так",
"no": "Не",
"email": "Электронная пошта",
"support": "Падтрымка",
"settings": "Налады",
"pleaseTryAgain": "Калі ласка, паспрабуйце яшчэ раз",
"delete": "Выдаліць",
"enterYourPasswordHint": "Увядзіце ваш пароль",
"faq": "Частыя пытанні",
"deleteAccount": "Выдаліць уліковы запіс",
"noDeleteAccountAction": "Не, выдаліць уліковы запіс",
"sendEmail": "Адправіць ліст",
"createNewAccount": "Стварыць новы ўліковы запіс",
"confirmPassword": "Пацвердзіць пароль",
"close": "Закрыць",
"oopsSomethingWentWrong": "Штосьці пайшло не так.",
"language": "Мова",
"security": "Бяспека",
"searchHint": "Пошук...",
"search": "Пошук"
}

View File

@@ -1,4 +0,0 @@
{
"loggingOut": "Väljalogimine...",
"useRecoveryKey": "Kasuta taastevõtit"
}

View File

@@ -1,141 +0,0 @@
import 'dart:async';
import 'dart:io';
import 'package:collection/collection.dart';
import 'package:dio/dio.dart';
import 'package:ente_auth/core/configuration.dart';
import 'package:ente_auth/core/event_bus.dart';
import 'package:ente_auth/core/network.dart';
import 'package:ente_auth/events/notification_event.dart';
import 'package:ente_auth/services/user_service.dart';
import 'package:logging/logging.dart';
import 'package:shared_preferences/shared_preferences.dart';
class UserRemoteFlagService {
final _dio = Network.instance.getDio();
final _logger = Logger((UserRemoteFlagService).toString());
final _config = Configuration.instance;
late SharedPreferences _prefs;
UserRemoteFlagService._privateConstructor();
static final UserRemoteFlagService instance =
UserRemoteFlagService._privateConstructor();
static const String recoveryVerificationFlag = "recoveryKeyVerified";
static const String needRecoveryKeyVerification =
"needRecoveryKeyVerification";
Future<void> init() async {
_prefs = await SharedPreferences.getInstance();
}
bool shouldShowRecoveryVerification() {
if (!_prefs.containsKey(needRecoveryKeyVerification)) {
// fetch the status from remote
unawaited(_refreshRecoveryVerificationFlag());
return false;
} else {
final bool shouldShow = _prefs.getBool(needRecoveryKeyVerification)!;
if (shouldShow) {
// refresh the status to check if user marked it as done on another device
unawaited(_refreshRecoveryVerificationFlag());
}
return shouldShow;
}
}
// markRecoveryVerificationAsDone is used to track if user has verified their
// recovery key in the past or not. This helps in avoid showing the same
// prompt to the user on re-install or signing into a different device
Future<void> markRecoveryVerificationAsDone() async {
await _updateKeyValue(recoveryVerificationFlag, true.toString());
await _prefs.setBool(needRecoveryKeyVerification, false);
}
Future<void> _refreshRecoveryVerificationFlag() async {
_logger.finest('refresh recovery key verification flag');
final remoteStatusValue =
await _getValue(recoveryVerificationFlag, "false");
final bool isNeedVerificationFlagSet =
_prefs.containsKey(needRecoveryKeyVerification);
if (remoteStatusValue.toLowerCase() == "true") {
await _prefs.setBool(needRecoveryKeyVerification, false);
// If the user verified on different device, then we should refresh
// the UI to dismiss the Notification.
if (isNeedVerificationFlagSet) {
Bus.instance.fire(NotificationEvent());
}
} else if (!isNeedVerificationFlagSet) {
// Verification is not done yet as remoteStatus is false and local flag to
// show notification isn't set. Set the flag to true if any active
// session is older than 1 day.
final activeSessions = await UserService.instance.getActiveSessions();
final int microSecondsInADay = const Duration(days: 1).inMicroseconds;
final bool anyActiveSessionOlderThanADay =
activeSessions.sessions.firstWhereOrNull(
(e) =>
(e.creationTime + microSecondsInADay) <
DateTime.now().microsecondsSinceEpoch,
) !=
null;
if (anyActiveSessionOlderThanADay) {
await _prefs.setBool(needRecoveryKeyVerification, true);
Bus.instance.fire(NotificationEvent());
} else {
// continue defaulting to no verification prompt
_logger.finest('No active session older than 1 day');
}
}
}
Future<String> _getValue(String key, String? defaultValue) async {
try {
final Map<String, dynamic> queryParams = {"key": key};
if (defaultValue != null) {
queryParams["defaultValue"] = defaultValue;
}
final response = await _dio.get(
"${_config.getHttpEndpoint()}/remote-store",
queryParameters: queryParams,
options: Options(
headers: {
"X-Auth-Token": _config.getToken(),
},
),
);
if (response.statusCode != HttpStatus.ok) {
throw Exception("Unexpected status code ${response.statusCode}");
}
return response.data["value"];
} catch (e) {
_logger.info("Error while fetching bool status for $key", e);
rethrow;
}
}
// _setBooleanFlag sets the corresponding flag on remote
// to mark recovery as completed
Future<void> _updateKeyValue(String key, String value) async {
try {
final response = await _dio.post(
"${_config.getHttpEndpoint()}/remote-store/update",
data: {
"key": key,
"value": value,
},
options: Options(
headers: {
"X-Auth-Token": _config.getToken(),
},
),
);
if (response.statusCode != HttpStatus.ok) {
throw Exception("Unexpected state");
}
} catch (e) {
_logger.warning("Failed to set flag for $key", e);
rethrow;
}
}
}

View File

@@ -1,219 +0,0 @@
import 'package:bip39/bip39.dart' as bip39;
import 'package:dio/dio.dart';
import 'package:ente_auth/core/configuration.dart';
import 'package:ente_auth/ente_theme_data.dart';
import 'package:ente_auth/l10n/l10n.dart';
import 'package:ente_auth/services/local_authentication_service.dart';
import 'package:ente_auth/services/user_remote_flag_service.dart';
import 'package:ente_auth/ui/account/recovery_key_page.dart';
import 'package:ente_auth/ui/common/gradient_button.dart';
import 'package:ente_auth/ui/components/buttons/button_widget.dart';
import 'package:ente_auth/utils/dialog_util.dart';
import 'package:ente_auth/utils/navigation_util.dart';
import 'package:ente_auth/utils/platform_util.dart';
import 'package:ente_crypto_dart/ente_crypto_dart.dart';
import 'package:flutter/material.dart';
import 'package:logging/logging.dart';
class VerifyRecoveryPage extends StatefulWidget {
const VerifyRecoveryPage({super.key});
@override
State<VerifyRecoveryPage> createState() => _VerifyRecoveryPageState();
}
class _VerifyRecoveryPageState extends State<VerifyRecoveryPage> {
final _recoveryKey = TextEditingController();
final Logger _logger = Logger((_VerifyRecoveryPageState).toString());
void _verifyRecoveryKey() async {
final dialog =
createProgressDialog(context, context.l10n.verifyingRecoveryKey);
await dialog.show();
try {
final String inputKey = _recoveryKey.text.trim();
final String recoveryKey =
CryptoUtil.bin2hex(Configuration.instance.getRecoveryKey());
final String recoveryKeyWords = bip39.entropyToMnemonic(recoveryKey);
if (inputKey == recoveryKey || inputKey == recoveryKeyWords) {
try {
await UserRemoteFlagService.instance.markRecoveryVerificationAsDone();
} catch (e) {
await dialog.hide();
if (e is DioException && e.type == DioExceptionType.unknown) {
await showErrorDialog(
context,
"No internet connection",
"Please check your internet connection and try again.",
);
} else {
await showGenericErrorDialog(
context: context,
error: e,
);
}
return;
}
await dialog.hide();
// todo: change this as per figma once the component is ready
await showErrorDialog(
context,
context.l10n.recoveryKeyVerified,
context.l10n.recoveryKeySuccessBody,
);
Navigator.of(context).pop();
} else {
throw Exception("recovery key didn't match");
}
} catch (e, s) {
_logger.severe("failed to verify recovery key", e, s);
await dialog.hide();
final String errMessage = context.l10n.invalidRecoveryKey;
final result = await showChoiceDialog(
context,
title: context.l10n.invalidKey,
body: errMessage,
firstButtonLabel: context.l10n.tryAgain,
secondButtonLabel: context.l10n.viewRecoveryKey,
secondButtonAction: ButtonAction.second,
);
if (result!.action == ButtonAction.second) {
await _onViewRecoveryKeyClick();
}
}
}
Future<void> _onViewRecoveryKeyClick() async {
final hasAuthenticated =
await LocalAuthenticationService.instance.requestLocalAuthentication(
context,
"Please authenticate to view your recovery key",
);
await PlatformUtil.refocusWindows();
if (hasAuthenticated) {
String recoveryKey;
try {
recoveryKey =
CryptoUtil.bin2hex(Configuration.instance.getRecoveryKey());
await routeToPage(
context,
RecoveryKeyPage(
recoveryKey,
context.l10n.ok,
showAppBar: true,
onDone: () {
Navigator.of(context).pop();
},
),
);
} catch (e) {
// ignore: unawaited_futures
showGenericErrorDialog(
context: context,
error: e,
);
return;
}
}
}
@override
Widget build(BuildContext context) {
final enteTheme = Theme.of(context).colorScheme.enteTheme;
return Scaffold(
appBar: AppBar(
elevation: 0,
leading: IconButton(
icon: const Icon(Icons.arrow_back),
color: Theme.of(context).iconTheme.color,
onPressed: () {
Navigator.of(context).pop();
},
),
),
body: Padding(
padding: const EdgeInsets.symmetric(horizontal: 16.0),
child: LayoutBuilder(
builder: (context, constraints) {
return SingleChildScrollView(
child: ConstrainedBox(
constraints: BoxConstraints(
minWidth: constraints.maxWidth,
minHeight: constraints.maxHeight,
),
child: IntrinsicHeight(
child: Column(
children: [
const SizedBox(height: 12),
SizedBox(
width: double.infinity,
child: Text(
context.l10n.confirmRecoveryKey,
style: enteTheme.textTheme.h3Bold,
textAlign: TextAlign.left,
),
),
const SizedBox(height: 18),
Text(
context.l10n.recoveryKeyVerifyReason,
style: enteTheme.textTheme.small
.copyWith(color: enteTheme.colorScheme.textMuted),
),
const SizedBox(height: 12),
TextFormField(
decoration: InputDecoration(
filled: true,
hintText: context.l10n.enterYourRecoveryKey,
contentPadding: const EdgeInsets.all(20),
border: UnderlineInputBorder(
borderSide: BorderSide.none,
borderRadius: BorderRadius.circular(6),
),
),
style: const TextStyle(
fontSize: 14,
fontFeatures: [FontFeature.tabularFigures()],
),
controller: _recoveryKey,
autofocus: false,
autocorrect: false,
keyboardType: TextInputType.multiline,
minLines: 4,
maxLines: null,
onChanged: (_) {
setState(() {});
},
),
const SizedBox(height: 12),
Expanded(
child: Container(
alignment: Alignment.bottomCenter,
width: double.infinity,
padding: const EdgeInsets.fromLTRB(0, 12, 0, 40),
child: Column(
mainAxisAlignment: MainAxisAlignment.end,
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
GradientButton(
onTap: _verifyRecoveryKey,
text: context.l10n.confirm,
),
const SizedBox(height: 8),
],
),
),
),
const SizedBox(height: 20),
],
),
),
),
);
},
),
),
);
}
}

View File

@@ -5,8 +5,6 @@
endpoint:
api: "http://localhost:8080"
# Endpoint for the account service for passkey
accounts: "http://localhost:3001"
log:
http: false # log status code & time taken by requests

View File

@@ -35,6 +35,7 @@ type AuthorizationResponse struct {
ID int64 `json:"id"`
KeyAttributes *KeyAttributes `json:"keyAttributes,omitempty"`
EncryptedToken string `json:"encryptedToken,omitempty"`
AccountsUrl string `json:"accountsUrl"`
Token string `json:"token,omitempty"`
TwoFactorSessionID string `json:"twoFactorSessionID"`
PassKeySessionID string `json:"passkeySessionID"`

View File

@@ -110,7 +110,6 @@ func initConfig(cliConfigDir string) {
viper.AddConfigPath(".") // optionally look for config in the working directory
viper.SetDefault("endpoint.api", constants.EnteApiUrl)
viper.SetDefault("endpoint.accounts", constants.EnteAccountUrl)
viper.SetDefault("log.http", false)
if err := viper.ReadInConfig(); err != nil {
if _, ok := err.(viper.ConfigFileNotFoundError); ok {

View File

@@ -8,8 +8,8 @@ import (
eCrypto "github.com/ente-io/cli/internal/crypto"
"github.com/ente-io/cli/pkg/model"
"github.com/ente-io/cli/utils/browser"
"github.com/ente-io/cli/utils/constants"
"github.com/ente-io/cli/utils/encoding"
"github.com/spf13/viper"
"log"
"github.com/kong/go-srp"
@@ -145,7 +145,10 @@ func (c *ClICtrl) verifyPassKey(ctx context.Context, authResp *api.Authorization
if !authResp.IsPasskeyRequired() {
return authResp, nil
}
baseAccountUrl := viper.GetString("endpoint.accounts")
baseAccountUrl := constants.EnteAccountUrl
if authResp.AccountsUrl != "" {
baseAccountUrl = authResp.AccountsUrl
}
passkeyAuthUrl := fmt.Sprintf("%s/passkeys/verify?passkeySessionID=%s&redirect=ente-cli://passkey&clientPackage=%s", baseAccountUrl, authResp.PassKeySessionID, app.ClientPkg())
fmt.Printf("Open this url in browser to verify passkey: %s\n", passkeyAuthUrl)
err := browser.OpenURL(passkeyAuthUrl)

View File

@@ -44,8 +44,7 @@ jobs:
# If triggered by a tag, checkout photosd-$tag from the source
# repository. Otherwise checkout $source (default: "main").
repository: ente-io/ente
ref:
"${{ startsWith(github.ref, 'refs/tags/v') &&
ref: "${{ startsWith(github.ref, 'refs/tags/v') &&
format('photosd-{0}', github.ref_name) || ( inputs.source
|| 'main' ) }}"
@@ -110,9 +109,13 @@ jobs:
env:
# macOS notarization credentials key details
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_APP_SPECIFIC_PASSWORD:
${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }}
APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
# Windows Azure Trusted Signing related values
# https://www.electron.build/code-signing-win#using-azure-trusted-signing-beta
AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }}
# Default is "draft", but since our nightly builds update
# existing pre-releases, set this to "prerelease".
EP_PRE_RELEASE: true

View File

@@ -1,6 +1,5 @@
{
"tabWidth": 4,
"proseWrap": "always",
"objectWrap": "collapse",
"plugins": [
"prettier-plugin-organize-imports",

View File

@@ -1,6 +1,14 @@
# CHANGELOG
## v1.7.13 (Unreleased)
## v1.7.15 (Unreleased)
- .
## v1.7.14
- Increase file size limit to 10 GB.
## v1.7.13
- Generate streams for videos (beta)
@@ -8,7 +16,6 @@
> [video streaming FAQ](https://help.ente.io/photos/faq/video-streaming).
- Support Turkish translations.
- .
## v1.7.12

View File

@@ -3,6 +3,7 @@
- [Electron](#electron)
- [Dev dependencies](#dev)
- [Functionality](#functionality)
- [Pinned](#pinned)
## Electron
@@ -140,3 +141,13 @@ handles to avoid reopening them for every operation.
[chokidar](https://github.com/paulmillr/chokidar) is used as a file system
watcher for the watch folders functionality.
## Pinned
- `electron-builder` is pinned to 26.0.14 because of
https://github.com/electron-userland/electron-builder/issues/9161
To reproduce this locally, add `x64ArchFiles: "ffmpeg"` to
`electron-builder.yml`, then run `node_modules/.bin/electron-builder --mac`.
- `electron-store` is pinned to 8.2.0 because subsequent versions are ESM only.

View File

@@ -14,6 +14,11 @@ win:
target:
- target: nsis
arch: [x64, arm64]
azureSignOptions:
publisherName: ENTE TECHNOLOGIES, INC.
endpoint: https://eus.codesigning.azure.net/
certificateProfileName: EnteTrustCertProfile
codeSigningAccountName: EnteTechnologiesInc
nsis:
deleteAppDataOnUninstall: true
linux:

View File

@@ -1,6 +1,6 @@
{
"name": "ente",
"version": "1.7.13-beta",
"version": "1.7.15-beta",
"private": true,
"description": "Desktop client for Ente Photos",
"repository": "github:ente-io/photos-desktop",
@@ -21,9 +21,6 @@
"lint-fix": "yarn prettier --write --log-level warn . && yarn eslint && yarn tsc",
"prepare": "node scripts/vips.js"
},
"resolutions": {
"jackspeak": "2.1.1"
},
"dependencies": {
"any-shell-escape": "^0.1.1",
"auto-launch": "^5.0.6",
@@ -31,33 +28,32 @@
"clip-bpe-js": "^0.0.6",
"comlink": "^4.4.2",
"compare-versions": "^6.1.1",
"electron-log": "^5.4.0",
"electron-log": "^5.4.1",
"electron-store": "^8.2.0",
"electron-updater": "^6.6.3",
"electron-updater": "^6.6.5",
"ffmpeg-static": "^5.2.0",
"lru-cache": "^11.1.0",
"next-electron-server": "^1.0.0",
"node-stream-zip": "^1.15.0",
"onnxruntime-node": "^1.20.1",
"zod": "^3.25.23"
"onnxruntime-node": "1.22.0-rev",
"zod": "^3.25.67"
},
"devDependencies": {
"@eslint/js": "^9.27.0",
"@eslint/js": "^9.30.1",
"@tsconfig/node22": "^22.0.2",
"@types/auto-launch": "^5.0.5",
"@types/ffmpeg-static": "^3.0.3",
"ajv": "^8.17.1",
"concurrently": "^9.1.2",
"concurrently": "^9.2.0",
"cross-env": "^7.0.3",
"electron": "^36.3.1",
"electron-builder": "^26.0.14",
"electron": "^37.1.0",
"electron-builder": "26.0.14",
"eslint": "^9",
"prettier": "3.5.3",
"prettier": "3.6.2",
"prettier-plugin-organize-imports": "^4.1.0",
"prettier-plugin-packagejson": "^2.5.14",
"prettier-plugin-packagejson": "^2.5.17",
"shx": "^0.4.0",
"typescript": "^5.8.3",
"typescript-eslint": "^8.32.1"
"typescript-eslint": "^8.35.1"
},
"packageManager": "yarn@1.22.22",
"productName": "ente"

View File

@@ -78,14 +78,6 @@ export const allowWindowClose = (): void => {
* We call this at the end of this file.
*/
const main = () => {
// Workaround for Electron 36 not launching on some Linux distros. Remove
// once fixed or otherwise mitigated upstream.
//
// https://github.com/electron/electron/issues/46538#issuecomment-2808806722
if (process.platform == "linux") {
app.commandLine.appendSwitch("gtk-version", "3");
}
const gotTheLock = app.requestSingleInstanceLock();
if (!gotTheLock) {
app.quit();

View File

@@ -50,8 +50,8 @@ import { convertToJPEG, generateImageThumbnail } from "./services/image";
import { logout } from "./services/logout";
import {
lastShownChangelogVersion,
masterKeyB64,
saveMasterKeyB64,
masterKeyFromSafeStorage,
saveMasterKeyInSafeStorage,
setLastShownChangelogVersion,
} from "./services/store";
import {
@@ -108,10 +108,12 @@ export const attachIPCHandlers = () => {
ipcMain.handle("selectDirectory", () => selectDirectory());
ipcMain.handle("masterKeyB64", () => masterKeyB64());
ipcMain.handle("masterKeyFromSafeStorage", () =>
masterKeyFromSafeStorage(),
);
ipcMain.handle("saveMasterKeyB64", (_, masterKeyB64: string) =>
saveMasterKeyB64(masterKeyB64),
ipcMain.handle("saveMasterKeyInSafeStorage", (_, masterKey: string) =>
saveMasterKeyInSafeStorage(masterKey),
);
ipcMain.handle("lastShownChangelogVersion", () =>

View File

@@ -12,7 +12,7 @@ import fs_ from "node:fs";
import fs from "node:fs/promises";
import path from "node:path";
import { Readable } from "node:stream";
import { z } from "zod";
import { z } from "zod/v4";
import type { FFmpegCommand } from "../../types/ipc";
import log from "../log-worker";
import { messagePortMainEndpoint } from "../utils/comlink";
@@ -832,7 +832,8 @@ const pseudoFFProbeVideo = async (inputFilePath: string) => {
* Upload the file at the given {@link videoFilePath} to the provided pre-signed
* URL(s) using a HTTP PUT request.
*
* All HTTP requests are retried up to 3 times with exponential backoff.
* All HTTP requests are retried up to 4 times (1 original + 3 retries) with
* exponential backoff.
*
* See: [Note: Upload HLS video segment from node side].
*
@@ -977,19 +978,19 @@ const uploadVideoSegmentsSingle = (
);
/**
* Retry a async operation on failure up to 3 times (1 original + 2 retries)
* Retry a async operation on failure up to 4 times (1 original + 3 retries)
* with exponential backoff.
*
* This is an inlined but bespoke reimplementation of `retryEnsuringHTTPOk`
* from `web/packages/base/http.ts`
* This is an inlined but bespoke reimplementation of `retryEnsuringHTTPOk` from
* `web/packages/base/http.ts`
*
* - We don't have the rest of the scaffolding used by that function, which is
* why it is intially inlined bespoked.
*
* - It handles the specific use case of uploading videos since generating the
* HLS stream is a fairly expensive operation, so a retry to discount
* transient network issues is called for. There are only 2 retries for a
* total of 3 attempts, and the retry gaps are more spaced out.
* transient network issues is called for. The number of retries and their
* gaps are same as the "background" `retryProfile` of the web implementation.
*
* - Later it was discovered that net.fetch is much slower than node's native
* fetch, so this implementation has further diverged.
@@ -998,7 +999,7 @@ const uploadVideoSegmentsSingle = (
* ability to import electron API.
*/
const retryEnsuringHTTPOk = async (request: () => Promise<Response>) => {
const waitTimeBeforeNextTry = [10000, 30000];
const waitTimeBeforeNextTry = [10000, 30000, 120000];
while (true) {
try {

View File

@@ -15,7 +15,7 @@ import { existsSync } from "fs";
import fs from "node:fs/promises";
import path from "node:path";
import * as ort from "onnxruntime-node";
import { z } from "zod";
import { z } from "zod/v4";
import log from "../log-worker";
import { messagePortMainEndpoint } from "../utils/comlink";
import { wait } from "../utils/common";
@@ -184,14 +184,13 @@ const downloadModel = async (saveLocation: string, name: string) => {
/**
* Create an ONNX {@link InferenceSession} with some defaults.
*/
const createInferenceSession = async (modelPath: string) => {
return await ort.InferenceSession.create(modelPath, {
const createInferenceSession = (modelPath: string) =>
ort.InferenceSession.create(modelPath, {
// Restrict the number of threads to 1.
intraOpNumThreads: 1,
// Be more conservative with RAM usage.
enableCpuMemArena: false,
});
};
const cachedCLIPImageSession = makeCachedInferenceSession(
"mobileclip_s2_image_opset18_rgba_opt.onnx",
@@ -233,9 +232,11 @@ const getTokenizer = () => (_tokenizer ??= new Tokenizer());
export const computeCLIPTextEmbeddingIfAvailable = async (text: string) => {
const sessionOrSkip = await Promise.race([
cachedCLIPTextSession(),
// Wait for a tick to get the session promise to resolved the first time
// this code runs on each app start (and the model has been downloaded).
wait(0).then(() => 1),
// Wait a bit to get the session promise to resolved the first time this
// code runs on each app start (in these cases the model will already be
// downloaded, so session creation should take only a 1 or 2 ticks: file
// system stat, and ort.InferenceSession.create).
wait(50).then(() => 1),
]);
// Don't wait for the download to complete.

View File

@@ -24,17 +24,17 @@ export const clearStores = () => {
* On macOS, `safeStorage` stores our data under a Keychain entry named
* "<app-name> Safe Storage". In our case, "ente Safe Storage".
*/
export const saveMasterKeyB64 = (masterKeyB64: string) => {
const encryptedKey = safeStorage.encryptString(masterKeyB64);
const b64EncryptedKey = Buffer.from(encryptedKey).toString("base64");
safeStorageStore.set("encryptionKey", b64EncryptedKey);
export const saveMasterKeyInSafeStorage = (masterKey: string) => {
const encryptedKeyBuffer = safeStorage.encryptString(masterKey);
const encryptedKey = Buffer.from(encryptedKeyBuffer).toString("base64");
safeStorageStore.set("encryptionKey", encryptedKey);
};
export const masterKeyB64 = (): string | undefined => {
const b64EncryptedKey = safeStorageStore.get("encryptionKey");
if (!b64EncryptedKey) return undefined;
const keyBuffer = Buffer.from(b64EncryptedKey, "base64");
return safeStorage.decryptString(keyBuffer);
export const masterKeyFromSafeStorage = (): string | undefined => {
const encryptedKey = safeStorageStore.get("encryptionKey");
if (!encryptedKey) return undefined;
const encryptedKeyBuffer = Buffer.from(encryptedKey, "base64");
return safeStorage.decryptString(encryptedKeyBuffer);
};
export const lastShownChangelogVersion = (): number | undefined =>

View File

@@ -28,6 +28,13 @@ export const createWatcher = (mainWindow: BrowserWindow) => {
// Ask the watcher to wait for a the file size to stabilize before
// telling us about a new file. By default, it waits for 2 seconds.
awaitWriteFinish: true,
// On macOS we start getting "EMFILE: too many open files" when watching
// large folders. This is a known regression in Chokidar v4:
// https://github.com/paulmillr/chokidar/issues/1385
//
// The recommended workaround for now is to enable usePolling. Since it
// comes at a performance cost, we only do it where needed (macOS).
...(process.platform == "darwin" ? { usePolling: true } : {}),
});
watcher

View File

@@ -113,10 +113,11 @@ const logout = () => {
return ipcRenderer.invoke("logout");
};
const masterKeyB64 = () => ipcRenderer.invoke("masterKeyB64");
const masterKeyFromSafeStorage = () =>
ipcRenderer.invoke("masterKeyFromSafeStorage");
const saveMasterKeyB64 = (masterKeyB64: string) =>
ipcRenderer.invoke("saveMasterKeyB64", masterKeyB64);
const saveMasterKeyInSafeStorage = (masterKey: string) =>
ipcRenderer.invoke("saveMasterKeyInSafeStorage", masterKey);
const lastShownChangelogVersion = () =>
ipcRenderer.invoke("lastShownChangelogVersion");
@@ -358,8 +359,8 @@ contextBridge.exposeInMainWorld("electron", {
selectDirectory,
pathForFile,
logout,
masterKeyB64,
saveMasterKeyB64,
masterKeyFromSafeStorage,
saveMasterKeyInSafeStorage,
lastShownChangelogVersion,
setLastShownChangelogVersion,
isAutoLaunchEnabled,

View File

@@ -25,7 +25,7 @@
ajv "^6.12.0"
ajv-keywords "^3.4.1"
"@electron/asar@3.4.1":
"@electron/asar@3.4.1", "@electron/asar@^3.2.7":
version "3.4.1"
resolved "https://registry.yarnpkg.com/@electron/asar/-/asar-3.4.1.tgz#4e9196a4b54fba18c56cd8d5cac67c5bdc588065"
integrity sha512-i4/rNPRS84t0vSRa2HorerGRXWyF4vThfHesw0dmcWHp+cspK743UanA0suA5Q5y8kzY2y6YKrvbIUn69BCAiA==
@@ -34,15 +34,6 @@
glob "^7.1.6"
minimatch "^3.0.4"
"@electron/asar@^3.2.7":
version "3.2.18"
resolved "https://registry.yarnpkg.com/@electron/asar/-/asar-3.2.18.tgz#fa607f829209bab8b9e0ce6658d3fe81b2cba517"
integrity sha512-2XyvMe3N3Nrs8cV39IKELRHTYUWFKrmqqSY1U+GMlc0jvqjIVnoxhNd2H4JolWQncbJi1DCvb5TNxZuI2fEjWg==
dependencies:
commander "^5.0.0"
glob "^7.1.6"
minimatch "^3.0.4"
"@electron/fuses@^1.8.0":
version "1.8.0"
resolved "https://registry.yarnpkg.com/@electron/fuses/-/fuses-1.8.0.tgz#ad34d3cc4703b1258b83f6989917052cfc1490a0"
@@ -184,10 +175,10 @@
resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.9.1.tgz#4a97e85e982099d6c7ee8410aacb55adaa576f06"
integrity sha512-xIDQRsfg5hNBqHz04H1R3scSVwmI+KUbqjsQKHKQ1DAUSaUjYPReZZmS/5PNiKu1fUvzDd6H7DEDKACSEhu+TQ==
"@eslint/js@^9.27.0":
version "9.27.0"
resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.27.0.tgz#181a23460877c484f6dd03890f4e3fa2fdeb8ff0"
integrity sha512-G5JD9Tu5HJEu4z2Uo4aHY2sLV64B7CDMXxFzqzjl3NKd6RVzSXNoE80jk7Y0lJkTTkjiIhBAqmlYwjuBY3tvpA==
"@eslint/js@^9.30.1":
version "9.30.1"
resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.30.1.tgz#ebe9dd52a38345784c486300175a28c6013c088d"
integrity sha512-zXhuECFlyep42KZUhWjfvsmXGX39W8K8LFb8AWXM9gSV9dQB+MrJGLKvW6Zw0Ggnbpw0VHTtrhFXYe3Gym18jg==
"@eslint/object-schema@^2.1.4":
version "2.1.4"
@@ -209,12 +200,29 @@
resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.3.0.tgz#6d86b8cb322660f03d3f0aa94b99bdd8e172d570"
integrity sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==
"@isaacs/fs-minipass@^4.0.0":
"@isaacs/balanced-match@^4.0.1":
version "4.0.1"
resolved "https://registry.yarnpkg.com/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz#2d59ae3ab4b38fb4270bfa23d30f8e2e86c7fe32"
integrity sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==
resolved "https://registry.yarnpkg.com/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz#3081dadbc3460661b751e7591d7faea5df39dd29"
integrity sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==
"@isaacs/brace-expansion@^5.0.0":
version "5.0.0"
resolved "https://registry.yarnpkg.com/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz#4b3dabab7d8e75a429414a96bd67bf4c1d13e0f3"
integrity sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==
dependencies:
minipass "^7.0.4"
"@isaacs/balanced-match" "^4.0.1"
"@isaacs/cliui@^8.0.2":
version "8.0.2"
resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550"
integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==
dependencies:
string-width "^5.1.2"
string-width-cjs "npm:string-width@^4.2.0"
strip-ansi "^7.0.1"
strip-ansi-cjs "npm:strip-ansi@^6.0.1"
wrap-ansi "^8.1.0"
wrap-ansi-cjs "npm:wrap-ansi@^7.0.0"
"@malept/cross-spawn-promise@^2.0.0":
version "2.0.0"
@@ -324,11 +332,6 @@
dependencies:
"@types/ms" "*"
"@types/ffmpeg-static@^3.0.3":
version "3.0.3"
resolved "https://registry.yarnpkg.com/@types/ffmpeg-static/-/ffmpeg-static-3.0.3.tgz#605358ac6304507a75c2fd5fd861534837b19e2f"
integrity sha512-wmjANN0CiYs5clQESK+xE6plet0y9ndqaNBdQx4IIw7ZbPBMQw+14Lq4ky2WqMqGlpFJ9ZUxU0O43TvVZziyyA==
"@types/fs-extra@9.0.13", "@types/fs-extra@^9.0.11":
version "9.0.13"
resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.13.tgz#7594fbae04fe7f1918ce8b3d213f74ff44ac1f45"
@@ -392,62 +395,78 @@
dependencies:
"@types/node" "*"
"@typescript-eslint/eslint-plugin@8.32.1":
version "8.32.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.32.1.tgz#9185b3eaa3b083d8318910e12d56c68b3c4f45b4"
integrity sha512-6u6Plg9nP/J1GRpe/vcjjabo6Uc5YQPAMxsgQyGC/I0RuukiG1wIe3+Vtg3IrSCVJDmqK3j8adrtzXSENRtFgg==
"@typescript-eslint/eslint-plugin@8.35.1":
version "8.35.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.35.1.tgz#06b1129fe26d6532abd58fb2b3fe9810bd016935"
integrity sha512-9XNTlo7P7RJxbVeICaIIIEipqxLKguyh+3UbXuT2XQuFp6d8VOeDEGuz5IiX0dgZo8CiI6aOFLg4e8cF71SFVg==
dependencies:
"@eslint-community/regexpp" "^4.10.0"
"@typescript-eslint/scope-manager" "8.32.1"
"@typescript-eslint/type-utils" "8.32.1"
"@typescript-eslint/utils" "8.32.1"
"@typescript-eslint/visitor-keys" "8.32.1"
"@typescript-eslint/scope-manager" "8.35.1"
"@typescript-eslint/type-utils" "8.35.1"
"@typescript-eslint/utils" "8.35.1"
"@typescript-eslint/visitor-keys" "8.35.1"
graphemer "^1.4.0"
ignore "^7.0.0"
natural-compare "^1.4.0"
ts-api-utils "^2.1.0"
"@typescript-eslint/parser@8.32.1":
version "8.32.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.32.1.tgz#18b0e53315e0bc22b2619d398ae49a968370935e"
integrity sha512-LKMrmwCPoLhM45Z00O1ulb6jwyVr2kr3XJp+G+tSEZcbauNnScewcQwtJqXDhXeYPDEjZ8C1SjXm015CirEmGg==
"@typescript-eslint/parser@8.35.1":
version "8.35.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.35.1.tgz#787312e80f0f337d85f4c2a569411c469e852d44"
integrity sha512-3MyiDfrfLeK06bi/g9DqJxP5pV74LNv4rFTyvGDmT3x2p1yp1lOd+qYZfiRPIOf/oON+WRZR5wxxuF85qOar+w==
dependencies:
"@typescript-eslint/scope-manager" "8.32.1"
"@typescript-eslint/types" "8.32.1"
"@typescript-eslint/typescript-estree" "8.32.1"
"@typescript-eslint/visitor-keys" "8.32.1"
"@typescript-eslint/scope-manager" "8.35.1"
"@typescript-eslint/types" "8.35.1"
"@typescript-eslint/typescript-estree" "8.35.1"
"@typescript-eslint/visitor-keys" "8.35.1"
debug "^4.3.4"
"@typescript-eslint/scope-manager@8.32.1":
version "8.32.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.32.1.tgz#9a6bf5fb2c5380e14fe9d38ccac6e4bbe17e8afc"
integrity sha512-7IsIaIDeZn7kffk7qXC3o6Z4UblZJKV3UBpkvRNpr5NSyLji7tvTcvmnMNYuYLyh26mN8W723xpo3i4MlD33vA==
"@typescript-eslint/project-service@8.35.1":
version "8.35.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.35.1.tgz#815bb771f2f6c97780e44299434ece3c2e526127"
integrity sha512-VYxn/5LOpVxADAuP3NrnxxHYfzVtQzLKeldIhDhzC8UHaiQvYlXvKuVho1qLduFbJjjy5U5bkGwa3rUGUb1Q6Q==
dependencies:
"@typescript-eslint/types" "8.32.1"
"@typescript-eslint/visitor-keys" "8.32.1"
"@typescript-eslint/tsconfig-utils" "^8.35.1"
"@typescript-eslint/types" "^8.35.1"
debug "^4.3.4"
"@typescript-eslint/type-utils@8.32.1":
version "8.32.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.32.1.tgz#b9292a45f69ecdb7db74d1696e57d1a89514d21e"
integrity sha512-mv9YpQGA8iIsl5KyUPi+FGLm7+bA4fgXaeRcFKRDRwDMu4iwrSHeDPipwueNXhdIIZltwCJv+NkxftECbIZWfA==
"@typescript-eslint/scope-manager@8.35.1":
version "8.35.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.35.1.tgz#b19f9be65c8d1059e88a323a1a6567dbfe0a1a4e"
integrity sha512-s/Bpd4i7ht2934nG+UoSPlYXd08KYz3bmjLEb7Ye1UVob0d1ENiT3lY8bsCmik4RqfSbPw9xJJHbugpPpP5JUg==
dependencies:
"@typescript-eslint/typescript-estree" "8.32.1"
"@typescript-eslint/utils" "8.32.1"
"@typescript-eslint/types" "8.35.1"
"@typescript-eslint/visitor-keys" "8.35.1"
"@typescript-eslint/tsconfig-utils@8.35.1", "@typescript-eslint/tsconfig-utils@^8.35.1":
version "8.35.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.35.1.tgz#c2db8714c181cc0700216c1a2e3cf55719c58006"
integrity sha512-K5/U9VmT9dTHoNowWZpz+/TObS3xqC5h0xAIjXPw+MNcKV9qg6eSatEnmeAwkjHijhACH0/N7bkhKvbt1+DXWQ==
"@typescript-eslint/type-utils@8.35.1":
version "8.35.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.35.1.tgz#4f9a07d6efa0e617a67e1890d28117e68ce154bd"
integrity sha512-HOrUBlfVRz5W2LIKpXzZoy6VTZzMu2n8q9C2V/cFngIC5U1nStJgv0tMV4sZPzdf4wQm9/ToWUFPMN9Vq9VJQQ==
dependencies:
"@typescript-eslint/typescript-estree" "8.35.1"
"@typescript-eslint/utils" "8.35.1"
debug "^4.3.4"
ts-api-utils "^2.1.0"
"@typescript-eslint/types@8.32.1":
version "8.32.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.32.1.tgz#b19fe4ac0dc08317bae0ce9ec1168123576c1d4b"
integrity sha512-YmybwXUJcgGqgAp6bEsgpPXEg6dcCyPyCSr0CAAueacR/CCBi25G3V8gGQ2kRzQRBNol7VQknxMs9HvVa9Rvfg==
"@typescript-eslint/types@8.35.1", "@typescript-eslint/types@^8.35.1":
version "8.35.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.35.1.tgz#4344dcf934495bbf25a9f83a06dd9fe2acf15780"
integrity sha512-q/O04vVnKHfrrhNAscndAn1tuQhIkwqnaW+eu5waD5IPts2eX1dgJxgqcPx5BX109/qAz7IG6VrEPTOYKCNfRQ==
"@typescript-eslint/typescript-estree@8.32.1":
version "8.32.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.32.1.tgz#9023720ca4ecf4f59c275a05b5fed69b1276face"
integrity sha512-Y3AP9EIfYwBb4kWGb+simvPaqQoT5oJuzzj9m0i6FCY6SPvlomY2Ei4UEMm7+FXtlNJbor80ximyslzaQF6xhg==
"@typescript-eslint/typescript-estree@8.35.1":
version "8.35.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.35.1.tgz#b80e85fcb6bfbcbacb3224b1367f6ca3f03e6183"
integrity sha512-Vvpuvj4tBxIka7cPs6Y1uvM7gJgdF5Uu9F+mBJBPY4MhvjrjWGK4H0lVgLJd/8PWZ23FTqsaJaLEkBCFUk8Y9g==
dependencies:
"@typescript-eslint/types" "8.32.1"
"@typescript-eslint/visitor-keys" "8.32.1"
"@typescript-eslint/project-service" "8.35.1"
"@typescript-eslint/tsconfig-utils" "8.35.1"
"@typescript-eslint/types" "8.35.1"
"@typescript-eslint/visitor-keys" "8.35.1"
debug "^4.3.4"
fast-glob "^3.3.2"
is-glob "^4.0.3"
@@ -455,23 +474,23 @@
semver "^7.6.0"
ts-api-utils "^2.1.0"
"@typescript-eslint/utils@8.32.1":
version "8.32.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.32.1.tgz#4d6d5d29b9e519e9a85e9a74e9f7bdb58abe9704"
integrity sha512-DsSFNIgLSrc89gpq1LJB7Hm1YpuhK086DRDJSNrewcGvYloWW1vZLHBTIvarKZDcAORIy/uWNx8Gad+4oMpkSA==
"@typescript-eslint/utils@8.35.1":
version "8.35.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.35.1.tgz#a9a0ceeb81c9d132f3f75537ad2ca7f6ca266523"
integrity sha512-lhnwatFmOFcazAsUm3ZnZFpXSxiwoa1Lj50HphnDe1Et01NF4+hrdXONSUHIcbVu2eFb1bAf+5yjXkGVkXBKAQ==
dependencies:
"@eslint-community/eslint-utils" "^4.7.0"
"@typescript-eslint/scope-manager" "8.32.1"
"@typescript-eslint/types" "8.32.1"
"@typescript-eslint/typescript-estree" "8.32.1"
"@typescript-eslint/scope-manager" "8.35.1"
"@typescript-eslint/types" "8.35.1"
"@typescript-eslint/typescript-estree" "8.35.1"
"@typescript-eslint/visitor-keys@8.32.1":
version "8.32.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.32.1.tgz#4321395cc55c2eb46036cbbb03e101994d11ddca"
integrity sha512-ar0tjQfObzhSaW3C3QNmTc5ofj0hDoNQ5XWrCy6zDyabdr0TWhCkClp+rywGNj/odAFBVzzJrK4tEq5M4Hmu4w==
"@typescript-eslint/visitor-keys@8.35.1":
version "8.35.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.35.1.tgz#aac78ab2265dd11927bc6af3f9c5a021bbc1670a"
integrity sha512-VRwixir4zBWCSTP/ljEo091lbpypz57PoeAQ9imjG+vbeof9LplljsL1mos4ccG6H9IjfrVGM359RozUnuFhpw==
dependencies:
"@typescript-eslint/types" "8.32.1"
eslint-visitor-keys "^4.2.0"
"@typescript-eslint/types" "8.35.1"
eslint-visitor-keys "^4.2.1"
"@xmldom/xmldom@^0.8.8":
version "0.8.10"
@@ -493,6 +512,11 @@ acorn@^8.12.0:
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.1.tgz#71616bdccbe25e27a54439e0046e89ca76df2248"
integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==
adm-zip@^0.5.16:
version "0.5.16"
resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.5.16.tgz#0b5e4c779f07dedea5805cdccb1147071d94a909"
integrity sha512-TGw5yVi4saajsSEgz25grObGHEUaDrniwvA2qwSC060KfqGPdglhvPMA2lPIoxs3PQIItj2iag35fONcQqgUaQ==
agent-base@6, agent-base@^6.0.2:
version "6.0.2"
resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77"
@@ -559,6 +583,11 @@ ansi-regex@^5.0.1:
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
ansi-regex@^6.0.1:
version "6.1.0"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.1.0.tgz#95ec409c69619d6cb1b8b34f14b660ef28ebd654"
integrity sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==
ansi-styles@^4.0.0, ansi-styles@^4.1.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
@@ -566,6 +595,11 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0:
dependencies:
color-convert "^2.0.1"
ansi-styles@^6.1.0:
version "6.2.1"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5"
integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==
any-shell-escape@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/any-shell-escape/-/any-shell-escape-0.1.1.tgz#d55ab972244c71a9a5e1ab0879f30bf110806959"
@@ -838,11 +872,6 @@ chownr@^2.0.0:
resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece"
integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==
chownr@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/chownr/-/chownr-3.0.0.tgz#9855e64ecd240a9cc4267ce8a4aa5d24a1da15e4"
integrity sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==
chromium-pickle-js@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz#04a106672c18b085ab774d983dfa3ea138f22205"
@@ -958,10 +987,10 @@ concat-stream@^2.0.0:
readable-stream "^3.0.2"
typedarray "^0.0.6"
concurrently@^9.1.2:
version "9.1.2"
resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-9.1.2.tgz#22d9109296961eaee773e12bfb1ce9a66bc9836c"
integrity sha512-H9MWcoPsYddwbOGM6difjVwVZHl63nwMEwDJG/L7VGtuaJhb12h2caPG2tVPWs7emuYix252iGfqOyrz1GczTQ==
concurrently@^9.2.0:
version "9.2.0"
resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-9.2.0.tgz#233e3892ceb0b5db9fd49e9c8c739737a7b638b5"
integrity sha512-IsB/fiXTupmagMW4MNp2lx2cdSN2FfZq78vF90LBB+zZHArbIQZjQtzXCiXnvTxCZSvXanTqFLWBjw2UkLx1SQ==
dependencies:
chalk "^4.1.2"
lodash "^4.17.21"
@@ -1170,6 +1199,11 @@ dotenv@^16.4.4, dotenv@^16.4.5:
resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.5.tgz#cdd3b3b604cb327e286b4762e13502f717cb099f"
integrity sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==
eastasianwidth@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb"
integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==
ejs@^3.1.8:
version "3.1.10"
resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.10.tgz#69ab8358b14e896f80cc39e62087b88500c3ac3b"
@@ -1177,7 +1211,7 @@ ejs@^3.1.8:
dependencies:
jake "^10.8.5"
electron-builder@^26.0.14:
electron-builder@26.0.14:
version "26.0.14"
resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-26.0.14.tgz#8927c6da42a69425d15e08f351e944ea0e7866da"
integrity sha512-YBxpWLMGj0oS7fbS3LVingeZqFunU0F8s+uB9QTd5+wN4qgrf/rSGRkqoImbWg2+F2yHq11wmaA/Xr9xzvgQ0w==
@@ -1193,10 +1227,10 @@ electron-builder@^26.0.14:
simple-update-notifier "2.0.0"
yargs "^17.6.2"
electron-log@^5.4.0:
version "5.4.0"
resolved "https://registry.yarnpkg.com/electron-log/-/electron-log-5.4.0.tgz#3180bf5194b2e2efacb62ec1392f8150faf4de6b"
integrity sha512-AXI5OVppskrWxEAmCxuv8ovX+s2Br39CpCAgkGMNHQtjYT3IiVbSQTncEjFVGPgoH35ZygRm/mvUMBDWwhRxgg==
electron-log@^5.4.1:
version "5.4.1"
resolved "https://registry.yarnpkg.com/electron-log/-/electron-log-5.4.1.tgz#700ddc6ef4b06c13a983468580ba7a7e579129d4"
integrity sha512-QvisA18Z++8E3Th0zmhUelys9dEv7aIeXJlbFw3UrxCc8H9qSRW0j8/ooTef/EtHui8tVmbKSL+EIQzP9GoRLg==
electron-publish@26.0.13:
version "26.0.13"
@@ -1220,10 +1254,10 @@ electron-store@^8.2.0:
conf "^10.2.0"
type-fest "^2.17.0"
electron-updater@^6.6.3:
version "6.6.3"
resolved "https://registry.yarnpkg.com/electron-updater/-/electron-updater-6.6.3.tgz#a1f53671ffbb08a475d495d48f0c0d971e665d5d"
integrity sha512-i448/SwMtqxy5wqAcXScnWjiFxZp+hmWA2jZCmojcdfodEGhi/DWTdRP01mE3lCILb8hmdE28SBaHf1oQW3+kw==
electron-updater@^6.6.5:
version "6.6.5"
resolved "https://registry.yarnpkg.com/electron-updater/-/electron-updater-6.6.5.tgz#6614daa2f737c294471eee7ce7b61deda0d5543a"
integrity sha512-jnk38WfByl2Pb0cje02xls/pJkvkq3AQZI7usDCLriU23adkerLTkRrugbCPuUxUOa79nY1g/rokHPWHZFBKyA==
dependencies:
builder-util-runtime "9.3.2"
fs-extra "^10.1.0"
@@ -1234,10 +1268,10 @@ electron-updater@^6.6.3:
semver "^7.6.3"
tiny-typed-emitter "^2.1.0"
electron@^36.3.1:
version "36.3.1"
resolved "https://registry.yarnpkg.com/electron/-/electron-36.3.1.tgz#12a8c1b1cd9163a4bd0cb60f89816243b26ab788"
integrity sha512-LeOZ+tVahmctHaAssLCGRRUa2SAO09GXua3pKdG+WzkbSDMh+3iOPONNVPTqGp8HlWnzGj4r6mhsIbM2RgH+eQ==
electron@^37.1.0:
version "37.1.0"
resolved "https://registry.yarnpkg.com/electron/-/electron-37.1.0.tgz#6d6d1891f8add5d2d44007e2ee5d4542140fc4b4"
integrity sha512-Fcr3yfAw4oU392waVZSlrFUQx4P+h/k31+PRgkBY9tFx9E/zxzdPQQj0achZlG1HRDusw3ooQB+OXb9PvufdzA==
dependencies:
"@electron/get" "^2.0.0"
"@types/node" "^22.7.7"
@@ -1248,6 +1282,11 @@ emoji-regex@^8.0.0:
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
emoji-regex@^9.2.2:
version "9.2.2"
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72"
integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==
encoding@^0.1.13:
version "0.1.13"
resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9"
@@ -1312,11 +1351,16 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.3:
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800"
integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
eslint-visitor-keys@^4.0.0, eslint-visitor-keys@^4.2.0:
eslint-visitor-keys@^4.0.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz#687bacb2af884fcdda8a6e7d65c606f46a14cd45"
integrity sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==
eslint-visitor-keys@^4.2.1:
version "4.2.1"
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz#4cfea60fe7dd0ad8e816e1ed026c1d5251b512c1"
integrity sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==
eslint@^9:
version "9.9.1"
resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.9.1.tgz#147ac9305d56696fb84cf5bdecafd6517ddc77ec"
@@ -1653,7 +1697,7 @@ glob-parent@^6.0.2:
dependencies:
is-glob "^4.0.3"
glob@^10.3.12, glob@^10.3.7:
glob@^10.3.12:
version "10.4.5"
resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956"
integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==
@@ -2008,12 +2052,12 @@ isexe@^2.0.0:
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
jackspeak@2.1.1, jackspeak@^3.1.2:
version "2.1.1"
resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.1.1.tgz#2a42db4cfbb7e55433c28b6f75d8b796af9669cd"
integrity sha512-juf9stUEwUaILepraGOWIJTLwg48bUnBmRqd2ln2Os1sW987zeoj/hzhbvRB95oMuS2ZTpjULmdwHNX4rzZIZw==
jackspeak@^3.1.2:
version "3.4.3"
resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a"
integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==
dependencies:
cliui "^8.0.1"
"@isaacs/cliui" "^8.0.2"
optionalDependencies:
"@pkgjs/parseargs" "^0.11.0"
@@ -2260,11 +2304,11 @@ mimic-response@^3.1.0:
integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==
minimatch@^10.0.0:
version "10.0.1"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.0.1.tgz#ce0521856b453c86e25f2c4c0d03e6ff7ddc440b"
integrity sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==
version "10.0.3"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.0.3.tgz#cf7a0314a16c4d9ab73a7730a0e8e3c3502d47aa"
integrity sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==
dependencies:
brace-expansion "^2.0.1"
"@isaacs/brace-expansion" "^5.0.0"
minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
version "3.1.2"
@@ -2343,7 +2387,7 @@ minipass@^5.0.0:
resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d"
integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==
"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.4, minipass@^7.1.2:
"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2:
version "7.1.2"
resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707"
integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==
@@ -2356,14 +2400,6 @@ minizlib@^2.1.1, minizlib@^2.1.2:
minipass "^3.0.0"
yallist "^4.0.0"
minizlib@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-3.0.1.tgz#46d5329d1eb3c83924eff1d3b858ca0a31581012"
integrity sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg==
dependencies:
minipass "^7.0.4"
rimraf "^5.0.5"
mkdirp@^0.5.1:
version "0.5.6"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6"
@@ -2376,11 +2412,6 @@ mkdirp@^1.0.3, mkdirp@^1.0.4:
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
mkdirp@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-3.0.1.tgz#e44e4c5607fb279c168241713cc6e0fea9adcb50"
integrity sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==
ms@2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
@@ -2473,18 +2504,19 @@ onetime@^5.1.0, onetime@^5.1.2:
dependencies:
mimic-fn "^2.1.0"
onnxruntime-common@1.20.1:
version "1.20.1"
resolved "https://registry.yarnpkg.com/onnxruntime-common/-/onnxruntime-common-1.20.1.tgz#b42e317d4d6728745b9e8089617c8cd938d312dc"
integrity sha512-YiU0s0IzYYC+gWvqD1HzLc46Du1sXpSiwzKb63PACIJr6LfL27VsXSXQvt68EzD3V0D5Bc0vyJTjmMxp0ylQiw==
onnxruntime-common@1.22.0:
version "1.22.0"
resolved "https://registry.yarnpkg.com/onnxruntime-common/-/onnxruntime-common-1.22.0.tgz#27d7d06ebb6c7d3dd773dfa21b6fa2ae86f64983"
integrity sha512-vcuaNWgtF2dGQu/EP5P8UI5rEPEYqXG2sPPe5j9lg2TY/biJF8eWklTMwlDO08iuXq48xJo0awqIpK5mPG+IxA==
onnxruntime-node@^1.20.1:
version "1.20.1"
resolved "https://registry.yarnpkg.com/onnxruntime-node/-/onnxruntime-node-1.20.1.tgz#a5ba0bd160aeccdb4b7d36fbc2f6a97bde1f7843"
integrity sha512-di/I4HDXRw+FLgq+TyHmQEDd3cEp9iFFZm0r4uJ1Wd7b/WE1VXtKWo8yemex347c6GNF/3Pv86ZfPhIWxORr0w==
onnxruntime-node@1.22.0-rev:
version "1.22.0-rev"
resolved "https://registry.yarnpkg.com/onnxruntime-node/-/onnxruntime-node-1.22.0-rev.tgz#068c85adb6b938cbaaef2ffba4b35fcac3e683f4"
integrity sha512-9vh50/mnwauFUex0NYyyLf9pmRp8q6DVMG8K+xtoXv68SSB9bESa1bEbWLqfUncgB3XucQaOV+wfMPcqANMYhQ==
dependencies:
onnxruntime-common "1.20.1"
tar "^7.0.1"
adm-zip "^0.5.16"
global-agent "^3.0.0"
onnxruntime-common "1.22.0"
optionator@^0.9.3:
version "0.9.4"
@@ -2664,18 +2696,18 @@ prettier-plugin-organize-imports@^4.1.0:
resolved "https://registry.yarnpkg.com/prettier-plugin-organize-imports/-/prettier-plugin-organize-imports-4.1.0.tgz#f3d3764046a8e7ba6491431158b9be6ffd83b90f"
integrity sha512-5aWRdCgv645xaa58X8lOxzZoiHAldAPChljr/MT0crXVOWTZ+Svl4hIWlz+niYSlO6ikE5UXkN1JrRvIP2ut0A==
prettier-plugin-packagejson@^2.5.14:
version "2.5.14"
resolved "https://registry.yarnpkg.com/prettier-plugin-packagejson/-/prettier-plugin-packagejson-2.5.14.tgz#8ada09114ff60c7f42c3f8755ffb2f8152f3624f"
integrity sha512-h+3tSpr2nVpp+YOK1MDIYtYhHVXr8/0V59UUbJpIJFaqi3w4fvUokJo6eV8W+vELrUXIZzJ+DKm5G7lYzrMcKQ==
prettier-plugin-packagejson@^2.5.17:
version "2.5.17"
resolved "https://registry.yarnpkg.com/prettier-plugin-packagejson/-/prettier-plugin-packagejson-2.5.17.tgz#98df28819bb5071c9330eec31ff029acf538f96e"
integrity sha512-1WYvhTix+4EMYZQYSjAxb6+KTCULINuHUTBcxYa2ipoUS9Y2zJVjE3kuZ5I7ZWIFqyK8xpwYIunXqN5eiT7Hew==
dependencies:
sort-package-json "3.2.1"
synckit "0.11.6"
sort-package-json "3.3.1"
synckit "0.11.8"
prettier@3.5.3:
version "3.5.3"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.5.3.tgz#4fc2ce0d657e7a02e602549f053b239cb7dfe1b5"
integrity sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==
prettier@3.6.2:
version "3.6.2"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.6.2.tgz#ccda02a1003ebbb2bfda6f83a074978f608b9393"
integrity sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==
proc-log@^2.0.1:
version "2.0.1"
@@ -2819,13 +2851,6 @@ rimraf@^3.0.2:
dependencies:
glob "^7.1.3"
rimraf@^5.0.5:
version "5.0.10"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-5.0.10.tgz#23b9843d3dc92db71f96e1a2ce92e39fd2a8221c"
integrity sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==
dependencies:
glob "^10.3.7"
roarr@^2.15.3:
version "2.15.4"
resolved "https://registry.yarnpkg.com/roarr/-/roarr-2.15.4.tgz#f5fe795b7b838ccfe35dc608e0282b9eba2e7afd"
@@ -3006,10 +3031,10 @@ sort-object-keys@^1.1.3:
resolved "https://registry.yarnpkg.com/sort-object-keys/-/sort-object-keys-1.1.3.tgz#bff833fe85cab147b34742e45863453c1e190b45"
integrity sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==
sort-package-json@3.2.1:
version "3.2.1"
resolved "https://registry.yarnpkg.com/sort-package-json/-/sort-package-json-3.2.1.tgz#889f3bdf43ceeff5fa4278a7c53ae5b1520d287e"
integrity sha512-rTfRdb20vuoAn7LDlEtCqOkYfl2X+Qze6cLbNOzcDpbmKEhJI30tTN44d5shbKJnXsvz24QQhlCm81Bag7EOKg==
sort-package-json@3.3.1:
version "3.3.1"
resolved "https://registry.yarnpkg.com/sort-package-json/-/sort-package-json-3.3.1.tgz#c31c0b4cd970b7fde6b1d0197f8b768584e2e65c"
integrity sha512-awjhQR2Iy5UN3NuguAK5+RezcEuUg9Ra4O8y2Aj+DlJa7MywyHaipAPf9bu4qqFj0hsYHHoT9sS3aV7Ucu728g==
dependencies:
detect-indent "^7.0.1"
detect-newline "^4.0.1"
@@ -3049,6 +3074,15 @@ stat-mode@^1.0.0:
resolved "https://registry.yarnpkg.com/stat-mode/-/stat-mode-1.0.0.tgz#68b55cb61ea639ff57136f36b216a291800d1465"
integrity sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==
"string-width-cjs@npm:string-width@^4.2.0":
version "4.2.3"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
dependencies:
emoji-regex "^8.0.0"
is-fullwidth-code-point "^3.0.0"
strip-ansi "^6.0.1"
string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
version "4.2.3"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
@@ -3058,6 +3092,15 @@ string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
is-fullwidth-code-point "^3.0.0"
strip-ansi "^6.0.1"
string-width@^5.0.1, string-width@^5.1.2:
version "5.1.2"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794"
integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==
dependencies:
eastasianwidth "^0.2.0"
emoji-regex "^9.2.2"
strip-ansi "^7.0.1"
string_decoder@^1.1.1:
version "1.3.0"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
@@ -3065,6 +3108,13 @@ string_decoder@^1.1.1:
dependencies:
safe-buffer "~5.2.0"
"strip-ansi-cjs@npm:strip-ansi@^6.0.1":
version "6.0.1"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
dependencies:
ansi-regex "^5.0.1"
strip-ansi@^6.0.0, strip-ansi@^6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
@@ -3072,6 +3122,13 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1:
dependencies:
ansi-regex "^5.0.1"
strip-ansi@^7.0.1:
version "7.1.0"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45"
integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==
dependencies:
ansi-regex "^6.0.1"
strip-eof@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
@@ -3108,10 +3165,10 @@ supports-preserve-symlinks-flag@^1.0.0:
resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
synckit@0.11.6:
version "0.11.6"
resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.11.6.tgz#e742a0c27bbc1fbc96f2010770521015cca7ed5c"
integrity sha512-2pR2ubZSV64f/vqm9eLPz/KOvR9Dm+Co/5ChLgeHl0yEDRc6h5hXHoxEQH8Y5Ljycozd3p1k5TTSVdzYGkPvLw==
synckit@0.11.8:
version "0.11.8"
resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.11.8.tgz#b2aaae998a4ef47ded60773ad06e7cb821f55457"
integrity sha512-+XZ+r1XGIJGeQk3VvXhT6xx/VpbHsRzsTkGgF6E5RX9TTXD0118l87puaEBZ566FhqblC6U0d4XnubznJDm30A==
dependencies:
"@pkgr/core" "^0.2.4"
@@ -3127,18 +3184,6 @@ tar@^6.0.5, tar@^6.1.11, tar@^6.1.12, tar@^6.2.1:
mkdirp "^1.0.3"
yallist "^4.0.0"
tar@^7.0.1:
version "7.4.3"
resolved "https://registry.yarnpkg.com/tar/-/tar-7.4.3.tgz#88bbe9286a3fcd900e94592cda7a22b192e80571"
integrity sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==
dependencies:
"@isaacs/fs-minipass" "^4.0.0"
chownr "^3.0.0"
minipass "^7.1.2"
minizlib "^3.0.1"
mkdirp "^3.0.1"
yallist "^5.0.0"
temp-file@^3.4.0:
version "3.4.0"
resolved "https://registry.yarnpkg.com/temp-file/-/temp-file-3.4.0.tgz#766ea28911c683996c248ef1a20eea04d51652c7"
@@ -3235,14 +3280,14 @@ typedarray@^0.0.6:
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==
typescript-eslint@^8.32.1:
version "8.32.1"
resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.32.1.tgz#1784335c781491be528ff84ab666e2f0f7591fd1"
integrity sha512-D7el+eaDHAmXvrZBy1zpzSNIRqnCOrkwTgZxTu3MUqRWk8k0q9m9Ho4+vPf7iHtgUfrK/o8IZaEApsxPlHTFCg==
typescript-eslint@^8.35.1:
version "8.35.1"
resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.35.1.tgz#4ddeda5c5777a7bd86516280d8099ada06055f2f"
integrity sha512-xslJjFzhOmHYQzSB/QTeASAHbjmxOGEP6Coh93TXmUBFQoJ1VU35UHIDmG06Jd6taf3wqqC1ntBnCMeymy5Ovw==
dependencies:
"@typescript-eslint/eslint-plugin" "8.32.1"
"@typescript-eslint/parser" "8.32.1"
"@typescript-eslint/utils" "8.32.1"
"@typescript-eslint/eslint-plugin" "8.35.1"
"@typescript-eslint/parser" "8.35.1"
"@typescript-eslint/utils" "8.35.1"
typescript@^5.4.3, typescript@^5.8.3:
version "5.8.3"
@@ -3340,6 +3385,15 @@ word-wrap@^1.2.5:
resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34"
integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
version "7.0.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
dependencies:
ansi-styles "^4.0.0"
string-width "^4.1.0"
strip-ansi "^6.0.0"
wrap-ansi@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
@@ -3349,6 +3403,15 @@ wrap-ansi@^7.0.0:
string-width "^4.1.0"
strip-ansi "^6.0.0"
wrap-ansi@^8.1.0:
version "8.1.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"
integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==
dependencies:
ansi-styles "^6.1.0"
string-width "^5.0.1"
strip-ansi "^7.0.1"
wrappy@1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
@@ -3369,11 +3432,6 @@ yallist@^4.0.0:
resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
yallist@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/yallist/-/yallist-5.0.0.tgz#00e2de443639ed0d78fd87de0d27469fbcffb533"
integrity sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==
yargs-parser@^21.1.1:
version "21.1.1"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35"
@@ -3405,7 +3463,7 @@ yocto-queue@^0.1.0:
resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
zod@^3.25.23:
version "3.25.23"
resolved "https://registry.yarnpkg.com/zod/-/zod-3.25.23.tgz#128fb02f3619a8bca6bbbf6b07b457236cf33391"
integrity sha512-Od2bdMosahjSrSgJtakrwjMDb1zM1A3VIHCPGveZt/3/wlrTWBya2lmEh2OYe4OIu8mPTmmr0gnLHIWQXdtWBg==
zod@^3.25.67:
version "3.25.67"
resolved "https://registry.yarnpkg.com/zod/-/zod-3.25.67.tgz#62987e4078e2ab0f63b491ef0c4f33df24236da8"
integrity sha512-idA2YXwpCdqUSKRCACDE6ItZD9TZzy3OZMtpfLoh6oPR47lipysRrJfjzMqFxQ3uJuUPyUeWe1r9vLH33xO/Qw==

View File

@@ -1,4 +1,3 @@
{
"tabWidth": 4,
"proseWrap": "always"
"tabWidth": 4
}

View File

@@ -8,13 +8,6 @@ export default defineConfig({
head: [["link", { rel: "icon", type: "image/png", href: "/favicon.png" }]],
cleanUrls: true,
ignoreDeadLinks: "localhostLinks",
vite: {
build: {
rollupOptions: {
external: ['client-museum-s3.png'] // Added to handle static asset import
}
}
},
themeConfig: {
// We use the default theme (with some CSS color overrides). This
// themeConfig block can be used to further customize the default theme.
@@ -33,6 +26,9 @@ export default defineConfig({
},
},
sidebar: sidebar,
outline: {
level: [2, 3],
},
socialLinks: [
{ icon: "github", link: "https://github.com/ente-io/ente/" },
{ icon: "twitter", link: "https://twitter.com/enteio" },

View File

@@ -52,6 +52,10 @@ export const sidebar = [
link: "/photos/features/machine-learning",
},
{ text: "Map", link: "/photos/features/map" },
{
text: "Notifications",
link: "/photos/features/notifications",
},
{
text: "Passkeys",
link: "/photos/features/passkeys",
@@ -203,22 +207,22 @@ export const sidebar = [
text: "Migration",
collapsed: true,
items: [
{ text: "Introduction", link: "/auth/migration-guides/" },
{ text: "Introduction", link: "/auth/migration/" },
{
text: "From Authy",
link: "/auth/migration-guides/authy/",
link: "/auth/migration/authy/",
},
{
text: "From Steam",
link: "/auth/migration-guides/steam/",
link: "/auth/migration/steam/",
},
{
text: "From others",
link: "/auth/migration-guides/import",
link: "/auth/migration/import",
},
{
text: "Exporting your data",
link: "/auth/migration-guides/export",
link: "/auth/migration/export",
},
],
},
@@ -235,50 +239,98 @@ export const sidebar = [
],
},
{
text: "Self hosting",
text: "Self-hosting",
collapsed: true,
items: [
{ text: "Getting started", link: "/self-hosting/" },
{
text: "Connecting to custom server",
link: "/self-hosting/guides/custom-server/",
text: "Quickstart",
link: "/self-hosting/",
},
{
text: "Creating accounts",
link: "/self-hosting/creating-accounts",
},
{
text: "Configuring your server",
link: "/self-hosting/museum",
},
{
text: "Configuring S3",
link: "/self-hosting/guides/configuring-s3",
},
{
text: "Reverse proxy",
link: "/self-hosting/reverse-proxy",
},
{
text: "Guides",
text: "Installation",
collapsed: true,
items: [
{ text: "Introduction", link: "/self-hosting/guides/" },
{
text: "Administering your server",
link: "/self-hosting/guides/admin",
text: "Requirements",
link: "/self-hosting/installation/requirements",
},
{
text: "Configuring CLI for your instance",
link: "/self-hosting/guides/selfhost-cli",
text: "Quickstart script (Recommended)",
link: "/self-hosting/installation/quickstart",
},
{
text: "Running Ente from source",
link: "/self-hosting/guides/from-source",
text: "Docker Compose",
link: "/self-hosting/installation/compose",
},
{
text: "Running Ente without Docker",
link: "/self-hosting/guides/standalone-ente",
text: "Manual setup (without Docker)",
link: "/self-hosting/installation/manual",
},
{
text: "Environment variables and defaults",
link: "/self-hosting/installation/env-var",
},
{
text: "Configuration",
link: "/self-hosting/installation/config",
},
{
text: "Post-installation steps",
link: "/self-hosting/installation/post-install/",
},
{
text: "Upgrade",
link: "/self-hosting/installation/upgrade",
},
],
},
{
text: "Administration",
collapsed: true,
items: [
{
text: "User management",
link: "/self-hosting/administration/users",
},
{
text: "Reverse proxy",
link: "/self-hosting/administration/reverse-proxy",
},
{
text: "Object storage",
link: "/self-hosting/administration/object-storage",
},
{
text: "Ente CLI",
link: "/self-hosting/administration/cli",
},
{
text: "Backup",
link: "/self-hosting/administration/backup",
},
],
},
{
text: "Development",
collapsed: true,
items: [
{
text: "Building mobile apps",
link: "/self-hosting/development/mobile-build",
},
],
},
{
text: "Community Guides",
collapsed: true,
items: [
{
text: "Ente via Tailscale",
link: "/self-hosting/guides/tailscale",
},
{
text: "Running Ente using systemd",
link: "/self-hosting/guides/systemd",
},
],
},
@@ -291,68 +343,19 @@ export const sidebar = [
link: "/self-hosting/troubleshooting/misc",
},
{
text: "Bucket CORS",
link: '/self-hosting/troubleshooting/bucket-cors'
text: "Docker / quickstart",
link: "/self-hosting/troubleshooting/docker",
},
{
text: "Uploads",
link: "/self-hosting/troubleshooting/uploads",
},
{
text: "Docker / quickstart",
link: "/self-hosting/troubleshooting/docker",
},
{
text: "Ente CLI secrets",
link: "/self-hosting/troubleshooting/keyring",
},
],
},
{
text: "Community Guides",
collapsed: true,
items :[
{
text: "Ente via Tailscale",
link: "/self-hosting/guides/Tailscale",
},
{
text: "Ente with External S3",
link: "/self-hosting/guides/external-s3",
}
]
},
{
text: "FAQ",
collapsed: true,
items: [
{ text: "General", link: "/self-hosting/faq/" },
{
text: "Verification code",
link: "/self-hosting/faq/otp",
},
{
text: "Shared albums",
link: "/self-hosting/faq/sharing",
},
{
text: "Backups",
link: "/self-hosting/faq/backup",
},
{
text: "Environment variables",
link: "/self-hosting/faq/environment",
text: "Ente CLI",
link: "/self-hosting/troubleshooting/cli",
},
],
},
],
},
{
text: "About",
link: "/about/",
},
{
text: "Contribute",
link: "/about/contribute",
},
];

View File

@@ -1,15 +0,0 @@
---
title: Contribute
description: Details about how to contribute to Ente's docs
---
# Contributing
To contribute to these docs, you can use the "Edit this page" button at the
bottom of each page. This will allow you to directly edit the markdown file that
is used to generate this documentation and open a quick pull request directly
from GitHub's UI.
If you're more comfortable in contributing with your text editor, see the
`docs/` folder of our GitHub repository,
[github.com/ente-io/ente](https://github.com/ente-io/ente).

View File

@@ -1,72 +0,0 @@
---
title: About Ente
description: >
An overview of Ente: the company, and the people behind it, and the products
that we make.
---
# About
Ente is a end-to-end encrypted platform for privately, reliably, and securely
storing your data on the cloud. On top of this platform, Ente offers two
products:
- **Ente Photos** - An alternative to Google Photos and Apple Photos
- **Ente Auth** - A free 2FA alternative to Authy
Both these apps are available for all desktop (Linux, Mac, Windows) and mobile
(Android, iOS and F-Droid) platforms. They also work directly in your web
browser without you needing to install anything.
More products are in the pipeline.
## History
Ente was the founded by Vishnu Mohandas (he's also Ente's CEO) in response to
privacy concerns with major tech companies. The underlying motivation was the
understanding that big tech had no incentive to fix their act, but with
end-to-end encrypted cross platform apps, there was a way for people to take
back control over their own data without sacrificing on features.
### What does Ente mean?
In Malayalam, Vishnu's native language, "ente" means "mine". Thus "Ente Photos"
has the literal meaning "my photos".
This was a good name, but still Vishnu looked around for better ones. But one
day, he discovered that "ente" means "duck" in German. This unexpected
connection sealed the deal. We should ask him why he likes ducks so much, but
apparently he does, so this dual meaning ("mine" / "duck") led him to finalize
the name, and also led to the adoption of "Ducky", Ente's mascot:
<div align="center">
![Ente's mascot, Ducky](ducky.png){width=200px}
</div>
For the full origin story of Ducky you can check out
[this blog post](https://ente.io/blog/ducky/).
### How do I pronounce Ente?
en-_tay_. Like ca<i>fe</i>.
## Get in touch
If you have a support query that is not answered by these docs, please reach out
to our Customer Support by sending an email to support@ente.io
To stay up to date with new product launches, and behind the scenes details of
how we're building Ente, you can read our [blog](https://ente.io/blog) (or
subscribe to it via [RSS](https://ente.io/blog/rss.xml))
To suggest new features and/or offer your perspective on how we should design
planned and upcoming features, use our
[GitHub discussions](https://github.com/ente-io/ente/discussions)
Or if you'd just like to hang out, join our
[Discord](https://discord.gg/z2YVKkycX3), follow us on
[Twitter](https://twitter.com/enteio) or give us a shout out on
[Mastodon](https://mstdn.social/@ente)

View File

@@ -41,6 +41,16 @@ Usually, this discrepancy occurs because the time in your browser might be
incorrect. In particular, multiple users have reported that Firefox provides
incorrect time when certain privacy settings are enabled.
> [!TIP]
>
> Newer Ente Auth clients (upcoming 4.4.0+) will automatically try to correct
> for incorrect system time, so you should be seeing correct codes even if your
> system time is out of sync. However, this automatic correction will not work
> if you're using Ente Auth in offline mode.
>
> If you've recently changed your system time and the codes are still incorrect,
> try to refresh / restart the app if needed.
### Can I access my codes on web?
You can access your codes on the web at [auth.ente.io](https://auth.ente.io).

View File

@@ -12,7 +12,7 @@ This page outlines the key features available in Ente Auth.
Ente Auth supports the icon pack provided by
[simple-icons](https://github.com/simple-icons/simple-icons). If an icon you
need is missing, please refer to the
[docs/adding-icons](https://github.com/ente-io/ente/blob/main/auth/docs/adding-icons.md)
[docs/adding-icons](https://github.com/ente-io/ente/blob/main/mobile/apps/auth/docs/adding-icons.md)
guide for instructions on how to contribute.
### Search
@@ -105,8 +105,7 @@ Ente Auth offers various import and export options for your codes.
automatically via the CLI.
- **Import:** Import codes from various other authentication apps.
For detailed instructions, refer to the
[migration guides](../migration-guides/).
For detailed instructions, refer to the [migration guides](../migration/).
### Deduplicate codes
@@ -136,4 +135,4 @@ Easily add or share entries using QR codes:
right-click (desktop) a code and select "QR". This allows you to easily share
the complete entry (including the secret) with others by letting them scan the
displayed QR code. This can also be used to easily add the same entry to
another authenticatior app or service.
another authenticator app or service.

View File

@@ -10,8 +10,9 @@ A guide written by Green, an ente.io lover
> [!WARNING]
>
> Authy has dropped all support for its desktop apps. It is no longer possible
> to export data from Authy using methods 1 and 2. You will need either an iOS device
> and computer (method 4) or a rooted Android phone (method 3) to follow this guide.
> to export data from Authy using methods 1 and 2. You will need either an iOS
> device and computer (method 4) or a rooted Android phone (method 3) to follow
> this guide.
---
@@ -204,11 +205,24 @@ This uses the tool [Aegis Authenticator](https://getaegis.app/) from
## Method 4: Authy-iOS-MiTM
**Who should use this?** Technical iOS users of Authy that cannot export their tokens with methods 1 or 2 (due to those methods being patched) or method 3 (due to that method requiring a rooted Android device).
**Who should use this?** Technical iOS users of Authy that cannot export their
tokens with methods 1 or 2 (due to those methods being patched) or method 3 (due
to that method requiring a rooted Android device).
This method works by intercepting the data the Authy app receives while logging in for the first time, which contains your encrypted authenticator tokens. After the encrypted authenticator tokens are dumped, you can decrypt them using your backup password and convert them to an Ente token file.
This method works by intercepting the data the Authy app receives while logging
in for the first time, which contains your encrypted authenticator tokens. After
the encrypted authenticator tokens are dumped, you can decrypt them using your
backup password and convert them to an Ente token file.
For an up-to-date guide of how to retrieve the encrypted authenticator tokens and decrypt them, please see [Authy-iOS-MiTM](https://github.com/AlexTech01/Authy-iOS-MiTM). To convert the `decrypted_tokens.json` file from that guide into a format Ente Authenticator can recognize, use [this](https://gist.github.com/gboudreau/94bb0c11a6209c82418d01a59d958c93?permalink_comment_id=5317087#gistcomment-5317087) Python script. Once you have the `ente_auth_import.plain` file from that script, transfer it to your device and follow the instructions below to import it into Ente Authenticator.
For an up-to-date guide of how to retrieve the encrypted authenticator tokens
and decrypt them, please see
[Authy-iOS-MiTM](https://github.com/AlexTech01/Authy-iOS-MiTM). To convert the
`decrypted_tokens.json` file from that guide into a format Ente Authenticator
can recognize, use
[this](https://gist.github.com/gboudreau/94bb0c11a6209c82418d01a59d958c93?permalink_comment_id=5317087#gistcomment-5317087)
Python script. Once you have the `ente_auth_import.plain` file from that script,
transfer it to your device and follow the instructions below to import it into
Ente Authenticator.
## Importing to Ente Authenticator (Method 1, method 2.1, method 4)

View File

@@ -1,7 +1,6 @@
---
title: Migrating to Ente Auth
description:
Guides for migrating your existing 2FA tokens into or out of Ente Auth
description: Guides for migrating your existing 2FA tokens into or out of Ente Auth
---
# Migrating to/from Ente Auth

View File

@@ -10,4 +10,4 @@ Ende-zu-Ende-verschlüsselte Authenticator-App für jedermann. Wir sind froh, da
du hier bist!
**Please note that this German translation is currently just a placeholder.**
Know German? [Help us fill this in!](/about/contribute).
Know German? [Help us fill this in!](/#contribute).

View File

@@ -1,15 +1,82 @@
---
title: Home
description: >
Introduction to Ente: Products, Community and Support
---
# Welcome!
This site contains documentation and help for Ente Photos and Ente Auth. It
describes various features, and also offers various troubleshooting suggestions.
![Ducky: Ente's Mascot](/ducky.png){width=50% style="margin: 0 auto"}
Use the **sidebar** menu to navigate to information about the product (Photos or
Auth) you'd like to know more about. Or use the **search** at the top to try and
jump directly to page that might contain the information you need.
## Introduction
To know more about Ente, see [about](/about/) or visit our website
[ente.io](https://ente.io).
Ente (pronounced en-_tay_) is a end-to-end encrypted platform for privately,
reliably, and securely storing your data on the cloud, over which 2 applications
have been developed and made available for mobile, web and desktop, namely:
- **Ente Photos** - An alternative to Google Photos and Apple Photos.
- **Ente Auth** - A free 2FA alternative to Authy.
## History
Ente was founded by Vishnu Mohandas (Ente's CEO) in response to privacy concerns
with major tech companies. The underlying motivation was the understanding that
big tech had no incentive to fix their act, but with end-to-end encrypted cross
platform apps, there was a way for people to take back control over their own
data without sacrificing on features.
### Origin of the name
In Malayalam, Vishnu's native language, "ente" means "mine", thus "Ente Photos"
literally means "my photos".
But one day, he discovered that "ente" means "duck" in German. This unexpected
connection sealed the deal after looking for alternative names and led to the
adoption of ["Ducky"](https://ente.io/blog/ducky/), representing the playfulness
and friendly nature of the community and team.
## Getting Started
We recommend reading the documentation for [Ente Photos](/photos/) or
[Ente Auth](/auth/) to get started with installation on the desired platform,
explore available features and usage.
If you are looking to self-host Ente, we recommend you to read the
[official documentation](/self-hosting/) for updated information on getting
started, installation, administration and maintenance.
## Contributing
There are many ways to support Ente and you don't have to be a programmer for
that. You can spread the word, give feedback, report bugs, help us with
translations, contribute documentation and community guides and more.
To suggest new features and/or offer your perspective on how we should design
(planned and upcoming features), use our
[GitHub discussions](https://github.com/ente-io/ente/discussions)
You can find our contribution guidelines
[here](https://github.com/ente-io/ente/blob/main/CONTRIBUTING.md).
You can always engage with our community and team to hang out, answer queries
and stay updated:
- Chat: [Discord](https://ente.io/discord)
- Discussions: [GitHub](https://github.com/ente-io/ente/discussions)
- Socials:
- Twitter: [enteio](https://twitter.com/enteio)
- Mastodon: [@ente@fosstodon.org](https://fosstodon.org/@ente)
- Bluesky: [ente.io](https://bsky.app/profile/ente.io)
- Instagram: [ente.app](https://www.instagram.com/ente.app)
- Website:
- [Blog](https://ente.io/blog)
- [RSS](https://ente.io/blog/rss.xml)
## Getting Help
If you encounter any issues with any of the products that's not answered by our
documentation, please reach out to our team by sending an email to
[support@ente.io](mailto:support@ente.io).
For community support, please post your queries on our
[Discord](https://discord.gg/z2YVKkycX3) server.

View File

@@ -15,7 +15,8 @@ to manually update the software.
### Upload errors
**How do I identify which files experienced upload issues within the desktop app?**
**How do I identify which files experienced upload issues within the desktop
app?**
Check the sections within the upload progress bar for "Failed Uploads," "Ignored
Uploads," and "Unsuccessful Uploads."
@@ -33,6 +34,5 @@ be specific to your distro (e.g. `xdg-desktop-menu forceupdate`).
> [!NOTE]
>
> If you're using an AppImage and not seeing the icon, you'll need to [enable
> AppImage desktop
> integration](/photos/troubleshooting/desktop-install/#appimage-desktop-integration).
> If you're using an AppImage and not seeing the icon, you'll need to
> [enable AppImage desktop integration](/photos/troubleshooting/desktop-install/#appimage-desktop-integration).

View File

@@ -7,9 +7,10 @@ description: Frequently asked questions about keeping extra backups of your data
## How can I backup my data in a local drive outside Ente?
You can use our CLI tool or our desktop app to set up exports of your data
to your local drive. This way, you can use Ente in your day to day use, with an additional guarantee that a copy of your original photos and videos are
always available on your machine.
You can use our CLI tool or our desktop app to set up exports of your data to
your local drive. This way, you can use Ente in your day to day use, with an
additional guarantee that a copy of your original photos and videos are always
available on your machine.
- You can use [Ente's CLI](https://github.com/ente-io/ente/tree/main/cli#export)
to export your data in a cron job to a location of your choice. The exports

View File

@@ -1,7 +1,6 @@
---
title: Face recognition
description:
Frequently asked questions about Ente's face recognition
description: Frequently asked questions about Ente's face recognition
---
# Face recognition

View File

@@ -26,7 +26,6 @@ unsupported file format and we will do our best to help you out.
Yes, we currently do not support files larger than 4 GB.
## Does Ente support videos?
Ente supports backing up and downloading of videos in their original format and
@@ -68,7 +67,7 @@ reliable as any one can be.
If you would like to fund the development of this project, please consider
[subscribing](https://ente.io/download).
## How do I pronounce ente?
## How do I pronounce Ente?
It's like cafe 😊. kaf-_ay_. en-_tay_.
@@ -101,29 +100,53 @@ clicking on "Your map" under "Locations" on the search screen.
## How to reset my password if I lost it?
On the login page, enter your email and click on Forgot Password. Then, enter your recovery key and create a new password.
On the login page, enter your email and click on Forgot Password. Then, enter
your recovery key and create a new password.
# iOS Album Backup and Organization in Ente
## Can I search for photos using the descriptions Ive added?
### How does Ente handle photos that are part of multiple iOS albums?
When you select multiple albums for backup, Ente prioritizes uploading each photo to the album with the fewest photos. This means a photo will only be uploaded once, even if it exists in multiple albums on your device. If you create new albums on your device after the initial backup, those photos may not appear in the corresponding Ente album if they were already uploaded to a different album.
Yes, descriptions are searchable, making it easier to find specific photos
later. To do this, open the photo, tap the (i) button, and enter your
description.
## How does the deduplication feature work on the desktop app?
### Why dont all photos from a new iOS album appear in the corresponding Ente album?
If you create a new album on your device after the initial backup, the photos in that album may have already been uploaded to another album in Ente. To fix this, go to the "On Device" album in Ente, select all photos, and manually add them to the corresponding album in Ente.
If the app finds exact duplicates, it will show them in the deduplication. When
you delete a duplicate, the app keeps one copy and creates a symlink for the
other duplicate. This helps save storage space.
### What happens if I reorganize my photos in the iOS Photos app after backing up?
Reorganizing photos in the iOS Photos app (e.g., moving photos to new albums) wont automatically reflect in Ente. Youll need to manually add those photos to the corresponding albums in Ente to maintain consistency.
## What happens if I lose access to my email address? Can I use my recovery key to bypass email verification?
### Can I search for photos using the descriptions Ive added?
Yes, descriptions are searchable, making it easier to find specific photos later.
To do this, open the photo, tap the (i) button, and enter your description.
### How does the deduplication feature work on the desktop app?
If the app finds exact duplicates, it will show them in the deduplication. When you delete a duplicate, the app keeps one copy and creates a symlink for the other duplicate. This helps save storage space.
### What happens if I lose access to my email address? Can I use my recovery key to bypass email verification?
No, the recovery key does not bypass email verification. For security reasons, we do not disable or bypass email verification unless the account owner reaches out to us and successfully verifies their identity by providing details about their account.
No, the recovery key does not bypass email verification. For security reasons,
we do not disable or bypass email verification unless the account owner reaches
out to us and successfully verifies their identity by providing details about
their account.
If you lose access to your email, please contact our support team at
support@ente.io
---
# iOS Album Backup and Organization in Ente
## How does Ente handle photos that are part of multiple iOS albums?
When you select multiple albums for backup, Ente prioritizes uploading each
photo to the album with the fewest photos. This means a photo will only be
uploaded once, even if it exists in multiple albums on your device. If you
create new albums on your device after the initial backup, those photos may not
appear in the corresponding Ente album if they were already uploaded to a
different album.
## Why dont all photos from a new iOS album appear in the corresponding Ente album?
If you create a new album on your device after the initial backup, the photos in
that album may have already been uploaded to another album in Ente. To fix this,
go to the "On Device" album in Ente, select all photos, and manually add them to
the corresponding album in Ente.
## What happens if I reorganize my photos in the iOS Photos app after backing up?
Reorganizing photos in the iOS Photos app (e.g., moving photos to new albums)
wont automatically reflect in Ente. Youll need to manually add those photos to
the corresponding albums in Ente to maintain consistency.

View File

@@ -62,6 +62,7 @@ the upload time as the photo's creation time.
## Modifications
Ente supports modifications to the following metadata:
- File name
- Date & time
- Location

View File

@@ -1,7 +1,6 @@
---
title: Security and Privacy FAQ
description:
Comprehensive information about security and privacy measures in Ente Photos
description: Comprehensive information about security and privacy measures in Ente Photos
---
# Security and Privacy FAQ

View File

@@ -1,7 +1,6 @@
---
title: Video streaming FAQ
description:
Frequently asked questions about Ente's video streaming feature
description: Frequently asked questions about Ente's video streaming feature
---
# Video streaming
@@ -16,7 +15,7 @@ description:
#### On mobile
- Open Settings -> General -> Advanced
- Switch on the toggle for `Video streaming`
- Enable the toggle for `Streamable videos`
#### On desktop
@@ -78,6 +77,7 @@ generated stream.
While this feature is in beta, we will not count the storage consumed by your
streams against your storage quota. This may change in the future. If it does,
we will provide an option to opt-in to one of the following:
1. Original videos only
2. Compressed streams only
3. Both

View File

@@ -43,8 +43,8 @@ need to disable this "Optimize battery usage" mode in the system settings for
Ente if you wish for Ente to automatically back up your photos in the
background.
On Android versions 15 and later, if an app is in private space and the private
space is locked, Android doesnt allow the app to run any background processes.
On Android versions 15 and later, if an app is in private space and the private
space is locked, Android doesnt allow the app to run any background processes.
As a result, background sync will not work.
### Desktop

View File

@@ -1,7 +1,6 @@
---
title: Cast
description:
Casting your photos on to a large screen or a TV or a Chromecast device
description: Casting your photos on to a large screen or a TV or a Chromecast device
---
# Cast

View File

@@ -52,6 +52,11 @@ Ente also provides a tool for manual de-duplication in _Settings → Backup →
Remove duplicates_. This is useful if you have an existing library with
duplicates across different albums, but wish to keep only one copy.
During this operation, Ente will discard duplicates across all albums, retain a
single copy, and add symlinks to this copy within all existing albums. So your
existing album structure remains unchanged, while the space consumed by the
duplicate data is freed up.
## Adding to Ente album creates symlinks
Note that once a file is in Ente, adding it to another Ente album will create a

View File

@@ -1,7 +1,6 @@
---
title: Family plans
description:
Share your Ente Photos plan with your family members with no extra cost
description: Share your Ente Photos plan with your family members with no extra cost
---
# Family plans
@@ -24,19 +23,19 @@ In brief,
## Storage Limits
If you're an admin of a family, you will be able to set storage limits for the
If you're an admin of a family, you will be able to set storage limits for the
members in your family plan.
In brief,
In brief,
- For example, once you set a limit of 10GB for a member, their Storage
quota for uploading photos will be limited to 10GB.
- For example, once you set a limit of 10GB for a member, their Storage quota
for uploading photos will be limited to 10GB.
- Once the invited member accepts the Family invite, you will be able to see
an edit icon in the Members List. Click on it to setup a family limit.
- Once the invited member accepts the Family invite, you will be able to see an
edit icon in the Members List. Click on it to setup a family limit.
- If the admin has set a limit for any user, that limit value will be prefilled
in the input box.
in the input box.
- If you want to remove any storage limit from a members account, you
can click on the "Remove Limit" and they can upload photos without any limit.
- If you want to remove any storage limit from a members account, you can click
on the "Remove Limit" and they can upload photos without any limit.

View File

@@ -47,8 +47,20 @@ device.
The indexes are synced across all your devices automatically using the same
end-to-end encrypted security that we use for syncing your photos.
Note that the desktop app does not currently support modifying the face
groupings, that is only supported by the mobile app.
---
#### Local indexing on mobile
In general the machine learning is optimized to work well on most mobile device.
However, devices with low RAM (4-6GB) and large photo libraries might struggle
to complete the indexing without affecting performance of the app. In such case,
you might want to disable local indexing and let the desktop run it instead.
You can disable local indexing from the settings, under
`General > Advanced > Machine learning > Configuration`. This way, you can
continue to use the ML features without your phone performance taking any hit.
---
For more information on how to use Machine Learning for face recognition please
check out [the FAQ](../faq/face-recognition).

View File

@@ -0,0 +1,33 @@
---
title: Notifications
description: Details about notifications in Ente
---
# Notifications
The Ente app can send notifications to notify you of an update, or just to
remind you of some sweet or helpful memory at the right time.
## New shared photos
Receive notifications when someone adds a photo to a shared album that you're a
part of.
## "On this day" memories
Receive reminders about memories from this day in previous years. These
reminders will only be shown if there are enough photos taken across previous
years of the specific day.
## Birthday notifications
Receive reminders when it's someone's birthday. Tapping on the notification will
take you to photos of the birthday person. This requires you to first add a
birthday to a person, and will only be shown if there are enough photos of that
person.
## Notification permission
By default all notification categories are enabled if you give notification
permission. You can disable all of the above notification categories from
`Settings > Notifications`. Notifications currently only work on mobile.

View File

@@ -1,7 +1,6 @@
---
title: Watch folder
description:
Automatic syncing of selected folders using the Ente Photos desktop app
description: Automatic syncing of selected folders using the Ente Photos desktop app
---
# Watch folders

View File

@@ -66,5 +66,4 @@ If you run into any issues during your data export, please reach out to
Note that we also provide a
[CLI tool](https://github.com/ente-io/ente/tree/main/cli#export) to export your
data. You can find more information about the export in the
[export FAQ](/photos/faq/export).
data.

View File

@@ -1,7 +1,6 @@
---
title: Import from local hard disk
description:
Migrating to Ente Photos by importing data from your local hard disk
description: Migrating to Ente Photos by importing data from your local hard disk
---
# Import photos from your local hard disk

View File

@@ -99,3 +99,17 @@ If you do want to run it from the command line, you can do so by passing the
For more details, see this upstream issue on
[electron](https://github.com/electron/electron/issues/17972).
### Application reporting offline despite Internet connectivity
Due to unreliability of usage of `navigator.onLine` in Linux, the app may report that you are offline, even though the internet connection is functional.
You can resolve the issue by adding a dummy network interface using the following command:
```shell
ip link add dummy0 type dummy
ip addr add 10.10.10.1/24 dev dummy0
ip link set dummy0 up
```
Once the interface is up, Ente correctly detects that the system is online.

View File

@@ -1,7 +1,6 @@
---
title: Files not uploading
description:
Troubleshooting when files are not uploading from your Ente Photos app
description: Troubleshooting when files are not uploading from your Ente Photos app
---
# Files not uploading

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

View File

Before

Width:  |  Height:  |  Size: 87 KiB

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

View File

@@ -0,0 +1,47 @@
---
title: Backups - Self-hosting
description: General introduction to backing up your self hosted Ente instance
---
# Backing up your Ente instance
A functional Ente backend needs three things:
1. Museum (the API server)
2. Postgres (the database)
3. Object storage (any S3-compatible object storage)
Thus, when thinking about backups:
1. For Museum, you should backup your `museum.yaml`, `credentials.yaml` or any
other custom configuration that you created.
2. The entire data volume needs to be backed up for the database and object
storage.
A common oversight is taking a lot of care for backing up the object storage,
even going as far as enabling replication and backing up the the multiple object
storage volumes, but not applying the same care to the database backup.
While the actual encrypted photos are indeed stored in the object storage,
**this encrypted data will not be usable without the database** since the
database contains information like a file specific encryption key.
Viewed differently, to decrypt your data you need three pieces of information:
1. The encrypted file data itself (which comes from the object storage backup).
2. The encrypted file and collection specific encryption keys (which come from
the database backup).
3. The master key (which comes from your password).
If you're starting out with self hosting, we recommend keeping plaintext backup
of your photos.
[You can use the CLI or the desktop app to automate this](/photos/faq/export).
Once you get more comfortable with the various parts, you can try backing up
your instance.
If you rely on your instance backup, ensure that you do full restoration to
verify that you are able to access your data.
As the industry saying goes, a backup without a restore is no backup at all.

View File

@@ -0,0 +1,83 @@
---
title: Ente CLI for Self-hosted Instance - Self-hosting
description: Guide to configuring Ente CLI for Self Hosted Instance
---
# Ente CLI for self-hosted instance
If you are self-hosting, you can configure Ente CLI to export data & perform
basic administrative actions.
## Step 1: Configure endpoint
To do this, first configure the CLI to use your server's endpoint.
Define `config.yaml` and place it in `~/.ente/` or directory specified by
`ENTE_CLI_CONFIG_DIR` or directory where Ente CLI is present.
```yaml
# Set the API endpoint to your domain where Museum is being served.
endpoint:
api: http://localhost:8080
```
## Step 2: Whitelist admins
You can whitelist administrator users by following this
[guide](/self-hosting/administration/users#whitelist-admins).
## Step 3: Add an account
::: info You can not create new accounts using Ente CLI.
You can only log in to your existing accounts.
To create a new account, use Ente Photos (or Ente Auth) web application, desktop
or mobile.
:::
You can add your existing account using Ente CLI.
```shell
ente account add
```
This should prompt you for authentication details and export directory. Your
account should be added after successful authentication.
It can be used for exporting data (for plain-text backup), managing Ente Auth
and performing administrative actions.
## Step 4: Increase storage and account validity
You can use `ente admin update-subscription` to increase storage quota and
account validity (duration).
For infinite storage and validity, use the following command:
```shell
ente admin update-subscription -a <admin-user-mail> -u <user-email-to-update> --no-limit
# Set a limit
ente admin update-subscription -a <admin-user-mail> -u <user-email-to-update> --no-limit False
```
::: info The users must be registered on the server with same e-mail address.
If the commands are failing, ensure:
1. `<admin-user-mail>` is whitelisted as administrator user in `museum.yaml`.
For more information, check this
[guide](/self-hosting/administration/users#whitelist-admins).
2. `<user-email-to-update>` is a registered user with completed verification.
:::
For more information, check out the documentation for setting
[storage and account validity](https://github.com/ente-io/ente/blob/main/cli/docs/generated/ente_admin_update-subscription.md)
using the CLI.
## References
1. [Ente CLI Documentation](https://github.com/ente-io/ente/blob/main/cli/docs/generated)

View File

@@ -0,0 +1,133 @@
---
title: Configuring Object Storage - Self-hosting
description:
Configure Object Storage for storing files along with some troubleshooting
tips
---
# Configuring Object Storage
Ente relies on [S3-compatible](https://docs.aws.amazon.com/s3/) cloud storage
for storing files (photos, thumbnails and videos) as objects.
Ente ships MinIO as S3-compatible storage by default in quickstart and Docker
Compose for quick testing.
This document outlines configuration of S3 buckets and enabling replication for
further usage.
## Museum
The S3-compatible buckets have to be configured in `museum.yaml` file.
### General Configuration
Some of the common configuration that can be done at top-level are:
1. **SSL Configuration:** If you need to configure SSL (i. e., the buckets are
accessible via HTTPS), you'll need to set `s3.are_local_buckets` to `false`.
2. **Path-style URLs:** Disabling `s3.are_local_buckets` also switches to the
subdomain-style URLs for the buckets. However, some S3 providers such as
MinIO do not support this.
Set `s3.use_path_style_urls` to `true` for such cases.
### Replication
> [!IMPORTANT]
>
> Replication works only if all 3 storage buckets are configured (2 hot and 1
> cold storage).
>
> For more information, check
> [this discussion](https://github.com/ente-io/ente/discussions/3167#discussioncomment-10585970)
> and our article on ensuring [reliability](https://ente.io/reliability/).
Replication is disabled by default in self-hosted instance. Only the first
bucket (`b2-eu-cen`) is used.
Only the names are specifically fixed, you can put any other keys in
configuration body.
Use the `s3.hot_storage.primary` option if you'd like to set one of the other
pre-defined buckets as the primary bucket.
### Bucket configuration
The keys `b2-eu-cen` (primary storage), `wasabi-eu-central-2-v3` (secondary
storage) and `scw-eu-fr-v3` (cold storage) are hardcoded, however, the keys and
secret can be anything.
It has no relation to Backblaze, Wasabi or Scaleway.
Each bucket's endpoint, region, key and secret should be configured accordingly
if using an external bucket.
A sample configuration for `b2-eu-cen` is provided, which can be used for other
2 buckets as well:
```yaml
b2-eu-cen:
key: <key>
secret: <secret>
endpoint: localhost:3200
region: eu-central-2
bucket: b2-eu-cen
```
## CORS (Cross-Origin Resource Sharing)
If you cannot upload a photo due to CORS error, you need to fix the CORS
configuration of your bucket.
Use the content provided below for creating a `cors.json` file:
```json
{
"CORSRules": [
{
"AllowedOrigins": ["*"],
"AllowedHeaders": ["*"],
"AllowedMethods": ["GET", "HEAD", "POST", "PUT", "DELETE"],
"MaxAgeSeconds": 3000,
"ExposeHeaders": ["Etag"]
}
]
}
```
You may have to change the `AllowedOrigins` to allow only certain origins (your
Ente web apps and Museum) for security.
Assuming you have AWS CLI on your system and that you have configured it with
your access key and secret, you can execute the below command to set bucket
CORS. Make sure to enter the right path for the `cors.json` file.
```shell
aws s3api put-bucket-cors --bucket YOUR_S3_BUCKET --cors-configuration /path/to/cors.json
```
### MinIO
Assuming you have configured an alias for MinIO account using the command:
```shell
mc alias set storage-account-alias minio-endpoint minio-key minio-secret
```
where,
1. `storage-account-alias` is a valid storage account alias name
2. `minio-endpoint` is the endpoint where MinIO is being served without the
protocol (http or https). Example: `localhost:3200`
3. `minio-key` is the MinIO username defined in `MINIO_ROOT_USER`
4. `minio-secret` is the MinIO password defined in `MINIO_PASSWORD`
To set the `AllowedOrigins` Header, you can use the following command:.
```shell
mc admin config set storage-account-alias api cors_allow_origin="*"
```
You can create also `.csv` file and dump the list of origins you would like to
allow and replace the `*` with path to the CSV file.

View File

@@ -0,0 +1,101 @@
---
Title: Configuring Reverse Proxy - Self-hosting
Description: Configuring reverse proxy for Museum and other services
---
# Reverse proxy
Reverse proxy helps in making application services accessible via the Internet
without exposing multiple ports for various services.
It also allows configuration of HTTPS through SSL certificate management.
We highly recommend using HTTPS for Museum (Ente's server). For security
reasons, Museum will not accept incoming HTTP traffic.
## Pre-requisites
1. **Reverse Proxy:** We recommend using Caddy for simplicity of configuration
and automatic certificate generation and management, although you can use
other alternatives such as NGINX, Traefik, etc.
Install Caddy using the following command on Debian/Ubuntu-based systems:
```shell
sudo apt install caddy
```
Start the service and enable it to start upon system boot.
```shell
sudo systemctl start caddy
sudo systemctl enable caddy
```
## Step 1: Configure A or AAAA records
Set up the appropriate records for the endpoints in your DNS management
dashboard (usually associated with your domain registrar).
`A` or `AAAA` records pointing to your server's IP address are sufficient.
DNS propagation can take a few minutes to take effect.
![cloudflare](/cloudflare.png)
## Step 2: Configure reverse proxy
After installing Caddy, `Caddyfile` is created at `/etc/caddy/`. Edit
`/etc/caddy/Caddyfile` to configure reverse proxies.
You can edit the minimal configuration provided below for your own needs.
> yourdomain.tld is an example. Replace it with your own domain.
```groovy
# For Museum
api.ente.yourdomain.tld {
reverse_proxy http://localhost:8080
}
# For Ente Photos web app
web.ente.yourdomain.tld {
reverse_proxy http://localhost:3000
}
# For Ente Accounts web app
accounts.ente.yourdomain.tld {
reverse_proxy http://localhost:3001
}
# For Ente Albums web app
albums.ente.yourdomain.tld {
reverse_proxy http://localhost:3002
}
# For Ente Auth web app
auth.ente.yourdomain.tld {
reverse_proxy http://localhost:3003
}
# For Ente Cast web app
cast.ente.yourdomain.tld {
reverse_proxy http://localhost:3004
}
```
## Step 3: Reload reverse proxy
Reload Caddy for changes to take effect.
```shell
sudo systemctl caddy reload
```
## Step 4: Verify the setup
Ente Photos web app should be up on https://web.ente.yourdomain.tld and Museum
at https://api.ente.yourdomain.tld.
> [!TIP] If you are using other reverse proxy servers such as NGINX, Traefik,
> etc., please check out their documentation.

View File

@@ -0,0 +1,126 @@
---
title: User Management - Self-hosting
description: Guide to configuring Ente CLI for Self Hosted Instance
---
# User Management
You may wish to self-host Ente for your family or close circle. In such cases,
you may wish to enable administrative access for few users, disable new
registrations, manage one-time tokens (OTTs), etc.
This document covers the details on how you can administer users on your server.
## Whitelist admins
The administrator users have to be explicitly whitelisted in `museum.yaml`. You
can achieve this the following steps:
1. Connect to `ente_db` (the database used for storing data related to Ente).
```shell
# Change the DB name and DB user name if you use different
# values.
# If using Docker
docker exec -it <postgres-ente-container-name>
psql -U pguser -d ente_db
# Or when using psql directly
psql -U pguser -d ente_db
```
2. Get the user ID of the first user by running the following SQL query:
```sql
SELECT * from users;
```
3. Edit `internal.admins` or `internal.admin` (if you wish to whitelist only
single user) in `museum.yaml` to add the user ID you wish to whitelist.
- For multiple admins:
```yaml
internal:
admins:
- <user_id>
```
- For single admin:
```yaml
internal:
admin: <user_id>
```
4. Restart Museum by restarting the cluster
::: tip Restart your Compose clusters whenever you make changes
If you have edited the Compose file or configuration file (`museum.yaml`), make
sure to recreate the cluster's containers.
You can do this by the following command:
```shell
docker compose down && docker compose up -d
```
:::
## Increase storage and account validity
You can use Ente CLI for increasing storage quota and account validity for users
on your instance. Check this guide for more
[information](/self-hosting/administration/cli#step-4-increase-storage-and-account-validity)
## Handle user verification codes
Ente currently relies on verification codes for completion of registration.
These are accessible in server logs. If using Docker Compose, they can be
accessed by running `sudo docker compose logs` in the cluster folder where
Compose file resides.
However, you may wish to streamline this workflow. You can follow one of the 2
methods if you wish to have many users in the system.
### Use hardcoded OTTs
You can configure to use hardcoded OTTs only for specific emails, or based on
suffix.
A sample configuration for the same is provided below, which is to be used in
`museum.yaml`:
```yaml
internal:
hardcoded-ott:
emails:
- "example@example.org,123456"
local-domain-suffix: "@example.org"
local-domain-value: 012345
```
This sets OTT to 123456 for the email address example@example.com and 012345 for
emails having @example.com as suffix.
### Send email with verification code
You can configure SMTP for sending verification code e-mails to users, if you do
not wish to hardcode OTTs and have larger audience.
For more information on configuring email, check out the
[email configuration](/self-hosting/installation/config#email) section.
## Disable registrations
For security purposes, you may choose to disable registrations on your instance.
You can disable new registrations by using the following configuration in
`museum.yaml`.
```yaml
internal:
disable-registration: true
```

View File

@@ -1,27 +0,0 @@
---
title: Creating accounts
description: Creating accounts on your deployment
---
# Creating accounts
Once Ente is up and running, the Ente Photos web app will be accessible on
`http://localhost:3000`. Open this URL in your browser and proceed with creating
an account.
The default API endpoint for museum will be `localhost:8080`.
![endpoint](/endpoint.png)
To complete your account registration you will need to enter a 6-digit
verification code.
This code can be found in the server logs, which should already be shown in your
quickstart terminal. Alternatively, you can open the server logs with the
following command from inside the `my-ente` folder:
```sh
sudo docker compose logs
```
![otp](/otp.png)

View File

@@ -1,65 +0,0 @@
---
title: Backups
description: General introduction to backing up your self hosted Ente instance
---
# Backing up your Ente instance
> [!WARNING]
>
> This is not meant to be a comprehensive and bullet proof guide. There are many
> moving parts, and small mistakes might make your backups unusable.
>
> Please treat this only as a general introduction. And remember to test your
> restores.
At the minimum, a functional Ente backend needs three things:
1. Museum (the API server)
2. Postgres (the database)
3. Object storage (any S3-compatible object storage)
When thinking about backups, this translates into backing up the relevant state
from each of these:
1. For museum, you'd want to backup your `museum.yaml`, `credentials.yaml` or
any other custom configuration that you created. In particular, you should
backup the
[secrets that are specific to your instance](https://github.com/ente-io/ente/blob/74377a93d8e20e969d9a2531f32f577b5f0ef090/server/configurations/local.yaml#L188)
(`key.encryption`, `key.hash` and `jwt.secret`).
2. For postgres, the entire data volume needs to be backed up.
3. For object storage, the entire data volume needs to be backed up.
A common oversight is taking a lot of care for backing up the object storage,
even going as far as enabling replication and backing up the the multiple object
storage volumes, but not applying the same care to the database backup.
While the actual encrypted photos are indeed stored in the object storage,
**this encrypted data will not be usable without the database** since the
database contains information like a file specific encryption key.
Viewed differently, to decrypt your data you need three pieces of information:
1. The encrypted file data itself (which comes from the object storage backup).
2. The ([encrypted](https://ente.io/architecture/)) file and collection specific
encryption keys (which come from the database backup).
3. The master key (which comes from your password).
---
If you're starting out with self hosting, our recommendation is to start by
keeping a plaintext backup of your photos.
[You can use the CLI or the desktop app to automate this](/photos/faq/export).
Once you get more comfortable with the various parts, you can try backing up
your instance. As a reference,
[this document outlines how Ente itself treats backups](https://ente.io/reliability).
If you stop doing plaintext backups and instead rely on your instance backup,
ensure that you do the full restore process also to verify you can get back your
data. As the industry saying goes, a backup without a restore is no backup at
all.

View File

@@ -1,49 +0,0 @@
---
title: "Environment Variables and Ports"
description: "Information about all the Environment Variables needed to run Ente"
---
# Environment variables and ports
A self-hosted Ente instance requires specific endpoints in both Museum (the server) and web apps. This document outlines the essential environment variables and port mappings of the web apps.
Here's the list of important variables that a self hoster should know about:
### Museum
1. `NEXT_PUBLIC_ENTE_ENDPOINT`
The above environment variable is used to configure Museums endpoint. Where Museum is
running and which port it is listening on. This endpoint should be configured for
all the apps to connect to your self hosted endpoint.
All the apps (regardless of platform) by default connect to api.ente.io - which is
our production instance of Museum.
### Web Apps
> [!IMPORTANT]
> Web apps don't need to be configured with the below endpoints. Web app environment
> variables are being documented here just so that the users know everything in detail.
> Checkout [Configuring your Server](/self-hosting/museum) to configure endpoints for
> particular app.
In Ente, all the web apps are separate NextJS applications. Therefore, they are all
configured via environment variables. The photos app (Ente Photos) has information
about and connects to other web apps like albums, cast, etc.
1. `NEXT_PUBLIC_ENTE_ALBUMS_ENDPOINT`
This environment variable is used to configure and declare the endpoint for the Albums
web app.
## Ports
The below format is according to how ports are mapped in Docker.
Typically,`<host>:<container-port>`
1. `8080:8080`: Museum (Ente's server)
2. `3000:3000`: Ente Photos web app
3. `3001:3001`: Ente Accounts web app
4. `3003:3003`: [Ente Auth web app](https://ente.io/auth/)
5. `3004:3004`: [Ente Cast web app](http://ente.io/cast)

View File

@@ -1,47 +0,0 @@
---
title: FAQ - Self hosting
description: Frequently asked questions about self hosting Ente
---
# Frequently Asked Questions
### Do Ente Photos and Ente Auth share the same backend?
Yes. The apps share the same backend, the same database and the same object
storage namespace. The same user account works for both of them.
### Can I just self host Ente Auth?
Yes, if you wish, you can self-host the server and use it only for the 2FA auth
app. The starter Docker compose will work fine for either Photos or Auth (or
both!).
> You currently don't need to configure the S3 object storage (e.g. minio
> containers) if you're only using your self hosted Ente instance for auth.
### Can I use the server with _X_ as the object storage?
Yes. As long as whatever X you're using provides an S3 compatible API, you can
use it as the underlying object storage. For example, the starter self-hosting
Docker compose file we offer uses MinIO, and on our production deployments we
use Backblaze/Wasabi/Scaleway. But that's not the full list - as long as the
service you intend to use has a S3 compatible API, it can be used.
### How do I increase storage space for users on my self hosted instance?
See the [guide for administering your server](/self-hosting/guides/admin). In
particular, you can use the `ente admin update-subscription` CLI command to
increase the
[storage and account validity](https://github.com/ente-io/ente/blob/main/cli/docs/generated/ente_admin_update-subscription.md)
of accounts on your instance.
### How can I become an admin on my self hosted instance?
The first user you create on your instance is treated as an admin.
If you want, you can modify this behaviour by providing an explicit list of
admins in the [configuration](/self-hosting/guides/admin#becoming-an-admin).
### Can I disable registration of new accounts on my self hosted instance?
Yes. See `internal.disable-registration` in local.yaml.

View File

@@ -1,45 +0,0 @@
---
title: Verification code
description: Getting the OTP for a self hosted Ente
---
# Verification code
The self-hosted Ente by default does not send out emails, so you can pick the
verification code by:
- Getting it from the server logs, or
- Reading it from the DB (otts table)
The easiest option when getting started is to look for it in the server (museum)
logs. If you're already running the docker compose cluster using the quickstart
script, you should be already seeing the logs in your terminal. Otherwise you
can go to the folder (e.g. `my-ente`) where your `compose.yaml` is, then run
`docker compose logs museum --follow`. Once you can see the logs, look for a
line like:
```
... Skipping sending email to email@example.com: *Verification code: 112089*
```
That is the verification code.
> [!TIP]
>
> You can also configure your instance to send out emails so that you can get
> your verification code via emails by using the `smtp` section in the config.
You can also set pre-defined hardcoded OTTs for certain users when running
locally by creating a `museum.yaml` and adding the `internal.hardcoded-ott`
configuration setting to it. See
[local.yaml](https://github.com/ente-io/ente/blob/main/server/configurations/local.yaml)
in the server source code for details about how to define this.
> [!NOTE]
>
> If you're not able to get the OTP with the above methods, make sure that you
> are actually connecting to your self hosted instance and not to Ente's
> production servers. e.g. you can use the network requests tab in the browser
> console to verify that the API requests are going to your server instead of
> `api.ente.io`.

View File

@@ -1,104 +0,0 @@
---
title: Album sharing
description: Getting album sharing to work using an self-hosted Ente
---
# Is public sharing available for self-hosted instances?
Yes.
You'll need to run two instances of the web app, one is regular web app, but
another one is the same code but running on a different origin (i.e. on a
different hostname or different port).
Then, you need to tell the regular web app to use your second instance to
service public links. You can do this by setting the
`NEXT_PUBLIC_ENTE_ALBUMS_ENDPOINT` to point to your second instance when running
or building the regular web app.
For more details, see
[.env](https://github.com/ente-io/ente/blob/main/web/apps/photos/.env) and
[.env.development](https://github.com/ente-io/ente/blob/main/web/apps/photos/.env.development).
As a concrete example, assuming we have a Ente server running on
`localhost:8080`, we can start two instances of the web app, passing them
`NEXT_PUBLIC_ENTE_ALBUMS_ENDPOINT` that points to the origin
("scheme://host[:port]") of the second "albums" instance.
The first one, the normal web app
```sh
NEXT_PUBLIC_ENTE_ENDPOINT=http://localhost:8080 \
NEXT_PUBLIC_ENTE_ALBUMS_ENDPOINT=http://localhost:3002 \
yarn dev:photos
```
The second one, the same code but acting as the "albums" app (the only
difference is the port it is running on):
```sh
NEXT_PUBLIC_ENTE_ENDPOINT=http://localhost:8080 \
NEXT_PUBLIC_ENTE_ALBUMS_ENDPOINT=http://localhost:3002 \
yarn dev:albums
```
If you also want to change the prefix (the origin) in the generated public
links, to use your custom albums endpoint in the generated public link instead
of albums.ente.io, set `apps.public-albums` property in museum's configuration
For example, when running using the starter docker compose file, you can do this
by creating a `museum.yaml` and defining the following configuration there:
```yaml
apps:
public-albums: http://localhost:3002
```
(For more details, see
[local.yaml](https://github.com/ente-io/ente/blob/main/server/configurations/local.yaml)
in the server's source code).
## Dockerfile example
Here is an example of a Dockerfile by @Dylanger on our community Discord. This
runs a standalone self-hosted version of the public albums app in production
mode.
```Dockerfile
FROM node:20-alpine as builder
WORKDIR /app
COPY . .
ARG NEXT_PUBLIC_ENTE_ENDPOINT=https://your.ente.example.org
ARG NEXT_PUBLIC_ENTE_ALBUMS_ENDPOINT=https://your.albums.example.org
RUN yarn install && yarn build
FROM node:20-alpine
WORKDIR /app
COPY --from=builder /app/apps/photos/out .
RUN npm install -g serve
ENV PORT=3000
EXPOSE ${PORT}
CMD serve -s . -l tcp://0.0.0.0:${PORT}
```
Note that this only runs the public albums app, but the same principle can be
used to run both the normal Ente photos app and the public albums app. There is
a slightly more involved example showing how to do this also provided by in a
community contributed guide about
[configuring external S3](/self-hosting/guides/external-s3).
You will also want to tell museum about your custom shared albums endpoint so
that it uses that instead of the default URL when creating share links. You can
configure that in museum's `config.yaml`:
```
apps:
public-albums: https://your.albums.example.org
```

View File

@@ -1,89 +0,0 @@
---
title: Server admin
description: Administering your custom self-hosted Ente instance using the CLI
---
## Becoming an admin
By default, the first user (and only the first user) created on the system is
considered as an admin.
This facility is provided as a convenience for people who are getting started
with self hosting. For more serious deployments, we recommend creating an
explicit whitelist of admins.
> [!NOTE]
>
> The first user is only treated as the admin if the list of admins in the
> configuration is empty.
>
> Also, if at some point you delete the first user, then you will need to define
> a whitelist to make some other user as the admin if you wish (since the first
> account has been deleted).
To whitelist the user IDs that can perform admin actions on the server, use the
following steps:
- Create a `museum.yaml` in the directory where you're starting museum from. For
example, if you're running using `docker compose up`, then this file should be
in the same directory as `compose.yaml` (generally, `server/museum.yaml`).
> Docker might've created an empty `museum.yaml` _directory_ on your machine
> previously. If so, delete that empty directory and create a new file named
> `museum.yaml`.
- In this `museum.yaml` we can add overrides over the default configuration.
For whitelisting the admin userIDs we need to define an `internal.admins`. See
the "internal" section in
[local.yaml](https://github.com/ente-io/ente/blob/main/server/configurations/local.yaml)
in the server source code for details about how to define this.
Here is an example. Suppose we wanted to whitelist a user with ID
`1580559962386440`, we can create the following `museum.yaml`
```yaml
internal:
admins:
- 1580559962386440
```
You can use
[account list](https://github.com/ente-io/ente/blob/main/cli/docs/generated/ente_account_list.md)
command to find the user id of any account.
# Administering your custom server
> [!NOTE]
> For the first user (admin) to perform administrative actions using the CLI, their
> userID must be whitelisted in the `museum.yaml` configuration file under
> `internal.admins`. While the first user is automatically granted admin privileges
> on the server, this additional step is required for CLI operations.
You can use
[Ente's CLI](https://github.com/ente-io/ente/releases?q=tag%3Acli-v0) to
administer your self hosted server.
First we need to get your CLI to connect to your custom server. Define a
config.yaml and put it either in the same directory as CLI or path defined in
env variable `ENTE_CLI_CONFIG_PATH`
```yaml
endpoint:
api: "http://localhost:8080"
```
Now you should be able to
[add an account](https://github.com/ente-io/ente/blob/main/cli/docs/generated/ente_account_add.md),
and subsequently increase the
[storage and account validity](https://github.com/ente-io/ente/blob/main/cli/docs/generated/ente_admin_update-subscription.md)
using the CLI.
> [!NOTE]
>
> The CLI command to add an account does not create Ente accounts. It only adds
> existing accounts to the list of (existing) accounts that the CLI can use.
## Backups
See this [FAQ](/self-hosting/faq/backup).

View File

@@ -1,124 +0,0 @@
---
title: Configuring S3 buckets
description:
Configure S3 endpoints to fix upload errors or use your self hosted ente
from outside localhost
---
# Architecture
![Client, Museum, S3](/client-museum-s3.png)
There are three components involved in uploading a file:
1. The client (e.g. the web app or the mobile app)
2. Ente's server (museum)
3. The S3-compatible object storage (e.g. MinIO in the default starter)
For the uploads to work, all three of them need to be able to reach each other.
This is because the client uploads directly to the object storage.
A file upload flows as follows:
1. Client that wants to upload a file asks museum where it should upload the
file to
2. museum creates pre-signed URLs for the S3 bucket that was configured
3. Client directly uploads to the S3 buckets these URLs
4. Client finally informs museum that a file has been uploaded to this URL
The upshot of this is that _both_ the client and museum should be able to reach
your S3 bucket.
## Configuring S3
The URL for the S3 bucket is configured in
[scripts/compose/credentials.yaml](https://github.com/ente-io/ente/blob/main/server/scripts/compose/credentials.yaml#L10).
You can edit this file directly while testing, though it is more robust to
create a `museum.yaml` (in the same folder as the Docker compose file) and to
setup your custom configuration there.
> [!TIP]
> For more details about these configuration objects, see the documentation for
> the `s3` object in
> [configurations/local.yaml](https://github.com/ente-io/ente/blob/main/server/configurations/local.yaml).
By default, you only need to configure the endpoint for the first bucket.
The Docker compose file is shipped with MinIO as the self hosted S3 compatible
storage. By default, MinIO server is served on `localhost:3200` and the MinIO UI
on `localhost:3201`.
For example, in a localhost network situation, the way this connection works is,
museum (`1`) and MinIO (`2`) run on the same Docker network and the web app
(`3`) will also be hosted on your localhost. This enables all the three
components of the setup to communicate with each other seamlessly.
The same principle applies if you're deploying to your custom domain.
## Replication
![Replication](/replication.png)
<p align="center">Community contributed diagram of Ente's replication process</p>
> [!IMPORTANT]
>
> As of now, replication works only if all the 3 storage type needs are
> fulfilled (1 hot, 1 cold and 1 glacier storage).
>
> [Reference](https://github.com/ente-io/ente/discussions/3167#discussioncomment-10585970)
If you're wondering why there are 3 buckets on the MinIO UI - that's because our
production instance uses these to perform
[replication](https://ente.io/reliability/).
If you're also wondering about why the bucket names are specifically what they are,
it's because that is exactly what we are using on our production instance.
We use `b2-eu-cen` as hot, `wasabi-eu-central-2-v3` as cold (also the secondary hot)
and `scw-eu-fr-v3` as glacier storage. As of now, all of this is hardcoded.
Hence, the same hardcoded configuration is applied when you self host Ente.
In a self hosted Ente instance replication is turned off by default. When
replication is turned off, only the first bucket (`b2-eu-cen`) is used, and the
other two are ignored. Only the names here are specifically fixed, but in the
configuration body you can put any other keys. It does not have any relation
with `b2`, `wasabi` or even `scaleway`.
Use the `s3.hot_storage.primary` option if you'd like to set one of the other
predefined buckets as the primary bucket.
## SSL Configuration
> [!NOTE]
>
> If you need to configure SSL, you'll need to turn off `s3.are_local_buckets`
> (which disables SSL in the default starter compose template).
>
Disabling `s3.are_local_buckets` also switches to the subdomain style URLs for
the buckets. However, not all S3 providers support these. In particular, MinIO
does not work with these in default configuration. So in such cases you'll also
need to enable `s3.use_path_style_urls`.
## Summary
Set the S3 bucket `endpoint` in `credentials.yaml` to a `yourserverip:3200` or
some such IP / hostname that is accessible from both where you are running the
Ente clients (e.g. the mobile app) and also from within the Docker compose
cluster.
### Example
An example `museum.yaml` when you're trying to connect to museum running on your
computer from your phone on the same WiFi network:
```yaml
s3:
are_local_buckets: true
b2-eu-cen:
key: test
secret: testtest
endpoint: http://<YOUR-WIFI-IP>:3200
region: eu-central-2
bucket: b2-eu-cen
```

View File

@@ -1,115 +0,0 @@
---
title: Custom server
description: Using a custom self-hosted server with Ente client apps and CLI
---
# Connecting to a custom server
You can modify various Ente client apps and CLI to connect to a self hosted
custom server endpoint.
[[toc]]
## Mobile
The pre-built Ente apps from GitHub / App Store / Play Store / F-Droid can be
easily configured to use a custom server.
You can tap 7 times on the onboarding screen to bring up a page where you can
configure the endpoint the app should be connecting to.
![Setting a custom server on the onboarding screen](custom-server.png)
## Desktop and web
Same as the mobile app, you can tap 7 times on the onboarding screen to
configure the endpoint the app should connect to.
<div align="center">
![Setting a custom server on the onboarding screen on desktop or self-hosted web
apps](web-dev-settings.png){width=400px}
</div>
This works on both the desktop app and web app (if you deploy on your own).
To make it easier to identify when a custom server is being used, app will
thereafter show the endpoint in use (if not Ente's production server) at the
bottom of the login prompt:
![Custom server indicator on the onboarding screen](web-custom-endpoint-indicator.png)
Similarly, it'll be shown at other screens during the login flow. After login,
you can also see it at the bottom of the sidebar.
Note that the custom server configured this way is cleared when you reset the
state during logout. In particular, the app also does a reset when you press the
change email button during the login flow.
### Building from source
Alternatively (e.g. if you don't wish to configure this setting and just want to
change the endpoint the client connects to by default), you can build the app
from source and use the `NEXT_PUBLIC_ENTE_ENDPOINT` environment variable to tell
it which server to connect to. For example:
```sh
NEXT_PUBLIC_ENTE_ENDPOINT=http://localhost:8080 yarn dev:photos
```
For more details, see
[hosting the web app](https://help.ente.io/self-hosting/guides/web-app).
## CLI
> [!NOTE]
>
> You can download the CLI from
> [here](https://github.com/ente-io/ente/releases?q=tag%3Acli-v0)
Define a config.yaml and put it either in the same directory as where you run
the CLI from ("current working directory"), or in the path defined in env
variable `ENTE_CLI_CONFIG_PATH`:
```yaml
endpoint:
api: "http://localhost:8080"
```
(Another
[example](https://github.com/ente-io/ente/blob/main/cli/config.yaml.example))
## Find the hostname of your server
If you want to access your museum within your own network, you can use the
`hostname` command to find a addressable local network hostname or IP for your
computer, and then use it by suffixing it with the port number.
First, run
```sh
hostname
```
The result will look something like this
```sh
my-computer.local
```
You will need to replace the server endpoint with an address that uses your
server's hostname and the port number. Here's an example:
```
http://my-computer.local:8080
```
Note that this will only work within your network. To access it from outside the
network, you need to use the public IP or hostname.
> [!TIP]
>
> If you're having trouble uploading from your mobile app, it is likely that
> museum is not able to connect to your S3 storage. See the [Configuring
> S3](/self-hosting/guides/configuring-s3) guide for more details.

View File

@@ -1,158 +0,0 @@
---
title: DB Migration
description:
Migrating your self hosted Postgres 12 database to newer Postgres versions
---
# Migrating Postgres 12 to 15
The old sample docker compose file used Postgres 12, which is now nearing end of
life, so we've updated it to Postgres 15. Postgres major versions changes
require a migration step. This document mentions some approaches you can use.
> [!TIP]
>
> Ente itself does not use any specific Postgres 12 or Postgres 15 features, and
> will talk to either happily. It should also work with newer Postgres versions,
> but let us know if you run into any problems and we'll update this page.
### Taking a backup
`docker compose exec` allows us to run a command against a running container. We
can use it to run the `pg_dumpall` command on the postgres container to create a
plaintext backup.
Assuming your cluster is already running, and you are in the `ente/server`
directory, you can run the following (this command uses the default credentials,
you'll need to change these to match your setup):
```sh
docker compose exec postgres env PGPASSWORD=pgpass PGUSER=pguser PG_DB=ente_db pg_dumpall >pg12.backup.sql
```
This will produce a `pg12.backup.sql` in your current directory. You can open it
in a text editor (it can be huge!) to verify that it looks correct.
We won't be needing this file, this backup is recommended just in case something
goes amiss with the actual migration.
> If you need to restore from this plaintext backup, you could subsequently run
> something like:
>
> ```sh
> docker compose up postgres
> cat pg12.backup.sql | docker compose exec -T postgres env PGPASSWORD=pgpass psql -U pguser -d ente_db
> ```
## The migration
At the high level, the steps are
1. Stop your cluster.
2. Start just the postgres container after changing the image to
`pgautoupgrade/pgautoupgrade:15-bookworm`.
3. Once the in-place migration completes, stop the container, and change the
image to `postgres:15`.
#### 1. Stop the cluster
Stop your running Ente cluster.
```sh
docker compose down
```
#### 2. Run `pgautoupgrade`
Modify your `compose.yaml`, changing the image for the "postgres" container from
"postgres:12" to "pgautoupgrade/pgautoupgrade:15-bookworm"
```diff
diff a/server/compose.yaml b/server/compose.yaml
postgres:
- image: postgres:12
+ image: pgautoupgrade/pgautoupgrade:15-bookworm
ports:
```
[pgautoupgrade](https://github.com/pgautoupgrade/docker-pgautoupgrade) is a
community docker image that performs an in-place migration.
After making the change, run only the `postgres` container in the cluster
```sh
docker compose up postgres
```
The container will start and peform an in-place migration. Once it is done, it
will start postgres normally. You should see something like this is the logs
```
postgres-1 | Automatic upgrade process finished with no errors reported
...
postgres-1 | ... starting PostgreSQL 15...
```
At this point, you can stop the container (`CTRL-C`).
#### 3. Finish by changing image
Modify `compose.yaml` again, changing the image to "postgres:15".
```diff
diff a/server/compose.yaml b/server/compose.yaml
postgres:
- image: pgautoupgrade/pgautoupgrade:15-bookworm
+ image: postgres:15
ports:
```
And cleanup the temporary containers by
```sh
docker compose down --remove-orphans
```
Migration is now complete. You can start your Ente cluster normally.
```sh
docker compose up
```
## Migration elsewhere
The above instructions are for Postgres running inside docker, as the sample
docker compose file does. There are myriad other ways to run Postgres, and the
migration sequence then will depend on your exact setup.
Two common approaches are
1. Backup and restore, the `pg_dumpall` + `psql` import sequence described in
[Taking a backup](#taking-a-backup) above.
2. In place migrations using `pg_upgrade`, which is what the
[pgautoupgrade](#the-migration) migration above does under the hood.
The first method, backup and restore, is low tech and will work similarly in
most setups. The second method is more efficient, but requires a bit more
careful preparation.
As another example, here is how one can migrate 12 to 15 when running Postgres
on macOS, installed using Homebrew.
1. Stop your postgres. Make sure there are no more commands shown by
`ps aux | grep '[p]ostgres'`.
2. Install postgres15.
3. Migrate data using `pg_upgrade`:
```sh
/opt/homebrew/Cellar/postgresql@15/15.8/bin/pg_upgrade -b /opt/homebrew/Cellar/postgresql@12/12.18_1/bin -B /opt/homebrew/Cellar/postgresql@15/15.8/bin/ -d /opt/homebrew/var/postgresql@12 -D /opt/homebrew/var/postgresql@15
```
4. Start postgres 15 and verify version using `SELECT VERSION()`.

View File

@@ -1,261 +0,0 @@
---
title: External S3 buckets
description:
Self hosting Ente's server and photos web app when using an external S3
bucket
---
# Hosting server and web app using external S3
> [!NOTE]
>
> This is a community contributed guide, and some of these steps ~~might be~~
> ARE out of sync with the upstream changes. This document is retained for
> reference purposes, but if something is not working correctly, please see the
> latest [READMEs](https://github.com/ente-io/ente/blob/main/server/README.md)
> in the repository and/or other guides in [self-hosting](/self-hosting/).
This guide is for self hosting the server and the web application of Ente Photos
using docker compose and an external S3 bucket. So we assume that you already
have the keys and secrets for the S3 bucket. The plan is as follows:
1. Create a `compose.yaml` file
2. Set up the `.credentials.env` file
3. Run `docker-compose up`
4. Create an account and increase storage quota
5. Fix potential CORS issue with your bucket
## 1. Create a `compose.yaml` file
After cloning the main repository with
```bash
git clone https://github.com/ente-io/ente.git
# Or git clone git@github.com:ente-io/ente.git
cd ente
```
Create a `compose.yaml` file at the root of the project with the following
content (there is nothing to change here):
```yaml
services:
museum:
build:
context: server
args:
GIT_COMMIT: local
ports:
- 8080:8080 # API
- 2112:2112 # Prometheus metrics
depends_on:
postgres:
condition: service_healthy
# Wait for museum to ping pong before starting the webapp.
healthcheck:
test: [
"CMD",
"echo",
"1", # I don't know what to put here
]
environment:
# no need to touch these
ENTE_DB_HOST: postgres
ENTE_DB_PORT: 5432
ENTE_DB_NAME: ente_db
ENTE_DB_USER: pguser
ENTE_DB_PASSWORD: pgpass
env_file:
- ./.credentials.env
volumes:
- custom-logs:/var/logs
- museum.yaml:/museum.yaml:ro
networks:
- internal
web:
build:
context: web
ports:
- 8081:80
- 8082:80
depends_on:
museum:
condition: service_healthy
env_file:
- ./.credentials.env
postgres:
image: postgres:12
ports:
- 5432:5432
environment:
POSTGRES_USER: pguser
POSTGRES_PASSWORD: pgpass
POSTGRES_DB: ente_db
# Wait for postgres to be accept connections before starting museum.
healthcheck:
test: ["CMD", "pg_isready", "-q", "-d", "ente_db", "-U", "pguser"]
interval: 1s
timeout: 5s
retries: 20
volumes:
- postgres-data:/var/lib/postgresql/data
networks:
- internal
volumes:
custom-logs:
postgres-data:
networks:
internal:
```
It maybe be added in the future, but if it does not exist, create a `Dockerfile`
in the `web` directory with the following content:
```Dockerfile
# syntax=docker/dockerfile:1
FROM node:21-bookworm-slim as ente-builder
WORKDIR /app
RUN apt update && apt install -y ca-certificates && rm -rf /var/lib/apt/lists/*
COPY . .
RUN yarn install
ENV NEXT_PUBLIC_ENTE_ENDPOINT=DOCKER_RUNTIME_REPLACE_ENDPOINT
ENV NEXT_PUBLIC_ENTE_ALBUMS_ENDPOINT=DOCKER_RUNTIME_REPLACE_ALBUMS_ENDPOINT
RUN yarn build
FROM nginx:1.25-alpine-slim
COPY --from=ente-builder /app/apps/photos/out /usr/share/nginx/html
COPY <<EOF /etc/nginx/conf.d/default.conf
server {
listen 80 default_server;
root /usr/share/nginx/html;
location / {
try_files \$uri \$uri.html \$uri/ =404;
}
error_page 404 /404.html;
location = /404.html {
internal;
}
}
EOF
ARG ENDPOINT="http://localhost:8080"
ENV ENDPOINT "$ENDPOINT"
ARG ALBUMS_ENDPOINT="http://localhost:8082"
ENV ALBUMS_ENDPOINT "$ALBUMS_ENDPOINT"
COPY <<EOF /docker-entrypoint.d/replace_ente_endpoints.sh
echo "Replacing endpoints"
echo " Endpoint: \$ENDPOINT"
echo " Albums Endpoint: \$ALBUMS_ENDPOINT"
replace_enpoints() {
sed -i -e 's,DOCKER_RUNTIME_REPLACE_ENDPOINT,'"\$ENDPOINT"',g' \$1
sed -i -e 's,DOCKER_RUNTIME_REPLACE_ALBUMS_ENDPOINT,'"\$ALBUMS_ENDPOINT"',g' \$1
}
for jsfile in `find '/usr/share/nginx/html' -type f -name '*.js'`
do
replace_enpoints "\$jsfile"
done
EOF
RUN chmod +x /docker-entrypoint.d/replace_ente_endpoints.sh
```
This runs nginx inside to handle both the web & album URLs so we don't have to
make two web images with different port.
- `DOCKER_RUNTIME_REPLACE_ENDPOINT` this is your public museum API URL.
- `DOCKER_RUNTIME_REPLACE_ALBUMS_ENDPOINT` this is the shared albums URL (for
more details about configuring shared albums, see
[faq/sharing](/self-hosting/faq/sharing)).
Note how above we had updated the `compose.yaml` file for the server with
```yaml
web:
build:
context: web
ports:
- 8081:80
- 8082:80
```
so that web and album both point to the same container and nginx will handle it.
## 2. Set up the `.credentials.env` file
Create a `.credentials.env` file at the root of the project with the following
content (here you need to set the correct value of each variable):
<!-- The following code block should have language env, but vitepress currently
doesn't support that language, so use sh as a reasonable fallback instead. -->
```sh
# run `go run tools/gen-random-keys/main.go` in the server directory to generate the keys
ENTE_KEY_ENCRYPTION=
ENTE_KEY_HASH=
ENTE_JWT_SECRET=
# if you deploy it on a server under a domain, you need to set the correct value of the following variables
# it can be changed later
# The backend server URL (Museum) to be used by the webapp
ENDPOINT=http://localhost:8080
# The URL of the public albums webapp (also need to be updated in museum.yml so the correct links are generated)
ALBUMS_ENDPOINT=http://localhost:8082
```
Create the `museum.yaml` with additional configuration, this will be mounted
(read-only) into the container:
```yaml
s3:
are_local_buckets: false
# For some self-hosted S3 deployments you (e.g. Minio) you might need to disable bucket subdomains
use_path_style_urls: true
# The key must be named like so
b2-eu-cen:
key: $YOUR_S3_KEY
secret: $YOUR_S3_SECRET
endpoint: $YOUR_S3_ENDPOINT
region: $YOUR_S3_REGION
bucket: $YOUR_S3_BUCKET_NAME
# The same value as the one specified in ALBUMS_ENDPOINT
apps:
public-albums: http://localhost:8082
```
## 3. Run `docker-compose up`
Run `docker-compose up` at the root of the project (add `-d` to run it in the
background).
## 4. Create an account and increase storage quota
Open `http://localhost:8080` or whatever Endpoint you mentioned for the web app
and create an account. If your SMTP related configurations are all set and
right, you will receive an email with your OTT in it. There are two work arounds
to retrieve the OTP, checkout
[this document](https://help.ente.io/self-hosting/faq/otp) for getting your
OTT's..
If you successfully log in, select any plan and increase the storage quota with
the following command:
```bash
docker compose exec -i postgres psql -U pguser -d ente_db -c "INSERT INTO storage_bonus (bonus_id, user_id, storage, type, valid_till) VALUES ('self-hosted-myself', (SELECT user_id FROM users), 1099511627776, 'ADD_ON_SUPPORT', 0)"
```
After few reloads, you should see 1 To of quota.
## Related
Some other users have also shared their setups.
- [Using Traefik](https://github.com/ente-io/ente/pull/3663)
- [Building custom images from source (Linux)](https://github.com/ente-io/ente/discussions/3778)
- [Troubleshooting Bucket CORS](/self-hosting/troubleshooting/bucket-cors)

View File

@@ -1,228 +0,0 @@
---
title: Ente from Source
description: Getting started self hosting Ente Photos and/or Ente Auth
---
# Ente from Source
> [!WARNING] NOTE
> The below documentation will cover instructions about self-hosting the web app manually. If you
> want to deploy Ente hassle free, use the [one line](https://ente.io/blog/self-hosting-quickstart/)
> command to setup Ente. This guide might be deprecated in the near future.
## Installing Docker
Refer to
[How to install Docker from the APT repository](https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository)
for detailed instructions.
## Start the server
```sh
git clone https://github.com/ente-io/ente
cd ente/server
docker compose up --build
```
> [!TIP]
>
> You can also use a pre-built Docker image from `ghcr.io/ente-io/server`
> ([More info](https://github.com/ente-io/ente/blob/main/server/docs/docker.md))
Install the necessary dependencies for running the web client
```sh
# installing npm and yarn
sudo apt update
sudo apt install nodejs npm
sudo npm install -g yarn // to install yarn globally
```
Then in a separate terminal, you can run (e.g) the web client
```sh
cd ente/web
git submodule update --init --recursive
yarn install
NEXT_PUBLIC_ENTE_ENDPOINT=http://localhost:8080 yarn dev
```
That's about it. If you open http://localhost:3000, you will be able to create
an account on a Ente Photos web app running on your machine, and this web app
will be connecting to the server running on your local machine at
`localhost:8080`.
For the mobile apps, you don't even need to build, and can install normal Ente
apps and configure them to use your
[custom self-hosted server](/self-hosting/guides/custom-server/).
> If you want to build the mobile apps from source, see the instructions
> [here](/self-hosting/guides/mobile-build).
## Web app with Docker and Compose
The instructoins in previous section were just a temporary way to run the web app locally.
To run the web apps as services, the user has to build a docker image manually.
> [!IMPORTANT]
>
> Recurring changes might be made by the team or from community if more
> improvements can be made so that we are able to build a full-fledged docker
> image.
```dockerfile
FROM node:20-bookworm-slim as builder
WORKDIR ./ente
COPY . .
COPY apps/ .
# Will help default to yarn versoin 1.22.22
RUN corepack enable
# Endpoint for Ente Server
ENV NEXT_PUBLIC_ENTE_ENDPOINT=https://your-ente-endpoint.com
ENV NEXT_PUBLIC_ENTE_ALBUMS_ENDPOINT=https://your-albums-endpoint.com
RUN yarn cache clean
RUN yarn install --network-timeout 1000000000
RUN yarn build:photos && yarn build:accounts && yarn build:auth && yarn build:cast
FROM node:20-bookworm-slim
WORKDIR /app
COPY --from=builder /ente/apps/photos/out /app/photos
COPY --from=builder /ente/apps/accounts/out /app/accounts
COPY --from=builder /ente/apps/auth/out /app/auth
COPY --from=builder /ente/apps/cast/out /app/cast
RUN npm install -g serve
ENV PHOTOS=3000
EXPOSE ${PHOTOS}
ENV ACCOUNTS=3001
EXPOSE ${ACCOUNTS}
ENV AUTH=3002
EXPOSE ${AUTH}
ENV CAST=3003
EXPOSE ${CAST}
# The albums app does not have navigable pages on it, but the
# port will be exposed in-order to self up the albums endpoint
# `apps.public-albums` in museum.yaml configuration file.
ENV ALBUMS=3004
EXPOSE ${ALBUMS}
CMD ["sh", "-c", "serve /app/photos -l tcp://0.0.0.0:${PHOTOS} & serve /app/accounts -l tcp://0.0.0.0:${ACCOUNTS} & serve /app/auth -l tcp://0.0.0.0:${AUTH} & serve /app/cast -l tcp://0.0.0.0:${CAST}"]
```
The above is a multi-stage Dockerfile which creates a production ready static
output of the 4 apps (Photos, Accounts, Auth and Cast) and serves the static
content with Caddy.
Looking at 2 different node base-images doing different tasks in the same
Dockerfile would not make sense, but the Dockerfile is divided into two just to
improve the build efficiency as building this Dockerfile will arguably take more
time.
Lets build a Docker image from the above Dockerfile. Copy and paste the above
Dockerfile contents in the root of your web directory which is inside
`ente/web`. Execute the below command to create an image from this Dockerfile.
```sh
# Build the image
docker build -t <image-name>:<tag> --no-cache --progress plain .
```
You can always edit the Dockerfile and remove the steps for apps which you do
not intend to install on your system (like auth or cast) and opt out of those.
Regarding Albums App, take a note that they are not apps with navigable pages,
if accessed on the web-browser they will simply redirect to ente.web.io.
## compose.yaml
Moving ahead, we need to paste the below contents into the compose.yaml inside
`ente/server/compose.yaml` under the services section.
```yaml
ente-web:
image: <image-name> # name of the image you used while building
ports:
- 3000:3000
- 3001:3001
- 3002:3002
- 3003:3003
- 3004:3004
environment:
- NODE_ENV=development
restart: always
```
Now, we're good to go. All we are left to do now is start the containers.
```sh
docker compose up -d # --build
# Accessing the logs
docker compose logs <container-name>
```
## Configure App Endpoints
> [!NOTE]
> Previously, this was dependent on the env variables `NEXT_ENTE_PUBLIC_ACCOUNTS_ENDPOINT`
> and etc. Please check the below documentation to update your setup configurations
You can configure the web endpoints for the other apps including Accounts, Albums
Family and Cast in your `museum.yaml` configuration file. Checkout
[`local.yaml`](https://github.com/ente-io/ente/blob/543411254b2bb55bd00a0e515dcafa12d12d3b35/server/configurations/local.yaml#L76-L89)
to configure the endpoints. Make sure to setup up your DNS Records accordingly to the
similar URL's you set up in `museum.yaml`.
Next part is to configure the web server.
# Web server configuration
The last step ahead is configuring reverse_proxy for the ports on which the apps
are being served (you will have to make changes, if you have cusotmized the
ports). The web server of choice in this guide is
[Caddy](https://caddyserver.com) because with caddy you don't have to manually
configure/setup SSL ceritifcates as caddy will take care of that.
```sh
photos.yourdomain.com {
reverse_proxy http://localhost:3001
# for logging
log {
level error
}
}
auth.yourdomain.com {
reverse_proxy http://localhost:3002
}
# and so on ...
```
Next, start the caddy server :).
```sh
# If caddy service is not enabled
sudo systemctl enable caddy
sudo systemctl daemon-reload
sudo systemctl start caddy
```
## Contributing
Please start a discussion on the Github Repo if you have any suggestions for the
Dockerfile, You can also share your setups on Github Discussions.

View File

@@ -1,5 +1,5 @@
---
title: Self Hosting
title: Guides - Self-hosting
description: Guides for self hosting Ente Photos and/or Ente Auth
---
@@ -10,14 +10,12 @@ walkthroughs, tutorials and other FAQ pages in this directory.
See the sidebar for existing guides. In particular:
- If you're just looking to get started, see
[configure custom server](custom-server/).
- If you're just looking to get started, see installation.
- For various admin related tasks, e.g. increasing the storage quota on your
self hosted instance, see [administering your custom server](admin).
- For various administrative tasks, e.g. increasing the storage quota for user
on your self-hosted instance, see
[user management](/self-hosting/administration/users).
- For configuring your S3 buckets to get the object storage to work from your
mobile device or for fixing an upload errors, see
[configuring S3](configuring-s3). There is also a longer
[community contributed guide](external-s3) for a more self hosted setup of
both the server and web app using external S3 buckets for object storage.
[object storage](/self-hosting/administration/object-storage).

View File

@@ -1,39 +0,0 @@
---
title: CLI for Self Hosted Instance
description: Guide to configuring Ente CLI for Self Hosted Instance
---
## Self Hosting
If you are self-hosting the server, you can still configure CLI to export data &
perform basic admin actions.
To do this, first configure the CLI to point to your server. Define a
config.yaml and put it either in the same directory as CLI binary or path
defined in env variable `ENTE_CLI_CONFIG_DIR`
```yaml
endpoint:
api: "http://localhost:8080"
```
You should be able to
[add an account](https://github.com/ente-io/ente/blob/main/cli/docs/generated/ente_account_add.md),
and subsequently increase the
[storage and account validity](https://github.com/ente-io/ente/blob/main/cli/docs/generated/ente_admin_update-subscription.md)
using the CLI.
For the admin actions, you first need to whitelist admin users. You can create
`server/museum.yaml`, and whitelist add the admin userID `internal.admins`. See
[local.yaml](https://github.com/ente-io/ente/blob/main/server/configurations/local.yaml#L211C1-L232C1)
in the server source code for details about how to define this.
You can use
[account list](https://github.com/ente-io/ente/blob/main/cli/docs/generated/ente_account_list.md)
command to find the user id of any account.
```yaml
internal:
admins:
# - 1580559962386440
```

View File

@@ -1,116 +0,0 @@
---
title: Installing Ente Standalone (without Docker)
description: Installing and setting up Ente standalone without docker.
---
# Installing and Deploying Ente Standalone (without Docker)
## Running Museum (Ente's server) without Docker
First, start by installing all the dependencies to get your machine ready for
development.
```sh
# For MacOS
brew tap homebrew/core
brew update
brew install go
# For Ubuntu based distros
sudo apt update && sudo apt upgrade
sudo apt install golang-go
```
Alternatively, you can also download the latest binaries from
['All Release'](https://go.dev/dl/) page from the official website.
```sh
brew install postgres@15
# Link the postgres keg
brew link postgresql@15
brew install libsodium
# For Ubuntu based distros
sudo apt install postgresql
sudo apt install libsodium23 libsodium-dev
```
The package `libsodium23` might be installed already in some cases.
Installing pkg-config
```sh
brew install pkg-config
# For Ubuntu based distros
sudo apt install pkg-config
```
## Starting Postgres
### With pg_ctl
```sh
pg_ctl -D /usr/local/var/postgres -l logfile start
```
Dependeing on the Operating System type the path for postgres binary or
configuration file might be different, please check if the command keeps failing
for you.
Ideally, if you are on a Linux system with systemd as the init. You can also
start postgres as a systemd service. After Installation execute the following
commands:
```sh
sudo systemctl enable postgresql
sudo systemctl daemon-reload && sudo systemctl start postgresql
```
### Create user
```sh
createuser -s postgres
```
## Start Museum
Start by cloning ente to your system.
```sh
git clone https://github.com/ente-io/ente
```
```sh
export ENTE_DB_USER=postgres
cd ente/server
go run cmd/museum/main.go
```
You can also add the export line to your shell's RC file, to avoid exporting the
environment variable every time.
For live reloads, install [air](https://github.com/air-verse/air#installation).
Then you can just call air after declaring the required environment variables.
For example,
```sh
ENTE_DB_USER=postgres
air
```
## Museum as a background service
Please check the below links if you want to run Museum as a service, both of
them are battle tested.
1. [How to run museum as a systemd service](https://gist.github.com/mngshm/a0edb097c91d1dc45aeed755af310323)
2. [Museum.service](https://github.com/ente-io/ente/blob/23e678889189157ecc389c258267685934b83631/server/scripts/deploy/museum.service#L4)
Once you are done with setting and running Museum, all you are left to do is run
the web app and reverse_proxy it with a webserver. You can check the following
resources for Deploying your web app.
1. [Hosting the Web App](https://help.ente.io/self-hosting/guides/web-app).
2. [Running Ente Web app as a systemd Service](https://gist.github.com/mngshm/72e32bd483c2129621ed0d74412492fd)

Some files were not shown because too many files have changed in this diff Show More