Commit Graph

  • ca490c34ec docs(traceability): regenerate matrix for the native-video requirements dtourolleandClaude Opus 5 2026-08-11 20:39:44 +02:00
  • e144e62b31 feat(player): render Android video natively behind a transparent webview (DR-150, DR-151, DR-152) dtourolleandClaude Opus 5 2026-08-11 20:34:24 +02:00
  • 07d10dfed7 docs(traceability): land the DR-149 requirement rows and settle a UT collision v0.4.8 dtourolle 2026-08-11 20:11:22 +02:00
  • acddcdd6fa fix(playback): force a transcode when the webview cannot decode the audio (DR-149, 0.4.8) dtourolle 2026-08-11 20:07:11 +02:00
  • 6a712c46cb fix(player): send subtitle tracks to ExoPlayer on Android (UR-020) dtourolle 2026-08-11 20:03:19 +02:00
  • 211792947d fix(player): render subtitle tracks on the Linux HTML5 path (UR-020) dtourolle 2026-08-11 19:25:39 +02:00
  • 2c3955914e fix(playback): advertise only webview-decodable audio for video (DR-148, 0.4.7) dtourolle 2026-08-11 19:13:46 +02:00
  • 1b70926c36 feat(offline): play downloaded video, and drain the offline sync queue (0.4.6) v0.4.6 dtourolle 2026-08-09 16:38:07 +02:00
  • 7b531a40be fix(player): pick a decodable track in the no-audio fallback (DR-146) dtourolle 2026-08-09 15:07:18 +02:00
  • 19bc265a8d fix(player): do not start a video before audio focus is granted (DR-145) dtourolle 2026-08-09 15:06:49 +02:00
  • cc7f1cece0 fix(player): play downloaded video offline (DR-133, DR-134) dtourolle 2026-08-09 15:05:16 +02:00
  • a53042fe80 fix(playback): bound the device profile by the audio route's channels (DR-141) dtourolle 2026-08-09 15:01:57 +02:00
  • db520c6551 fix(playback): stop pinning the video stream as the audio track (DR-140) dtourolle 2026-08-09 14:47:03 +02:00
  • 1ef6180776 chore(release): bump to 0.4.1 v0.4.1 dtourolle 2026-08-05 12:31:16 +02:00
  • 878ac5fa59 fix(player): make lockscreen transport reach background audio (DR-097) dtourolle 2026-08-05 12:26:25 +02:00
  • 6aaa80ff92 chore(release): bump to 0.4.0 v0.4.0 dtourolle 2026-08-04 20:22:01 +02:00
  • f7bcfe521d fix(favorites): save server favourites through to the cache (DR-115) dtourolle 2026-08-04 20:20:36 +02:00
  • 30dc3ba7f6 fix(player): recover a failed stream on Linux instead of stopping (DR-130) dtourolle 2026-08-04 20:15:28 +02:00
  • 32f8de5c91 fix(player): survive a flaky stream, and don't read 0:00 at EOF dtourolle 2026-08-04 19:39:14 +02:00
  • 62873cab3d feat(search): answer search from a local index; tier downloads by lifetime dtourolle 2026-08-04 17:35:17 +02:00
  • c55ff45692 fix(android): clear the system bars and display cutout (UR-066) dtourolle 2026-08-04 14:45:10 +02:00
  • 58f2506966 feat(series): land on the current episode, not season 1 (UR-062, UR-063, UR-064) v0.3.0 dtourolle 2026-08-03 20:37:43 +02:00
  • a818fee297 fix(player): re-entering a video no longer opens the audio player (DR-100) dtourolle 2026-08-03 18:12:37 +02:00
  • a26a853f01 fix(player): advance background audio-only episodes in the backend (UR-040) v0.2.9 dtourolle 2026-08-02 18:10:18 +02:00
  • 9d099268b9 fix(player): make the video seek bar work by touch (DR-099) v0.2.8 dtourolle 2026-08-01 10:41:23 +02:00
  • e381d626c1 docs(requirements): UR-061/DR-092 no longer describe the removed deferral v0.2.7 dtourolle 2026-07-30 16:13:29 +02:00
  • b12e99b7e1 fix(player): keep double-tap seek working over the play overlay (DR-098) dtourolle 2026-07-30 15:44:38 +02:00
  • dc8b732465 fix(player): controls bar taps are not player gestures (DR-098) dtourolle 2026-07-30 15:27:01 +02:00
  • b98a530f48 fix(player): guard the play overlay against the synthesized touch click dtourolle 2026-07-30 15:10:59 +02:00
  • b565c4ae6f fix(player): tap gestures act immediately, no deferral timer (DR-098) dtourolle 2026-07-30 14:53:20 +02:00
  • 79e10d7485 chore(release): bump to 0.2.3 dtourolle 2026-07-30 13:56:04 +02:00
  • a2dbde5492 debug(player): log pause reason and flatten the debug tick dtourolle 2026-07-30 13:55:06 +02:00
  • 75cd07a5c0 fix(player): decide transport in Rust for webview media (DR-097) dtourolle 2026-07-30 13:54:41 +02:00
  • 64d07b8940 chore(release): bump to 0.2.2 dtourolle 2026-07-30 13:17:29 +02:00
  • 5b810f7fc3 build(android): add --device/--abi to build only the needed architecture dtourolle 2026-07-30 13:16:52 +02:00
  • 1ae213ff39 fix(player): stop AbortError storm from HLS stall recovery (DR-096) dtourolle 2026-07-30 12:55:49 +02:00
  • 98a6bca645 fix(player): clamp seeks inside media to stop end-of-stream pause loop (DR-095) dtourolle 2026-07-30 12:52:03 +02:00
  • 984e594006 chore(release): bump to 0.2.1 v0.2.1 dtourolle 2026-07-30 10:39:07 +02:00
  • f49e6e4648 fix(boundary): detect item-type arrays anywhere in src/ (DR-094) dtourolle 2026-07-30 10:30:55 +02:00
  • 105cc082ea fix(search): move scope→item-type taxonomy into Rust (UR-049, DR-063) dtourolle 2026-07-30 10:30:38 +02:00
  • 0a3ee0791f chore(scripts): remove three broken, orphaned traceability scripts dtourolle 2026-07-30 10:30:20 +02:00
  • 0da0a9f16c fix(ci): derive traceability denominators from requirements.md (DR-093) dtourolle 2026-07-30 10:30:08 +02:00
  • 75bae2556c docs(specs): design-principles audit — five remediation specs dtourolle 2026-07-30 10:29:54 +02:00
  • 48f63dd763 docs(spec): build provenance — git describe + build profile dtourolle 2026-07-28 23:19:34 +02:00
  • 36ef231e2f chore(release): bump to 0.2.0 v0.2.0 dtourolle 2026-07-28 23:08:05 +02:00
  • cb79a376b3 feat(android): implement audio settings (EQ, normalization, gapless) dtourolle 2026-07-28 23:03:31 +02:00
  • b11188e9dd docs(player): backend unification findings + correct false parity claims dtourolle 2026-07-28 23:03:17 +02:00
  • f636b6b151 Merge: Android WebView bridge + audio-focus fixes, tap gestures, sleep timer (v0.1.5) dtourolle 2026-07-28 01:33:58 +02:00
  • 37ffabee06 chore(release): bump to 0.1.5; regenerate traceability matrix v0.1.5 dtourolle 2026-07-28 01:33:20 +02:00
  • 13e0860401 fix(player): expired sleep timer stops without triggering autoplay dtourolle 2026-07-28 01:33:10 +02:00
  • d1c01a6bc3 feat(player): defer single tap so a double tap doesn't also toggle pause dtourolle 2026-07-28 01:33:04 +02:00
  • e5d3cc06f2 fix(android): register WebView JS bridges once; stop audio-focus fight dtourolle 2026-07-28 01:32:57 +02:00
  • 5759a97289 chore: ignore Arch packaging build artifacts v0.1.2 dtourolle 2026-07-25 15:53:10 +02:00
  • b9f026e215 chore(release): bump to 0.1.2 dtourolle 2026-07-25 15:21:51 +02:00
  • b7a7037194 docs: add UR-060 search relevance requirement; regenerate matrix dtourolle 2026-07-25 15:13:52 +02:00
  • 124da29fc7 fix(search): route the library header search to /search dtourolle 2026-07-25 15:13:45 +02:00
  • 5927299c0f feat(search): rank results by match quality and split TV/People groups dtourolle 2026-07-25 15:13:32 +02:00
  • 7650efcb7f fix(player): scale video to fill the player viewport dtourolle 2026-07-25 15:12:53 +02:00
  • 4b9350c949 chore(release): bump to 0.1.1 v0.1.1 dtourolle 2026-07-25 09:25:52 +02:00
  • d01c1216b8 docs: red-green rule for bug fixes; regenerate traceability matrix dtourolle 2026-07-25 09:21:22 +02:00
  • fb967433f0 fix(library): populate "More Episodes" for series without season folders dtourolle 2026-07-25 09:21:15 +02:00
  • ee584aced2 fix(autoplay): advance to the next episode in background audio mode dtourolle 2026-07-25 09:21:08 +02:00
  • eb76c96e94 feat(player): skipping an episode marks it watched, not paused dtourolle 2026-07-25 09:20:56 +02:00
  • c3ead64748 ci(release): build Windows NSIS installer on tag v0.1.0 dtourolle 2026-07-25 00:02:33 +02:00
  • 742ad88a29 feat(build): cross-platform desktop packaging; bump to 0.1.0 dtourolle 2026-07-24 23:49:50 +02:00
  • d4e2cd120c feat(player): webview audio backend for platforms without a native one dtourolle 2026-07-24 23:49:23 +02:00
  • c543f90ad3 feat(audio): graphic equalizer with presets and custom bands dtourolle 2026-07-24 23:49:13 +02:00
  • 589f08b873 feat(home): tap opens detail, long-press plays from home cards dtourolle 2026-07-24 23:49:03 +02:00
  • e2c9d68311 docs(downloads): mark UR-055/056 Done; fix colliding UT ids dtourolle 2026-07-24 22:22:43 +02:00
  • 57b24f8c74 fix(offline): Downloaded browse groups by container and loads on large libraries dtourolle 2026-07-24 21:42:12 +02:00
  • 6391720d23 docs(offline): mark UR-052 offline-listing feature and its tests Done dtourolle 2026-07-24 21:41:57 +02:00
  • 90f03dd142 fix(player): show background-audio button on all Android video playback v0.0.18 dtourolle 2026-07-24 20:32:08 +02:00
  • 514e42fccb Merge branch 'frontend-domain-model' into ci-docs-publish-fix v0.0.17 dtourolle 2026-07-23 22:18:59 +02:00
  • 9b1c9b3c91 feat(settings): rework settings page; remove unused SkeletonLoader/StorageManagement dtourolle 2026-07-23 22:18:37 +02:00
  • 1780109fb1 domain: flip last missed catalog .type reader (movies page) to .kind dtourolle 2026-07-23 22:15:15 +02:00
  • 3a18ad060b domain: delete dead jellyfinFieldMapping; scope playbackUnits to session boundary (phase 4e) dtourolle 2026-07-23 22:13:54 +02:00
  • 1968c06172 domain: neutral StreamKind for media streams (phase 4d) dtourolle 2026-07-23 22:11:31 +02:00
  • ec8a7610f5 domain: player/reporting ticks -> milliseconds (phase 4c) dtourolle 2026-07-23 22:02:29 +02:00
  • 93d198ce21 domain: primaryImageTag -> imageId end-to-end (phase 4a/4b) dtourolle 2026-07-23 21:40:58 +02:00
  • 2b42b74912 domain: replace user-facing Jellyfin type badge with kind label (phase 3b) dtourolle 2026-07-23 21:31:51 +02:00
  • 7660a33dfc domain: catalog frontend off Jellyfin ticks -> milliseconds (phase 3a) dtourolle 2026-07-23 21:30:04 +02:00
  • 3e962a202c test: update playerVisibility fixtures to .kind (phase 2a) dtourolle 2026-07-23 21:16:42 +02:00
  • 43ddc5a889 domain: flip isVideoItem in player store to .kind (phase 2a completion) dtourolle 2026-07-23 21:14:45 +02:00
  • 772e9ca6d5 domain: flip catalog frontend off Jellyfin item-type strings (phase 2a) dtourolle 2026-07-23 21:12:20 +02:00
  • 55fa26377a domain: introduce provider-neutral media model (phase 1) dtourolle 2026-07-23 20:53:47 +02:00
  • f89b241ad6 docs: document frontend/backend boundary rule and spec workflow dtourolle 2026-07-23 20:04:54 +02:00
  • 8b028b6b60 docs: specs, requirements, ux-flows and traceability for new features dtourolle 2026-07-23 20:04:35 +02:00
  • dd9d4191f1 chore(ci): add frontend boundary tripwire script dtourolle 2026-07-23 20:04:35 +02:00
  • bacb9ca0bb docs(traces): tag episode focus view and library detail with TRACES dtourolle 2026-07-23 20:03:16 +02:00
  • cf9472f04f feat(chrome): shared account menu and global app header dtourolle 2026-07-23 20:03:12 +02:00
  • f25deba824 feat(downloads): browsable downloaded library with on-disk usage dtourolle 2026-07-23 20:02:55 +02:00
  • 8f4f651bac fix(offline): gate library listing to downloaded-only when offline (#10) dtourolle 2026-07-23 20:02:33 +02:00
  • c175378f38 feat(search): context-scoped search with filter chips and group order dtourolle 2026-07-23 20:02:15 +02:00
  • e083b53ee8 feat(downloads): WiFi-only network-type-aware download gating dtourolle 2026-07-23 20:02:07 +02:00
  • 8f8433eebe ci: remove superseded traceability workflow dtourolle 2026-07-23 19:17:40 +02:00
  • 6f057ad14a ci: fix Bad substitution in docs publish step dtourolle 2026-07-23 19:13:29 +02:00
  • bebe13eb62 ci: drop redundant setup-bun step that stalls Gitea runner v0.0.16 dtourolle 2026-07-23 09:45:07 +02:00
  • a8adbe25cc Merge pull request 'android-picture-in-picture' (#12) from android-picture-in-picture into master dtourolle 2026-07-22 20:29:04 +00:00
  • acf1bb200d fix resuming video playback after background audio only mode. dtourolle 2026-07-22 22:28:07 +02:00
  • 3fbf6afdbc Background-audio handoff for video + repository/player refactor dtourolle 2026-07-22 21:52:07 +02:00