Commit graph

42 commits

Author SHA1 Message Date
KhooLy
f714205e85 debug: TEMP dump a screenshot ~3s into playback to isolate decode vs display 2026-06-18 21:34:27 +03:00
KhooLy
7036fc5332 fix: disable DWM blur-behind transparency while native player surface is visible 2026-06-18 21:34:27 +03:00
KhooLy
b2e4fc9da5 Revert "debug: TEMP clear to solid red instead of mpv render, to test if raw GL shows through compositor"
This reverts commit 024f17e512122ef343787fae500ead203d36c3d9.
2026-06-18 21:34:27 +03:00
KhooLy
4852594aec debug: TEMP clear to solid red instead of mpv render, to test if raw GL shows through compositor 2026-06-18 21:34:27 +03:00
KhooLy
183801cc81 fix: cast PFD_MAIN_PLANE to u8 to match iLayerType's field type 2026-06-18 21:34:27 +03:00
KhooLy
1357cc0459 fix: match mpv's own proven WGL pixel format and context creation exactly 2026-06-18 21:34:27 +03:00
KhooLy
79d0df4682 fix: request an alpha channel in the Windows player surface's pixel format 2026-06-18 21:34:27 +03:00
KhooLy
6c926821df debug: log the native player surface's render size 2026-06-18 21:34:27 +03:00
KhooLy
0badb831d0 fix: check mpv_render_context_render's return code instead of ignoring it 2026-06-18 21:34:27 +03:00
KhooLy
3e6c403882 fix: give Windows player surface install 20s instead of 5s before giving up 2026-06-18 21:34:27 +03:00
KhooLy
cabbb457ba fix: verify wglMakeCurrent succeeds before deleting the old GL context 2026-06-18 21:34:27 +03:00
KhooLy
2e1f3b8cfd fix: request a modern OpenGL 3.3 context on Windows instead of a bare legacy one 2026-06-18 21:34:27 +03:00
KhooLy
13e1ad20be debug: write mpv's internal log to a file for Windows crash diagnosis 2026-06-18 21:34:27 +03:00
KhooLy
063552a762 fix: prevent duplicate Windows player-surface install thread
A timed-out install() call left the original thread running and let a
later call spawn a second one, racing both over the same mpv render
context and segfaulting. install() is now single-flight per process.

Also gate release publishing on all three platform builds succeeding,
not just the first one to finish.
2026-06-18 21:34:27 +03:00
KhooLy
766593b70f
Create LICENSE 2026-06-18 21:02:49 +03:00
KhooLy
478769c350 chore: bump version to 0.1.9 2026-06-18 14:11:19 +03:00
KhooLy
41aa6e1a5d chore: bump version to 0.1.8 2026-06-18 13:59:30 +03:00
KhooLy
1444014b3a chore: point at mpv fork v0.41.0-gpu-next.9 (Windows osc fix) 2026-06-18 13:58:22 +03:00
KhooLy
2445f71b5b chore: bump version to 0.1.7, speed up release builds
Thin LTO instead of full LTO + codegen-units=1 for faster CI compiles.
2026-06-18 12:59:10 +03:00
KhooLy
26a7018948 fix: surface the real Windows error behind a libmpv load failure
libloading's Display for this error is hardcoded to "LoadLibraryExW
failed" and never includes the actual OS error, even though it's
captured internally via source(). Walks the error chain so a future
failure (if any) gives an actual diagnosable reason instead of a dead end.
2026-06-18 04:04:25 +03:00
KhooLy
83bddb129a chore: bump version to 0.1.6 2026-06-18 04:00:44 +03:00
KhooLy
32de8f727f fix: correct LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR constant value
Was 0x200 (actually LOAD_LIBRARY_SEARCH_APPLICATION_DIR's value, already
implied by DEFAULT_DIRS), not 0x100. The previous fix never actually told
Windows to search lib/ for mpv-2.dll's dependencies -- it was a no-op.
2026-06-18 04:00:18 +03:00
KhooLy
9e90ff0efe chore: bump version to 0.1.5 2026-06-18 03:09:54 +03:00
KhooLy
cffede0390 fix: load mpv-2.dll with search flags so it finds its own dependency DLLs
LoadLibraryW on Windows doesn't search a DLL's own directory for its
dependencies unless told to -- only the exe dir, System32, and PATH.
mpv-2.dll's ~110 dependency DLLs (ffmpeg, libplacebo, etc.) live next to
it in lib/, so every load failed despite all the files being present.
Confirmed via the new logging: "LoadLibraryExW failed" right before the
player surface install times out, which is what silently kicked users
back to the previous screen on every playback attempt.
2026-06-18 03:06:06 +03:00
KhooLy
e2b710e694 chore: bump version to 0.1.4 2026-06-18 02:14:55 +03:00
KhooLy
e7aedd796e feat: wire up file-based logging for the Windows player path
Release builds use windows_subsystem="windows" (no console) and there
was no logger backend registered at all -- every log::warn!/error! call
in the player code was silently dropped. Adds tauri-plugin-log writing
to the app's log dir, and logs every step of native player surface
setup, load attempts, and mpv end-file events so a real failure reason
is visible instead of just "it went back to the previous screen".
2026-06-18 02:14:13 +03:00
KhooLy
0e57892ab8 chore: bump version to 0.1.3 2026-06-18 01:29:41 +03:00
KhooLy
5dae8b3dc1 fix: detect Windows player EOF via mpv events instead of polled property
Polling eof-reached right after loadfile can read stale, and never
distinguished a real end-of-file from the stream simply failing to
open -- both looked like "silently kick back to the previous screen".
Drains mpv's actual event queue (MPV_EVENT_END_FILE) instead, and
surfaces the real error plus recent warn-level log lines when the
stream genuinely fails to open.
2026-06-18 01:24:21 +03:00
KhooLy
0c9a251db7 chore: bump version to 0.1.2 2026-06-18 00:36:32 +03:00
KhooLy
5b806dfad5 ci: bump libmpv fork tag to v0.41.0-gpu-next.8 2026-06-18 00:34:41 +03:00
KhooLy
7c3d46d9c6 chore: cache Linux apt packages to avoid re-downloading on every build
apt has no cache between runs; on a slow mirror day this turned into a
20+ minute step. Point apt's archive cache at $HOME (avoids permission
issues with the root-owned default path) and persist it via
actions/cache so a slow mirror only costs once.
2026-06-17 20:48:22 +03:00
KhooLy
5ca395dbbf fix: MutexGuard temporary outliving its borrow in report_swap call
if-let on a temporary lock guard without a trailing semicolon extends
the guard's drop scope past the enclosing block, so the State it
borrowed from gets dropped first -- E0597 on macOS/Windows.
2026-06-17 20:18:49 +03:00
KhooLy
11e6476c96 style: switch README badges to for-the-badge reference style 2026-06-17 20:12:53 +03:00
KhooLy
2037aaa7e8 fix: install libmpv's gpu-next runtime deps on the Linux build runner
The KhooLy/mpv fork's libmpv.so.2 links libass, libavfilter, and
libplacebo (needed for the gpu-next render path) -- none of which were
in the apt install list, so the post-fetch ldd check failed.
2026-06-17 20:11:33 +03:00
KhooLy
1b9020b1a2 fix: checkout the public fluxa-core repo, not the unused private name
fluxa-core is public now -- the workflow was pointing at a repo name
(KhooLy/FluxaCore) that never existed, gated behind a PAT secret that
was never set, which is why every release build job failed at checkout.
2026-06-17 20:06:13 +03:00
KhooLy
d99cb5c6f9 fix: harden OAuth flow, addon fetches, storage, and Nuvio key handling
- OAuth: generate and validate a state param across the Trakt/MAL/Simkl
  deep-link flow to close a login-CSRF gap (code was exchanged with no
  check that it came from a flow this app actually started).
