diff --git a/docs/requirements.md b/docs/requirements.md index 63fb1a33..31a93a5c 100644 --- a/docs/requirements.md +++ b/docs/requirements.md @@ -737,7 +737,8 @@ Internal architecture, components, and application logic. | UT-211 | The background decision: a video with the toggle off pauses (the reported defect, where the media service kept playing regardless), a video with it on hands off to audio, music keeps playing whatever the toggle says because it has no picture to lose, picture-in-picture keeps playing in every combination since the window is still visible, and the answer does not vary by renderer | DR-224 | Done | | UT-212 | The stream-selection contract. `Transport` and `PlaybackKind` each serialise to exactly the tag the frontend matches (`{"type":"hls"}`, `{"type":"directPlay"}`, …) and round-trip; nested `StreamSelection` fields are camelCase on the wire including `playbackKind`, `mediaSourceId` and `maxBitrate`; only `Transcode` counts as transcoding, so a direct stream does not; a local file is a direct play over a local transport with no ladder. The ladder: every rung at or above a 1.12 Mbps source is marked redundant while the three that constrain it are not, `Original` is never marked for any bitrate including zero and unknown, an unreported source bitrate keeps all eight rungs offered, a 40 Mbps source marks none, and each option carries the ladder's own label and detail | DR-224, DR-226 | Done | | UT-213 | The direct-play negotiation, one test per branch, against `PlaybackInfo` fixtures whose shapes were all observed on a live server: a supported source direct-plays; a remuxable one direct-streams and reports itself as *not* transcoding; an unsupported codec transcodes; undecodable audio overrides the server's direct-play offer (silent picture is worse than a transcode); a pinned audio track forces a transcode; a ceiling below the source bitrate transcodes even though the codec is fine, and the ladder agrees that rung constrains it; direct play wins over direct stream when both are offered. Plus the ceiling: a per-playback override governs the stream being opened without disturbing the durable default the Settings screen shows, and dropping it returns to that default | DR-225, DR-227 | Done | -| UT-214 | The loader comes from the transport, never the URL. hls.js is attached for `hls` when available and the element's own loader when not; progressive and local files load directly; the element's `src` is emptied only when hls.js drives it. The two cases that fail against a substring check, and the reason the field exists: a `progressive` stream whose URL contains `.m3u8` is *not* given an HLS loader, and an `hls` stream whose URL contains no `.m3u8` *is*. Both failed against the pre-DR-224 implementation before the fix landed | DR-224 | Done | +| UT-214 | The loader comes from the transport, never the URL. hls.js is attached for `hls` when available and the element's own loader when not; progressive and local files load directly; the element's `src` is emptied only when hls.js drives it. The two cases that fail against a substring check, and the reason the field exists: a `progressive` stream whose URL contains `.m3u8` is *not* given an HLS loader, and an `hls` stream whose URL contains no `.m3u8` *is*. Both failed against the pre-DR-225 implementation before the fix landed | DR-224 | Done | +| UT-215 | Waiting for the repository rather than racing it: it resolves immediately when the session is already restored, resolves when the session arrives later (the race the player page lost on mount), still rejects when there genuinely is no session, unsubscribes once settled so a later store change cannot re-settle it, and leaves no armed timer to reject an already-resolved promise | DR-013 | Done | ### Integration Tests diff --git a/docs/traceability.md b/docs/traceability.md index 51420068..9526e8ec 100644 --- a/docs/traceability.md +++ b/docs/traceability.md @@ -1,11 +1,11 @@ # Code Traceability Matrix -**Generated:** 8/22/2026, 10:27:54 AM +**Generated:** 8/22/2026, 10:39:30 AM ## Summary -- **Total Files Scanned:** 393 -- **Total TRACES Found:** 1089 +- **Total Files Scanned:** 394 +- **Total TRACES Found:** 1093 - **Requirements Covered:** - User Requirements (UR): 79 - Integration Requirements (IR): 26 @@ -90,11 +90,11 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-006, JA-007, JA-008, JA-009, JA-010, - **File:** [`src/lib/stores/auth.ts`](../src/lib/stores/auth.ts#L6) - **Line:** 6 - **Context:** `Unknown` -- **File:** [`src/lib/stores/auth.ts`](../src/lib/stores/auth.ts#L276) - - **Line:** 276 +- **File:** [`src/lib/stores/auth.ts`](../src/lib/stores/auth.ts#L319) + - **Line:** 319 - **Context:** `Unknown` -- **File:** [`src/lib/stores/auth.ts`](../src/lib/stores/auth.ts#L303) - - **Line:** 303 +- **File:** [`src/lib/stores/auth.ts`](../src/lib/stores/auth.ts#L346) + - **Line:** 346 - **Context:** `Unknown` - **File:** [`src-tauri/src/commands/auth.rs`](../src-tauri/src/commands/auth.rs#L3) - **Line:** 3 @@ -160,11 +160,11 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-006, JA-007, JA-008, JA-009, JA-010, - **File:** [`src/lib/stores/auth.ts`](../src/lib/stores/auth.ts#L6) - **Line:** 6 - **Context:** `Unknown` -- **File:** [`src/lib/stores/auth.ts`](../src/lib/stores/auth.ts#L303) - - **Line:** 303 +- **File:** [`src/lib/stores/auth.ts`](../src/lib/stores/auth.ts#L346) + - **Line:** 346 - **Context:** `Unknown` -- **File:** [`src/lib/stores/auth.ts`](../src/lib/stores/auth.ts#L465) - - **Line:** 465 +- **File:** [`src/lib/stores/auth.ts`](../src/lib/stores/auth.ts#L508) + - **Line:** 508 - **Context:** `Unknown` - **File:** [`src-tauri/src/commands/auth.rs`](../src-tauri/src/commands/auth.rs#L3) - **Line:** 3 @@ -772,11 +772,20 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-006, JA-007, JA-008, JA-009, JA-010, ### DR-013 -**Locations:** 6 file(s) +**Locations:** 9 file(s) +- **File:** [`src/lib/stores/auth.ts`](../src/lib/stores/auth.ts#L81) + - **Line:** 81 + - **Context:** `Unknown` - **File:** [`src/lib/stores/connectivity.ts`](../src/lib/stores/connectivity.ts#L10) - **Line:** 10 - **Context:** `Unknown` +- **File:** [`src/lib/stores/auth.waitForRepository.test.ts`](../src/lib/stores/auth.waitForRepository.test.ts#L13) + - **Line:** 13 + - **Context:** `Unknown` +- **File:** [`src/routes/player/[id]/+page.svelte`](../src/routes/player/[id]/+page.svelte#L361) + - **Line:** 361 + - **Context:** `Unknown` - **File:** [`src-tauri/src/commands/storage/mod.rs`](../src-tauri/src/commands/storage/mod.rs#L3) - **Line:** 3 - **Context:** `Unknown` @@ -972,7 +981,7 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-006, JA-007, JA-008, JA-009, JA-010, ### DR-024 -**Locations:** 14 file(s) +**Locations:** 15 file(s) - **File:** [`src/lib/api/bindings.ts`](../src/lib/api/bindings.ts#L142) - **Line:** 142 @@ -992,6 +1001,9 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-006, JA-007, JA-008, JA-009, JA-010, - **File:** [`src/lib/components/player/VideoPlayer.svelte`](../src/lib/components/player/VideoPlayer.svelte#L383) - **Line:** 383 - **Context:** `Unknown` +- **File:** [`src/lib/components/player/VideoPlayer.svelte`](../src/lib/components/player/VideoPlayer.svelte#L2549) + - **Line:** 2549 + - **Context:** `Unknown` - **File:** [`src/lib/player/adapters/html5Adapter.ts`](../src/lib/player/adapters/html5Adapter.ts#L20) - **Line:** 20 - **Context:** `Unknown` @@ -3033,8 +3045,8 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-006, JA-007, JA-008, JA-009, JA-010, - **File:** [`src/lib/player/localSource.ts`](../src/lib/player/localSource.ts#L12) - **Line:** 12 - **Context:** `Unknown` -- **File:** [`src/routes/player/[id]/+page.svelte`](../src/routes/player/[id]/+page.svelte#L400) - - **Line:** 400 +- **File:** [`src/routes/player/[id]/+page.svelte`](../src/routes/player/[id]/+page.svelte#L405) + - **Line:** 405 - **Context:** `Unknown` - **File:** [`src-tauri/src/commands/player/mod.rs`](../src-tauri/src/commands/player/mod.rs#L546) - **Line:** 546 @@ -3315,8 +3327,8 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-006, JA-007, JA-008, JA-009, JA-010, - **File:** [`src/routes/player/[id]/+page.svelte`](../src/routes/player/[id]/+page.svelte#L328) - **Line:** 328 - **Context:** `Unknown` -- **File:** [`src/routes/player/[id]/+page.svelte`](../src/routes/player/[id]/+page.svelte#L400) - - **Line:** 400 +- **File:** [`src/routes/player/[id]/+page.svelte`](../src/routes/player/[id]/+page.svelte#L405) + - **Line:** 405 - **Context:** `Unknown` - **File:** [`src-tauri/src/commands/storage/mod.rs`](../src-tauri/src/commands/storage/mod.rs#L93) - **Line:** 93 @@ -3692,8 +3704,8 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-006, JA-007, JA-008, JA-009, JA-010, - **File:** [`src/lib/components/player/VideoPlayer.svelte`](../src/lib/components/player/VideoPlayer.svelte#L2403) - **Line:** 2403 - **Context:** `Unknown` -- **File:** [`src/lib/components/player/VideoPlayer.svelte`](../src/lib/components/player/VideoPlayer.svelte#L2886) - - **Line:** 2886 +- **File:** [`src/lib/components/player/VideoPlayer.svelte`](../src/lib/components/player/VideoPlayer.svelte#L2901) + - **Line:** 2901 - **Context:** `Unknown` - **File:** [`src/lib/player/index.ts`](../src/lib/player/index.ts#L202) - **Line:** 202 @@ -4239,11 +4251,11 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-006, JA-007, JA-008, JA-009, JA-010, - **File:** [`src/lib/player/adapters/html5Adapter.ts`](../src/lib/player/adapters/html5Adapter.ts#L215) - **Line:** 215 - **Context:** `Unknown` -- **File:** [`src/routes/player/[id]/+page.svelte`](../src/routes/player/[id]/+page.svelte#L436) - - **Line:** 436 +- **File:** [`src/routes/player/[id]/+page.svelte`](../src/routes/player/[id]/+page.svelte#L441) + - **Line:** 441 - **Context:** `Unknown` -- **File:** [`src/routes/player/[id]/+page.svelte`](../src/routes/player/[id]/+page.svelte#L660) - - **Line:** 660 +- **File:** [`src/routes/player/[id]/+page.svelte`](../src/routes/player/[id]/+page.svelte#L665) + - **Line:** 665 - **Context:** `Unknown` - **File:** [`src-tauri/src/commands/repository.rs`](../src-tauri/src/commands/repository.rs#L592) - **Line:** 592 @@ -4957,11 +4969,11 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-006, JA-007, JA-008, JA-009, JA-010, - **File:** [`src/routes/player/[id]/+page.svelte`](../src/routes/player/[id]/+page.svelte#L328) - **Line:** 328 - **Context:** `Unknown` -- **File:** [`src/routes/player/[id]/+page.svelte`](../src/routes/player/[id]/+page.svelte#L400) - - **Line:** 400 +- **File:** [`src/routes/player/[id]/+page.svelte`](../src/routes/player/[id]/+page.svelte#L405) + - **Line:** 405 - **Context:** `Unknown` -- **File:** [`src/routes/player/[id]/+page.svelte`](../src/routes/player/[id]/+page.svelte#L416) - - **Line:** 416 +- **File:** [`src/routes/player/[id]/+page.svelte`](../src/routes/player/[id]/+page.svelte#L421) + - **Line:** 421 - **Context:** `Unknown` - **File:** [`src-tauri/src/commands/player/mod.rs`](../src-tauri/src/commands/player/mod.rs#L190) - **Line:** 190 @@ -5144,11 +5156,11 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-006, JA-007, JA-008, JA-009, JA-010, - **File:** [`src/lib/components/player/VideoPlayer.svelte`](../src/lib/components/player/VideoPlayer.svelte#L2427) - **Line:** 2427 - **Context:** `Unknown` -- **File:** [`src/lib/components/player/VideoPlayer.svelte`](../src/lib/components/player/VideoPlayer.svelte#L2886) - - **Line:** 2886 +- **File:** [`src/lib/components/player/VideoPlayer.svelte`](../src/lib/components/player/VideoPlayer.svelte#L2901) + - **Line:** 2901 - **Context:** `Unknown` -- **File:** [`src/routes/player/[id]/+page.svelte`](../src/routes/player/[id]/+page.svelte#L416) - - **Line:** 416 +- **File:** [`src/routes/player/[id]/+page.svelte`](../src/routes/player/[id]/+page.svelte#L421) + - **Line:** 421 - **Context:** `Unknown` - **File:** [`src-tauri/src/commands/player/mod.rs`](../src-tauri/src/commands/player/mod.rs#L382) - **Line:** 382 @@ -5209,11 +5221,11 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-006, JA-007, JA-008, JA-009, JA-010, - **File:** [`src/lib/api/bindings.ts`](../src/lib/api/bindings.ts#L3410) - **Line:** 3410 - **Context:** `Unknown` -- **File:** [`src/lib/components/player/VideoPlayer.svelte`](../src/lib/components/player/VideoPlayer.svelte#L2913) - - **Line:** 2913 +- **File:** [`src/lib/components/player/VideoPlayer.svelte`](../src/lib/components/player/VideoPlayer.svelte#L2928) + - **Line:** 2928 - **Context:** `Unknown` -- **File:** [`src/routes/player/[id]/+page.svelte`](../src/routes/player/[id]/+page.svelte#L416) - - **Line:** 416 +- **File:** [`src/routes/player/[id]/+page.svelte`](../src/routes/player/[id]/+page.svelte#L421) + - **Line:** 421 - **Context:** `Unknown` - **File:** [`src-tauri/src/commands/repository.rs`](../src-tauri/src/commands/repository.rs#L621) - **Line:** 621 @@ -5848,7 +5860,7 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-006, JA-007, JA-008, JA-009, JA-010, ### UR-002 -**Locations:** 22 file(s) +**Locations:** 25 file(s) - **File:** [`src/lib/api/bindings.ts`](../src/lib/api/bindings.ts#L2902) - **Line:** 2902 @@ -5859,9 +5871,18 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-006, JA-007, JA-008, JA-009, JA-010, - **File:** [`src/lib/services/syncService.ts`](../src/lib/services/syncService.ts#L7) - **Line:** 7 - **Context:** `Unknown` +- **File:** [`src/lib/stores/auth.ts`](../src/lib/stores/auth.ts#L81) + - **Line:** 81 + - **Context:** `Unknown` - **File:** [`src/lib/stores/connectivity.ts`](../src/lib/stores/connectivity.ts#L10) - **Line:** 10 - **Context:** `Unknown` +- **File:** [`src/lib/stores/auth.waitForRepository.test.ts`](../src/lib/stores/auth.waitForRepository.test.ts#L13) + - **Line:** 13 + - **Context:** `Unknown` +- **File:** [`src/routes/player/[id]/+page.svelte`](../src/routes/player/[id]/+page.svelte#L361) + - **Line:** 361 + - **Context:** `Unknown` - **File:** [`src-tauri/src/commands/catalog.rs`](../src-tauri/src/commands/catalog.rs#L3) - **Line:** 3 - **Context:** `Unknown` @@ -6074,7 +6095,7 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-006, JA-007, JA-008, JA-009, JA-010, ### UR-004 -**Locations:** 79 file(s) +**Locations:** 81 file(s) - **File:** [`src/lib/api/repository-client.ts`](../src/lib/api/repository-client.ts#L235) - **Line:** 235 @@ -6154,17 +6175,23 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-006, JA-007, JA-008, JA-009, JA-010, - **File:** [`src/lib/stores/nativeVideo.ts`](../src/lib/stores/nativeVideo.ts#L73) - **Line:** 73 - **Context:** `Unknown` +- **File:** [`src/lib/stores/auth.waitForRepository.test.ts`](../src/lib/stores/auth.waitForRepository.test.ts#L13) + - **Line:** 13 + - **Context:** `Unknown` - **File:** [`src/lib/utils/nativeVideoLayers.test.ts`](../src/lib/utils/nativeVideoLayers.test.ts#L4) - **Line:** 4 - **Context:** `Unknown` - **File:** [`src/lib/utils/videoSurface.ts`](../src/lib/utils/videoSurface.ts#L4) - **Line:** 4 - **Context:** `Unknown` -- **File:** [`src/routes/player/[id]/+page.svelte`](../src/routes/player/[id]/+page.svelte#L436) - - **Line:** 436 +- **File:** [`src/routes/player/[id]/+page.svelte`](../src/routes/player/[id]/+page.svelte#L361) + - **Line:** 361 - **Context:** `Unknown` -- **File:** [`src/routes/player/[id]/+page.svelte`](../src/routes/player/[id]/+page.svelte#L660) - - **Line:** 660 +- **File:** [`src/routes/player/[id]/+page.svelte`](../src/routes/player/[id]/+page.svelte#L441) + - **Line:** 441 + - **Context:** `Unknown` +- **File:** [`src/routes/player/[id]/+page.svelte`](../src/routes/player/[id]/+page.svelte#L665) + - **Line:** 665 - **Context:** `Unknown` - **File:** [`src-tauri/src/commands/mod.rs`](../src-tauri/src/commands/mod.rs#L2) - **Line:** 2 @@ -6316,7 +6343,7 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-006, JA-007, JA-008, JA-009, JA-010, ### UR-005 -**Locations:** 104 file(s) +**Locations:** 105 file(s) - **File:** [`src/lib/api/bindings.ts`](../src/lib/api/bindings.ts#L192) - **Line:** 192 @@ -6378,6 +6405,9 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-006, JA-007, JA-008, JA-009, JA-010, - **File:** [`src/lib/components/player/VideoPlayer.svelte`](../src/lib/components/player/VideoPlayer.svelte#L1653) - **Line:** 1653 - **Context:** `Unknown` +- **File:** [`src/lib/components/player/VideoPlayer.svelte`](../src/lib/components/player/VideoPlayer.svelte#L2549) + - **Line:** 2549 + - **Context:** `Unknown` - **File:** [`src/lib/player/adapters/rustReportHost.ts`](../src/lib/player/adapters/rustReportHost.ts#L13) - **Line:** 13 - **Context:** `Unknown` @@ -6486,8 +6516,8 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-006, JA-007, JA-008, JA-009, JA-010, - **File:** [`src/lib/utils/layoutShell.ts`](../src/lib/utils/layoutShell.ts#L17) - **Line:** 17 - **Context:** `Unknown` -- **File:** [`src/routes/player/[id]/+page.svelte`](../src/routes/player/[id]/+page.svelte#L660) - - **Line:** 660 +- **File:** [`src/routes/player/[id]/+page.svelte`](../src/routes/player/[id]/+page.svelte#L665) + - **Line:** 665 - **Context:** `Unknown` - **File:** [`src-tauri/src/commands/conversions.rs`](../src-tauri/src/commands/conversions.rs#L3) - **Line:** 3 @@ -6718,11 +6748,11 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-006, JA-007, JA-008, JA-009, JA-010, - **File:** [`src/lib/stores/auth.ts`](../src/lib/stores/auth.ts#L6) - **Line:** 6 - **Context:** `Unknown` -- **File:** [`src/lib/stores/auth.ts`](../src/lib/stores/auth.ts#L276) - - **Line:** 276 +- **File:** [`src/lib/stores/auth.ts`](../src/lib/stores/auth.ts#L319) + - **Line:** 319 - **Context:** `Unknown` -- **File:** [`src/lib/stores/auth.ts`](../src/lib/stores/auth.ts#L303) - - **Line:** 303 +- **File:** [`src/lib/stores/auth.ts`](../src/lib/stores/auth.ts#L346) + - **Line:** 346 - **Context:** `Unknown` - **File:** [`src-tauri/src/commands/device.rs`](../src-tauri/src/commands/device.rs#L4) - **Line:** 4 @@ -6903,8 +6933,8 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-006, JA-007, JA-008, JA-009, JA-010, - **File:** [`src/lib/services/playerEvents.ts`](../src/lib/services/playerEvents.ts#L8) - **Line:** 8 - **Context:** `Unknown` -- **File:** [`src/routes/player/[id]/+page.svelte`](../src/routes/player/[id]/+page.svelte#L436) - - **Line:** 436 +- **File:** [`src/routes/player/[id]/+page.svelte`](../src/routes/player/[id]/+page.svelte#L441) + - **Line:** 441 - **Context:** `Unknown` - **File:** [`src-tauri/src/commands/mod.rs`](../src-tauri/src/commands/mod.rs#L2) - **Line:** 2 @@ -7123,8 +7153,8 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-006, JA-007, JA-008, JA-009, JA-010, - **File:** [`src/lib/player/adapters/types.ts`](../src/lib/player/adapters/types.ts#L16) - **Line:** 16 - **Context:** `Unknown` -- **File:** [`src/routes/player/[id]/+page.svelte`](../src/routes/player/[id]/+page.svelte#L660) - - **Line:** 660 +- **File:** [`src/routes/player/[id]/+page.svelte`](../src/routes/player/[id]/+page.svelte#L665) + - **Line:** 665 - **Context:** `Unknown` - **File:** [`src-tauri/src/commands/player/mod.rs`](../src-tauri/src/commands/player/mod.rs#L1) - **Line:** 1 @@ -7493,6 +7523,22 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-006, JA-007, JA-008, JA-009, JA-010, - **Line:** 8 - **Context:** `Unknown` +### IT-016 + +**Locations:** 1 file(s) + +- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L3026) + - **Line:** 3026 + - **Context:** `Unknown` + +### IT-017 + +**Locations:** 1 file(s) + +- **File:** [`src-tauri/src/commands/catalog.rs`](../src-tauri/src/commands/catalog.rs#L878) + - **Line:** 878 + - **Context:** `Unknown` + ### UT-003 **Locations:** 1 file(s) @@ -7693,14 +7739,6 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-006, JA-007, JA-008, JA-009, JA-010, **Locations:** 1 file(s) -- **File:** [`src-tauri/src/player/backend.rs`](../src-tauri/src/player/backend.rs#L251) - - **Line:** 251 - - **Context:** `Unknown` - -### UT-030 - -**Locations:** 1 file(s) - - **File:** [`src-tauri/src/player/backend.rs`](../src-tauri/src/player/backend.rs#L251) - **Line:** 251 - **Context:** `Unknown` @@ -8757,14 +8795,6 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-006, JA-007, JA-008, JA-009, JA-010, - **Line:** 4 - **Context:** `Unknown` -### UT-067 - -**Locations:** 1 file(s) - -- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L3026) - - **Line:** 3026 - - **Context:** `Unknown` - ### UT-071 **Locations:** 1 file(s) @@ -9003,34 +9033,6 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-006, JA-007, JA-008, JA-009, JA-010, - **Line:** 3869 - **Context:** `Unknown` -### UT-101 - -**Locations:** 4 file(s) - -- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L2014) - - **Line:** 2014 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L4370) - - **Line:** 4370 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L4405) - - **Line:** 4405 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/mod.rs`](../src-tauri/src/repository/mod.rs#L238) - - **Line:** 238 - - **Context:** `Unknown` - -### UT-102 - -**Locations:** 2 file(s) - -- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L688) - - **Line:** 688 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L4605) - - **Line:** 4605 - - **Context:** `Unknown` - ### UT-103 **Locations:** 6 file(s) @@ -9778,11 +9780,11 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-006, JA-007, JA-008, JA-009, JA-010, - **File:** [`src/lib/components/player/VideoPlayer.svelte`](../src/lib/components/player/VideoPlayer.svelte#L336) - **Line:** 336 - **Context:** `Unknown` -- **File:** [`src/lib/components/player/VideoPlayer.svelte`](../src/lib/components/player/VideoPlayer.svelte#L2886) - - **Line:** 2886 +- **File:** [`src/lib/components/player/VideoPlayer.svelte`](../src/lib/components/player/VideoPlayer.svelte#L2901) + - **Line:** 2901 - **Context:** `Unknown` -- **File:** [`src/routes/player/[id]/+page.svelte`](../src/routes/player/[id]/+page.svelte#L416) - - **Line:** 416 +- **File:** [`src/routes/player/[id]/+page.svelte`](../src/routes/player/[id]/+page.svelte#L421) + - **Line:** 421 - **Context:** `Unknown` - **File:** [`src-tauri/src/commands/player/mod.rs`](../src-tauri/src/commands/player/mod.rs#L395) - **Line:** 395 @@ -9985,8 +9987,8 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-006, JA-007, JA-008, JA-009, JA-010, - **File:** [`src/lib/components/player/VideoPlayer.svelte`](../src/lib/components/player/VideoPlayer.svelte#L2427) - **Line:** 2427 - **Context:** `Unknown` -- **File:** [`src/lib/components/player/VideoPlayer.svelte`](../src/lib/components/player/VideoPlayer.svelte#L2913) - - **Line:** 2913 +- **File:** [`src/lib/components/player/VideoPlayer.svelte`](../src/lib/components/player/VideoPlayer.svelte#L2928) + - **Line:** 2928 - **Context:** `Unknown` - **File:** [`src/lib/player/adapters/html5Adapter.ts`](../src/lib/player/adapters/html5Adapter.ts#L40) - **Line:** 40 @@ -10015,8 +10017,8 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-006, JA-007, JA-008, JA-009, JA-010, - **File:** [`src/routes/player/[id]/+page.svelte`](../src/routes/player/[id]/+page.svelte#L85) - **Line:** 85 - **Context:** `Unknown` -- **File:** [`src/routes/player/[id]/+page.svelte`](../src/routes/player/[id]/+page.svelte#L416) - - **Line:** 416 +- **File:** [`src/routes/player/[id]/+page.svelte`](../src/routes/player/[id]/+page.svelte#L421) + - **Line:** 421 - **Context:** `Unknown` - **File:** [`src-tauri/src/commands/player/mod.rs`](../src-tauri/src/commands/player/mod.rs#L190) - **Line:** 190 @@ -10259,51 +10261,20 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-006, JA-007, JA-008, JA-009, JA-010, - **Line:** 550 - **Context:** `Unknown` -### UT-111 +### UT-109 -**Locations:** 3 file(s) +**Locations:** 1 file(s) -- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L62) - - **Line:** 62 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L2548) - - **Line:** 2548 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L2588) - - **Line:** 2588 +- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L3306) + - **Line:** 3306 - **Context:** `Unknown` -### UT-112 +### UT-110 -**Locations:** 2 file(s) +**Locations:** 1 file(s) -- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L501) - - **Line:** 501 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L3253) - - **Line:** 3253 - - **Context:** `Unknown` - -### UT-113 - -**Locations:** 2 file(s) - -- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L276) - - **Line:** 276 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L3144) - - **Line:** 3144 - - **Context:** `Unknown` - -### UT-114 - -**Locations:** 2 file(s) - -- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L333) - - **Line:** 333 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L3087) - - **Line:** 3087 +- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L3362) + - **Line:** 3362 - **Context:** `Unknown` ### UT-116 @@ -10731,17 +10702,6 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-006, JA-007, JA-008, JA-009, JA-010, - **Line:** 3394 - **Context:** `Unknown` -### UT-171 - -**Locations:** 2 file(s) - -- **File:** [`src-tauri/src/commands/catalog.rs`](../src-tauri/src/commands/catalog.rs#L916) - - **Line:** 916 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/commands/catalog.rs`](../src-tauri/src/commands/catalog.rs#L957) - - **Line:** 957 - - **Context:** `Unknown` - ### UT-172 **Locations:** 3 file(s) @@ -10937,6 +10897,14 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-006, JA-007, JA-008, JA-009, JA-010, - **Line:** 2616 - **Context:** `Unknown` +### UT-208 + +**Locations:** 1 file(s) + +- **File:** [`src/lib/utils/updateCheck.test.ts`](../src/lib/utils/updateCheck.test.ts#L4) + - **Line:** 4 + - **Context:** `Unknown` + ### UT-209 **Locations:** 1 file(s) @@ -11036,172 +11004,6 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-006, JA-007, JA-008, JA-009, JA-010, - **Line:** 4413 - **Context:** `Unknown` -### UR-006 - -**Locations:** 8 file(s) - -- **File:** [`src-tauri/src/player/android/mod.rs`](../src-tauri/src/player/android/mod.rs#L438) - - **Line:** 438 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/player/android/mod.rs`](../src-tauri/src/player/android/mod.rs#L1123) - - **Line:** 1123 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/player/android/mod.rs`](../src-tauri/src/player/android/mod.rs#L1425) - - **Line:** 1425 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/player/seek.rs`](../src-tauri/src/player/seek.rs#L103) - - **Line:** 103 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/player/seek.rs`](../src-tauri/src/player/seek.rs#L135) - - **Line:** 135 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/player/mod.rs`](../src-tauri/src/player/mod.rs#L153) - - **Line:** 153 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/player/mod.rs`](../src-tauri/src/player/mod.rs#L175) - - **Line:** 175 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/lib.rs`](../src-tauri/src/lib.rs#L477) - - **Line:** 477 - - **Context:** `Unknown` - -### UR-014 - -**Locations:** 1 file(s) - -- **File:** [`src-tauri/src/commands/playlist.rs`](../src-tauri/src/commands/playlist.rs#L4) - - **Line:** 4 - - **Context:** `Unknown` - -### UR-022 - -**Locations:** 1 file(s) - -- **File:** [`src-tauri/src/commands/player/settings.rs`](../src-tauri/src/commands/player/settings.rs#L3) - - **Line:** 3 - - **Context:** `Unknown` - -### UR-031 - -**Locations:** 2 file(s) - -- **File:** [`src-tauri/src/commands/player/settings.rs`](../src-tauri/src/commands/player/settings.rs#L3) - - **Line:** 3 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/settings.rs`](../src-tauri/src/settings.rs#L1) - - **Line:** 1 - - **Context:** `Unknown` - -### UR-032 - -**Locations:** 7 file(s) - -- **File:** [`src-tauri/src/commands/player/settings.rs`](../src-tauri/src/commands/player/settings.rs#L3) - - **Line:** 3 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/player/android/mod.rs`](../src-tauri/src/player/android/mod.rs#L579) - - **Line:** 579 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/player/android/mod.rs`](../src-tauri/src/player/android/mod.rs#L617) - - **Line:** 617 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/settings.rs`](../src-tauri/src/settings.rs#L1) - - **Line:** 1 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/settings.rs`](../src-tauri/src/settings.rs#L383) - - **Line:** 383 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/settings.rs`](../src-tauri/src/settings.rs#L400) - - **Line:** 400 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/settings.rs`](../src-tauri/src/settings.rs#L424) - - **Line:** 424 - - **Context:** `Unknown` - -### UR-033 - -**Locations:** 12 file(s) - -- **File:** [`src-tauri/src/commands/player/settings.rs`](../src-tauri/src/commands/player/settings.rs#L3) - - **Line:** 3 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/player/android/mod.rs`](../src-tauri/src/player/android/mod.rs#L579) - - **Line:** 579 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/player/android/mod.rs`](../src-tauri/src/player/android/mod.rs#L617) - - **Line:** 617 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/player/mpv_backend.rs`](../src-tauri/src/player/mpv_backend.rs#L658) - - **Line:** 658 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/player/mpv_backend.rs`](../src-tauri/src/player/mpv_backend.rs#L712) - - **Line:** 712 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/player/mpv_backend.rs`](../src-tauri/src/player/mpv_backend.rs#L778) - - **Line:** 778 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/player/mpv_backend.rs`](../src-tauri/src/player/mpv_backend.rs#L788) - - **Line:** 788 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/player/mpv_backend.rs`](../src-tauri/src/player/mpv_backend.rs#L833) - - **Line:** 833 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/settings.rs`](../src-tauri/src/settings.rs#L1) - - **Line:** 1 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/settings.rs`](../src-tauri/src/settings.rs#L383) - - **Line:** 383 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/settings.rs`](../src-tauri/src/settings.rs#L400) - - **Line:** 400 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/settings.rs`](../src-tauri/src/settings.rs#L424) - - **Line:** 424 - - **Context:** `Unknown` - -### UR-038 - -**Locations:** 1 file(s) - -- **File:** [`src/routes/library/[id]/+page.svelte`](../src/routes/library/[id]/+page.svelte#L1) - - **Line:** 1 - - **Context:** `Unknown` - -### UR-042 - -**Locations:** 2 file(s) - -- **File:** [`src-tauri/src/auth/mod.rs`](../src-tauri/src/auth/mod.rs#L139) - - **Line:** 139 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/commands/auth.rs`](../src-tauri/src/commands/auth.rs#L3) - - **Line:** 3 - - **Context:** `Unknown` - -### UR-044 - -**Locations:** 1 file(s) - -- **File:** [`src-tauri/src/commands/download/pinning.rs`](../src-tauri/src/commands/download/pinning.rs#L3) - - **Line:** 3 - - **Context:** `Unknown` - -### UR-045 - -**Locations:** 1 file(s) - -- **File:** [`src-tauri/src/commands/download/smart_cache.rs`](../src-tauri/src/commands/download/smart_cache.rs#L3) - - **Line:** 3 - - **Context:** `Unknown` - -### UR-046 - -**Locations:** 1 file(s) - -- **File:** [`src-tauri/src/commands/player/remote.rs`](../src-tauri/src/commands/player/remote.rs#L3) - - **Line:** 3 - - **Context:** `Unknown` - ### UR-054 **Locations:** 7 file(s) @@ -11228,40 +11030,6 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-006, JA-007, JA-008, JA-009, JA-010, - **Line:** 26 - **Context:** `Unknown` -### UR-057 - -**Locations:** 1 file(s) - -- **File:** [`src/routes/settings/+page.svelte`](../src/routes/settings/+page.svelte#L1) - - **Line:** 1 - - **Context:** `Unknown` - -### UR-060 - -**Locations:** 7 file(s) - -- **File:** [`src/lib/utils/searchScope.ts`](../src/lib/utils/searchScope.ts#L149) - - **Line:** 149 - - **Context:** `export type SearchGroupId =` -- **File:** [`src/lib/utils/searchScope.ts`](../src/lib/utils/searchScope.ts#L215) - - **Line:** 215 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/commands/catalog.rs`](../src-tauri/src/commands/catalog.rs#L96) - - **Line:** 96 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/domain/search_rank.rs`](../src-tauri/src/domain/search_rank.rs#L106) - - **Line:** 106 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L333) - - **Line:** 333 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L3087) - - **Line:** 3087 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/storage/schema.rs`](../src-tauri/src/storage/schema.rs#L769) - - **Line:** 769 - - **Context:** `Unknown` - ### UR-061 **Locations:** 4 file(s) @@ -11354,8 +11122,8 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-006, JA-007, JA-008, JA-009, JA-010, - **File:** [`src/routes/player/[id]/+page.svelte`](../src/routes/player/[id]/+page.svelte#L328) - **Line:** 328 - **Context:** `Unknown` -- **File:** [`src/routes/player/[id]/+page.svelte`](../src/routes/player/[id]/+page.svelte#L400) - - **Line:** 400 +- **File:** [`src/routes/player/[id]/+page.svelte`](../src/routes/player/[id]/+page.svelte#L405) + - **Line:** 405 - **Context:** `Unknown` - **File:** [`src-tauri/src/commands/catalog.rs`](../src-tauri/src/commands/catalog.rs#L114) - **Line:** 114 @@ -11532,14 +11300,6 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-006, JA-007, JA-008, JA-009, JA-010, - **Line:** 11 - **Context:** `Unknown` -### UR-072 - -**Locations:** 1 file(s) - -- **File:** [`src/lib/utils/scrollContainer.ts`](../src/lib/utils/scrollContainer.ts#L23) - - **Line:** 23 - - **Context:** `Unknown` - ### UR-073 **Locations:** 6 file(s) @@ -11603,8 +11363,8 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-006, JA-007, JA-008, JA-009, JA-010, - **File:** [`src/lib/components/player/VideoPlayer.svelte`](../src/lib/components/player/VideoPlayer.svelte#L2427) - **Line:** 2427 - **Context:** `Unknown` -- **File:** [`src/lib/components/player/VideoPlayer.svelte`](../src/lib/components/player/VideoPlayer.svelte#L2886) - - **Line:** 2886 +- **File:** [`src/lib/components/player/VideoPlayer.svelte`](../src/lib/components/player/VideoPlayer.svelte#L2901) + - **Line:** 2901 - **Context:** `Unknown` - **File:** [`src/lib/player/adapters/html5Adapter.test.ts`](../src/lib/player/adapters/html5Adapter.test.ts#L274) - **Line:** 274 @@ -11766,6 +11526,806 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-006, JA-007, JA-008, JA-009, JA-010, - **Line:** 1492 - **Context:** `Unknown` +### UT-170 + +**Locations:** 8 file(s) + +- **File:** [`src/lib/api/bindings.ts`](../src/lib/api/bindings.ts#L903) + - **Line:** 903 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/commands/download/mod.rs`](../src-tauri/src/commands/download/mod.rs#L546) + - **Line:** 546 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/commands/download/mod.rs`](../src-tauri/src/commands/download/mod.rs#L679) + - **Line:** 679 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/commands/download/mod.rs`](../src-tauri/src/commands/download/mod.rs#L3238) + - **Line:** 3238 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/commands/download/mod.rs`](../src-tauri/src/commands/download/mod.rs#L3303) + - **Line:** 3303 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/commands/download/mod.rs`](../src-tauri/src/commands/download/mod.rs#L3334) + - **Line:** 3334 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/commands/download/mod.rs`](../src-tauri/src/commands/download/mod.rs#L3410) + - **Line:** 3410 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/commands/download/mod.rs`](../src-tauri/src/commands/download/mod.rs#L3437) + - **Line:** 3437 + - **Context:** `Unknown` + +### UR-076 + +**Locations:** 44 file(s) + +- **File:** [`src/lib/api/bindings.ts`](../src/lib/api/bindings.ts#L1127) + - **Line:** 1127 + - **Context:** `Unknown` +- **File:** [`src/lib/api/bindings.ts`](../src/lib/api/bindings.ts#L1139) + - **Line:** 1139 + - **Context:** `Unknown` +- **File:** [`src/lib/api/bindings.ts`](../src/lib/api/bindings.ts#L1157) + - **Line:** 1157 + - **Context:** `Unknown` +- **File:** [`src/lib/api/bindings.ts`](../src/lib/api/bindings.ts#L2264) + - **Line:** 2264 + - **Context:** `export type EqPreset = "flat" | "rock" | "pop" | "jazz" | "classical" ...` +- **File:** [`src/lib/api/bindings.ts`](../src/lib/api/bindings.ts#L2353) + - **Line:** 2353 + - **Context:** `Unknown` +- **File:** [`src/lib/components/library/GenericMediaListPage.svelte`](../src/lib/components/library/GenericMediaListPage.svelte#L125) + - **Line:** 125 + - **Context:** `Unknown` +- **File:** [`src/lib/stores/music.ts`](../src/lib/stores/music.ts#L106) + - **Line:** 106 + - **Context:** `Unknown` +- **File:** [`src/routes/settings/+page.svelte`](../src/routes/settings/+page.svelte#L1) + - **Line:** 1 + - **Context:** `Unknown` +- **File:** [`src/routes/settings/+page.svelte`](../src/routes/settings/+page.svelte#L105) + - **Line:** 105 + - **Context:** `Unknown` +- **File:** [`src/routes/settings/+page.svelte`](../src/routes/settings/+page.svelte#L201) + - **Line:** 201 + - **Context:** `Unknown` +- **File:** [`src/routes/settings/+page.svelte`](../src/routes/settings/+page.svelte#L220) + - **Line:** 220 + - **Context:** `Unknown` +- **File:** [`src/routes/settings/+page.svelte`](../src/routes/settings/+page.svelte#L596) + - **Line:** 596 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/commands/library.rs`](../src-tauri/src/commands/library.rs#L10) + - **Line:** 10 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/commands/library.rs`](../src-tauri/src/commands/library.rs#L47) + - **Line:** 47 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/commands/library.rs`](../src-tauri/src/commands/library.rs#L68) + - **Line:** 68 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/commands/library.rs`](../src-tauri/src/commands/library.rs#L83) + - **Line:** 83 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/commands/library.rs`](../src-tauri/src/commands/library.rs#L112) + - **Line:** 112 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/commands/library.rs`](../src-tauri/src/commands/library.rs#L184) + - **Line:** 184 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/commands/library.rs`](../src-tauri/src/commands/library.rs#L220) + - **Line:** 220 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/commands/library.rs`](../src-tauri/src/commands/library.rs#L274) + - **Line:** 274 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/commands/library.rs`](../src-tauri/src/commands/library.rs#L295) + - **Line:** 295 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/commands/library.rs`](../src-tauri/src/commands/library.rs#L307) + - **Line:** 307 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/exclusions.rs`](../src-tauri/src/repository/exclusions.rs#L22) + - **Line:** 22 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/exclusions.rs`](../src-tauri/src/repository/exclusions.rs#L34) + - **Line:** 34 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/exclusions.rs`](../src-tauri/src/repository/exclusions.rs#L48) + - **Line:** 48 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/exclusions.rs`](../src-tauri/src/repository/exclusions.rs#L63) + - **Line:** 63 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/exclusions.rs`](../src-tauri/src/repository/exclusions.rs#L87) + - **Line:** 87 + - **Context:** `/ pure function and can be tested without touching process state.` +- **File:** [`src-tauri/src/repository/exclusions.rs`](../src-tauri/src/repository/exclusions.rs#L123) + - **Line:** 123 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/exclusions.rs`](../src-tauri/src/repository/exclusions.rs#L191) + - **Line:** 191 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/exclusions.rs`](../src-tauri/src/repository/exclusions.rs#L203) + - **Line:** 203 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/exclusions.rs`](../src-tauri/src/repository/exclusions.rs#L232) + - **Line:** 232 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/exclusions.rs`](../src-tauri/src/repository/exclusions.rs#L275) + - **Line:** 275 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/exclusions.rs`](../src-tauri/src/repository/exclusions.rs#L293) + - **Line:** 293 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/exclusions.rs`](../src-tauri/src/repository/exclusions.rs#L316) + - **Line:** 316 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/exclusions.rs`](../src-tauri/src/repository/exclusions.rs#L334) + - **Line:** 334 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/hybrid.rs`](../src-tauri/src/repository/hybrid.rs#L182) + - **Line:** 182 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/hybrid.rs`](../src-tauri/src/repository/hybrid.rs#L283) + - **Line:** 283 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/hybrid.rs`](../src-tauri/src/repository/hybrid.rs#L381) + - **Line:** 381 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/hybrid.rs`](../src-tauri/src/repository/hybrid.rs#L426) + - **Line:** 426 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/hybrid.rs`](../src-tauri/src/repository/hybrid.rs#L544) + - **Line:** 544 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/hybrid.rs`](../src-tauri/src/repository/hybrid.rs#L629) + - **Line:** 629 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/settings.rs`](../src-tauri/src/settings.rs#L337) + - **Line:** 337 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/settings.rs`](../src-tauri/src/settings.rs#L357) + - **Line:** 357 + - **Context:** `impl LibrarySettings {` +- **File:** [`src-tauri/src/lib.rs`](../src-tauri/src/lib.rs#L1504) + - **Line:** 1504 + - **Context:** `Unknown` + +### UT-185 + +**Locations:** 2 file(s) + +- **File:** [`src/lib/components/player/VideoPlayer.nativeReveal.test.ts`](../src/lib/components/player/VideoPlayer.nativeReveal.test.ts#L16) + - **Line:** 16 + - **Context:** `Unknown` +- **File:** [`src/lib/components/player/VideoPlayer.svelte`](../src/lib/components/player/VideoPlayer.svelte#L608) + - **Line:** 608 + - **Context:** `Unknown` + +### UT-189 + +**Locations:** 1 file(s) + +- **File:** [`src/lib/components/player/VideoPlayer.svelte`](../src/lib/components/player/VideoPlayer.svelte#L1653) + - **Line:** 1653 + - **Context:** `Unknown` + +### UT-207 + +**Locations:** 2 file(s) + +- **File:** [`src/lib/components/home/heroRotation.test.ts`](../src/lib/components/home/heroRotation.test.ts#L1) + - **Line:** 1 + - **Context:** `Unknown` +- **File:** [`src/lib/components/home/heroRotation.ts`](../src/lib/components/home/heroRotation.ts#L8) + - **Line:** 8 + - **Context:** `Unknown` + +### UT-214 + +**Locations:** 4 file(s) + +- **File:** [`src/lib/components/player/VideoPlayer.svelte`](../src/lib/components/player/VideoPlayer.svelte#L657) + - **Line:** 657 + - **Context:** `Unknown` +- **File:** [`src/lib/player/streamTransport.test.ts`](../src/lib/player/streamTransport.test.ts#L4) + - **Line:** 4 + - **Context:** `Unknown` +- **File:** [`src/lib/player/streamTransport.ts`](../src/lib/player/streamTransport.ts#L7) + - **Line:** 7 + - **Context:** `Unknown` +- **File:** [`src/lib/player/streamTransport.ts`](../src/lib/player/streamTransport.ts#L61) + - **Line:** 61 + - **Context:** `Unknown` + +### UR-010 + +**Locations:** 16 file(s) + +- **File:** [`src/lib/components/sessions/CastButton.svelte`](../src/lib/components/sessions/CastButton.svelte#L1) + - **Line:** 1 + - **Context:** `Unknown` +- **File:** [`src/lib/components/sessions/RemoteControls.svelte`](../src/lib/components/sessions/RemoteControls.svelte#L1) + - **Line:** 1 + - **Context:** `Unknown` +- **File:** [`src/lib/components/sessions/SessionCard.svelte`](../src/lib/components/sessions/SessionCard.svelte#L1) + - **Line:** 1 + - **Context:** `Unknown` +- **File:** [`src/lib/components/sessions/SessionPickerModal.svelte`](../src/lib/components/sessions/SessionPickerModal.svelte#L1) + - **Line:** 1 + - **Context:** `Unknown` +- **File:** [`src/lib/components/sessions/SessionsList.svelte`](../src/lib/components/sessions/SessionsList.svelte#L1) + - **Line:** 1 + - **Context:** `Unknown` +- **File:** [`src/lib/stores/lmsSync.ts`](../src/lib/stores/lmsSync.ts#L12) + - **Line:** 12 + - **Context:** `Unknown` +- **File:** [`src/lib/stores/playbackMode.test.ts`](../src/lib/stores/playbackMode.test.ts#L2) + - **Line:** 2 + - **Context:** `Unknown` +- **File:** [`src/lib/stores/playbackMode.ts`](../src/lib/stores/playbackMode.ts#L9) + - **Line:** 9 + - **Context:** `Unknown` +- **File:** [`src/lib/stores/sessions.test.ts`](../src/lib/stores/sessions.test.ts#L2) + - **Line:** 2 + - **Context:** `Unknown` +- **File:** [`src/lib/stores/sessions.ts`](../src/lib/stores/sessions.ts#L2) + - **Line:** 2 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/commands/playback_mode.rs`](../src-tauri/src/commands/playback_mode.rs#L3) + - **Line:** 3 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/commands/player/remote.rs`](../src-tauri/src/commands/player/remote.rs#L3) + - **Line:** 3 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/commands/player/mod.rs`](../src-tauri/src/commands/player/mod.rs#L1) + - **Line:** 1 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/commands/sessions.rs`](../src-tauri/src/commands/sessions.rs#L1) + - **Line:** 1 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/playback_mode/mod.rs`](../src-tauri/src/playback_mode/mod.rs#L165) + - **Line:** 165 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/session_poller/mod.rs`](../src-tauri/src/session_poller/mod.rs#L6) + - **Line:** 6 + - **Context:** `Unknown` + +### UR-012 + +**Locations:** 21 file(s) + +- **File:** [`src/lib/services/imageCache.ts`](../src/lib/services/imageCache.ts#L50) + - **Line:** 50 + - **Context:** `Unknown` +- **File:** [`src/lib/stores/auth.test.ts`](../src/lib/stores/auth.test.ts#L4) + - **Line:** 4 + - **Context:** `Unknown` +- **File:** [`src/lib/stores/auth.ts`](../src/lib/stores/auth.ts#L6) + - **Line:** 6 + - **Context:** `Unknown` +- **File:** [`src/lib/stores/auth.ts`](../src/lib/stores/auth.ts#L346) + - **Line:** 346 + - **Context:** `Unknown` +- **File:** [`src/lib/stores/auth.ts`](../src/lib/stores/auth.ts#L508) + - **Line:** 508 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/android_context.rs`](../src-tauri/src/android_context.rs#L3) + - **Line:** 3 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/android_context.rs`](../src-tauri/src/android_context.rs#L80) + - **Line:** 80 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/android_context.rs`](../src-tauri/src/android_context.rs#L95) + - **Line:** 95 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/commands/mod.rs`](../src-tauri/src/commands/mod.rs#L2) + - **Line:** 2 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/commands/storage/mod.rs`](../src-tauri/src/commands/storage/mod.rs#L3) + - **Line:** 3 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/credentials.rs`](../src-tauri/src/credentials.rs#L10) + - **Line:** 10 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/credentials.rs`](../src-tauri/src/credentials.rs#L480) + - **Line:** 480 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/credentials.rs`](../src-tauri/src/credentials.rs#L905) + - **Line:** 905 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/credentials.rs`](../src-tauri/src/credentials.rs#L924) + - **Line:** 924 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/credentials.rs`](../src-tauri/src/credentials.rs#L941) + - **Line:** 941 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/storage/db_service.rs`](../src-tauri/src/storage/db_service.rs#L311) + - **Line:** 311 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/storage/mod.rs`](../src-tauri/src/storage/mod.rs#L157) + - **Line:** 157 + - **Context:** `pub fn file_size(&self) -> Option {` +- **File:** [`src-tauri/src/lib.rs`](../src-tauri/src/lib.rs#L625) + - **Line:** 625 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/lib.rs`](../src-tauri/src/lib.rs#L1126) + - **Line:** 1126 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/lib.rs`](../src-tauri/src/lib.rs#L1348) + - **Line:** 1348 + - **Context:** `Unknown` +- **File:** [`scripts/tauri-security-config.test.ts`](../scripts/tauri-security-config.test.ts#L11) + - **Line:** 11 + - **Context:** `Unknown` + +### UR-013 + +**Locations:** 2 file(s) + +- **File:** [`src/lib/stores/downloads.test.ts`](../src/lib/stores/downloads.test.ts#L2) + - **Line:** 2 + - **Context:** `Unknown` +- **File:** [`src/lib/stores/downloads.ts`](../src/lib/stores/downloads.ts#L2) + - **Line:** 2 + - **Context:** `Unknown` + +### UR-043 + +**Locations:** 2 file(s) + +- **File:** [`src/lib/stores/connectivity.ts`](../src/lib/stores/connectivity.ts#L10) + - **Line:** 10 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/commands/connectivity.rs`](../src-tauri/src/commands/connectivity.rs#L3) + - **Line:** 3 + - **Context:** `Unknown` + +### UR-059 + +**Locations:** 11 file(s) + +- **File:** [`src/lib/services/skipReporting.test.ts`](../src/lib/services/skipReporting.test.ts#L9) + - **Line:** 9 + - **Context:** `Unknown` +- **File:** [`src/lib/services/skipReporting.ts`](../src/lib/services/skipReporting.ts#L14) + - **Line:** 14 + - **Context:** `Unknown` +- **File:** [`src/lib/stores/continueWatchingFilter.test.ts`](../src/lib/stores/continueWatchingFilter.test.ts#L12) + - **Line:** 12 + - **Context:** `Unknown` +- **File:** [`src/lib/stores/continueWatchingFilter.ts`](../src/lib/stores/continueWatchingFilter.ts#L15) + - **Line:** 15 + - **Context:** `Unknown` +- **File:** [`src/lib/stores/continueWatchingFilter.ts`](../src/lib/stores/continueWatchingFilter.ts#L91) + - **Line:** 91 + - **Context:** `Unknown` +- **File:** [`src/lib/stores/home.ts`](../src/lib/stores/home.ts#L2) + - **Line:** 2 + - **Context:** `Unknown` +- **File:** [`src/lib/stores/tv.ts`](../src/lib/stores/tv.ts#L3) + - **Line:** 3 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/online.rs`](../src-tauri/src/repository/online.rs#L1306) + - **Line:** 1306 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/online.rs`](../src-tauri/src/repository/online.rs#L1791) + - **Line:** 1791 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/online.rs`](../src-tauri/src/repository/online.rs#L4016) + - **Line:** 4016 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/online.rs`](../src-tauri/src/repository/online.rs#L4037) + - **Line:** 4037 + - **Context:** `Unknown` + +### UT-192 + +**Locations:** 1 file(s) + +- **File:** [`src/lib/stores/continueWatchingFilter.test.ts`](../src/lib/stores/continueWatchingFilter.test.ts#L12) + - **Line:** 12 + - **Context:** `Unknown` + +### UT-215 + +**Locations:** 1 file(s) + +- **File:** [`src/lib/stores/auth.waitForRepository.test.ts`](../src/lib/stores/auth.waitForRepository.test.ts#L13) + - **Line:** 13 + - **Context:** `Unknown` + +### UR-006 + +**Locations:** 8 file(s) + +- **File:** [`src-tauri/src/player/android/mod.rs`](../src-tauri/src/player/android/mod.rs#L438) + - **Line:** 438 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/player/android/mod.rs`](../src-tauri/src/player/android/mod.rs#L1123) + - **Line:** 1123 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/player/android/mod.rs`](../src-tauri/src/player/android/mod.rs#L1425) + - **Line:** 1425 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/player/seek.rs`](../src-tauri/src/player/seek.rs#L103) + - **Line:** 103 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/player/seek.rs`](../src-tauri/src/player/seek.rs#L135) + - **Line:** 135 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/player/mod.rs`](../src-tauri/src/player/mod.rs#L153) + - **Line:** 153 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/player/mod.rs`](../src-tauri/src/player/mod.rs#L175) + - **Line:** 175 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/lib.rs`](../src-tauri/src/lib.rs#L477) + - **Line:** 477 + - **Context:** `Unknown` + +### UR-014 + +**Locations:** 1 file(s) + +- **File:** [`src-tauri/src/commands/playlist.rs`](../src-tauri/src/commands/playlist.rs#L4) + - **Line:** 4 + - **Context:** `Unknown` + +### UR-022 + +**Locations:** 1 file(s) + +- **File:** [`src-tauri/src/commands/player/settings.rs`](../src-tauri/src/commands/player/settings.rs#L3) + - **Line:** 3 + - **Context:** `Unknown` + +### UR-031 + +**Locations:** 2 file(s) + +- **File:** [`src-tauri/src/commands/player/settings.rs`](../src-tauri/src/commands/player/settings.rs#L3) + - **Line:** 3 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/settings.rs`](../src-tauri/src/settings.rs#L1) + - **Line:** 1 + - **Context:** `Unknown` + +### UR-032 + +**Locations:** 7 file(s) + +- **File:** [`src-tauri/src/commands/player/settings.rs`](../src-tauri/src/commands/player/settings.rs#L3) + - **Line:** 3 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/player/android/mod.rs`](../src-tauri/src/player/android/mod.rs#L579) + - **Line:** 579 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/player/android/mod.rs`](../src-tauri/src/player/android/mod.rs#L617) + - **Line:** 617 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/settings.rs`](../src-tauri/src/settings.rs#L1) + - **Line:** 1 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/settings.rs`](../src-tauri/src/settings.rs#L383) + - **Line:** 383 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/settings.rs`](../src-tauri/src/settings.rs#L400) + - **Line:** 400 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/settings.rs`](../src-tauri/src/settings.rs#L424) + - **Line:** 424 + - **Context:** `Unknown` + +### UR-033 + +**Locations:** 12 file(s) + +- **File:** [`src-tauri/src/commands/player/settings.rs`](../src-tauri/src/commands/player/settings.rs#L3) + - **Line:** 3 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/player/android/mod.rs`](../src-tauri/src/player/android/mod.rs#L579) + - **Line:** 579 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/player/android/mod.rs`](../src-tauri/src/player/android/mod.rs#L617) + - **Line:** 617 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/player/mpv_backend.rs`](../src-tauri/src/player/mpv_backend.rs#L658) + - **Line:** 658 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/player/mpv_backend.rs`](../src-tauri/src/player/mpv_backend.rs#L712) + - **Line:** 712 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/player/mpv_backend.rs`](../src-tauri/src/player/mpv_backend.rs#L778) + - **Line:** 778 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/player/mpv_backend.rs`](../src-tauri/src/player/mpv_backend.rs#L788) + - **Line:** 788 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/player/mpv_backend.rs`](../src-tauri/src/player/mpv_backend.rs#L833) + - **Line:** 833 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/settings.rs`](../src-tauri/src/settings.rs#L1) + - **Line:** 1 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/settings.rs`](../src-tauri/src/settings.rs#L383) + - **Line:** 383 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/settings.rs`](../src-tauri/src/settings.rs#L400) + - **Line:** 400 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/settings.rs`](../src-tauri/src/settings.rs#L424) + - **Line:** 424 + - **Context:** `Unknown` + +### UR-038 + +**Locations:** 1 file(s) + +- **File:** [`src/routes/library/[id]/+page.svelte`](../src/routes/library/[id]/+page.svelte#L1) + - **Line:** 1 + - **Context:** `Unknown` + +### UR-042 + +**Locations:** 2 file(s) + +- **File:** [`src-tauri/src/auth/mod.rs`](../src-tauri/src/auth/mod.rs#L139) + - **Line:** 139 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/commands/auth.rs`](../src-tauri/src/commands/auth.rs#L3) + - **Line:** 3 + - **Context:** `Unknown` + +### UR-044 + +**Locations:** 1 file(s) + +- **File:** [`src-tauri/src/commands/download/pinning.rs`](../src-tauri/src/commands/download/pinning.rs#L3) + - **Line:** 3 + - **Context:** `Unknown` + +### UR-045 + +**Locations:** 1 file(s) + +- **File:** [`src-tauri/src/commands/download/smart_cache.rs`](../src-tauri/src/commands/download/smart_cache.rs#L3) + - **Line:** 3 + - **Context:** `Unknown` + +### UR-046 + +**Locations:** 1 file(s) + +- **File:** [`src-tauri/src/commands/player/remote.rs`](../src-tauri/src/commands/player/remote.rs#L3) + - **Line:** 3 + - **Context:** `Unknown` + +### UR-057 + +**Locations:** 1 file(s) + +- **File:** [`src/routes/settings/+page.svelte`](../src/routes/settings/+page.svelte#L1) + - **Line:** 1 + - **Context:** `Unknown` + +### UR-060 + +**Locations:** 7 file(s) + +- **File:** [`src/lib/utils/searchScope.ts`](../src/lib/utils/searchScope.ts#L149) + - **Line:** 149 + - **Context:** `export type SearchGroupId =` +- **File:** [`src/lib/utils/searchScope.ts`](../src/lib/utils/searchScope.ts#L215) + - **Line:** 215 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/commands/catalog.rs`](../src-tauri/src/commands/catalog.rs#L96) + - **Line:** 96 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/domain/search_rank.rs`](../src-tauri/src/domain/search_rank.rs#L106) + - **Line:** 106 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L333) + - **Line:** 333 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L3087) + - **Line:** 3087 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/storage/schema.rs`](../src-tauri/src/storage/schema.rs#L769) + - **Line:** 769 + - **Context:** `Unknown` + +### UR-065 + +**Locations:** 25 file(s) + +- **File:** [`src-tauri/src/commands/catalog.rs`](../src-tauri/src/commands/catalog.rs#L96) + - **Line:** 96 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/commands/catalog.rs`](../src-tauri/src/commands/catalog.rs#L164) + - **Line:** 164 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/commands/catalog.rs`](../src-tauri/src/commands/catalog.rs#L281) + - **Line:** 281 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/commands/catalog.rs`](../src-tauri/src/commands/catalog.rs#L327) + - **Line:** 327 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/commands/catalog.rs`](../src-tauri/src/commands/catalog.rs#L764) + - **Line:** 764 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/commands/storage/people.rs`](../src-tauri/src/commands/storage/people.rs#L56) + - **Line:** 56 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/commands/repository.rs`](../src-tauri/src/commands/repository.rs#L51) + - **Line:** 51 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L62) + - **Line:** 62 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L276) + - **Line:** 276 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L333) + - **Line:** 333 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L501) + - **Line:** 501 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L1253) + - **Line:** 1253 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L2548) + - **Line:** 2548 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L2588) + - **Line:** 2588 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L3087) + - **Line:** 3087 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L3144) + - **Line:** 3144 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L3253) + - **Line:** 3253 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L3306) + - **Line:** 3306 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L3362) + - **Line:** 3362 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L4500) + - **Line:** 4500 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L4553) + - **Line:** 4553 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/hybrid.rs`](../src-tauri/src/repository/hybrid.rs#L64) + - **Line:** 64 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/storage/schema.rs`](../src-tauri/src/storage/schema.rs#L757) + - **Line:** 757 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/storage/schema.rs`](../src-tauri/src/storage/schema.rs#L769) + - **Line:** 769 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/lib.rs`](../src-tauri/src/lib.rs#L1618) + - **Line:** 1618 + - **Context:** `Unknown` + +### UR-069 + +**Locations:** 24 file(s) + +- **File:** [`src/routes/+layout.svelte`](../src/routes/+layout.svelte#L150) + - **Line:** 150 + - **Context:** `Unknown` +- **File:** [`src/routes/library/favorites/+page.svelte`](../src/routes/library/favorites/+page.svelte#L76) + - **Line:** 76 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/commands/favorites.rs`](../src-tauri/src/commands/favorites.rs#L12) + - **Line:** 12 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/commands/favorites.rs`](../src-tauri/src/commands/favorites.rs#L78) + - **Line:** 78 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/commands/favorites.rs`](../src-tauri/src/commands/favorites.rs#L142) + - **Line:** 142 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/commands/favorites.rs`](../src-tauri/src/commands/favorites.rs#L286) + - **Line:** 286 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/commands/favorites.rs`](../src-tauri/src/commands/favorites.rs#L320) + - **Line:** 320 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/commands/favorites.rs`](../src-tauri/src/commands/favorites.rs#L340) + - **Line:** 340 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/commands/favorites.rs`](../src-tauri/src/commands/favorites.rs#L356) + - **Line:** 356 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/commands/repository.rs`](../src-tauri/src/commands/repository.rs#L887) + - **Line:** 887 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/commands/repository.rs`](../src-tauri/src/commands/repository.rs#L893) + - **Line:** 893 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/commands/repository.rs`](../src-tauri/src/commands/repository.rs#L908) + - **Line:** 908 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/commands/repository.rs`](../src-tauri/src/commands/repository.rs#L1081) + - **Line:** 1081 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/commands/repository.rs`](../src-tauri/src/commands/repository.rs#L1106) + - **Line:** 1106 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L688) + - **Line:** 688 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L4605) + - **Line:** 4605 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L4692) + - **Line:** 4692 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/hybrid.rs`](../src-tauri/src/repository/hybrid.rs#L47) + - **Line:** 47 + - **Context:** `pub fn new(online: OnlineRepository, offline: OfflineRepository) -> Se...` +- **File:** [`src-tauri/src/repository/online.rs`](../src-tauri/src/repository/online.rs#L195) + - **Line:** 195 + - **Context:** `impl OnlineRepository {` +- **File:** [`src-tauri/src/repository/online.rs`](../src-tauri/src/repository/online.rs#L1167) + - **Line:** 1167 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/online.rs`](../src-tauri/src/repository/online.rs#L1454) + - **Line:** 1454 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/online.rs`](../src-tauri/src/repository/online.rs#L4056) + - **Line:** 4056 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/online.rs`](../src-tauri/src/repository/online.rs#L4087) + - **Line:** 4087 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/lib.rs`](../src-tauri/src/lib.rs#L1625) + - **Line:** 1625 + - **Context:** `Unknown` + +### UR-072 + +**Locations:** 1 file(s) + +- **File:** [`src/lib/utils/scrollContainer.ts`](../src/lib/utils/scrollContainer.ts#L23) + - **Line:** 23 + - **Context:** `Unknown` + +### UR-077 + +**Locations:** 4 file(s) + +- **File:** [`src/lib/utils/updateCheck.ts`](../src/lib/utils/updateCheck.ts#L4) + - **Line:** 4 + - **Context:** `Unknown` +- **File:** [`src/routes/settings/+page.svelte`](../src/routes/settings/+page.svelte#L446) + - **Line:** 446 + - **Context:** `Unknown` +- **File:** [`src/routes/settings/+page.svelte`](../src/routes/settings/+page.svelte#L1299) + - **Line:** 1299 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/lib.rs`](../src-tauri/src/lib.rs#L1286) + - **Line:** 1286 + - **Context:** `Unknown` + +### UT-030 + +**Locations:** 1 file(s) + +- **File:** [`src-tauri/src/player/backend.rs`](../src-tauri/src/player/backend.rs#L251) + - **Line:** 251 + - **Context:** `Unknown` + ### UT-031 **Locations:** 1 file(s) @@ -11790,6 +12350,103 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-006, JA-007, JA-008, JA-009, JA-010, - **Line:** 251 - **Context:** `Unknown` +### UT-101 + +**Locations:** 4 file(s) + +- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L2014) + - **Line:** 2014 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L4370) + - **Line:** 4370 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L4405) + - **Line:** 4405 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/mod.rs`](../src-tauri/src/repository/mod.rs#L238) + - **Line:** 238 + - **Context:** `Unknown` + +### UT-102 + +**Locations:** 2 file(s) + +- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L688) + - **Line:** 688 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L4605) + - **Line:** 4605 + - **Context:** `Unknown` + +### UT-111 + +**Locations:** 3 file(s) + +- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L62) + - **Line:** 62 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L2548) + - **Line:** 2548 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L2588) + - **Line:** 2588 + - **Context:** `Unknown` + +### UT-112 + +**Locations:** 2 file(s) + +- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L501) + - **Line:** 501 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L3253) + - **Line:** 3253 + - **Context:** `Unknown` + +### UT-113 + +**Locations:** 2 file(s) + +- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L276) + - **Line:** 276 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L3144) + - **Line:** 3144 + - **Context:** `Unknown` + +### UT-114 + +**Locations:** 2 file(s) + +- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L333) + - **Line:** 333 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L3087) + - **Line:** 3087 + - **Context:** `Unknown` + +### UT-115 + +**Locations:** 2 file(s) + +- **File:** [`src-tauri/src/commands/catalog.rs`](../src-tauri/src/commands/catalog.rs#L281) + - **Line:** 281 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/commands/catalog.rs`](../src-tauri/src/commands/catalog.rs#L764) + - **Line:** 764 + - **Context:** `Unknown` + +### UT-126 + +**Locations:** 2 file(s) + +- **File:** [`src-tauri/src/commands/catalog.rs`](../src-tauri/src/commands/catalog.rs#L490) + - **Line:** 490 + - **Context:** `Unknown` +- **File:** [`src-tauri/src/commands/catalog.rs`](../src-tauri/src/commands/catalog.rs#L1090) + - **Line:** 1090 + - **Context:** `Unknown` + ### UT-130 **Locations:** 3 file(s) @@ -11958,170 +12615,15 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-006, JA-007, JA-008, JA-009, JA-010, - **Line:** 3788 - **Context:** `Unknown` -### UT-170 +### UT-171 -**Locations:** 8 file(s) +**Locations:** 2 file(s) -- **File:** [`src/lib/api/bindings.ts`](../src/lib/api/bindings.ts#L903) - - **Line:** 903 +- **File:** [`src-tauri/src/commands/catalog.rs`](../src-tauri/src/commands/catalog.rs#L916) + - **Line:** 916 - **Context:** `Unknown` -- **File:** [`src-tauri/src/commands/download/mod.rs`](../src-tauri/src/commands/download/mod.rs#L546) - - **Line:** 546 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/commands/download/mod.rs`](../src-tauri/src/commands/download/mod.rs#L679) - - **Line:** 679 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/commands/download/mod.rs`](../src-tauri/src/commands/download/mod.rs#L3238) - - **Line:** 3238 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/commands/download/mod.rs`](../src-tauri/src/commands/download/mod.rs#L3303) - - **Line:** 3303 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/commands/download/mod.rs`](../src-tauri/src/commands/download/mod.rs#L3334) - - **Line:** 3334 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/commands/download/mod.rs`](../src-tauri/src/commands/download/mod.rs#L3410) - - **Line:** 3410 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/commands/download/mod.rs`](../src-tauri/src/commands/download/mod.rs#L3437) - - **Line:** 3437 - - **Context:** `Unknown` - -### UR-076 - -**Locations:** 44 file(s) - -- **File:** [`src/lib/api/bindings.ts`](../src/lib/api/bindings.ts#L1127) - - **Line:** 1127 - - **Context:** `Unknown` -- **File:** [`src/lib/api/bindings.ts`](../src/lib/api/bindings.ts#L1139) - - **Line:** 1139 - - **Context:** `Unknown` -- **File:** [`src/lib/api/bindings.ts`](../src/lib/api/bindings.ts#L1157) - - **Line:** 1157 - - **Context:** `Unknown` -- **File:** [`src/lib/api/bindings.ts`](../src/lib/api/bindings.ts#L2264) - - **Line:** 2264 - - **Context:** `export type EqPreset = "flat" | "rock" | "pop" | "jazz" | "classical" ...` -- **File:** [`src/lib/api/bindings.ts`](../src/lib/api/bindings.ts#L2353) - - **Line:** 2353 - - **Context:** `Unknown` -- **File:** [`src/lib/components/library/GenericMediaListPage.svelte`](../src/lib/components/library/GenericMediaListPage.svelte#L125) - - **Line:** 125 - - **Context:** `Unknown` -- **File:** [`src/lib/stores/music.ts`](../src/lib/stores/music.ts#L106) - - **Line:** 106 - - **Context:** `Unknown` -- **File:** [`src/routes/settings/+page.svelte`](../src/routes/settings/+page.svelte#L1) - - **Line:** 1 - - **Context:** `Unknown` -- **File:** [`src/routes/settings/+page.svelte`](../src/routes/settings/+page.svelte#L105) - - **Line:** 105 - - **Context:** `Unknown` -- **File:** [`src/routes/settings/+page.svelte`](../src/routes/settings/+page.svelte#L201) - - **Line:** 201 - - **Context:** `Unknown` -- **File:** [`src/routes/settings/+page.svelte`](../src/routes/settings/+page.svelte#L220) - - **Line:** 220 - - **Context:** `Unknown` -- **File:** [`src/routes/settings/+page.svelte`](../src/routes/settings/+page.svelte#L596) - - **Line:** 596 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/commands/library.rs`](../src-tauri/src/commands/library.rs#L10) - - **Line:** 10 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/commands/library.rs`](../src-tauri/src/commands/library.rs#L47) - - **Line:** 47 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/commands/library.rs`](../src-tauri/src/commands/library.rs#L68) - - **Line:** 68 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/commands/library.rs`](../src-tauri/src/commands/library.rs#L83) - - **Line:** 83 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/commands/library.rs`](../src-tauri/src/commands/library.rs#L112) - - **Line:** 112 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/commands/library.rs`](../src-tauri/src/commands/library.rs#L184) - - **Line:** 184 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/commands/library.rs`](../src-tauri/src/commands/library.rs#L220) - - **Line:** 220 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/commands/library.rs`](../src-tauri/src/commands/library.rs#L274) - - **Line:** 274 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/commands/library.rs`](../src-tauri/src/commands/library.rs#L295) - - **Line:** 295 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/commands/library.rs`](../src-tauri/src/commands/library.rs#L307) - - **Line:** 307 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/exclusions.rs`](../src-tauri/src/repository/exclusions.rs#L22) - - **Line:** 22 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/exclusions.rs`](../src-tauri/src/repository/exclusions.rs#L34) - - **Line:** 34 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/exclusions.rs`](../src-tauri/src/repository/exclusions.rs#L48) - - **Line:** 48 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/exclusions.rs`](../src-tauri/src/repository/exclusions.rs#L63) - - **Line:** 63 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/exclusions.rs`](../src-tauri/src/repository/exclusions.rs#L87) - - **Line:** 87 - - **Context:** `/ pure function and can be tested without touching process state.` -- **File:** [`src-tauri/src/repository/exclusions.rs`](../src-tauri/src/repository/exclusions.rs#L123) - - **Line:** 123 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/exclusions.rs`](../src-tauri/src/repository/exclusions.rs#L191) - - **Line:** 191 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/exclusions.rs`](../src-tauri/src/repository/exclusions.rs#L203) - - **Line:** 203 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/exclusions.rs`](../src-tauri/src/repository/exclusions.rs#L232) - - **Line:** 232 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/exclusions.rs`](../src-tauri/src/repository/exclusions.rs#L275) - - **Line:** 275 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/exclusions.rs`](../src-tauri/src/repository/exclusions.rs#L293) - - **Line:** 293 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/exclusions.rs`](../src-tauri/src/repository/exclusions.rs#L316) - - **Line:** 316 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/exclusions.rs`](../src-tauri/src/repository/exclusions.rs#L334) - - **Line:** 334 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/hybrid.rs`](../src-tauri/src/repository/hybrid.rs#L182) - - **Line:** 182 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/hybrid.rs`](../src-tauri/src/repository/hybrid.rs#L283) - - **Line:** 283 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/hybrid.rs`](../src-tauri/src/repository/hybrid.rs#L381) - - **Line:** 381 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/hybrid.rs`](../src-tauri/src/repository/hybrid.rs#L426) - - **Line:** 426 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/hybrid.rs`](../src-tauri/src/repository/hybrid.rs#L544) - - **Line:** 544 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/hybrid.rs`](../src-tauri/src/repository/hybrid.rs#L629) - - **Line:** 629 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/settings.rs`](../src-tauri/src/settings.rs#L337) - - **Line:** 337 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/settings.rs`](../src-tauri/src/settings.rs#L357) - - **Line:** 357 - - **Context:** `impl LibrarySettings {` -- **File:** [`src-tauri/src/lib.rs`](../src-tauri/src/lib.rs#L1504) - - **Line:** 1504 +- **File:** [`src-tauri/src/commands/catalog.rs`](../src-tauri/src/commands/catalog.rs#L957) + - **Line:** 957 - **Context:** `Unknown` ### UT-173 @@ -12226,25 +12728,6 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-006, JA-007, JA-008, JA-009, JA-010, - **Line:** 4406 - **Context:** `Unknown` -### UT-185 - -**Locations:** 2 file(s) - -- **File:** [`src/lib/components/player/VideoPlayer.nativeReveal.test.ts`](../src/lib/components/player/VideoPlayer.nativeReveal.test.ts#L16) - - **Line:** 16 - - **Context:** `Unknown` -- **File:** [`src/lib/components/player/VideoPlayer.svelte`](../src/lib/components/player/VideoPlayer.svelte#L608) - - **Line:** 608 - - **Context:** `Unknown` - -### UT-189 - -**Locations:** 1 file(s) - -- **File:** [`src/lib/components/player/VideoPlayer.svelte`](../src/lib/components/player/VideoPlayer.svelte#L1653) - - **Line:** 1653 - - **Context:** `Unknown` - ### UT-190 **Locations:** 2 file(s) @@ -12398,185 +12881,6 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-006, JA-007, JA-008, JA-009, JA-010, - **Line:** 3966 - **Context:** `Unknown` -### UT-207 - -**Locations:** 2 file(s) - -- **File:** [`src/lib/components/home/heroRotation.test.ts`](../src/lib/components/home/heroRotation.test.ts#L1) - - **Line:** 1 - - **Context:** `Unknown` -- **File:** [`src/lib/components/home/heroRotation.ts`](../src/lib/components/home/heroRotation.ts#L8) - - **Line:** 8 - - **Context:** `Unknown` - -### UT-208 - -**Locations:** 1 file(s) - -- **File:** [`src/lib/utils/updateCheck.test.ts`](../src/lib/utils/updateCheck.test.ts#L4) - - **Line:** 4 - - **Context:** `Unknown` - -### UT-214 - -**Locations:** 4 file(s) - -- **File:** [`src/lib/components/player/VideoPlayer.svelte`](../src/lib/components/player/VideoPlayer.svelte#L657) - - **Line:** 657 - - **Context:** `Unknown` -- **File:** [`src/lib/player/streamTransport.test.ts`](../src/lib/player/streamTransport.test.ts#L4) - - **Line:** 4 - - **Context:** `Unknown` -- **File:** [`src/lib/player/streamTransport.ts`](../src/lib/player/streamTransport.ts#L7) - - **Line:** 7 - - **Context:** `Unknown` -- **File:** [`src/lib/player/streamTransport.ts`](../src/lib/player/streamTransport.ts#L61) - - **Line:** 61 - - **Context:** `Unknown` - -### UR-010 - -**Locations:** 16 file(s) - -- **File:** [`src/lib/components/sessions/CastButton.svelte`](../src/lib/components/sessions/CastButton.svelte#L1) - - **Line:** 1 - - **Context:** `Unknown` -- **File:** [`src/lib/components/sessions/RemoteControls.svelte`](../src/lib/components/sessions/RemoteControls.svelte#L1) - - **Line:** 1 - - **Context:** `Unknown` -- **File:** [`src/lib/components/sessions/SessionCard.svelte`](../src/lib/components/sessions/SessionCard.svelte#L1) - - **Line:** 1 - - **Context:** `Unknown` -- **File:** [`src/lib/components/sessions/SessionPickerModal.svelte`](../src/lib/components/sessions/SessionPickerModal.svelte#L1) - - **Line:** 1 - - **Context:** `Unknown` -- **File:** [`src/lib/components/sessions/SessionsList.svelte`](../src/lib/components/sessions/SessionsList.svelte#L1) - - **Line:** 1 - - **Context:** `Unknown` -- **File:** [`src/lib/stores/lmsSync.ts`](../src/lib/stores/lmsSync.ts#L12) - - **Line:** 12 - - **Context:** `Unknown` -- **File:** [`src/lib/stores/playbackMode.test.ts`](../src/lib/stores/playbackMode.test.ts#L2) - - **Line:** 2 - - **Context:** `Unknown` -- **File:** [`src/lib/stores/playbackMode.ts`](../src/lib/stores/playbackMode.ts#L9) - - **Line:** 9 - - **Context:** `Unknown` -- **File:** [`src/lib/stores/sessions.test.ts`](../src/lib/stores/sessions.test.ts#L2) - - **Line:** 2 - - **Context:** `Unknown` -- **File:** [`src/lib/stores/sessions.ts`](../src/lib/stores/sessions.ts#L2) - - **Line:** 2 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/commands/playback_mode.rs`](../src-tauri/src/commands/playback_mode.rs#L3) - - **Line:** 3 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/commands/player/remote.rs`](../src-tauri/src/commands/player/remote.rs#L3) - - **Line:** 3 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/commands/player/mod.rs`](../src-tauri/src/commands/player/mod.rs#L1) - - **Line:** 1 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/commands/sessions.rs`](../src-tauri/src/commands/sessions.rs#L1) - - **Line:** 1 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/playback_mode/mod.rs`](../src-tauri/src/playback_mode/mod.rs#L165) - - **Line:** 165 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/session_poller/mod.rs`](../src-tauri/src/session_poller/mod.rs#L6) - - **Line:** 6 - - **Context:** `Unknown` - -### UR-012 - -**Locations:** 21 file(s) - -- **File:** [`src/lib/services/imageCache.ts`](../src/lib/services/imageCache.ts#L50) - - **Line:** 50 - - **Context:** `Unknown` -- **File:** [`src/lib/stores/auth.test.ts`](../src/lib/stores/auth.test.ts#L4) - - **Line:** 4 - - **Context:** `Unknown` -- **File:** [`src/lib/stores/auth.ts`](../src/lib/stores/auth.ts#L6) - - **Line:** 6 - - **Context:** `Unknown` -- **File:** [`src/lib/stores/auth.ts`](../src/lib/stores/auth.ts#L303) - - **Line:** 303 - - **Context:** `Unknown` -- **File:** [`src/lib/stores/auth.ts`](../src/lib/stores/auth.ts#L465) - - **Line:** 465 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/android_context.rs`](../src-tauri/src/android_context.rs#L3) - - **Line:** 3 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/android_context.rs`](../src-tauri/src/android_context.rs#L80) - - **Line:** 80 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/android_context.rs`](../src-tauri/src/android_context.rs#L95) - - **Line:** 95 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/commands/mod.rs`](../src-tauri/src/commands/mod.rs#L2) - - **Line:** 2 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/commands/storage/mod.rs`](../src-tauri/src/commands/storage/mod.rs#L3) - - **Line:** 3 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/credentials.rs`](../src-tauri/src/credentials.rs#L10) - - **Line:** 10 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/credentials.rs`](../src-tauri/src/credentials.rs#L480) - - **Line:** 480 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/credentials.rs`](../src-tauri/src/credentials.rs#L905) - - **Line:** 905 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/credentials.rs`](../src-tauri/src/credentials.rs#L924) - - **Line:** 924 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/credentials.rs`](../src-tauri/src/credentials.rs#L941) - - **Line:** 941 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/storage/db_service.rs`](../src-tauri/src/storage/db_service.rs#L311) - - **Line:** 311 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/storage/mod.rs`](../src-tauri/src/storage/mod.rs#L157) - - **Line:** 157 - - **Context:** `pub fn file_size(&self) -> Option {` -- **File:** [`src-tauri/src/lib.rs`](../src-tauri/src/lib.rs#L625) - - **Line:** 625 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/lib.rs`](../src-tauri/src/lib.rs#L1126) - - **Line:** 1126 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/lib.rs`](../src-tauri/src/lib.rs#L1348) - - **Line:** 1348 - - **Context:** `Unknown` -- **File:** [`scripts/tauri-security-config.test.ts`](../scripts/tauri-security-config.test.ts#L11) - - **Line:** 11 - - **Context:** `Unknown` - -### UR-013 - -**Locations:** 2 file(s) - -- **File:** [`src/lib/stores/downloads.test.ts`](../src/lib/stores/downloads.test.ts#L2) - - **Line:** 2 - - **Context:** `Unknown` -- **File:** [`src/lib/stores/downloads.ts`](../src/lib/stores/downloads.ts#L2) - - **Line:** 2 - - **Context:** `Unknown` - -### UR-043 - -**Locations:** 2 file(s) - -- **File:** [`src/lib/stores/connectivity.ts`](../src/lib/stores/connectivity.ts#L10) - - **Line:** 10 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/commands/connectivity.rs`](../src-tauri/src/commands/connectivity.rs#L3) - - **Line:** 3 - - **Context:** `Unknown` - ### UR-047 **Locations:** 1 file(s) @@ -12585,256 +12889,6 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-006, JA-007, JA-008, JA-009, JA-010, - **Line:** 3 - **Context:** `Unknown` -### UR-059 - -**Locations:** 11 file(s) - -- **File:** [`src/lib/services/skipReporting.test.ts`](../src/lib/services/skipReporting.test.ts#L9) - - **Line:** 9 - - **Context:** `Unknown` -- **File:** [`src/lib/services/skipReporting.ts`](../src/lib/services/skipReporting.ts#L14) - - **Line:** 14 - - **Context:** `Unknown` -- **File:** [`src/lib/stores/continueWatchingFilter.test.ts`](../src/lib/stores/continueWatchingFilter.test.ts#L12) - - **Line:** 12 - - **Context:** `Unknown` -- **File:** [`src/lib/stores/continueWatchingFilter.ts`](../src/lib/stores/continueWatchingFilter.ts#L15) - - **Line:** 15 - - **Context:** `Unknown` -- **File:** [`src/lib/stores/continueWatchingFilter.ts`](../src/lib/stores/continueWatchingFilter.ts#L91) - - **Line:** 91 - - **Context:** `Unknown` -- **File:** [`src/lib/stores/home.ts`](../src/lib/stores/home.ts#L2) - - **Line:** 2 - - **Context:** `Unknown` -- **File:** [`src/lib/stores/tv.ts`](../src/lib/stores/tv.ts#L3) - - **Line:** 3 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/online.rs`](../src-tauri/src/repository/online.rs#L1306) - - **Line:** 1306 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/online.rs`](../src-tauri/src/repository/online.rs#L1791) - - **Line:** 1791 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/online.rs`](../src-tauri/src/repository/online.rs#L4016) - - **Line:** 4016 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/online.rs`](../src-tauri/src/repository/online.rs#L4037) - - **Line:** 4037 - - **Context:** `Unknown` - -### UT-192 - -**Locations:** 1 file(s) - -- **File:** [`src/lib/stores/continueWatchingFilter.test.ts`](../src/lib/stores/continueWatchingFilter.test.ts#L12) - - **Line:** 12 - - **Context:** `Unknown` - -### UR-065 - -**Locations:** 25 file(s) - -- **File:** [`src-tauri/src/commands/catalog.rs`](../src-tauri/src/commands/catalog.rs#L96) - - **Line:** 96 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/commands/catalog.rs`](../src-tauri/src/commands/catalog.rs#L164) - - **Line:** 164 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/commands/catalog.rs`](../src-tauri/src/commands/catalog.rs#L281) - - **Line:** 281 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/commands/catalog.rs`](../src-tauri/src/commands/catalog.rs#L327) - - **Line:** 327 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/commands/catalog.rs`](../src-tauri/src/commands/catalog.rs#L764) - - **Line:** 764 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/commands/storage/people.rs`](../src-tauri/src/commands/storage/people.rs#L56) - - **Line:** 56 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/commands/repository.rs`](../src-tauri/src/commands/repository.rs#L51) - - **Line:** 51 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L62) - - **Line:** 62 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L276) - - **Line:** 276 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L333) - - **Line:** 333 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L501) - - **Line:** 501 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L1253) - - **Line:** 1253 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L2548) - - **Line:** 2548 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L2588) - - **Line:** 2588 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L3087) - - **Line:** 3087 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L3144) - - **Line:** 3144 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L3253) - - **Line:** 3253 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L3306) - - **Line:** 3306 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L3362) - - **Line:** 3362 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L4500) - - **Line:** 4500 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L4553) - - **Line:** 4553 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/hybrid.rs`](../src-tauri/src/repository/hybrid.rs#L64) - - **Line:** 64 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/storage/schema.rs`](../src-tauri/src/storage/schema.rs#L757) - - **Line:** 757 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/storage/schema.rs`](../src-tauri/src/storage/schema.rs#L769) - - **Line:** 769 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/lib.rs`](../src-tauri/src/lib.rs#L1618) - - **Line:** 1618 - - **Context:** `Unknown` - -### UR-069 - -**Locations:** 24 file(s) - -- **File:** [`src/routes/+layout.svelte`](../src/routes/+layout.svelte#L150) - - **Line:** 150 - - **Context:** `Unknown` -- **File:** [`src/routes/library/favorites/+page.svelte`](../src/routes/library/favorites/+page.svelte#L76) - - **Line:** 76 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/commands/favorites.rs`](../src-tauri/src/commands/favorites.rs#L12) - - **Line:** 12 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/commands/favorites.rs`](../src-tauri/src/commands/favorites.rs#L78) - - **Line:** 78 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/commands/favorites.rs`](../src-tauri/src/commands/favorites.rs#L142) - - **Line:** 142 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/commands/favorites.rs`](../src-tauri/src/commands/favorites.rs#L286) - - **Line:** 286 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/commands/favorites.rs`](../src-tauri/src/commands/favorites.rs#L320) - - **Line:** 320 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/commands/favorites.rs`](../src-tauri/src/commands/favorites.rs#L340) - - **Line:** 340 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/commands/favorites.rs`](../src-tauri/src/commands/favorites.rs#L356) - - **Line:** 356 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/commands/repository.rs`](../src-tauri/src/commands/repository.rs#L887) - - **Line:** 887 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/commands/repository.rs`](../src-tauri/src/commands/repository.rs#L893) - - **Line:** 893 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/commands/repository.rs`](../src-tauri/src/commands/repository.rs#L908) - - **Line:** 908 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/commands/repository.rs`](../src-tauri/src/commands/repository.rs#L1081) - - **Line:** 1081 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/commands/repository.rs`](../src-tauri/src/commands/repository.rs#L1106) - - **Line:** 1106 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L688) - - **Line:** 688 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L4605) - - **Line:** 4605 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L4692) - - **Line:** 4692 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/hybrid.rs`](../src-tauri/src/repository/hybrid.rs#L47) - - **Line:** 47 - - **Context:** `pub fn new(online: OnlineRepository, offline: OfflineRepository) -> Se...` -- **File:** [`src-tauri/src/repository/online.rs`](../src-tauri/src/repository/online.rs#L195) - - **Line:** 195 - - **Context:** `impl OnlineRepository {` -- **File:** [`src-tauri/src/repository/online.rs`](../src-tauri/src/repository/online.rs#L1167) - - **Line:** 1167 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/online.rs`](../src-tauri/src/repository/online.rs#L1454) - - **Line:** 1454 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/online.rs`](../src-tauri/src/repository/online.rs#L4056) - - **Line:** 4056 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/repository/online.rs`](../src-tauri/src/repository/online.rs#L4087) - - **Line:** 4087 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/lib.rs`](../src-tauri/src/lib.rs#L1625) - - **Line:** 1625 - - **Context:** `Unknown` - -### UR-077 - -**Locations:** 4 file(s) - -- **File:** [`src/lib/utils/updateCheck.ts`](../src/lib/utils/updateCheck.ts#L4) - - **Line:** 4 - - **Context:** `Unknown` -- **File:** [`src/routes/settings/+page.svelte`](../src/routes/settings/+page.svelte#L446) - - **Line:** 446 - - **Context:** `Unknown` -- **File:** [`src/routes/settings/+page.svelte`](../src/routes/settings/+page.svelte#L1299) - - **Line:** 1299 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/lib.rs`](../src-tauri/src/lib.rs#L1286) - - **Line:** 1286 - - **Context:** `Unknown` - -### IT-017 - -**Locations:** 1 file(s) - -- **File:** [`src-tauri/src/commands/catalog.rs`](../src-tauri/src/commands/catalog.rs#L878) - - **Line:** 878 - - **Context:** `Unknown` - -### UT-115 - -**Locations:** 2 file(s) - -- **File:** [`src-tauri/src/commands/catalog.rs`](../src-tauri/src/commands/catalog.rs#L281) - - **Line:** 281 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/commands/catalog.rs`](../src-tauri/src/commands/catalog.rs#L764) - - **Line:** 764 - - **Context:** `Unknown` - -### UT-126 - -**Locations:** 2 file(s) - -- **File:** [`src-tauri/src/commands/catalog.rs`](../src-tauri/src/commands/catalog.rs#L490) - - **Line:** 490 - - **Context:** `Unknown` -- **File:** [`src-tauri/src/commands/catalog.rs`](../src-tauri/src/commands/catalog.rs#L1090) - - **Line:** 1090 - - **Context:** `Unknown` - ### UT-164 **Locations:** 1 file(s) @@ -12920,7 +12974,7 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-006, JA-007, JA-008, JA-009, JA-010, - **Line:** 1239 - **Context:** `Unknown` -### IT-016 +### UT-067 **Locations:** 1 file(s) @@ -12928,20 +12982,4 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-006, JA-007, JA-008, JA-009, JA-010, - **Line:** 3026 - **Context:** `Unknown` -### UT-109 - -**Locations:** 1 file(s) - -- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L3306) - - **Line:** 3306 - - **Context:** `Unknown` - -### UT-110 - -**Locations:** 1 file(s) - -- **File:** [`src-tauri/src/repository/offline.rs`](../src-tauri/src/repository/offline.rs#L3362) - - **Line:** 3362 - - **Context:** `Unknown` - diff --git a/src/lib/components/player/VideoPlayer.svelte b/src/lib/components/player/VideoPlayer.svelte index 1af2fbec..7e59016d 100644 --- a/src/lib/components/player/VideoPlayer.svelte +++ b/src/lib/components/player/VideoPlayer.svelte @@ -2533,7 +2533,22 @@ aria-label="Video player" > -
+ +
{#if !!useHtml5Element}