Skip to content

v0.6.4

Latest

Choose a tag to compare

@github-actions github-actions released this 06 Aug 08:03

Highlights

  • 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.

Changes

Features

  • web — "Play here" transcodes instead of refusing (569f7db)
  • eztv — backfill yesterday by paging, and bucket into three days (83db14b)
  • home — remove watched items one at a time (d5f0095)
  • input — fullscreen needs a double-tap of F (e9363db)
  • web — fold the Setup page; pct hid the difference between slow and dead (d66bca3)
  • web — parity reaches 100%; lanIp never resolved outside a terminal (e978709)
  • web — close five parity gaps; plugin secrets were sent in URLs and lost (4fbfe3d)
  • web — desktop parity, in-browser playback, and access control (3730729)
  • resolver — route results through a sink; warm the next episode (ecef2f8)
  • sources — EZTV via its JSON API, sharing the Stremio IMDb lookup (bbb03df)
  • library — remove items from Watching (0b9806e)
  • browse — live search for Movies & TV (5221ce5)
  • player — opt-in prefetch, audio passthrough and exclusive output (56b8e80)
  • ui — command palette (Ctrl/Cmd+K), re-applied from the arch branch (cfa7e36)
  • player — picture presets with HDR-aware Auto on the transport bar (7c998fa)
  • scrape — carry POST through the anti-block path (394e72b)
  • search — show size and swarm on result rows; pre-warm the scrape browser (c78b51a)
  • ui — justify the window title — media name left, resource meters right (4362d25)
  • sources — Prowlarr as its own source, therarbg failover (071b389)
  • sources — live trackers, indexer failover, and a source upgrade path (14bc6eb)

Fixes

  • ui — the Watching page's Play and Remove controls had zero height (3749b4a)
  • ui — fullscreen only expanded the player, never the window (ab48305)
  • torrents — the metadata cache made a second play impossible (38761d2)
  • windows — headless build did not compile; a label returned a dead stack slice (57c56db)
  • torrents — proxy_url was a dead setting; first magnet after launch vanished (302a1d3)
  • web — a magnet sent to /api/load went to mpv, so no torrent ever played (b498c8b)
  • ui — settings labels named a path that does not exist on Windows (2bf558f)
  • windows — config lived in two trees; route every path through configDir() (8e0d82c)
  • ytdlp — "found" meant the file existed, not that it would run (8ad220d)
  • windows — HOME is unset there, so 40 code paths silently did nothing (25a6d3f)
  • dpi — the bypass proxy leaked one sidecar per restart, 57 of them (96e3c07)
  • transcode,web — reap the encoder via pipe close; forms + console noise (c8ec184)
  • web — repair broken page, add a JS syntax gate, silence favicon 401 (30a8d36)
  • web — rank search results by seeds, not by which engine answered first (f3b1a93)
  • ui,engines — two bugs found by driving the app as a user (24a63e3)
  • torrents — the wall fallback and the stall watchdog were both off by default (57047c7)
  • engines — eight engines hand-rolled their own fetch and bypassed everything (3846724)
  • sources — retired sources stayed installed and live; verify Prowlarr for real (728b62c)
  • engines — unbounded fetches hung the search; walls had no path at all (5cc7ef0)
  • engines — retrieve_url never retried, so flaky hosts always read as dead (f76f359)
  • engines — stray prints polluted the result stream; re-derive health table (0ea138d)
  • engines — therarbg parser aborted on one bad magnet; drop orphan piratebay (2273a05)
  • ci — smoke-windows was dying on a bare powershell (88b4dbb)
  • sources — drop two retired Stremio addons, correct the TorrentFunk domain (7a9e075)
  • ci — repair the smoke step, and prove the Windows AVX-512 hit was a misdecode (89de9ae)
Internal (9 commits — tests, refactors, CI, docs)
  • chore(release): 0.6.4 (3731c8c)
  • test(build): fail the gate on AI attribution in a commit (a5545df)
  • test(parity): the desktop⇄web number was hand-maintained, so it read high (4245695)
  • test(web): verify torrent per-file streaming end to end (d105d62)
  • refactor(resolver): extract resolveImdbId so EZTV can share it (c9d7994)
  • ci: smoke-windows is blocking now that it passes (e680f6f)
  • ci(windows): assert the CIM kill from a native pwsh step (fedb3c9)
  • ci: keep the smoke trace on, and stop guessing where powershell lives (0ce173f)
  • ci: trace the smoke step and simplify DLL staging (8f7b187)

Install: curl -fsSL https://raw.githubusercontent.com/debpalash/Opal/main/scripts/install.sh | sh
Verify a download against SHA256SUMS.txt below.

Full Changelog: v0.6.3...v0.6.4