A release led by a refreshed web app look — a token-driven re-skin of the photo app applied entirely through design tokens — plus a new Has album timeline filter, a unified picker for adding photos to an album or a Shared Space from anywhere, a redesigned filter panel with a merged toolbar, a first-run empty state on mobile, and a set of shared-album and shared-space access fixes that let viewers and members see map pins, filter facets, and representative-face picking.
June 23, 2026v4.57.1 to v4.58.010 selected highlights
5Feature highlights
5Important fixes
v4.57.1Previous release
v4.58.0Current release
What changed
The release at a glance
A token-driven re-skin gives the web photo app a refreshed, layered look — cool paper/ink neutrals, a new accent, a rounded content panel, and self-hosted typography — applied entirely through design tokens without editing a single component.
A new Has album timeline filter adds a Has album / Has no album / Any control across Photos, Spaces, and the Map, with an active-filter chip and a shareable album=has URL.
A unified album + space picker lets you add selected photos to an album or a Shared Space — or create a new one — from the timeline, the asset viewer, and the Cmd/Ctrl+K command palette.
The filter panel got a motion-and-polish redesign with icon-led active-filter pills, and the Years / Months / All grouping control now merges with the filters into a single toolbar row.
Shared-album and shared-space access fixes let viewers see map pins and filter facets, let members pick a representative face, and make Pet Detection reset reliably clear pets even when detection is off.
A layered, token-driven re-skin of the web photo app: a periwinkle-to-Google-blue accent, cool paper/ink neutrals in light and near-black surfaces in dark mode, a rounded content panel with a chrome gutter, softer shadows, and self-hosted DM Sans / Bricolage Grotesque typography — all applied through a single theme token layer without touching components.
Adds a tri-state Has album / Has no album / Any control to the filter panel across Photos, Spaces, and the Map. The choice shows as an active-filter chip, serializes into a shareable album=has URL param, and labels the in-album term on smart-search results.
Replaces the separate add-to-album and add-to-space flows with one picker that lets you add selected photos to an album or a Shared Space — or create a new one inline — and split-dispatches to each destination. It opens from the timeline, the asset viewer, and the Cmd/Ctrl+K command palette.
Redesigns the filter panel with slide-in section motion, a hairline border, a breathing three-column year grid, and soft icon-led active-filter pills that lead with a result count. The Years / Months / All grouping control and the active-filters bar now merge into a single toolbar row across Photos, Spaces, and Albums.
Replaces the blank black mobile Photos timeline with a first-run onboarding state — illustration plus an Enable Backup call to action — and a distinct filtered no-results state. It is gated on remote-sync status so it never flashes mid-sync for accounts that already have photos.
Every reader of a shared album — owner, editor, or viewer — now sees map pins for all geotagged assets in the album, matching the album grid. Previously the map markers were scoped to the requester's own assets, so viewers saw no pins for the owner's geotagged photos.
Non-admin members with editor access to shared assets can now open "Select representative face" instead of failing with a not-found error. person.read access now also grants shared-space members, while update, delete, and merge stay owner-only.
Album-scoped filter suggestions — People, Location, Camera, and Tags — now populate for viewer-role members of a shared album, scoped to assets contributed by an album participant so nothing leaks from spaces the viewer cannot access.
Resetting Pet Detection now always purges detected pets and their faces — including the copies propagated into Shared Spaces — even when pet detection is turned off, matching what the reset dialog promises. Only the reprocessing requeue stays gated on detection being enabled.
Switches the Android versionCode to wall-clock minutes since the Unix epoch so it is monotonic across every branch and build trigger. This unblocks Play Store rollouts that Google rejected when RC builds from the rolling rebase branches published a higher code than a later main release could produce.