Ethan Ferrier and Codex
f7697264ed
fix(mobile): ocr delete by asset ( #32611 )
...
(cherry picked from commit 56ed326acda2220fc7e3b21b17b3c8d24daf99cc)
2026-10-29 20:43:01 +03:00
shenlong and Codex
c581bce715
fix: include partner shared assets for people even without showInTimeline ( #32675 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
(cherry picked from commit 21ed7454836073a646273c7475b347e043439a90)
2026-10-28 20:41:41 +03:00
Kairui Liu and Codex
c482c1e53e
fix: preserve stack primary asset selection ( #31380 )
...
* fix: preserve stack primary asset selection
* test: select stacked assets by id
* chore: limit dart formatting changes
* fix: address stack viewer review feedback
* fix: align stack ordering with server
* fix: keep stack primary asset first
---------
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com >
(cherry picked from commit 5a5d7be11084969c3c00a294ce6c0527042f88e7)
2026-10-27 23:12:13 +03:00
Yaros and Codex
919a4fd9ef
fix: watch asset delete/archive in search ( #31343 )
...
* fix: watch asset delete/archive in search
* fix: restore via toast
* chore: format
* refactor: simplify search asset pruning
* chore: implement suggestions
* chore: more suggestions
* fix: mounted check
(cherry picked from commit f7b8ae5da370f947223b006618e5b4e5fb42fd33)
2026-10-26 22:35:01 +03:00
Mert and Codex
70ef2884f0
feat(mobile): jxl decoder ( #32592 )
2026-10-24 11:52:05 +03:00
f3db8d8b59
fix: unsupported locale for date format ( #32267 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
Co-authored-by: Santo Shakil <shakil.mezbah@gmail.com >
2026-10-19 20:27:19 +03:00
Will and Codex
1daf922555
feat(mobile): mobile tags ( #30753 )
...
* feat(mobile): mobile tags
* fix(mobile); refactoring, replaced hook
* tag provider through asset service
* make search use a tag set
* use tag action directly
* use notification listener
* untag action
* handle untag response
* fix tests and add untag action test
* fix material error from tag picker dialog
* fix(mobile): clip tag picker tiles and update tag overflow
---------
Co-authored-by: Alex <alex.tran1502@gmail.com >
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
Co-authored-by: Santo Shakil <shakil.mezbah@gmail.com >
(cherry picked from commit 83c7ec50056bbefa10869c78457f8882c72275e2)
2026-10-14 21:24:13 +03:00
ed3073624b
fix: memories mobile sync for older clients ( #32167 )
...
fix: memories mobile sync for older clients (#32150 )
(cherry picked from commit 8d377bfef5a0c9d840bf2c19d155f9779387baeb)
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com >
Co-authored-by: Santo Shakil <shakil.mezbah@gmail.com >
2026-10-06 14:10:38 +00:00
62bcb0601f
feat: birthday memory on mobile ( #32165 )
...
feat: birthday memory on mobile (#32113 )
* feat: birthday memory on mobile
* chore: remove yellow bg colors
* pr feedback
(cherry picked from commit 82cfc4b28b55c660d9c2da00c57437a20585a47b)
Co-authored-by: Alex <alex.tran1502@gmail.com >
2026-10-06 13:51:26 +00:00
c12d5e6d35
feat: people management ( #31620 )
...
Co-authored-by: Jason Rasmussen <jason@rasm.me >
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-09-28 21:29:15 +02:00
Adam Gastineau and GitHub
2ccd0effc8
chore(mobile): enable dead code CI ( #31753 )
...
* chore(mobile): enable dead code CI
* Restore accidentally removed test and set mise default
2026-09-24 06:57:06 -07:00
Adam Gastineau and GitHub
91247f1492
chore(mobile): migrate OCR, Tag, and UserMetadata to Store ( #31704 )
...
* chore(mobile): migrate OCR, Tag, and UserMetadata to Store
* Add comments to Tag HTTP repository
* Add mounted check
2026-09-22 18:29:33 +00:00
Alex and GitHub
d6d0947383
feat: birthday memories ( #30831 )
2026-09-22 04:30:43 -05:00
Jason Rasmussen and GitHub
efbbd32e55
feat(mobile): asset face v3 ( #31615 )
...
* feat(mobile): asset face v3
* fix: manually (cascade) delete asset faces
2026-09-16 16:27:02 -04:00
Jason Rasmussen and GitHub
54e7ffa4e6
feat: asset face v3 ( #31591 )
2026-09-16 16:27:01 -04:00
Santo Shakil and GitHub
c68ecb3892
feat(mobile): write the previous checksum when the upload finishes ( #31577 )
...
* write the previous checksum when the upload finishes
* ask the server for the checksum when the upload has none
2026-09-16 23:47:02 +06:00
Adam Gastineau and GitHub
bd59a373de
fix(mobile): make EXIF provider reactive ( #31552 )
...
* fix(mobile): make EXIF provider reactive
* Fix tests
* Remove unnecessary invalidations
2026-09-16 17:36:37 +00:00
Santo Shakil and GitHub
962ffaacc1
feat(mobile): stack edited photos over the original on upload ( #31082 )
...
* feat(mobile): stack edited photos over the original on upload
* stack through the asset service and give the live photo still its task metadata
* add plain photo stacking tests and the 2x2 edit detection matrix
2026-09-15 11:22:14 -07:00
Jason Rasmussen and GitHub
99fd561144
chore: transition to nullable user.oauthId ( #31560 )
2026-09-15 09:33:15 -04:00
bea31eb064
fix: make local album provider reactive ( #31582 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-09-15 08:11:31 -05:00
ca4637adc7
refactor: reenable cloud ids ( #30345 )
...
* refactor: reenable cloud ids
# Conflicts:
# mobile/lib/domain/utils/migrate_cloud_ids.dart
* cleanup error formatting
* throw on unsupported
* move to freezed and slice http batching
* simplify remote asset duplication handling
* kUnsupportedOSError casing
* simplify _resolveCloudIds in local sync service
* cleanup and doccomment
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-09-15 00:12:26 +05:30
8d90cbeafc
chore(mobile): remove unused code ( #31280 )
...
* chore: remove unused methods
* Remove dead test group
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
Co-authored-by: Adam Gastineau <adam@agg.im >
2026-09-08 13:56:46 +00:00
Adam Gastineau and GitHub
8e04e6e2c6
fix(mobile): prevent inner mutability on Freezed classes ( #31229 )
...
* fix(mobile): prevent inner mutability on Freezed classes
* Minor fixes
2026-09-03 21:04:58 +05:30
Adam Gastineau and GitHub
6d85f202f4
fix(mobile): switch to new OpenAPI int in RotateParameters ( #31246 )
2026-09-03 14:32:01 +00:00
Adam Gastineau and GitHub
dc813e2816
fix(mobile): handle transient loading states for map timelines ( #29735 )
...
* fix(mobile): handle transient loading states for map timelines
* fix(mobile): handle transient loading states for map timelines
* Add support for new method
* Rewrote map options notifier to be more Riverpody
2026-08-28 06:06:10 -07:00
Timon and GitHub
8b3d6b320b
feat(server): new search API ( #30179 )
2026-08-27 20:39:55 +02:00
Adam Gastineau and GitHub
c04c81a979
chore(mobile): remove Drift* prefixes from classes and variables ( #31038 )
...
* chore(mobile): remove Drift* prefixes from classes and variables
* Remove *Drift* from related mocks
2026-08-26 19:11:12 +00:00
4ff7148f85
feat(mobile): show asset owner in asset details ( #29302 )
...
* feat(mobile): show asset owner in asset details
* refactor(mobile): fetch asset owner from local DB instead of API
* cleanup
* review changes
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-08-25 20:40:05 +00:00
351be95769
feat: memories view ( #28675 )
...
* wip web memories view
* paginate searchMemories
* improve memories ui
* feat(mobile): memories view
* improve memories web ui
* fix(web): avoid unnecessary memory refreshes
* refactor(web): move timline memory manager filter
* fix(web): memories infinitely loading on 0 results
* fix(web): memories resetting
* feat(web): animated memory previews
* feat(web): memory page dark styling
* chore(mobile): fix failing memory lane tests
* chore(mobile): remove old import
* chore(e2e): fix failing memory lane tests
* chore(server): revert searchMemories changes
* chore(server): lint
* chore(mobile): fix bad merge
* chore(e2e): fix memory ui tests
* chore(web): rename /memory to /memories
* chore(mobile): linting
* chore(web): linting
* fix(web): prevent duplicate memory page loading
* fix(web): lint
* fix(web): memories page improvements
* chore(mobile): lint
* fix(mobile): fix translations
* fix(mobile): build errors
* fix(web): prevent memories from infinitely loading
* chore(e2e)): fix failng memory viewer test
* chore(web): clean up types in memory manager
* chore(web): lint
* feat: update list and detail memory page layouts
* onlyFavorites through drift
* rename to get all
* mobile: use widgetWhen in memory list page
* remove redundant check
* fix: e2e
---------
Co-authored-by: Timon <mail@timonrieger.de >
Co-authored-by: Jason Rasmussen <jason@rasm.me >
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-08-24 19:16:33 -05:00
Adam Gastineau and GitHub
8dcfd36fa5
chore(mobile): move Drift into mobile/data ( #30966 )
...
* chore(mobile): move Drift into mobile/data
* Move into more structured subdirectories
* Fix changed merge paths
2026-08-25 00:51:02 +05:30
Adam Gastineau and GitHub
11cdfa9c5e
chore(mobile): remove commited db.repository.steps.dart ( #30910 )
2026-08-22 07:37:47 +05:30
Santo Shakil and GitHub
a490cea1c4
fix(mobile): dedupe stale remote_asset rows on sync ( #28445 )
...
* fix(mobile): dedupe stale remote_asset rows on sync
queue a pre-delete on the matching partial-index tuple before each
upsert in updateAssetsV1/V2 so the second insert does not crash on
SqliteException(2067) when the server re-issues a new id for the
same (ownerId, checksum). closes #22522 #27186 .
* run the dedupe deletes before the inserts and keep only the last duplicate per payload
* switch the asset upsert to insert or replace
* trim the dedupe tests to the essentials
2026-08-21 11:13:48 +00:00
Santo Shakil and GitHub
a066b5f301
fix(mobile): order album/place/person timelines by local date ( #29338 )
...
* fix(mobile): order album/place/person timelines by local date
* fold the timeline date ordering into one helper and tighten the tests
* drop the redundant none guard from the place asset query
* format
2026-08-20 13:52:33 +06:00
Adam Gastineau and GitHub
225ca9ab8d
chore(mobile): use Drift @DriftAccessor() and collapse some providers ( #30693 )
...
* chore(mobile): use Drift @DriftAccessor() and collapse some providers
* Fix import order
* Required formatting
2026-08-17 14:43:32 -07:00
652ef8a427
refactor: server capabilities ( #30663 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-08-14 07:53:12 -05:00
303a9f15b1
refactor: reactive driftGetAllPeopleProvider ( #30660 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-08-12 21:12:12 +05:30
52edcc0c74
refactor: unify person model ( #30659 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-08-12 21:12:11 +05:30
Santo Shakil and GitHub
9862e50aab
fix(mobile): decode remote thumbnails at displayed size ( #29965 )
...
* fix(mobile): decode remote thumbnails at displayed size
* use nullable decode size and reuse the tapped thumbnail in the viewer
* clean up decode size naming and guards
2026-08-10 21:14:23 +06:00
cafd6c7c0f
refactor: cleanup actions & action tests ( #30265 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-08-01 08:06:44 +05:30
Adam Gastineau and GitHub
483b375c26
fix(mobile): resolve owned assets when partner owns identical asset ( #30137 )
...
* fix(mobile): resolve owned assets when partner owns identical asset
* Add limit to auth user expressions
* Change debug method semantics
2026-07-31 14:37:12 +00:00
fe5c8ed0fb
refactor: base action ( #29617 )
...
* refactor: existing actions to new structure
# Conflicts:
# mobile/lib/presentation/actions/action.widget.dart
# mobile/lib/presentation/widgets/action_buttons/favorite_action_button.widget.dart
# mobile/lib/presentation/widgets/action_buttons/unfavorite_action_button.widget.dart
# mobile/test/unit/presentation/partner_page_test.dart
* rename to actionitem
* more cleanup
* review changes
* lint changes
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-07-30 17:02:14 -04:00
Adam Gastineau and GitHub
e7aace436d
chore(mobile): Apply stricter linting rules for correctness ( #30372 )
...
* chore(mobile): Apply stricter linting rules for correctness
* Added discarded_futures rule
2026-07-30 19:39:24 +00:00
Adam Gastineau and GitHub
858aeadce8
chore(mobile): Apply stricter linting rules for Flutter and known issues ( #30373 )
2026-07-30 15:15:35 -04:00
Adam Gastineau and GitHub
d864a90811
chore(mobile): Apply stricter linting rules for formatting ( #30370 )
...
* chore(mobile): Apply stricter linting rules for formatting
* Formatting fixes
2026-07-30 08:56:46 +00:00
Adam Gastineau and GitHub
27a29b6fab
chore(mobile): remove Drift generated code ( #30297 )
...
* chore(mobile): remove Drift generated code
* Remove Drift test generated files from tree
* Make static_analysis use the shared mobile:codegen action
* Remove static_analysis generated file diffing
2026-07-29 20:29:07 +00:00
04a38ba91c
refactor: asset update method ( #30201 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-07-27 10:15:36 -04:00
792d88961a
feat(mobile): custom date range for map ( #26205 )
...
* feat(mobile): custom date range for map
* refactor: rename timerange & remove isvalid
* refactor: rename customtimerange variables
* refactor: add back setRelativeTime
* refactor: implement suggestions
* refactor: suggestions
* fix: ifPresent
* fix: context.locale
* chore: restrict selection
* refactor: move options to mapconfig
* refactor: move model to domain
* chore: locale toLanguageTag
* add map codec tests
* rebase
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-07-23 20:48:15 +05:30
9403e71d23
refactor: add asset update method ( #29384 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-07-22 19:51:06 +00:00
3485dbffda
refactor(mobile): extract CachedKeyValueRepository ( #28789 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-07-21 20:23:50 +00:00
a30ebab70c
fix(mobile): refresh asset stack after deleting viewer item ( #28164 )
...
* fix(mobile): refresh asset stack after deleting viewer item
* fix(mobile): clamp stack index,
filter visible stack assets
* refactor(mobile): simplify stack asset refresh handling
* fix(mobile): revert changes in DeleteLocalActionButton
* style(mobile): reformat code
* fix(mobile): remove redundant setStack
---------
Co-authored-by: Peter Ombodi <peter.ombodi@gmail.com >
2026-07-22 01:48:47 +05:30