Releases: samuelloranger/labby
v1.5.0 — Emby, SABnzbd, Plex + per-device reorder
New integrations
- Emby — now-playing sessions
- SABnzbd — download queue
- Plex — now-playing with server-side image proxy (SSRF-guarded)
Improvements
- Consolidated Jellyfin/Emby/Plex into a unified MediaSessions widget
- Per-device reorder controls on Manage Services: drag-and-drop on desktop, up/down arrows on touch (HTML5 drag doesn't fire on iOS)
- Settings page icons for the new integration types
Image
ghcr.io/samuelloranger/labby:1.5.0 (also tagged 1.5, 1, latest) — multi-arch linux/amd64 + arm64.
Full changelog: v1.4.0...v1.5.0
v1.4.0 — Integration-driven layout, bookmarks, backup
Image (built + pushed manually, no CI): ghcr.io/samuelloranger/labby:1.4.0 (= :latest)
Features
- Integration-driven layout — dashboard renders from ordered integrations (no more pages/columns); drag-and-drop reorder on Manage Services with up/down keyboard/iOS fallback. One-time migration folds old layouts into integration order.
- Bookmarks widget — links editor with favicon auto-fetch.
- Backup — full export/import of integrations + dashboard.
Hardening (review pass)
- favicon endpoint: SSRF guard (blocks loopback/private/link-local incl. cloud metadata) + response size cap.
- Bookmark links sanitized against
javascript:href XSS. - Restore + layout migration now atomic (single transaction); restore validates integration types and accepts a null dashboard.
- Reorder repositions the full set (no stale-position collisions).
Breaking
Dashboard JSON schema changed (pages/columns removed). Auto-migrated on first boot.
v1.3.0
Tests, performance, and torrent control fixes.
Torrents
- Pause/resume now works on qBittorrent 5.x (hashes sent in the form body; query-param returned 400).
- Dedicated play/pause button per torrent with an explicit paused state; optimistic flip on click.
Performance
- Background aurora no longer animates under the glass cards, so backdrop-filter composites once instead of every frame (fixes sustained lag on weaker GPUs).
- Lighter blur (20px → 12px) and a
prefers-reduced-transparencyfallback that drops blur entirely.
UI
- Removed the global search feature, the card entrance animation, the card hover effect, and the footer tagline.
- README: logo, badges, Bun install note.
Internal
- Shared HTTP scaffold across integration clients.
- Server test coverage ~47% → ~90% (68 → 136 tests) with an isolated test DB.
v1.2.1 — Compact default + 4-column masonry
- Compact density is now the default (fresh installs + any install without a saved density). Explicit density choices still win.
- Masonry layout shows 4 columns at ≥1600px (was 3).
v1.2.0 - Compact Layout & PWA features
Release v1.2.0 adds a brand-new interface customization setting: Compact Mode. It scales down relative font sizes globally to 15px, reduces paddings and margins for dashboard pages, cards, rows, and widgets, and arranges the Monitor widget rows into a highly dense 2-column grid layout on both desktop and mobile viewports. The mobile header has been redesigned to hide time and theme selectors for optimal screen space usage. Modals are now mounted to document.body via a portal action to prevent stacking context clipping. Finally, a Service Worker dynamic cache strategy has been implemented to enable PWA support for offline caching and load acceleration.