Marius and GitHub
7dbd08a747
feat(mobile): add confirmation dialog to permanent delete action ( #26442 )
2026-02-27 15:49:57 +00:00
Thomas and GitHub
1d89190f96
fix(mobile): don't cut off top corners of app bar ( #26550 )
...
It's not visible normally, but in screenshots and when casting, the top
corners of the app bar are cut off. This should fix that.
2026-02-27 17:39:58 +05:30
Thomas and GitHub
c2d8400899
fix(mobile): prevent video player from being recreated unnecessarily ( #26553 )
...
The changes in #25952 inadvertently removed an optimisation which
prevents the video player from being recreated when the tree changed.
This happens surprisingly often, namely when the hero animation
finishes. The widget is particularly expensive, so recreating it 2-3 in
a short period not only feels sluggish, but also causes the video to
hitch and restart.
The solution is to bring the global key back for the native video
player. Unlike before, we are using a custom global key which compares
the values of hero tags directly. This means we don't need to maintain a
map of hero tags to global keys in the state, and also means we don't
have to pass the global key down multiple layers.
This also fixes #25981 .
2026-02-27 17:39:38 +05:30
Mees Frensel and GitHub
a100a4025e
fix(web): handle delete shortcut on shared link page as remove ( #26552 )
2026-02-27 12:50:06 +01:00
334fc250d3
fix(server): Live Photo migration bug when album is in template ( #25329 )
...
Co-authored-by: Nikhil Alapati <nikhilalapati@meta.com >
2026-02-27 12:46:55 +01:00
Michel Heusschen and GitHub
28ca5f59fe
fix(web): map timeline asset count ( #26564 )
2026-02-27 12:28:53 +01:00
Thomas and GitHub
789d82632a
fix(mobile): race condition showing details ( #26559 )
...
Asset details are prematurely hidden when a drag ends if the simulation
shows that it will close given its current velocity. It makes for a much
more responsible feeling UI. However, this behaviour conflicts with the
logic which determines whether details are showing based on the current
offset. The result is that the details are hidden, then immediately
shown again, and then hidden once it passes the min snap distance
threshold.
This can be fixed by only evaluating the position based logic when a
drag is active, and then inferring upcoming state with a simulation.
2026-02-27 12:12:24 +05:30
Daniel Dietzler and GitHub
9f9569c152
fix: schema check ( #26543 )
2026-02-26 13:27:50 -05:00
Jason Rasmussen and GitHub
fae05270a3
feat: doc links ( #26519 )
2026-02-26 12:14:17 -05:00
Michel Heusschen and GitHub
771816f601
feat(web): map timeline sidepanel ( #26532 )
...
* feat(web): map timeline panel
* update openapi
* remove #key
* add index on lat/lng
2026-02-26 12:03:23 -05:00
Daniel Dietzler and GitHub
e25ec4ec17
chore: migrate migration scripts to sql tools ( #26537 )
2026-02-26 17:59:52 +01:00
Kishor Prins and GitHub
dd9046508d
feat: ROCm 7.2 and MIGraphX support ( #26178 )
2026-02-26 16:52:26 +00:00
177d1c9a30
feat: splash screen error page ( #26460 )
...
* feat: splash screen error page
* Update mobile/lib/pages/common/splash_screen.page.dart
Co-authored-by: Alex <alex.tran1502@gmail.com >
* add clear data action
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
Co-authored-by: Alex <alex.tran1502@gmail.com >
2026-02-26 16:47:28 +00:00
Noel S and GitHub
ded8d4e2b4
fix(mobile): set correct initial system-ui mode in asset viewer ( #26500 )
...
* fix: set correct initial system-ui mode on asset open
* move to function and add details visibility to initial state logic
* switch to ref.read
2026-02-26 10:10:46 -06:00
Mees Frensel and GitHub
e454c3566b
refactor: star rating ( #26357 )
...
* refactor: star rating
* transform rating 0 to null in controller dto
* migrate rating 0 to null
* deprecate rating -1
* rating type annotation
* update Rating type
2026-02-26 14:54:20 +01:00
Luis Nachtigall and GitHub
4c79c3c902
feat(mobile): Prevent premature image cache eviction when higher image loading is enabled ( #26208 )
...
* feat(mobile): enhance image loading with error handling and eviction options
* pull request suggestions: remove log and remove useless local implementation
2026-02-25 17:31:37 -05:00
3bed1b6131
fix: consider DAR when extracting video dimension ( #25293 )
...
* feat: consider DAR when extracting video dimension
* move to probe
* comment
---------
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com >
2026-02-25 21:58:53 +00:00
Brandon Wees and GitHub
3c9fb651d0
feat(server): SyncAssetEditV1 ( #26446 )
...
* feat: SyncAssetEditV1
* fix: audit table import
* fix: sql tools table fetch
* fix: medium tests (wip)
* fix: circ dependency
* chore: finalize tests
* chore: codegen/lint
* fix: code review
2026-02-25 18:12:41 +00:00
Mees Frensel and GitHub
55e625a2ac
fix(web): error page i18n ( #26517 )
2026-02-25 18:35:25 +01:00
Daniel Dietzler and GitHub
ca6c486a80
refactor: person stubs ( #26512 )
2026-02-25 08:56:00 -05:00
d94d9600a7
fix(mobile): birthday picker shows limited months when no date exists ( #26407 )
...
* ScrollDatePicker defaults maximumDate to DateTime.now(). When no birthday exists, the picker starts at today (Feb 2026) with max also Feb 2026 — so only Jan–Feb are available for the current year.
Fix applied: Added maximumDate: DateTime(DateTime.now().year, 12, 31) at person_edit_birthday_modal.widget.dart:93, allowing all 12 months to be selected while still preventing future-year birthdays.
* fix(mobile): initialize birthday picker to past date to prevent future birthdays
When no birthday exists, initialize to 30 years ago instead of today.
This allows all 12 months to be selectable while keeping maximumDate
as DateTime.now() to prevent future birthday selection.
Fixes issue where only current months were available due to maxDate constraint.
---------
Co-authored-by: socksprox <info@shadowfly.net >
2026-02-25 07:58:02 +05:30
Mees Frensel and GitHub
11e5c42bc9
fix(web): toast warning when trying to upload unsupported file type ( #26492 )
2026-02-24 15:58:40 -05:00
33c6cf8325
test: backup repository ( #26494 )
...
test: backup repository tests
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-02-24 15:50:02 -05:00
dd97395f3a
chore(deps): update dependency gunicorn to v25 ( #26486 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-24 16:14:04 +00:00
7ae268e287
fix(deps): update dependency exiftool-vendored to v35 ( #26488 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev >
2026-02-24 14:40:57 +01:00
f07e2b58f0
refactor: prefer buffer ( #26469 )
...
* refactor: prefer buffer
* Update server/src/schema/tables/session.table.ts
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com >
---------
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com >
2026-02-24 13:26:36 +00:00
4b8f90aa55
refactor: remote album repository test to use context ( #26481 )
...
* refactor: remote album repository test to use context
* refactor: medium repo context (#26482 )
* refactor: medium repo context
* store userId in closure
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-02-24 13:25:07 +00:00
Daniel Dietzler and GitHub
55ee9f76da
chore: eslint 10 ( #26490 )
2026-02-24 08:24:18 -05:00
Michel Heusschen and GitHub
30f6d4439e
fix(web): prevent null folder tree on concurrent load ( #26489 )
2026-02-24 08:23:07 -05:00
f62d98a0d1
chore(deps): update dependency eslint-plugin-unicorn to v63 ( #26484 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-24 12:34:12 +01:00
db3d580761
chore(deps): update dependency globals to v17 ( #26485 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-24 12:18:01 +01:00
0bc38fefe6
fix(deps): update typescript-projects ( #26483 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev >
2026-02-24 11:15:26 +00:00
acc4219849
chore(deps): update actions/checkout action to v6.0.2 ( #26477 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-24 10:09:34 +01:00
5234e21241
fix: retain asset when either asset is a favorite ( #26473 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-02-23 16:52:34 -05:00
17b327bfcd
refactor: medium repository context ( #26472 )
...
refactor: repository test context
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-02-23 21:34:21 +00:00
Min Idzelis and GitHub
d14d0a9b9b
feat: add isTransparent to db ( #26413 )
2026-02-23 21:33:52 +00:00
Mees Frensel and GitHub
bf47147fbb
fix(server): accept showAt and hideAt for creating memories ( #26429 )
...
* fix(server): accept showAt and hideAt for creating memories
* fix history
2026-02-23 21:26:34 +00:00
9ea0a69a72
feat(docs): Adding information about parameter c= ( #26430 )
...
* Adding information about parameter c=
* Apply suggestions from code review
Co-authored-by: bo0tzz <git@bo0tzz.me >
---------
Co-authored-by: Jason Rasmussen <jason@rasm.me >
Co-authored-by: bo0tzz <git@bo0tzz.me >
2026-02-23 21:21:06 +00:00
00f43ffc25
chore: add Option type ( #26467 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-02-23 16:20:25 -05:00
96dc4a77a0
fix: always show library scan button ( #26428 )
...
* fix: always show library scan button
* chore: clean up
---------
Co-authored-by: Jason Rasmussen <jason@rasm.me >
2026-02-23 21:18:23 +00:00
db7158b967
refactor: ImmichHtmlText to ImmichFormattedText ( #26466 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-02-23 16:05:00 -05:00
Brandon Wees and GitHub
e5722c525b
feat: getAssetEdits respond with edit IDs ( #26445 )
...
* feat: getAssetEdits respond with edit IDs
* chore: cleanup typings for edit API
* chore: cleanup types with jason
* fix: openapi sync
* fix: factory
2026-02-23 20:57:57 +00:00
f616de5af8
chore(mobile): nudge users to switch to the new timeline ( #26458 )
...
* nudge users to switch to the new timeline
* remove timeline switch setting from new timeline
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-02-23 13:42:32 -06:00
4f39663d27
fix: simplify timeline rebuild on orientation ( #26408 )
...
* revert: current fix
# Conflicts:
# mobile/lib/presentation/widgets/timeline/timeline.widget.dart
* fix: simpler fix
* rebase
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-02-23 13:30:09 -05:00
367025a3a8
chore(mobile): simplify showing details toggle ( #26403 )
...
Keeping track of the last scroll offset and guarding on scroll direction
is not necessary. The dead zone with kTouchSlop is more than sufficient,
and much simpler.
Co-authored-by: shenlong <139912620+shenlong-tanwen@users.noreply.github.com >
2026-02-23 23:49:35 +05:30
Min Idzelis and GitHub
60dafecdc9
refactor: thumbnail components ( #26379 )
2026-02-23 11:56:20 -05:00
Yaros and GitHub
16c1c3c780
fix(mobile): join local on archived timeline ( #26387 )
2026-02-23 20:21:32 +05:30
Brandon Wees and GitHub
e633bc3f24
fix: missing deletedAt and isVisible columns on mobile ( #26414 )
...
* feat: SyncAssetV2
* feat: mobile sync handling
* feat: request correct sync object based on server version
* fix: mobile queries
* chore: sync sql
* fix: test
* chore: switch to mapper
* fix: sql sync
2026-02-23 09:50:54 -05:00
a07d7b0c82
chore: migrate to sql-tools library ( #26400 )
...
Co-authored-by: Jason Rasmussen <jason@rasm.me >
2026-02-23 09:50:16 -05:00
Yaros and GitHub
a469d350be
feat(mobile): prompt when deleting from trash ( #26392 )
...
* feat(mobile): prompt when deleting from trash
* refactor: use existing strings
* chore: use type-safe translations
* chore: remove old translation function
2026-02-23 14:45:05 +00:00