---
slug: 2026w14
title: "Development: March - April 2026"
authors: [niaz]
tags: [release]
---

Here is an overview of all the new features, improvements, and bug fixes since the last release.

**Upstream:**

🚀 LibrePhotos: Face Tag Writeback to Sidecar Files

Face recognition results can now be written back to XMP-MWG-RS sidecar files, making your face tagging data portable and compatible with other photo management tools. A new setting controls this behavior, and the metadata handling has been refactored into a dedicated `api/metadata` package for cleaner architecture.

🚀 LibrePhotos: Server Logs Viewer

A new API endpoint (`GET /api/serverlogs/view`) allows reading server logs directly from the application, paving the way for in-app log inspection without shell access.

🚀 Frontend: Services Health Monitoring Panel

The admin page now features a dedicated services health monitoring panel showing the real-time status of all background services. Start and Stop controls are shown contextually — only when the action makes sense based on the current service health.

🚀 Frontend: Server Logs Card

A new server logs card in the admin panel lets you inspect server logs directly from the UI, powered by the new `/api/serverlogs/view` endpoint.

- ✨ LibrePhotos: Optimize N+1 queries in photo serializers for better API performance
- ✨ LibrePhotos: ConcurrentRotatingFileHandler adopted for multi-process-safe log rotation
- ✨ LibrePhotos: Log rotation default increased to 200MB with configurable limits via CONSTANCE settings
- ✨ Frontend: New and updated translations: Danish, German, Korean, Tamil, Dutch, Ukrainian
- 🔨 LibrePhotos: Fix motion photo video serving — use actual file path instead of hardcoded `_1.mp4` suffix
- 🔨 LibrePhotos: Fix duplicate face detection — replace margin-based overlap check with IoU (Intersection over Union) for accurate deduplication
- 🔨 LibrePhotos: Fix photo captioning crash when the tag service returns a non-JSON response
- 🔨 LibrePhotos: Fix PhotoMetadataSummarySerializer to correctly expose `@property` fields
- 🔨 LibrePhotos: Fix UnorderedObjectListWarning in paginated querysets
- 🔨 LibrePhotos: Fix tagging model configuration errors when `TAGGING_MODEL` key is absent from CONSTANCE config
- 🔨 Frontend: Fix login error notification — show proper error message on failed login attempt
- 🔨 Frontend: Fix GPU memory stat parsing to accept both string and number values
- 🔒 LibrePhotos: Security — Django updated to v5.2.12
- 🔒 LibrePhotos: Security — Fix privilege escalation: prevent non-admin users from creating superuser accounts via the registration API
- 🔒 Frontend: Security — lodash updated to v4.18.1
- ✨ LibrePhotos: Updated dependencies and updated language strings from the community

---

If you are interested in how I develop this application, you can watch me develop features live on **[my channel](https://www.youtube.com/channel/UCZJ2pk2BPKxwbuCV9LWDR0w)**

---

**Sponsoring development:**

My work is sponsored by **3** awesome people!

If you like the work I do, then you can support me via **[GitHub sponsors](https://github.com/sponsors/derneuere)** or via **[PayPal](https://www.paypal.com/donate/?hosted_button_id=5JWVM2UR4LM96)**
