Skip to content

Patch 1#2

Closed
Deeds67 wants to merge 37 commits into
mainfrom
patch-1
Closed

Patch 1#2
Deeds67 wants to merge 37 commits into
mainfrom
patch-1

Conversation

@Deeds67

@Deeds67 Deeds67 commented Mar 4, 2026

Copy link
Copy Markdown
Collaborator

Description

Fixes # (issue)

How Has This Been Tested?

  • Test A
  • Test B

Screenshots (if appropriate)

Checklist:

  • I have carefully read CONTRIBUTING.md
  • I have performed a self-review of my own code
  • I have made corresponding changes to the documentation if applicable
  • 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/)

Please describe to which degree, if any, an LLM was used in creating this pull request.

...

Snowknight26 and others added 30 commits March 2, 2026 22:00
…mn (immich-app#26633)

* fix(android): detect supported version for special format column

* fix(android): remove unnecessary suppression for new API in special format check

* fix(android): change visibility of hasSpecialFormatColumn method to private
The image in the photo view has no height, and is therefore entirely
unconstrained. This causes the image to take up the full height of the
viewport during the hero animation, which can make look out of sync. In
some other cases, it can stretch or resize the image to fill the entire
viewport.
…6654)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…app#26653)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
immich-app#26652)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: bo0tzz <git@bo0tzz.me>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Consolidate video state into a single asset-scoped provider, and reduce
dependency on global state generally. Overall this should fix a few
timing issues and race conditions with videos specifically, and make
future changes in this area easier.
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…h-app#26122)

feat: improve heic, heif and jxl browser support detection
…ich-app#26684)

Add `name` to all vitest configs matching CI job buckets (server:unit,
server:medium, cli:unit, web:unit, e2e:server, e2e:maintenance) so they
appear as filterable @tags in the Vitest VSCode extension.