- Add net_guard: resolves the host of any addon-supplied URL and refuses
  to fetch loopback/private/link-local/CGNAT addresses, applied to
  http_fetch_text, artwork prefetch, and offline downloads. Drop the
  now-unused localhost/ws CSP allowances.
- Encrypt storage_read/storage_write at rest (AES-256-GCM, key in a
  0600-permissioned file) instead of plaintext JSON, with transparent
  fallback for existing unencrypted files so upgrading doesn't lose data.
- Replace get_nuvio_config (handed the Supabase anon key straight to JS)
  with a nuvio_request proxy command -- Rust attaches the key and makes
  the call itself, so it never exists in webview-reachable memory.
2026-06-17 19:58:53 +03:00
KhooLy
ea1ff37ad4 docs: rewrite README to focus on the app itself 2026-06-17 19:33:17 +03:00
KhooLy
8ffe193ec8 feat: switch to gpu-next libmpv fork, fix player UI bugs, bump v0.1.1
- Render backend now sources prebuilt libmpv from KhooLy/mpv (gpu-next),
  fetched via src-tauri/fetch-libmpv.sh; video-sync switched to
  display-resample with vsync-paced render loops on all platforms.
- CI (build.yml) updated to fetch the fork instead of building/bundling
  mpv per-platform.
- Fix: next-episode auto-skip countdown kept ticking while paused.
- Fix: addon HTTP fetches had no timeout, so a hung (not just refused)
  connection could block the home feed load forever, leaving a blank
  screen with no error.
- Fix: Nuvio offline banner overlapped the player's top bar instead of
  pushing it down.
- Add F11 as a fullscreen toggle in the player, alongside F.
- Restyle Skip Intro/Outro button: flat surface instead of native
  button chrome bleeding through, icon, hover/focus state, progress bar.
2026-06-17 18:50:15 +03:00
KhooLy
abb18b37ea chore: replace logo PNGs with SVGs, add anilist/letterboxd/tmdb/mdblist/tomatoes assets 2026-06-17 01:03:05 +03:00
KhooLy
7963f7d0f3 chore: replace service logos with higher quality sources 2026-06-17 00:58:29 +03:00
KhooLy
86e06d191b fix: update signing pubkey and updater endpoint url 2026-06-17 00:50:24 +03:00
KhooLy
aaca1689c9 feat: initial release 2026-06-17 00:42:06 +03:00