Changelog

What changed, release by release

Every release since 3 July 2026, in the terms a user would notice. Currently v0.8.7.

v0.8.7Latest

27 September 2026

  • YouTube starts faster and plays at the requested quality. Browse cards, filters and player controls now match the rest of Opal; cancellation remains responsive while a stream resolves, 1080p is preferred, and quality changes switch immediately without exposing unavailable formats.
  • Every browse surface is smoother and more resilient. Movies, TV, anime, Asian drama, audio, reading, live TV and connected libraries share bounded paging, responsive cards, cover placeholders and reliable cached fetches. Temporary provider failures keep existing content and offer recovery instead of presenting an empty library.
  • The player stays responsive under demanding video and torrent workloads. Frame buffers and render targets are reused, redundant redraws are coalesced, torrent range seeks prioritize the requested pieces, and fallback streams are tried without blocking the controls.
  • Home and season pages use the available window. Continue items preserve privacy until hover, artwork is restored, compact sections fit more content, and episode lists scroll independently inside an immersive season view.
  • Remote access and account management are dependable. Web UI registration, password changes, scoped administration, card actions, keyboard navigation and screen reader behavior now work through the complete native-to-web flow.
  • Arch and Omarchy gain a direct Pacman package. Releases now include a checksum-covered .pkg.tar.zst alongside the AUR source and binary packages, .deb, .rpm, AppImage, self-extracting Linux installer, macOS app and DMG, Windows MSI and portable zip, and both browser extensions.

v0.8.6

24 September 2026

  • The Linux AppImage opens on Arch again. Packaging keeps the bundled libtorrent runtime but uses the host's OpenSSL pair alongside host libcurl, avoiding the older bundled OpenSSL symbol mismatch. Release verification checks the extracted libraries and starts the packaged app.
  • First launch is optional and usable in short windows. A centered welcome dialog offers keyless Movies & TV browsing or Home, with one optional starter source install action; it stays reachable after a window resize.
  • Movies & TV is easier to browse. Poster cards remain readable instead of collapsing into tiny columns, the icon toolbar stays aligned and scrolls on narrow windows, and card actions and Details remain reachable while scrolling. Source and More menus close after selecting a destination.
  • Universal results are denser without hiding actions. Long titles wrap, torrent quality and seed counts appear once, trailers are grouped separately, and the Play and Queue controls remain visible. Adding a torrent to the queue no longer starts playback.
  • Deleting a playing torrent clears the player. Stopping the stream cancels pending reads and clears its last frame before removing downloaded files; the empty player offers a local file picker or universal search.
  • Windows playback controls fit scaled displays. The native titlebar hitboxes follow DPI scaling, compact navigation stays accessible, and an optional VLC handoff is available under Playback settings.
  • Source installation explains progress and failures. Its current stage, final status, redacted logs, and recovery steps are visible in the catalog.
  • Cinemeta poster artwork loads from full image URLs. Movies & TV no longer truncates long cover URLs, including those in Thor searches.

v0.8.5

14 September 2026

Releaser: Palash Debnath

  • Files open like a media player should. Opal presents a finished first frame instead of exposing the startup shell, overlaps safe initialization, prepares libmpv early, and keeps local-file loading off unrelated database, model and network work. Measured Windows ReleaseFast baselines are 171 ms startup p95 and 121 ms local-video first-frame p95.
  • Now Playing is an immersive, responsive surface. Video occupies the full client area while glass controls and navigation float above it, remain legible over bright scenes, hide smoothly when idle, and avoid overlapping close actions. Back, Settings, Close and track pickers respond on the first click; outside clicks dismiss popovers without consuming the intended action.
  • Windows behavior is native again. The custom title bar exposes caption hit testing, resize borders, maximize/restore behavior and Aero Snap while preserving drag from safe background regions. File and magnet associations now cover the common video, audio, playlist and torrent formats.
  • Playback choices survive the next file and restart. Aspect mode, speed, hardware decoding, audio/subtitle language and track choices are restored safely. Direct, playlist, queue and torrent playback have explicit ownership, actionable pre-playback fallback, and honest hardware-decoder feedback.
  • The omnibox finally adapts to intent. Links and paths open, normal text searches the visible source or universal catalog, ? recalls local memory, and > or a question invokes the assistant. Slow semantic recall runs in a generation-safe worker instead of freezing the interface, and Browse uses a compact grouped source menu.
  • Queues, torrents and self-hosted libraries recover cleanly. Queue order, repeat/shuffle and cold-start actions are durable; torrent opens wait for the engine without needing a second click and restart from privacy-safe swarm identity plus bounded fast-resume data. Jellyfin, Plex and Audiobookshelf regain authenticated resume, alternate-version recovery and non-blocking progress reporting.
  • Credentials and helpers are safer. Windows secrets use current-user DPAPI with legacy migration, credential-bearing playback URLs are scrubbed from persistent identity, and yt-dlp/model downloads are explicit, HTTPS-only, checksum-aware staged updates that cannot replace a working helper on a bad download.
  • The release has measurable gates. Startup, playback, close and resource probes are checked alongside Zig unit tests, web lifecycle tests and 442 whole-product feature checks using an isolated generated database fixture.

