Skip to content

Releases: immichFrame/ImmichFrame

v1.0.37.0

Choose a tag to compare

@github-actions github-actions released this 17 Jul 22:35
319affe

📦 ImmichFrame Release v1.0.37.0 – July 17, 2026

This release rolls back the memories timezone workaround now that Immich fixes memory date handling upstream.


What's Changed

⚡ Fixes

🐛 Revert memories timezone fix

PR #678 by @JW-CH

ImmichFrame previously appended a timezone offset to the Immich memories for query parameter (#660) to work around inconsistent date handling. Immich has since fixed memory search date validation upstream
(immich-app/immich#29907), so that workaround is no longer needed and now conflicts with the server-side behavior. This release reverts it, restoring plain calendar-date filtering so your memories show up correctly again. The bundled Immich
OpenAPI spec was refreshed as part of the revert.


Full Changelog: v1.0.36.0...v1.0.37.0

v1.0.36.0

Choose a tag to compare

@github-actions github-actions released this 14 Jul 08:19
e684ed4

📦 ImmichFrame Release v1.0.36.0 – July 14, 2026

This release adds a startup guard that fails fast when ImmichFrame is pointed at an incompatible Immich server, logs each server's version, and cleans up how settings are handled internally.


What's Changed

✨ New Features

🚦 Startup version check enforces Immich v3

PR #676 by @JW-CH

ImmichFrame already targets the Immich v3 API — this release now enforces it at startup. On boot, it checks the version of every configured Immich server and refuses to start if any server is older than v3, is unreachable, or its version can't be determined. Previously, an incompatible (older) server would let ImmichFrame start but then fail later with a cryptic
deserialization error — for example, Immich changed an asset's duration from a string like "0:00:00.00000" to integer milliseconds, which broke image loading. Now you get a clear critical log message naming the affected server, and the container stops instead of silently misbehaving.

What you need to do: Make sure your Immich server(s) are on v3.0 or newer. If ImmichFrame won't start, check the logs for the offending server.

💡 Tip: In Docker, pair this with a restart policy (e.g. restart: unless-stopped) so ImmichFrame retries automatically if an Immich server is still coming up during boot.

The bundled Immich OpenAPI spec was also bumped to 3.0.2 as part of this change.


📋 Immich server version logging

PR #673 by @JW-CH

ImmichFrame now logs the version of each configured Immich server at startup, so you can confirm compatibility at a glance. Previous startup log noise was trimmed at the same time, making the logs easier to read.


🔨 Maintenance

🔧 Simplified settings handling

PR #667 by @JW-CH

Settings are now split into dedicated client and server interfaces. As a result, the /api/Config endpoint is structurally limited to client-safe values only — server-only secrets such as API keys, the webhook URL, the authentication secret, and web-calendar URLs can no longer reach the client. This change also makes the per-account asset tracker (BloomFilter) thread-safe and reworks how the account-selection strategy is constructed for more reliable multi-account setups.


Full Changelog: v1.0.35.0...v1.0.36.0

v1.0.35.0

Choose a tag to compare

@github-actions github-actions released this 08 Jul 09:41
bdc6094

📦 ImmichFrame Release v1.0.35.0 – July 8, 2026

This release fixes memories failing to load against newer Immich servers, along with a stale QR code/link bug in the info overlay.


What's Changed

⚡ Fixes

🐛 Fixed memories not loading on newer Immich servers

PR #660 by @JW-CH

The "on this day" memories row could fail to load entirely against newer Immich servers, which now strictly require a timezone offset on the date sent to the memories endpoint. ImmichFrame was dropping that offset before sending the request, causing Immich to reject it. The request now correctly includes your local timezone offset, so memories load reliably again.


🐛 Fixed stale QR code and "Open in Immich" link during slideshow

PR #666 by @JoeRu

The QR code and "Open in Immich" link in the info overlay could get stuck pointing at the first photo shown, even after the slideshow moved on to new images. Opening the info overlay now always shows the QR code and link for the photo currently on screen.


New Contributors

  • 🎉 @JoeRu made their first contribution in #666 — welcome!

Full Changelog: v1.0.34.0...v1.0.35.0

v1.0.34.0

Choose a tag to compare

@github-actions github-actions released this 02 Jul 19:24
682fdc4

📦 ImmichFrame Release v1.0.34.0 – July 2, 2026

This release brings ImmichFrame up to date with Immich v3, adds a new per-asset faces API
for richer previews, and fixes long-standing video stall and slideshow transition freezes.


What's Changed

⚠️ Breaking Changes

💥 Update to Immich v3

PR #654 by @JW-CH

ImmichFrame now targets the Immich v3 API. This is a major migration that updates the
OpenAPI spec, standardizes asset identifiers to GUIDs across all selection, filtering, and
paging flows, and switches album loading (including excluded albums) to paginated metadata
searches so large libraries are handled reliably. It also adds a new Asset Faces endpoint
that fetches per-asset face details for richer home-page previews, with faces now loaded
only on zoom/pan and skipped for videos. Make sure your Immich server is running v3 or
newer
before upgrading.


⚡ Fixes

🐛 Asset transition & video stall freezes

PR #637 by @3rob3

Fixes cases where the slideshow could lock up mid-transition or freeze on a stalled video
(closes #601). Auto-skip now detects
stalled videos and asset load errors and escalates with throttling, a watchdog recovers from
hangs, and transition locking plus resource teardown were hardened to avoid stuck states. A
new asset-error callback lets the frame react cleanly to media load/playback failures.


🐛 Memories date

PR #632 by @3rob3

Corrects the date handling for the Memories feature so memory-based assets are selected and
displayed against the right day.


🔨 Maintenance

🔧 Update NPM packages

PR #658 by @JW-CH

Routine dependency bump for the frontend and docs npm packages to keep the build current and
pick up upstream security and bug fixes.


Full Changelog: v1.0.33.0...v1.0.34.0

v1.0.33.0

Choose a tag to compare

@github-actions github-actions released this 10 Apr 12:00
265a890

What's Changed

✨ New Features

🔄 Auto-Refresh on Connection Error

PR #579 by @3rob3

When ImmichFrame can't reach your Immich server, the error screen now shows a pulsing message and automatically reloads the page every 30 seconds until the connection is restored. Previously the frame would just sit on the error screen indefinitely — now it recovers on its own as soon as your server comes back online.


📓 Documentation

📖 Major Rewrite: Frameo Installation Guide

PR #593 by @Torstein-Eide

The Frameo digital photo frame setup instructions have been completely rewritten from the ground up. The guide is now clearer, better structured, and includes new screenshots for both the default app and WebView setup flows — making it much easier to get ImmichFrame running on Frameo devices.


🔨 Maintenance

🔧 Dependency Updates (ImmichFrame & Docusaurus)

PR #624 by @JW-CH

Frontend (immichFrame.Web) and documentation (docs) dependencies have been updated to their latest compatible versions.


New Contributors


Full Changelog: v1.0.32.0...v1.0.33.0

v1.0.32.0

Choose a tag to compare

@github-actions github-actions released this 02 Mar 22:56
4103164

📦 ImmichFrame Release v1.0.32.0 – March 02, 2026

One of the bigger releases in a while — featuring long-awaited video support, a polished animated splash screen, and a handful of quality-of-life improvements and bug fixes.


What's Changed

✨ New Features

🎬 [Experimental] Video Support

PR #499 by @JW-CH

ImmichFrame can now display videos from your Immich library. Videos are streamed directly from Immich rather than buffered into memory, keeping resource usage low and handling large files gracefully. A Service Worker injects the Authorization header so video requests are authenticated transparently — no extra configuration required.

Safari and iOS users will appreciate proper range request handling: video scrubbing and seeking now work correctly, as streams are served in a seekable, cacheable format that satisfies Safari's strict media requirements.

To enable video playback, set ShowVideos: true in your config. See the video playback docs for full details and known limitations.


🔒 Basic Auth Support for Calendar

PR #363 by @JW-CH

The iCal calendar integration now supports password-protected calendars. Credentials can be passed using the standard URL userinfo format:

https://user:password@calendar.example.com/path/to/calendar.ics

This is optional and fully backwards-compatible — existing calendar URLs without credentials continue to work as before.


✨ Animated Splash Logo

PR #584 by @JW-CH

The loading screen now features a smooth animated SVG splash logo, replacing the static one. A small but noticeable polish touch — especially visible on slower devices or cold starts.


🌡️ Cleaner Weather Display

PR #594 by @3rob3

The weather widget now shows only the degree symbol (°) instead of an explicit unit label, reducing visual clutter. Your configured temperature unit is still respected — this is a display-only change.


⚡ Fixes

📅 Calendar Date Search Fix

PR #589 by @3rob3

Calendar event lookup was using DateTime.UtcNow instead of DateTime.Today, which could cause off-by-one date errors depending on the server's timezone. Now correctly uses local date for event matching.

🧠 Memories Date Fix

PR #588 by @3rob3

Resolved an edge case where memory dates were calculated incorrectly, causing the wrong assets to surface in the Memories view. This was a recurring issue that is now properly addressed.

🍎 Range Header Forwarding (Safari/iOS Video Fix)

PR #595 by @3rob3

Safari and iOS require HTTP range requests to load and seek video. This fix ensures range headers are correctly forwarded to Immich and the response is streamed back in a seekable format, resolving playback failures on Apple devices.


📓 Documentation

🤖 Updated Android / Frameo Setup Instructions

PR #575 by @sabbene

Android and Frameo setup instructions have been expanded and improved with clearer steps and a direct APK download link, making it easier to get ImmichFrame running on these platforms.


🚀 Other Changes

🔐 NPM Dependency Security Updates

PR #603 by @JW-CH

NPM dependencies in the docs site have been updated to resolve known security vulnerabilities.


New Contributors

  • 🎉 @sabbene made their first contribution in #575 — welcome!

Full Changelog: v1.0.31.0...v1.0.32.0

v1.0.31.0

Choose a tag to compare

@github-actions github-actions released this 21 Jan 13:07
a85b237

📦 ImmichFrame Release v1.0.31.0 – January 21, 2026

What's Changed

✨ New Features

  • Feat: support selecting photos from tags by @ahal in #537

⚡ Fixes

📓 Documentation

🚀 Other changes

  • Chore: Update Docusaurus packages and config by @JW-CH in #564
  • Chore: Update node version in workflow by @JW-CH in #566
  • Chore: Remove unused packages, update npm packages by @JW-CH in #565

New Contributors

Full Changelog: v1.0.30.0...v1.0.31.0

v1.0.30.0

Choose a tag to compare

@github-actions github-actions released this 10 Dec 15:13
55dfcf3

📦 ImmichFrame Release v1.0.30.0 – December 10, 2025

What's Changed

✨ New Features

  • Manifest and services for Android/Desktop PWA by @3rob3 in #501
  • Configurable config path by @jfly in #512
  • Add a ApiKeyFile option by @jfly in #511

⚡ Fixes

📓 Documentation

  • Chore: Update domain to immichframe.dev by @JW-CH in #515
  • Add release link to frameo docs by @ddzoan in #520

🔨 Maintenance

  • Chore: Fix OpenApi generation with oazapfts by @JW-CH in #498
  • Use Central Package Management (cpm), move TargetFramework to BuildProps by @JW-CH in #519

🚀 Other changes

  • Bump node-forge from 1.3.1 to 1.3.2 in /docs by @dependabot[bot] in #516
  • Bump glob from 10.4.5 to 10.5.0 in /immichFrame.Web by @dependabot[bot] in #517

New Contributors

Full Changelog: v1.0.29.0...v1.0.30.0

v1.0.29.0

Choose a tag to compare

@github-actions github-actions released this 12 Oct 01:18
1352547

📦 ImmichFrame Release v1.0.29.0 – October 12, 2025

What's Changed

✨ New Features

  • Feat: Add AssetController test with direct settings DI by @jpg0 in #425
  • Feat: Add the weather icon for current conditions by @rgregg in #468
  • Feat: Add ClockDateFormat string to format the date on the clock by @rgregg in #467
  • Feat: Respect ImageFill configuration in splitview layout by @XanderStrike in #473
  • Feat: Update QR Code to redirect to my.immich.app by @leocb in #490

⚡ Fixes

  • Fix: Permit RefreshAlbumPeopleInterval of 0 by @jpg0 in #441
  • Fix: Memories cache should last one day by @jpg0 in #442
  • Fix: Config case-insensitivity by @3rob3 in #457
  • Fix: Missing config directory by @JW-CH in #487
  • Fix: Transition flickering by @3rob3 in #483

📓 Documentation

🔨 Maintenance

  • Chore: Bump devalue from 5.1.1 to 5.3.2 in /immichFrame.Web by @dependabot[bot] in #456
  • Chore: Update NuGet dependencies by @JW-CH in #486
  • Chore: Fix timeout type by @JW-CH in #489
  • Chore: Update npm dependencies, update dockerfile by @JW-CH in #488

New Contributors

Full Changelog: v1.0.28.0...v1.0.29.0

v1.0.28.0

Choose a tag to compare

@github-actions github-actions released this 15 Jul 08:43
e9a02d6

📦 ImmichFrame Release v1.0.28.0 – July 15, 2025

What's Changed

✨ New Features

  • Feat: Support yaml config & Update Docs by @JW-CH in #402

⚡ Fixes

  • Fix: allow empty general settings by @jpg0 in #430
  • Added ImmichServerUrl to AssetResponseDto by @jpg0 in #424

📓 Documentation

🔨 Maintenance

  • Chore: Switched to IMemoryCache to correctly handle expiration by @jpg0 in #423

Full Changelog: v1.0.27.2...v1.0.28.0