Bug Fixes
- close IN() paren before GROUP BY in get_similar_by_genres (c257871)
- items: resolve parent_id aliases before child query (#123) (4d7e1fc)
- Jellyfin API compat — Filters2 endpoint and list filter params (#136) (177d13b)
- loudness: default normalize_audio_loudness to false (#139) (31dbf81)
- resolve parent_id aliases in items_flat; add persist_from_store test (1048e72)
- resolve temp search IDs in shows seasons and episodes endpoints (c48a346)
- use series_imdb for remuxdb episode probe lookup (f1bf79c)
Features
- addons: load and merge RemuxDB probe data during stream refresh (#122) (81b3a5c)
- engine: add configurable loudness normalization (#125) (0a2794e)
- implement field locking to prevent metadata provider overwrites (#135) (ed19f0a)
- implement SendMessageCommand via WebSocket GeneralCommand (5a5028a)
- parse mediaInfo from stream behaviorHints into probe_data (eeccb3a)
- serve /web/manifest.json for webos client compat (closes #117) (3cc0f86)
- users: per-user subtitle mode and language preference (#124) (85b40c0)