v0.8.1

10 September 2026

  • YouTube plays on Windows again, and picks the right stream. The bundled yt-dlp path never reached mpv (a malformed option made mpv drop it), so YouTube links failed unless a system yt-dlp happened to be on PATH. Fixed. HDR uploads now play their SDR rendition — the correct picture on Opal's 8-bit render path, ~20% less bandwidth, and 4K60 at a steady 60 fps.
  • 4K HDR files play smoothly. Video is rendered on a per-player worker thread and uploaded in place into a persistent texture, and HDR sources no longer rebuild mpv's scaler every frame. A 4K Dolby Vision file that ran at ~4 fps now holds its native rate.
  • Works with Ubuntu 22.04's mpv 0.34. Playback no longer hangs on "Opening stream" on libmpv older than 0.38; a rejected load is now reported in the log and as a toast instead of silently. Minimum versions (libmpv, SDL, glibc for the AppImage) are documented in the README.
  • Pair a phone with one scan. Settings › Web UI shows a QR code of the LAN address (carrying the one-time setup code on first use) when the server is bound to your LAN, plus a README walkthrough.
  • opal <file-or-url> opens the file again on the desktop build.
  • Movies/TV catalog search is always visible, and "Find" is now "Search".

v0.8.0

5 September 2026

  • TV browsing fits small and short windows. Episode thumbnails, titles, descriptions and controls adapt to available space, with a single page scroller and a themed, scrollable season picker. Selecting a season dismisses the menu; Retry can recover a failed season fetch.
  • Continue watching shows episodes, not raw filenames. Home offers one landscape card per tracked show, episode artwork when available, and an exact next-episode action. Keyless episode metadata works after restarting too.
  • Navigation is compact and search is unified. The source picker sits by the logo, and one field handles questions, searches and pasted links. Narrow windows retain navigation and wrap their controls.
  • Episode startup and tracking are more reliable. Playback enters its loading state promptly, tries bounded fallback sources, selects the requested torrent episode, and tracks actual viewing rather than counting seeks as watched time. Large season libraries and specials retain their identities.
  • Restore your session with confirmation. Closing saves playback position and episode identity; reopening asks before restoring playback.
  • Update checks and Linux packaging are hardened. Update work uses bounded, cancellable processes and synchronized state; subprocesses inherit the environment, and Linux .run packages include required runtime resources.

v0.7.0

5 September 2026

  • Closing Opal is immediate and final, even during active playback. Native window close, Ctrl+W, and Ctrl+Q now share one bounded teardown path; playback stops before the surface disappears, raw SDL/Wayland close events cannot leave a windowless stream behind, and stuck workers cannot keep the process alive indefinitely.
  • Background work no longer races the UI during shutdown. Resolver, search, poster, HTTP, and stream-proxy work receives cancellation before teardown, UI refreshes carry the real window, and the worker supervisor drains owned tasks before shared state is released.
  • Linux AppImages launch through an explicit runtime entry point. The release pipeline now packages the expected AppRun launcher and validates the resulting image, alongside the existing tarball, DEB, RPM, and .run formats.
  • The keyless Movies & TV flow is documented end to end. A new guide shows how Cinemeta browsing, search, posters, and TV season/episode navigation work without a TMDB key, with clearer privacy and provider-boundary documentation.

v0.6.6

