* feat(mobile): implement viewer kebab menu with about option
* feat: revert exisitng buttons, adjust label name
* unify MenuAnchor usage
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
Description
-----------
When I follow the [developer setup](https://docs.immich.app/developer/setup) I run into a permission error using rootless docker. A while ago I asked on Discord in [#contributing](https://discord.com/channels/979116623879368755/1071165397228855327/1442974448776122592) about these ulimits.
I suggest to remove the `ulimits` altogether. It seems that @ItalyPaleAle has left the setting just hoping that it could help somebody in the future. See the [PR description](https://github.com/immich-app/immich/pull/4556).
How Has This Been Tested?
-------------------------
Using rootless docker:
```
$ docker context ls
NAME DESCRIPTION DOCKER ENDPOINT ERROR
default unix:///var/run/docker.sock
rootless * unix:///run/user/1000/docker.sock
```
Running `make` will fail because of permission errors:
```
$ docker compose -f ./docker/docker-compose.dev.yml up --remove-orphans
...
Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error setting rlimits for ready process: error setting rlimit type 7: operation not permitted
```
On my machine I have the following hard limit for "Maximum number of open file descriptors":
```
$ ulimit -nH
524288
```
I can confirm that the permission error is caused by the security restrictions of the operating system mentioned above:
Changing `docker/docker-compose.dev.yml` like ..
```
ulimits:
nofile:
soft: 524289
hard: 524289
```
.. will lead to a permission error whereas this ..
```
ulimits:
nofile:
soft: 524288
hard: 524288
```
.. starts fine.
Apparently the defaults for these limits are coming from [systemd](26b2085d54/man/systemd.exec.xml (L1122)) which is used on nearly every linux distribution. So my assumption is that almost any linux user who uses rootless docker will run into a permission error when starting the development setup.
Checklist:
----------
- [x] I have performed a self-review of my own code
- [x] I have made corresponding changes to the documentation if applicable
- [x] I have no unrelated changes in the PR.
- [ ] I have confirmed that any new dependencies are strictly necessary.
- [ ] I have written tests for new code (if applicable)
- [ ] I have followed naming conventions/patterns in the surrounding code
- [ ] All code in `src/services/` uses repositories implementations for database calls, filesystem operations, etc.
- [ ] All code in `src/repositories/` is pretty basic/simple and does not have any immich specific logic (that belongs in `src/services/`)
Description
-----------
The documentation lies about comments in `docker/docker-compose.dev.yml`.
Reason: in 689c6aa276 these docs were added
but the comments in this file are removed in
b9e2590752 and the docs weren't updated.
How Has This Been Tested?
-------------------------
```
$ git log -S rootless
commit b9e2590752
Author: Jason Rasmussen <jason@rasm.me>
Date: Tue Sep 16 12:48:44 2025 -0400
chore: simplify (#22082)
commit 689c6aa276
Author: Rudolf Horváth <R-Rudolf@users.noreply.github.com>
Date: Thu Nov 21 13:25:45 2024 +0100
docs: add developer notes about rootless docker setup (#13250)
```
Checklist:
----------
- [x] I have performed a self-review of my own code
- [x] I have made corresponding changes to the documentation if applicable
- [x] I have no unrelated changes in the PR.
- [ ] I have confirmed that any new dependencies are strictly necessary.
- [ ] I have written tests for new code (if applicable)
- [ ] I have followed naming conventions/patterns in the surrounding code
- [ ] All code in `src/services/` uses repositories implementations for database calls, filesystem operations, etc.
- [ ] All code in `src/repositories/` is pretty basic/simple and does not have any immich specific logic (that belongs in `src/services/`)
* fixed the timezone issue in the Immich mobile app's metadata sheet to match the web app's behavior
* format dart
* now uses the shared applyTimezoneOffset() utility function from mobile/lib/utils/timezone.dart
* add tests
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
* fix(mobile): persist album sorting in settings
* fix(mobile): persist album layout
* fix: fixed store model id
* fix: corrupted AppSettingsEnum
* chore: refactor to remove RemoteAlbumSortMode
* refactor: use t instead of tr
* fix(web): open onboarding documentation link in new tab
* Update web/src/lib/components/onboarding-page/onboarding-storage-template.svelte
---------
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
* feat: toggle in options modal
* feat(i18n): add labels to display who uploaded each asset and show asset owners
* feat: migrate asset owner settings to TimelineManager and update AlbumOptionsModal
* Revert "feat(i18n): add labels to display who uploaded each asset and show asset owners"
This reverts commit cf8f4eb135.
* fix: simplify AlbumOptionsModal invocation and update aria-label for asset owners
* feat(i18n): add label for viewing asset owners in the interface
* feat: add tests for showAssetOwners functionality in TimelineManager
* chore: move asset owner visibility toggle to kebabu menu
* refactor(web): reimplement operation-support as part of timeline-manager
Improve clarity of methods.
Add inline method documentation.
Make return type of AssetOperation optional.
* Review comments - self document code. remove optional return from callback
* fix(mobile): normalize scrolling behavior in networking settings
Remove ClampingScrollPhysics from networking settings page to match
the scrolling behavior of other settings pages. This restores the
standard iOS bounce/elastic scrolling effect.
* fix(mobile): use consistent native transitions for Library pages
Change Trash, Shared Links, and Folders routes from CustomRoute to AutoRoute to enable native iOS transitions with swipe-back gesture support.
* fix(mobile): remove SafeArea wrapper and ClampingScrollPhysics from Settings
Remove SafeArea wrapper (Scaffold handles safe areas automatically) and ClampingScrollPhysics to enable native iOS bounce scrolling.
* fix(mobile): remove bottom white space in Sync Status page
Replace Padding wrapper with ListView padding to match other Settings pages and eliminate bottom white space.
* chore: fix Dart formatting
Run dart format to fix formatting issues in settings.page.dart and sync_status_and_actions.dart
* Format Dart files
---------
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: kao-byte <benjaminliu@MacBook-Air.local>
* - pass available album users along to the thumbnail through the asset-date-group
- show a small user-avatar in bottom right of thumbnail
* - change owner to their name in white text instead of the avatar
* cleanup
* - cleanup albumUsers creation
- use font-light for the user's name
* fix lint
* format
* - add toggle to show/hide asset owner names
* update new Timeline with albumUsers
* add @idubnori suggestion for the name font
* Don't show 'view owners' button if the album doesn't have editors
* add missing import
* format
* fix(web): #21171 (#24298)
fix: Bind timelineManager to Timeline component
---------
Co-authored-by: idubnori <i.dub.nori@gmail.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>