Release Notes

Noodle Gallery v4.57.0

A release built around Timeline Grouping — now an always-visible Years / Months / All control on every timeline, working with active filters and consistent across web and mobile — plus a new People view sort, cross-scope people merge propagation, library data-export groundwork, identity birthday resolution, mobile live-search paging and sort, iOS background-backup reliability, and full Noodle branding of email and in-app store links.

June 16, 2026 v4.56.7 to v4.57.0 32 selected highlights
6Feature highlights
26Important fixes
v4.56.7Previous release
v4.57.0Current release
What changed

The release at a glance

5 highlights

Feature Launches

feature #625

Timeline Grouping

Adds a Years / Months / All switcher to every timeline. Switching compresses the grid to full-width representative cards with a photo count badge. Tapping a card zooms into that period without restricting the query; switching granularity preserves scroll position on both web and mobile.

52ec1bebcf
feature #614

People Merge Propagation

Propagates person identity merges across accessible scopes. A merge in your personal library propagates to all timeline-enabled Spaces where both profiles appear, and a Space merge carries back into the personal library, keeping the same real person unified everywhere you have access.

1776aa27e7
feature #654

Mobile Live Search: Infinite Scroll and Sort

Fixes the mobile live-search page-1 cap with an infinite-scroll notifier and 800 ms debounce. Adds Relevance / Newest / Oldest sort matching web parity, moves the sort control to the app bar, and routes "view similar photos" into live search.

115c89ea13
feature #683

People View Sort

Adds a user-controlled sort to the People view on web and mobile — order faces by most photos (the new default) or alphabetically by name, with the preference persisted across sessions. The same control and tie-break rules apply to global people and shared-space people, and the picker keeps its own pinned order.

a169f51aaa
feature #700

Library Manifest Export Endpoint

Adds an admin library-manifest export endpoint that enumerates every original asset in a library — the server-side foundation for one-click "download all your data" portability without making a server-side copy.

ca3c09c2c9
4 highlights

Timeline Grouping Polish

feature #681

Grouping Pill on Every Timeline

Brings the Years / Months / All grouping control to every timeline on mobile via an always-visible bottom pill — album, space, and favorites timelines, plus the map bottom sheet — not just the main Photos grid. Detail timelines open at All and keep their grouping choice scoped to that view.

9b0b551281
fix #679

Grouping Works with Active Filters

Fixes grouped timelines rendering empty Months and Years overviews while a filter was active by building proper time buckets in the filtered stream. Relevance-sorted smart-search results correctly fall back to a flat grid instead of blank overview cards.

f2d185f4e9
fix #674

Consistent Grouping Across Web and Mobile

Aligns the mobile grouping labels with web (Years / Months / All), trims the redundant filter icon from the timeline app bar, and makes the grouping bar transparent on the spaces and albums pages so it matches the main timeline in dark mode.

0372d9b289
fix #680

Stable Overview Covers and Scroll Position

Stops the year and month overview cover photos flickering to a gray placeholder during initial load by memoizing each bucket's representative for the route, and preserves day-level scroll position when round-tripping through a coarser grouping level.

a4f0736ac3
5 highlights

iOS Background Backup Hardening

fix #639

Reliable & Honest Background Backup

Rewrites the iOS background backup loop as a bounded, honest worker — reports its actual completion state instead of always claiming success and recovers gracefully from partial runs.

7c96bc9b20
fix #658

Continue Backup Past First 100 Items

Fixes iOS background backup stopping after the first 100-item batch by paginating the upload notifier so the full asset set drains across multiple background invocations.

dd29ea6440
fix #657

HTTP Drain Before Background-Worker Teardown

Drains in-flight HTTP requests before the iOS background-worker tears down so assets in transit are not abandoned mid-upload when the OS reclaims the background time slot.

f38182bec4
fix #663

iOS Foreground HTTP Session Reconnect

Reconnects the iOS foreground HTTP session on app resume so uploads and API calls do not stall after the app returns from background.

871ef8befd
fix #692

Drain Gentle-Sync Isolate Before Teardown

Extends the in-flight HTTP drain to the iOS gentle background-sync isolate so a streaming sync response can no longer fire into a torn-down isolate and abort the app, and rebuilds a live HTTP client when a pooled worker isolate is reused.

