develop
Metadata: Ensure the altitude is not out of range and fix logs #3182
Test: Use PascalCase names for all Go subtests in /pkg
Auth: Refactor cluster configuration and provisioning API endpoints #98
refactor: use b.Loop() to simplify the code and improve performance
Pkg: Apply "golangci-lint" recommendation to clean package #5330
AI: Set OpenAI API service key via OPENAI_API_KEY(_FILE) variable #5322
Clean: Add Yes/No/Bool funcs consistent with strconv.ParseBool() #5191
Links: Use canonical trailing-slash form for website URLs
Pkg: Use ProjectRoot variable in path_test.go
Videos: Stream OGV, VP8, VP9, AV1, WebM, and HEVC if supported #2461
PWA: Create manifest.json in code without using a template #3181
Pkg: Move /service/http/... to /http/... and add package /http/dns
Config: Automatically download, install and activate cluster theme #98
Logs: Add package pkg/log/status to provide generic outcome constants
Tests: Add unit tests
Settings: Use PHOTOPRISM_DISABLE_FEATURES to initialize default features
Clean: Add FileNameRedacted helper for generated file names
Config: Add option to exclude video formats from FFmpeg #5617
FFmpeg: Use atomic.Pointer for thread-safe Exclude list access #5617
Search: Parse lat,lng string into float64 coordinates #4930 #4812
CI: Add codespell config and fix typos (#4506)
Tests: Add unit tests for pkg/clean
Auth: Session and ACL enhancements #98 #1746
Auth: Improve IP sanitization and security logs #808
Go: Apply go fix modernizations across backend packages
Ollama: Remove code fences and commentary from JSON API responses
PWA: Add maskable icons, lang/dir, and install screenshots #5696
Viewer: Set native video stream src based on mimetype #1307 #3168 #4698
Backend: Clip over-length input in clean.Name and clean.State #5584
Videos: Index and display durations of less than one second #3224
Edit: Change image orientation through the user interface #464
Server: Add web overlay handler for unmatched routes #5459
Index: Expanded folder-album reconciliation scope when needed #5437
Auth: Shorten code comments in pkg/clean/scope.go #98 #5230
OIDC: Upgrade "zitadel/oidc" from v1 to v2 #782
Search: Add NOT & AND operators to label filter #5535
Search: Use parameterized queries for user search input #5587
API: Update Thumb/ThumbSrc for subjects and labels #4151
OIDC: Store email only when the token marks it verified
Cluster: Add AppName, AppVersion and Theme request/response fields #98
Cluster: Report Config.About() instead of Config.Name() as app name #98
Metadata: Sanitize bad Unicode strings #2897
Metadata: Improve data parsing and sanitization #2897
Config: Add "theme-url" option (pro/portal) and URI credential redaction
Clean: Add version assertions to version_test.go