Fix `root` in server vitest configs to use an absolute path derived from
`import.meta.url` instead of `'./'`, which resolved relative to the config
file directory (`server/test/`) rather than `server/`, causing test
discovery to fail in the Vitest VSCode extension.
cratoo and others added 7 commits March 4, 2026 15:27
…o view (immich-app#26667)

* feat(web): when hovering over a face already deteced, display the bounding box also shown when hovering over the person in the details-pane.

* prevent lint error

* fix unused var
In order to scroll smoothly without interfering with the gesture
detector on the photo view, we have an offstate scroll view which we
defer all drags to, and then forward scroll offsets to the real scroll
controller. This works well, but it can be simpler. Instead, we can
create a custom scroll controller on a scroll view with never scrollable
physics, and then forward drag events to that, bypassing the need for a
proxy scroll controller.

Co-authored-by: Alex <alex.tran1502@gmail.com>
Search results are replaced with a spinner when loading the next page,
which is quite jarring. Search results now remain visible when loading
the next page with a spinner at the bottom. The next page also loads
sooner, which makes it feel a lot smoother.

Co-authored-by: Alex <alex.tran1502@gmail.com>
@github-actions github-actions Bot added documentation Improvements or additions to documentation 🗄️server cli 🖥️web 📱mobile labels Mar 4, 2026
@Deeds67 Deeds67 closed this Mar 4, 2026
@github-actions

github-actions Bot commented Mar 4, 2026

Copy link
Copy Markdown

Label error. Requires exactly 1 of: changelog:.*. Found: documentation, 🗄️server, cli, 🖥️web, 📱mobile. A maintainer will add the required label.

@Deeds67 Deeds67 deleted the patch-1 branch May 3, 2026 08:19
Deeds67 added a commit that referenced this pull request Jul 2, 2026
…ns (LOW #2/#15)

The 1778800000000 collision (ReconcileFaceIdentityIndexOverrides + TrimSpacePersonNameIndex)
is benign — Kysely keys migrations by full filename, so both apply in deterministic order and
nothing is clobbered. Renaming was rejected: staging/RC/clone DBs run the rolling branch and
Kysely hard-fails on boot if a recorded migration's file goes missing, so renaming an applied
migration would brick them. Instead add a repo-invariant guard (upstream-preflight) that fails
CI on any NEW timestamp collision, grandfathering the 3 known-benign pre-existing ones. Slice 17.
Deeds67 added a commit that referenced this pull request Jul 2, 2026
…ns (LOW #2/#15)

The 1778800000000 collision (ReconcileFaceIdentityIndexOverrides + TrimSpacePersonNameIndex)
is benign — Kysely keys migrations by full filename, so both apply in deterministic order and
nothing is clobbered. Renaming was rejected: staging/RC/clone DBs run the rolling branch and
Kysely hard-fails on boot if a recorded migration's file goes missing, so renaming an applied
migration would brick them. Instead add a repo-invariant guard (upstream-preflight) that fails
CI on any NEW timestamp collision, grandfathering the 3 known-benign pre-existing ones. Slice 17.
Deeds67 added a commit that referenced this pull request Jul 7, 2026
…#753 #1+#2) (#757)

* docs(spaces): design spec for album/library asset visibility purge (#753 #1+#2)

* docs(spaces): review fixes — impl-loop slices, union-checkpoint rationale, Locked/showInTimeline edges

* feat(spaces): add shared_space_album_asset_audit table + migration

* feat(spaces): purge album-linked space assets on Hidden (A1)

* feat(spaces): prune shared_space_album_asset_audit on schedule

* feat(spaces): wire album visibility purge/restore into asset updateAll (A3, A8, unit)

* chore(spaces): revert-to-immich + regen SQL for album visibility purge

* docs(spaces): impl-loop slice 1+2 plans for album/library visibility purge

* feat(spaces): add shared_space_library_asset_audit table + migration

* feat(spaces): purge library-linked space assets on Hidden, owner-excluded (L1/L2)

* feat(spaces): wire library visibility purge into asset updateAll

* chore(spaces): revert-to-immich for library visibility purge

* test(spaces): cross-path visibility purge convergence (X1)

* test(spaces): empty-list no-op + idempotent double-purge (X2, X3)

* test(spaces): union checkpoint correctness across audit sources (X4)

* test(spaces): audit retention prune for new space audit tables (R1)

* docs(spaces): impl-loop slice 3 plan (cross-path invariants + retention)

* chore(spaces): regenerate query SQL for album/library visibility purge

* style(spaces): prettier-format impl-loop plan docs

* fix(spaces): add new audit-table migrations to revert-to-immich cleanup list

* style(spaces): prettier-format visibility-purge server files

* chore(spaces): use spread-apart random migration timestamps for new audit tables
Deeds67 added a commit that referenced this pull request Jul 10, 2026
…#753 #1+#2) (#757)

* docs(spaces): design spec for album/library asset visibility purge (#753 #1+#2)

* docs(spaces): review fixes — impl-loop slices, union-checkpoint rationale, Locked/showInTimeline edges

* feat(spaces): add shared_space_album_asset_audit table + migration

* feat(spaces): purge album-linked space assets on Hidden (A1)

* feat(spaces): prune shared_space_album_asset_audit on schedule

* feat(spaces): wire album visibility purge/restore into asset updateAll (A3, A8, unit)

* chore(spaces): revert-to-immich + regen SQL for album visibility purge

* docs(spaces): impl-loop slice 1+2 plans for album/library visibility purge

* feat(spaces): add shared_space_library_asset_audit table + migration

* feat(spaces): purge library-linked space assets on Hidden, owner-excluded (L1/L2)

* feat(spaces): wire library visibility purge into asset updateAll

* chore(spaces): revert-to-immich for library visibility purge

* test(spaces): cross-path visibility purge convergence (X1)

* test(spaces): empty-list no-op + idempotent double-purge (X2, X3)

* test(spaces): union checkpoint correctness across audit sources (X4)

* test(spaces): audit retention prune for new space audit tables (R1)

* docs(spaces): impl-loop slice 3 plan (cross-path invariants + retention)

* chore(spaces): regenerate query SQL for album/library visibility purge

* style(spaces): prettier-format impl-loop plan docs

* fix(spaces): add new audit-table migrations to revert-to-immich cleanup list

* style(spaces): prettier-format visibility-purge server files

* chore(spaces): use spread-apart random migration timestamps for new audit tables
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.