Skip to content

v0.7.8 — Account modal redesign, Jackett indexer & qBittorrent plugin contract

Choose a tag to compare

@Arediss Arediss released this 03 May 20:32

Highlights

A redesigned account modal Discord-style replaces the old avatar dropdown, ships a new account.section plugin hook, and unlocks the first official plugin built on it: qBittorrent Manager. Admins gain user-defined topbar shortcuts, a quick admin/back jump button, and a Jackett connector for indexer integrations.

Features

  • Discord-like account modal with plugin sections. The avatar dropdown is replaced by a full-screen AccountModal with a sidebar (avatar header → section list → logout) and a content pane that swaps between built-in sections (Account, Preferences) and plugin-contributed ones via the new account.section hook point. Plugins declare an icon, label and React component; built-ins and plugin entries merge in a single sorted list.
  • User-selectable avatar source. #169 — pick which connected provider (Plex, Jellyfin, Emby, …) supplies your avatar. The new AvatarEditor surfaces every provider image you're linked to and lets you swap on the fly without touching the file system.
  • Admin-defined custom topbar links. #167 — admins can publish arbitrary URL shortcuts to the home topbar (label, icon, URL, target). Useful for pinning Tautulli, Overseerr, your dashboard, or any service users should reach in one click — without writing a plugin.
  • Admin jump button + tooltip system. A discreet shield/home button now sits in every topbar (admin-gated) for one-click jumps between the user app and the admin panel — replacing the slower path through the avatar dropdown. Backed by a new shared Tooltip component with a 100ms fade (vs the browser's ~1.5s native delay), reused on the avatar cog and the notification bell.
  • Jackett indexer connector. New indexer service category with Jackett as its first member. The connection test uses the public-with-apikey Torznab caps endpoint so it works on Jackett instances locked behind an admin password (where /server/config requires a cookie session). API key passes via query (not X-Api-Key — Jackett doesn't honour that header).
  • Curated icon set expanded. DynamicIcon (used by plugin manifests for nav/admin tabs/widgets) gains 8 new icons: Coins, CreditCard, Gift, Crown, Award, Trophy, Gauge, Rocket — to cover subscription/achievements/stats plugin patterns. Unknown icons now log a one-time dev-mode console warning instead of silently falling back to Puzzle, and the available list is documented in docs/plugins.md.

Fixes

  • qBittorrent connection test no longer 403s. The qBittorrent provider used to hit /api/v2/app/version directly without first authenticating, surfacing a misleading HTTP_FORBIDDEN. It now performs the full /auth/login flow, captures the SID cookie, and reports typed errors on bad creds (AUTH_FAILED), IP ban after too many failed attempts (AUTH_BANNED) or missing session cookie (AUTH_NO_SESSION) instead of the bare HTTP code.
  • Admin-only plugins no longer reachable by URL. Any plugin shipping a frontend field was previously mountable at /p/<id> whether or not it published a nav contribution — admin-only plugins (subscription, qbittorrent-manager…) were therefore reachable by typing the URL even though their data routes were permission-gated. The /p/<id> route now refuses to mount any plugin that hasn't contributed to hookPoint='nav', falling back to plugin.not_found.

New plugin available

Oscarr-Plugin-qBittorrent v0.1.0 ships alongside this release. Discover it via Admin → Plugins → Discover once the registry update lands. Read-only torrent queue + bulk pause/resume/delete + magnet add, with cross-check against Sonarr/Radarr import history so seeds already in the library are flagged for safe cleanup.


Full changelog: v0.7.7...v0.7.8

Upgrading

docker pull ghcr.io/arediss/oscarr:0.7.8

or

docker pull ghcr.io/arediss/oscarr:latest