28 August 2026

  • Movies and TV now work without a catalog API key. The built-in Cinemeta feed supplies trending, popular, top-rated, genre-filtered and searched cards, while TMDB remains an optional metadata upgrade rather than a setup requirement.
  • TV cards open a real season and episode browser in keyless mode. Series metadata, episode names, summaries, dates and thumbnails flow into the same desktop and web drill-down used by TMDB-backed shows.
  • Poster loading is reliable again. Absolute Metahub artwork is accepted by the guarded proxy, and WebP-only poster responses are requested through a decoder-compatible JPEG endpoint instead of becoming permanent placeholders.
  • Browse behaves properly from phones to ultrawide desktops. Navigation no longer disappears during resize, Movies & TV gains compact filters and live search, cards adapt to available space, and the source menu follows the active theme instead of opening a bright white popup.
  • The Web UI is safer under hostile and concurrent input. Text and HTML attributes use separate encoders, session and API response boundaries are hardened, and a real Chromium test proves provider markup cannot reach the live DOM.
  • Background work has clearer ownership. Critical workers are supervised through shutdown, remote writes release player state first, and Podcast and Jellyfin readers publish immutable snapshots instead of racing live state.
  • Linux setup and display defaults are friendlier. The installer is rootless by default, HiDPI scaling respects the whole panel, and font metrics no longer clip titles on Linux.
  • Release and project pages are easier to trust and navigate. Download and playback paths received additional validation, and the website now exposes crawlable changelog, comparison and SEO pages.

v0.6.5

11 August 2026

  • Torrent search works from the desktop app again. Python's process pool crashed when nova2 was launched through Zig's child runtime, so every installed torrent source appeared to return zero results. Opal's bounded search path now uses network threads, while the qBittorrent-compatible CLI keeps its process pool. A dedicated CI job executes this exact Zig-to-Python seam so it cannot silently regress.
  • Torrent files selected by hand start sooner and keep working. A chosen episode now gets the same head-first priority as the automatic pick, old buffer gates are released when switching files, and mpv no longer adds a second three-second startup buffer on top of Opal's readiness gate.
  • Startup and shutdown are safer. Background services and process watchers now have explicit lifetimes, responsive stop paths, and one owner for each child-process handle instead of detached workers racing teardown.
  • Windows title-bar behaviour is native again. Double-click maximizes and restores, maximize respects the current monitor's work area instead of covering the taskbar, and normal PowerShell builds locate their MSYS2 shell and toolchain without hand-editing PATH.
  • Windows releases can sign the whole payload. When Azure Artifact Signing is enabled, the pipeline signs every executable and DLL, verifies that none were missed, then signs the MSI itself—covering the modules Windows 11 Smart App Control evaluates, not only opal.exe.
  • Opal Connect 0.4 has a real setup flow and a useful side panel. It finds a local Opal, signs in or creates the first account without asking users to find a token file, and adds live torrents, downloads, recent searches, casting and watch-party controls, keyboard shortcuts, and the real Opal logo.
  • The new Opal website makes releases easier to install. The download flow exposes every published format, detects the visitor's platform, retains no-JavaScript links, and adds install help, screenshots, comparisons, search metadata, and a proper project home at opal.palash.dev.
  • Browser transcoding no longer takes Opal down. ffmpeg's stdout now has one close owner, eliminating the double-close that could panic the app or close an unrelated client socket during "Play here".

v0.6.4

6 August 2026

  • Torrents play a second time. The metadata cache rebuilt the info dict on write, which changed the info-hash, so every replay of an already-cached torrent stalled at 0%. It now stores the original bencoded info dict byte-for-byte.
  • An unlimited download rate means unlimited. The setting wrote -1 to libtorrent, which reaches the bandwidth manager as a negative quota; and the rate field mixed KB/s with bytes/s, so a 4096 typed in Settings became 4 KB/s. Both fixed, with the conversion behind a tested pure function.
  • "Play here" in the browser transcodes instead of refusing. MKV, AVI, TS and H.265-in-MP4 releases now stream through ffmpeg as fragmented MP4. Only what nothing can play (a disc image) is still turned away.
  • The Watching page got its Play and Remove buttons back. They had been drawn past the bottom edge of their own card and clipped away — a card that carries both a progress bar and an action row is now sized for both.
  • Remove watched items one at a time, from Watching and from the Home "Jump back in" row.
  • Double-tap F for real fullscreen. It used to expand the player inside the window only; nothing had ever called SDL_SetWindowFullscreen.
  • The releases calendar backfills yesterday by paging the EZTV API, and buckets into three days instead of one.
  • Windows: the headless build compiles again.

v0.6.3

29 July 2026

  • Re-cut of v0.6.2 so Windows users get a build: v0.6.2's own ISA gate rejected the Windows exe over a single isolated instruction, which turned out to be a PE misdecode rather than real AVX-512 contamination. Same code otherwise.

v0.6.2