22b368f74f
7 highlights

Shared-Space Access & Identity Fixes

fix #647

Tag View Scoped to Shared-Space Access

Scopes the tag view to the requesting member's shared-space access level so non-admin members can no longer enumerate tags outside their permitted assets.

1fb9f6e3a3
fix #637

Folder Explorer Scoped to Shared-Space Access

Scopes the Folder Explorer to the requesting member's shared-space access so non-admin members see only folders within their permitted asset set.

1933f131d7
fix #652

Identity Merge Safety Against Embedding-Distinct Clusters

Guards automatic identity merges from consolidating face clusters whose embeddings are sufficiently distinct that the match is likely spurious, preventing incorrect automatic identity merges.

c5f53fa852
fix #648

Unstick Shared-Space Face-Recognition Jobs

Detects and requeues stalled shared-space face-recognition jobs so a stuck Space does not silently block recognition progress across all other Spaces.

a254c6f13a
fix #665

Person Dedup Scoped Per Space

Keeps shared-space person deduplication chains scoped to individual Spaces so a merge in one Space cannot accidentally collapse identities in unrelated Spaces.

0e827f149f
fix #686

Space-Set Birthdays Visible to Owners

Resolves a person's birthday and name from any of their identity profiles, so a birthday set inside a Shared Space now shows on the owner's own person detail and single-person pages instead of appearing blank.

424a60ff6c
fix #687

Settle the People Identity Maintenance Queue

Stops the face-identity backfill re-queuing full-table passes forever by realigning stranded faces to their current identity, and skips the no-op recount and metadata rewrites that were churning tens of thousands of shared-space person rows on every pass.

04e72f4ff5
9 highlights

Search, Timeline & Mobile Polish

fix #630

Require All Selected People in Search Filters

Changes the people search filter to require all selected people to appear in a result asset, matching the AND semantics implied by Gallery's filter UI.

2056d5b53b
fix #670

Timeline Drill-Up Bounce Fix and Year-Cover Performance

Removes the erratic position bounce when drilling up from Months to Years on mobile, and moves slow year- and month-cover image resolution off the rendering hot path.

ca92ca6598
fix #667

Shared-Link Expiry as UTC

Sends shared-link expiresAt as a UTC datetime so expiry is calculated correctly regardless of the server timezone.

e491214734
fix #627

Stabilize Mobile Search Filters and Backup Notification

Stabilizes mobile live-search filter interaction and iOS background-backup notification state so concurrent filter changes and upload events do not race each other.

0dafb58bb8
fix #618

Stop Per-Asset WebSocket Flood on External Library Scans

Batches external-library scan progress instead of emitting a WebSocket event per asset so large connected-library imports no longer flood client connections.

a9e88e8e5f
fix #643

View in Timeline Reaches the Photo

Replaces the racy scroll-to-date broadcast with a durable latch so "View in timeline" — from a memory, notification, deep link, or the asset viewer — reliably lands on the target photo instead of the top of a freshly mounted timeline.

2e1299dcc0
fix #688

Reveal File Path for Shared Assets

Gates the "Show file location" toggle on the asset path rather than ownership, so members viewing external or shared-library assets can reveal the path the server already sends them. Sanitized shared-link views still omit it.

026cef319f
fix #695

Pet Detection Reset Clears Old Labels

Resetting the Pet Detection queue now deletes the previous run's pet people and faces before requeuing — instead of leaving stale or duplicated pet labels on assets — and asks for confirmation before wiping detections.

dcfdf0d066
2 highlights

Noodle Branding

fix #644

Branded Email and Notification Templates

Rewrites the default email and notification templates at build time to remove leftover upstream branding the config UI can't reach — logo, wordmark, store badges, project credit, and default subject lines all become Noodle Gallery.

e174e10965
fix #649

App Download Links Point to Noodle Gallery

Repoints the in-app "App download links" modal off the upstream apps so the Play Store, App Store, and releases links send users to Noodle Gallery, guarded by a CI gate that fails if a future rebase reintroduces the upstream links.

6adcedb319
Previous release Open the Noodle Gallery v4.56.0 release notes. Featured launch Open the Timeline Grouping feature page. Featured launch Open the Global People feature page.