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
-1to
libtorrent, which reaches the bandwidth manager as a negative quota; and the
rate field mixed KB/s with bytes/s, so a4096typed 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
Ffor real fullscreen. It used to expand the player inside
the window only; nothing had ever calledSDL_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