28 July 2026

  • Storage page: see what Opal actually stores and reclaim it.
  • Fixed the two bugs reported against the shipped release (#21, #22).
  • Windows and Linux portability: /tmp writes were silently dead on Windows, and every sidecar (Suwayomi included) now starts on both. Added a Windows CI smoke run so this stops regressing.
  • Upcoming sorts by popularity rather than release date.
  • Danger buttons no longer float over the Storage rows.

v0.6.1

26 July 2026

  • Windows: fixed the four bugs behind "crashes on almost anything" (#21).
  • Every HTTPS fetch works again — the HTTP client never loaded a CA bundle, so seeding the clock alone left TLS broken.
  • The arm64 Docker image builds and runs; IPTV reconnect was half-disabled.

v0.6.0

22 July 2026

  • Movies and TV work out of the box — default TMDB/OMDb keys ship with the release, no sign-up before the first search.
  • Accounts for the headless/web build: register and sign in from the web UI, with a session-aware bearer gate replacing the old pairing screen.
  • Web UI parity, tier 2: Comics, Novels, Drama, VNDB, Audiobookshelf, OPDS, Plex, Music, Radio, Live TV, YouTube, the AI copilot, and the Logs tab.
  • Headless deployment: Caddy TLS and Tailscale access profiles.
  • The browser extension is now Opal Connect, with cross-browser builds.

v0.5.0

21 July 2026

  • Live TV (iptv-org) as a first-class source in the Video group.
  • DPI-bypass proxy sidecar with a Settings toggle — reaches sources that a filtering ISP blocks; enabled on Windows too.
  • Browse's 15 sources fold into collapsible groups.
  • YouTube search and channel paging.

v0.4.1

18 July 2026

  • Windows: DPI scaling, the console window, plugins, and the custom title bar all fixed; the formula builds from source there.
  • Plex: a restored session loads its library again.
  • Loading a .torrent file no longer dead-ends in the web browser.

v0.4.0

17 July 2026

  • Comics, manga and novels at scale: Madara (~332 sites), MangaThemesia (~143), plus lightnovelwp/readwn engines (~120) — one framework per site family rather than one scraper per site.
  • Anime video extractors (MegaCloud/HiAnime, StreamWish, Dood, Mp4Upload …) hand off straight to mpv.
  • Anti-block fetching: source scrapers route through an anti-detect browser when they hit Cloudflare or a captcha.
  • Encrypted persistent content cache with stale-while-revalidate — cold start shows content immediately, then refreshes.
  • Opal Connect, a cross-browser extension: play/read/download/scrape into the local app, and add the site you are on as a source.
  • Infinite scroll across drama/vndb/novels/jellyfin/plex/opds/audiobookshelf/radio.

v0.3.0

14 July 2026

  • Watching library — what you are part-way through, in one place.
  • Full-duplex voice mode with live partial transcripts.
  • Winamp-style audio visualizers, including mirrored gradient bars.
  • Torrent streaming starts in seconds instead of hanging.
  • The three download tabs merged into one list.
  • Paged onboarding tour, replayable from Settings.
  • The installer no longer needs Xcode.

v0.2.0

11 July 2026

  • Podcasts as a new media class — search, browse, stream, with cover art and now-playing metadata.
  • Internet radio via RadioBrowser, also a new media class.
  • More sources: Stremio addon pack, Knaben aggregator, NASA, Wikimedia Commons, Internet Archive audio.
  • OMDb ratings (IMDb / Rotten Tomatoes / Metacritic) on the detail view.
  • Keyless subtitle providers extended (Subdl, Stremio OpenSubtitles-v3).
  • Broad performance pass: virtualized grids, poster failure latches, cheaper per-frame polling.
  • Persisted Settings toggles now actually take effect.

v0.1.2

5 July 2026

  • Packaging and installer fixes on top of v0.1.1.

v0.1.1

4 July 2026

  • Keyless subtitles, end to end: several public engines, no API key, with a browsable UI and auto-download when a video has none.
  • Fixed the launch crash on opening a file (SQLite is now opened serialized).
  • Windows: resolved the issue #3 launch failure (MINGW64 CRT + DLL harvest).
  • macOS: the bundle is user-writable, so the Gatekeeper workaround no longer needs sudo.

v0.1.0

3 July 2026

First public release. A pure-Zig desktop media browser and AI copilot: chat-first home, search across many sources, TMDB-backed Movies & TV, an mpv-based player with resume, a voice-driven agentic console, and a one-command installer with checksums. Experimental Windows build (exe/zip/msi) alongside macOS and Linux.

Full commit history and downloadable builds live onGitHub releases.

Running an older build?

The install one-liner doubles as the updater and verifies checksums.

Get v0.8.7Release notes on GitHub