# Code Traceability Matrix **Generated:** 2/28/2026, 8:39:19 PM ## Summary - **Total Files Scanned:** 208 - **Total TRACES Found:** 117 - **Requirements Covered:** - User Requirements (UR): 32 - Integration Requirements (IR): 8 - Development Requirements (DR): 40 - Jellyfin API Requirements (JA): 19 ## Requirements by Type ### User Requirements (UR) ``` UR-002, UR-003, UR-004, UR-005, UR-007, UR-008, UR-009, UR-010, UR-011, UR-012, UR-013, UR-015, UR-016, UR-017, UR-018, UR-019, UR-020, UR-021, UR-023, UR-024, UR-025, UR-026, UR-028, UR-029, UR-030, UR-031, UR-032, UR-033, UR-034, UR-035, UR-036, UR-039 ``` ### Integration Requirements (IR) ``` IR-003, IR-004, IR-009, IR-010, IR-011, IR-012, IR-013, IR-014 ``` ### Development Requirements (DR) ``` DR-001, DR-002, DR-003, DR-004, DR-005, DR-006, DR-007, DR-009, DR-010, DR-011, DR-012, DR-013, DR-014, DR-015, DR-016, DR-017, DR-018, DR-020, DR-021, DR-023, DR-024, DR-026, DR-027, DR-028, DR-029, DR-032, DR-033, DR-034, DR-035, DR-036, DR-037, DR-038, DR-039, DR-040, DR-041, DR-044, DR-045, DR-047, DR-048, DR-050 ``` ### Jellyfin API Requirements (JA) ``` JA-001, JA-002, JA-003, JA-004, JA-005, JA-007, JA-010, JA-011, JA-012, JA-017, JA-021, JA-022, JA-023, JA-024, JA-025, JA-026, JA-029, JA-030, JA-031 ``` ## Detailed Mapping ### IR-003 **Locations:** 2 file(s) - **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L39) - **Line:** 39 - **Context:** `pub fn playback_failed>(message: S) -> Self {` - **File:** [`src-tauri/src/player/mpv_backend_test.rs`](src-tauri/src/player/mpv_backend_test.rs#L8) - **Line:** 8 - **Context:** `Unknown` ### IR-004 **Locations:** 1 file(s) - **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L39) - **Line:** 39 - **Context:** `pub fn playback_failed>(message: S) -> Self {` ### IR-009 **Locations:** 5 file(s) - **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#L269) - **Line:** 269 - **Context:** `Unknown` - **File:** [`src/lib/stores/auth.ts`](src/lib/stores/auth.ts#L296) - **Line:** 296 - **Context:** `Unknown` - **File:** [`src/lib/stores/auth.test.ts`](src/lib/stores/auth.test.ts#L4) - **Line:** 4 - **Context:** `Unknown` - **File:** [`src-tauri/src/jellyfin/client.rs`](src-tauri/src/jellyfin/client.rs#L1) - **Line:** 1 - **Context:** `Unknown` ### IR-010 **Locations:** 2 file(s) - **File:** [`src-tauri/src/jellyfin/client.rs`](src-tauri/src/jellyfin/client.rs#L1) - **Line:** 1 - **Context:** `Unknown` - **File:** [`src-tauri/src/repository/online.rs`](src-tauri/src/repository/online.rs#L1) - **Line:** 1 - **Context:** `Unknown` ### IR-011 **Locations:** 1 file(s) - **File:** [`src-tauri/src/jellyfin/client.rs`](src-tauri/src/jellyfin/client.rs#L1) - **Line:** 1 - **Context:** `Unknown` ### IR-012 **Locations:** 1 file(s) - **File:** [`src/lib/stores/playbackMode.ts`](src/lib/stores/playbackMode.ts#L9) - **Line:** 9 - **Context:** `Unknown` ### IR-013 **Locations:** 1 file(s) - **File:** [`src-tauri/src/storage/schema.rs`](src-tauri/src/storage/schema.rs#L3) - **Line:** 3 - **Context:** `Unknown` ### IR-014 **Locations:** 5 file(s) - **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#L296) - **Line:** 296 - **Context:** `Unknown` - **File:** [`src/lib/stores/auth.ts`](src/lib/stores/auth.ts#L466) - **Line:** 466 - **Context:** `Unknown` - **File:** [`src/lib/stores/auth.test.ts`](src/lib/stores/auth.test.ts#L4) - **Line:** 4 - **Context:** `Unknown` - **File:** [`src-tauri/src/credentials.rs`](src-tauri/src/credentials.rs#L10) - **Line:** 10 - **Context:** `Unknown` ### DR-001 **Locations:** 11 file(s) - **File:** [`src/lib/stores/player.ts`](src/lib/stores/player.ts#L8) - **Line:** 8 - **Context:** `Unknown` - **File:** [`src/lib/stores/player.ts`](src/lib/stores/player.ts#L29) - **Line:** 29 - **Context:** `Unknown` - **File:** [`src/lib/services/playerEvents.test.ts`](src/lib/services/playerEvents.test.ts#L4) - **Line:** 4 - **Context:** `Unknown` - **File:** [`src/lib/services/playerEvents.ts`](src/lib/services/playerEvents.ts#L8) - **Line:** 8 - **Context:** `Unknown` - **File:** [`src/lib/services/playerEvents.ts`](src/lib/services/playerEvents.ts#L26) - **Line:** 26 - **Context:** `Unknown` - **File:** [`src/lib/services/playerEvents.ts`](src/lib/services/playerEvents.ts#L170) - **Line:** 170 - **Context:** `function handlePositionUpdate(position: number, duration: number): voi...` - **File:** [`src-tauri/src/player/events.rs`](src-tauri/src/player/events.rs#L6) - **Line:** 6 - **Context:** `Unknown` - **File:** [`src-tauri/src/player/events.rs`](src-tauri/src/player/events.rs#L20) - **Line:** 20 - **Context:** `Unknown` - **File:** [`src-tauri/src/player/state.rs`](src-tauri/src/player/state.rs#L7) - **Line:** 7 - **Context:** `Unknown` - **File:** [`src-tauri/src/player/state.rs`](src-tauri/src/player/state.rs#L25) - **Line:** 25 - **Context:** `Unknown` - **File:** [`src-tauri/src/commands/player.rs`](src-tauri/src/commands/player.rs#L1) - **Line:** 1 - **Context:** `Unknown` ### DR-002 **Locations:** 1 file(s) - **File:** [`src-tauri/src/player/media.rs`](src-tauri/src/player/media.rs#L42) - **Line:** 42 - **Context:** `Unknown` ### DR-003 **Locations:** 1 file(s) - **File:** [`src-tauri/src/player/media.rs`](src-tauri/src/player/media.rs#L116) - **Line:** 116 - **Context:** `pub enum MediaType {` ### DR-004 **Locations:** 3 file(s) - **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L39) - **Line:** 39 - **Context:** `pub fn playback_failed>(message: S) -> Self {` - **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L235) - **Line:** 235 - **Context:** `Unknown` - **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L241) - **Line:** 241 - **Context:** `Unknown` ### DR-005 **Locations:** 11 file(s) - **File:** [`src/lib/stores/appState.ts`](src/lib/stores/appState.ts#L2) - **Line:** 2 - **Context:** `Unknown` - **File:** [`src/lib/stores/queue.test.ts`](src/lib/stores/queue.test.ts#L4) - **Line:** 4 - **Context:** `Unknown` - **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L7) - **Line:** 7 - **Context:** `Unknown` - **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L106) - **Line:** 106 - **Context:** `Unknown` - **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L111) - **Line:** 111 - **Context:** `async function next() {` - **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L116) - **Line:** 116 - **Context:** `async function previous() {` - **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L121) - **Line:** 121 - **Context:** `async function skipTo(index: number) {` - **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L126) - **Line:** 126 - **Context:** `async function toggleShuffle() {` - **File:** [`src-tauri/src/player/queue.rs`](src-tauri/src/player/queue.rs#L8) - **Line:** 8 - **Context:** `Unknown` - **File:** [`src-tauri/src/player/queue.rs`](src-tauri/src/player/queue.rs#L20) - **Line:** 20 - **Context:** `pub enum RepeatMode {` - **File:** [`src-tauri/src/player/queue.rs`](src-tauri/src/player/queue.rs#L508) - **Line:** 508 - **Context:** `pub enum AddPosition {` ### DR-006 **Locations:** 2 file(s) - **File:** [`src/lib/services/preload.ts`](src/lib/services/preload.ts#L5) - **Line:** 5 - **Context:** `Unknown` - **File:** [`src/lib/services/preload.test.ts`](src/lib/services/preload.test.ts#L4) - **Line:** 4 - **Context:** `Unknown` ### DR-007 **Locations:** 2 file(s) - **File:** [`src/lib/components/library/GenericMediaListPage.svelte`](src/lib/components/library/GenericMediaListPage.svelte#L1) - **Line:** 1 - **Context:** `Unknown` - **File:** [`src/lib/stores/library.ts`](src/lib/stores/library.ts#L2) - **Line:** 2 - **Context:** `Unknown` ### DR-009 **Locations:** 5 file(s) - **File:** [`src/lib/components/player/AudioPlayer.svelte`](src/lib/components/player/AudioPlayer.svelte#L1) - **Line:** 1 - **Context:** `Unknown` - **File:** [`src/lib/components/player/MiniPlayer.svelte`](src/lib/components/player/MiniPlayer.svelte#L1) - **Line:** 1 - **Context:** `Unknown` - **File:** [`src/lib/components/player/Controls.svelte`](src/lib/components/player/Controls.svelte#L1) - **Line:** 1 - **Context:** `Unknown` - **File:** [`src/lib/stores/appState.ts`](src/lib/stores/appState.ts#L2) - **Line:** 2 - **Context:** `Unknown` - **File:** [`src/lib/stores/player.ts`](src/lib/stores/player.ts#L8) - **Line:** 8 - **Context:** `Unknown` ### DR-010 **Locations:** 1 file(s) - **File:** [`src/lib/components/player/VideoPlayer.svelte`](src/lib/components/player/VideoPlayer.svelte#L1) - **Line:** 1 - **Context:** `Unknown` ### DR-011 **Locations:** 7 file(s) - **File:** [`src/lib/stores/library.ts`](src/lib/stores/library.ts#L2) - **Line:** 2 - **Context:** `Unknown` - **File:** [`src/lib/services/deviceId.ts`](src/lib/services/deviceId.ts#L8) - **Line:** 8 - **Context:** `Unknown` - **File:** [`src/lib/services/deviceId.ts`](src/lib/services/deviceId.ts#L23) - **Line:** 23 - **Context:** `Unknown` - **File:** [`src/lib/services/deviceId.test.ts`](src/lib/services/deviceId.test.ts#L7) - **Line:** 7 - **Context:** `Unknown` - **File:** [`src-tauri/src/commands/device.rs`](src-tauri/src/commands/device.rs#L4) - **Line:** 4 - **Context:** `Unknown` - **File:** [`src-tauri/src/commands/device.rs`](src-tauri/src/commands/device.rs#L24) - **Line:** 24 - **Context:** `Unknown` - **File:** [`src-tauri/src/commands/device.rs`](src-tauri/src/commands/device.rs#L80) - **Line:** 80 - **Context:** `Unknown` ### DR-012 **Locations:** 3 file(s) - **File:** [`src-tauri/src/storage/db_service.rs`](src-tauri/src/storage/db_service.rs#L288) - **Line:** 288 - **Context:** `Unknown` - **File:** [`src-tauri/src/storage/mod.rs`](src-tauri/src/storage/mod.rs#L159) - **Line:** 159 - **Context:** `pub fn file_size(&self) -> Option {` - **File:** [`src-tauri/src/storage/schema.rs`](src-tauri/src/storage/schema.rs#L3) - **Line:** 3 - **Context:** `Unknown` ### DR-013 **Locations:** 2 file(s) - **File:** [`src/lib/stores/connectivity.ts`](src/lib/stores/connectivity.ts#L5) - **Line:** 5 - **Context:** `Unknown` - **File:** [`src-tauri/src/repository/online.rs`](src-tauri/src/repository/online.rs#L1) - **Line:** 1 - **Context:** `Unknown` ### DR-014 **Locations:** 4 file(s) - **File:** [`src/lib/services/syncService.ts`](src/lib/services/syncService.ts#L7) - **Line:** 7 - **Context:** `Unknown` - **File:** [`src/lib/services/syncService.ts`](src/lib/services/syncService.ts#L58) - **Line:** 58 - **Context:** `Unknown` - **File:** [`src/lib/services/syncService.ts`](src/lib/services/syncService.ts#L170) - **Line:** 170 - **Context:** `Unknown` - **File:** [`src-tauri/src/commands/sync.rs`](src-tauri/src/commands/sync.rs#L5) - **Line:** 5 - **Context:** `Unknown` ### DR-015 **Locations:** 6 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` - **File:** [`src/lib/utils/validation.test.ts`](src/lib/utils/validation.test.ts#L4) - **Line:** 4 - **Context:** `Unknown` - **File:** [`src/lib/services/preload.ts`](src/lib/services/preload.ts#L5) - **Line:** 5 - **Context:** `Unknown` - **File:** [`src/lib/services/preload.test.ts`](src/lib/services/preload.test.ts#L4) - **Line:** 4 - **Context:** `Unknown` - **File:** [`src-tauri/src/commands/download.rs`](src-tauri/src/commands/download.rs#L1552) - **Line:** 1552 - **Context:** `Unknown` ### DR-016 **Locations:** 2 file(s) - **File:** [`src/lib/services/imageCache.ts`](src/lib/services/imageCache.ts#L2) - **Line:** 2 - **Context:** `Unknown` - **File:** [`src/lib/services/imageCache.test.ts`](src/lib/services/imageCache.test.ts#L4) - **Line:** 4 - **Context:** `Unknown` ### DR-017 **Locations:** 3 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` - **File:** [`src-tauri/src/commands/offline.rs`](src-tauri/src/commands/offline.rs#L133) - **Line:** 133 - **Context:** `Unknown` ### DR-018 **Locations:** 1 file(s) - **File:** [`src-tauri/src/commands/download.rs`](src-tauri/src/commands/download.rs#L1552) - **Line:** 1552 - **Context:** `Unknown` ### DR-020 **Locations:** 7 file(s) - **File:** [`src/lib/stores/queue.test.ts`](src/lib/stores/queue.test.ts#L4) - **Line:** 4 - **Context:** `Unknown` - **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L7) - **Line:** 7 - **Context:** `Unknown` - **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L116) - **Line:** 116 - **Context:** `async function previous() {` - **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L131) - **Line:** 131 - **Context:** `async function cycleRepeat() {` - **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L136) - **Line:** 136 - **Context:** `async function removeFromQueue(index: number) {` - **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L141) - **Line:** 141 - **Context:** `async function moveInQueue(fromIndex: number, toIndex: number) {` - **File:** [`src-tauri/src/player/queue.rs`](src-tauri/src/player/queue.rs#L20) - **Line:** 20 - **Context:** `pub enum RepeatMode {` ### DR-021 **Locations:** 2 file(s) - **File:** [`src/lib/services/favorites.ts`](src/lib/services/favorites.ts#L2) - **Line:** 2 - **Context:** `Unknown` - **File:** [`src/lib/services/favorites.test.ts`](src/lib/services/favorites.test.ts#L4) - **Line:** 4 - **Context:** `Unknown` ### DR-023 **Locations:** 1 file(s) - **File:** [`src/lib/components/player/VideoPlayer.svelte`](src/lib/components/player/VideoPlayer.svelte#L1) - **Line:** 1 - **Context:** `Unknown` ### DR-024 **Locations:** 1 file(s) - **File:** [`src/lib/components/player/VideoPlayer.svelte`](src/lib/components/player/VideoPlayer.svelte#L1) - **Line:** 1 - **Context:** `Unknown` ### DR-026 **Locations:** 2 file(s) - **File:** [`src/lib/stores/nextEpisode.ts`](src/lib/stores/nextEpisode.ts#L9) - **Line:** 9 - **Context:** `Unknown` - **File:** [`src/lib/stores/home.ts`](src/lib/stores/home.ts#L2) - **Line:** 2 - **Context:** `Unknown` ### DR-027 **Locations:** 1 file(s) - **File:** [`src/lib/stores/home.ts`](src/lib/stores/home.ts#L2) - **Line:** 2 - **Context:** `Unknown` ### DR-028 **Locations:** 13 file(s) - **File:** [`src/lib/utils/duration.test.ts`](src/lib/utils/duration.test.ts#L4) - **Line:** 4 - **Context:** `Unknown` - **File:** [`src/lib/services/playbackReporting.ts`](src/lib/services/playbackReporting.ts#L10) - **Line:** 10 - **Context:** `Unknown` - **File:** [`src/lib/services/playbackReporting.ts`](src/lib/services/playbackReporting.ts#L21) - **Line:** 21 - **Context:** `Unknown` - **File:** [`src/lib/services/playbackReporting.ts`](src/lib/services/playbackReporting.ts#L64) - **Line:** 64 - **Context:** `Unknown` - **File:** [`src/lib/services/playbackReporting.ts`](src/lib/services/playbackReporting.ts#L99) - **Line:** 99 - **Context:** `Unknown` - **File:** [`src/lib/services/playbackReporting.ts`](src/lib/services/playbackReporting.ts#L136) - **Line:** 136 - **Context:** `Unknown` - **File:** [`src/lib/services/playerEvents.test.ts`](src/lib/services/playerEvents.test.ts#L4) - **Line:** 4 - **Context:** `Unknown` - **File:** [`src/lib/services/playbackReporting.test.ts`](src/lib/services/playbackReporting.test.ts#L4) - **Line:** 4 - **Context:** `Unknown` - **File:** [`src/lib/services/playerEvents.ts`](src/lib/services/playerEvents.ts#L8) - **Line:** 8 - **Context:** `Unknown` - **File:** [`src/lib/services/playerEvents.ts`](src/lib/services/playerEvents.ts#L26) - **Line:** 26 - **Context:** `Unknown` - **File:** [`src/lib/services/playerEvents.ts`](src/lib/services/playerEvents.ts#L160) - **Line:** 160 - **Context:** `Unknown` - **File:** [`src-tauri/src/player/events.rs`](src-tauri/src/player/events.rs#L6) - **Line:** 6 - **Context:** `Unknown` - **File:** [`src-tauri/src/player/events.rs`](src-tauri/src/player/events.rs#L20) - **Line:** 20 - **Context:** `Unknown` ### DR-029 **Locations:** 7 file(s) - **File:** [`src/lib/components/player/SleepTimerModal.svelte`](src/lib/components/player/SleepTimerModal.svelte#L1) - **Line:** 1 - **Context:** `Unknown` - **File:** [`src/lib/stores/sleepTimer.ts`](src/lib/stores/sleepTimer.ts#L10) - **Line:** 10 - **Context:** `Unknown` - **File:** [`src/lib/services/playerEvents.ts`](src/lib/services/playerEvents.ts#L263) - **Line:** 263 - **Context:** `function handleMediaLoaded(duration: number): void {` - **File:** [`src/lib/services/playerEvents.ts`](src/lib/services/playerEvents.ts#L300) - **Line:** 300 - **Context:** `Unknown` - **File:** [`src-tauri/src/player/sleep_timer.rs`](src-tauri/src/player/sleep_timer.rs#L4) - **Line:** 4 - **Context:** `Unknown` - **File:** [`src-tauri/src/player/sleep_timer.rs`](src-tauri/src/player/sleep_timer.rs#L81) - **Line:** 81 - **Context:** `pub fn cancel(&mut self) {` - **File:** [`src-tauri/src/player/autoplay.rs`](src-tauri/src/player/autoplay.rs#L2) - **Line:** 2 - **Context:** `Unknown` ### DR-032 **Locations:** 1 file(s) - **File:** [`src/lib/components/library/GenericMediaListPage.svelte`](src/lib/components/library/GenericMediaListPage.svelte#L1) - **Line:** 1 - **Context:** `Unknown` ### DR-033 **Locations:** 2 file(s) - **File:** [`src/lib/components/library/GenericMediaListPage.svelte`](src/lib/components/library/GenericMediaListPage.svelte#L1) - **Line:** 1 - **Context:** `Unknown` - **File:** [`src/lib/stores/library.ts`](src/lib/stores/library.ts#L2) - **Line:** 2 - **Context:** `Unknown` ### DR-034 **Locations:** 1 file(s) - **File:** [`src-tauri/src/settings.rs`](src-tauri/src/settings.rs#L1) - **Line:** 1 - **Context:** `Unknown` ### DR-035 **Locations:** 1 file(s) - **File:** [`src-tauri/src/settings.rs`](src-tauri/src/settings.rs#L1) - **Line:** 1 - **Context:** `Unknown` ### DR-036 **Locations:** 1 file(s) - **File:** [`src-tauri/src/settings.rs`](src-tauri/src/settings.rs#L1) - **Line:** 1 - **Context:** `Unknown` ### DR-037 **Locations:** 10 file(s) - **File:** [`src/lib/components/sessions/SessionsList.svelte`](src/lib/components/sessions/SessionsList.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/CastButton.svelte`](src/lib/components/sessions/CastButton.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/SessionCard.svelte`](src/lib/components/sessions/SessionCard.svelte#L1) - **Line:** 1 - **Context:** `Unknown` - **File:** [`src/lib/stores/sessions.test.ts`](src/lib/stores/sessions.test.ts#L2) - **Line:** 2 - **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.ts`](src/lib/stores/sessions.ts#L2) - **Line:** 2 - **Context:** `Unknown` - **File:** [`src-tauri/src/commands/sessions.rs`](src-tauri/src/commands/sessions.rs#L1) - **Line:** 1 - **Context:** `Unknown` ### DR-038 **Locations:** 2 file(s) - **File:** [`src/lib/components/home/HeroBanner.svelte`](src/lib/components/home/HeroBanner.svelte#L1) - **Line:** 1 - **Context:** `Unknown` - **File:** [`src/lib/stores/home.ts`](src/lib/stores/home.ts#L2) - **Line:** 2 - **Context:** `Unknown` ### DR-039 **Locations:** 2 file(s) - **File:** [`src/lib/components/home/Carousel.svelte`](src/lib/components/home/Carousel.svelte#L1) - **Line:** 1 - **Context:** `Unknown` - **File:** [`src/lib/stores/home.ts`](src/lib/stores/home.ts#L2) - **Line:** 2 - **Context:** `Unknown` ### DR-040 **Locations:** 2 file(s) - **File:** [`src/lib/components/library/CastSection.svelte`](src/lib/components/library/CastSection.svelte#L1) - **Line:** 1 - **Context:** `Unknown` - **File:** [`src/lib/components/library/CrewLinks.svelte`](src/lib/components/library/CrewLinks.svelte#L1) - **Line:** 1 - **Context:** `Unknown` ### DR-041 **Locations:** 1 file(s) - **File:** [`src/lib/components/library/PersonDetailView.svelte`](src/lib/components/library/PersonDetailView.svelte#L1) - **Line:** 1 - **Context:** `Unknown` ### DR-044 **Locations:** 1 file(s) - **File:** [`src/lib/components/library/CastSection.svelte`](src/lib/components/library/CastSection.svelte#L1) - **Line:** 1 - **Context:** `Unknown` ### DR-045 **Locations:** 1 file(s) - **File:** [`src/lib/components/BottomNav.svelte`](src/lib/components/BottomNav.svelte#L1) - **Line:** 1 - **Context:** `Unknown` ### DR-047 **Locations:** 12 file(s) - **File:** [`src/lib/stores/nextEpisode.ts`](src/lib/stores/nextEpisode.ts#L9) - **Line:** 9 - **Context:** `Unknown` - **File:** [`src/lib/services/nextEpisodeService.ts`](src/lib/services/nextEpisodeService.ts#L7) - **Line:** 7 - **Context:** `Unknown` - **File:** [`src/lib/services/playbackReporting.ts`](src/lib/services/playbackReporting.ts#L10) - **Line:** 10 - **Context:** `Unknown` - **File:** [`src/lib/services/playerEvents.test.ts`](src/lib/services/playerEvents.test.ts#L4) - **Line:** 4 - **Context:** `Unknown` - **File:** [`src/lib/services/playbackReporting.test.ts`](src/lib/services/playbackReporting.test.ts#L4) - **Line:** 4 - **Context:** `Unknown` - **File:** [`src/lib/services/playerEvents.ts`](src/lib/services/playerEvents.ts#L8) - **Line:** 8 - **Context:** `Unknown` - **File:** [`src/lib/services/playerEvents.ts`](src/lib/services/playerEvents.ts#L26) - **Line:** 26 - **Context:** `Unknown` - **File:** [`src/lib/services/playerEvents.ts`](src/lib/services/playerEvents.ts#L263) - **Line:** 263 - **Context:** `function handleMediaLoaded(duration: number): void {` - **File:** [`src/lib/services/playerEvents.ts`](src/lib/services/playerEvents.ts#L309) - **Line:** 309 - **Context:** `function handleSleepTimerChanged(mode: SleepTimerMode, remainingSecond...` - **File:** [`src-tauri/src/player/events.rs`](src-tauri/src/player/events.rs#L6) - **Line:** 6 - **Context:** `Unknown` - **File:** [`src-tauri/src/player/events.rs`](src-tauri/src/player/events.rs#L20) - **Line:** 20 - **Context:** `Unknown` - **File:** [`src-tauri/src/player/autoplay.rs`](src-tauri/src/player/autoplay.rs#L2) - **Line:** 2 - **Context:** `Unknown` ### DR-048 **Locations:** 6 file(s) - **File:** [`src/routes/settings/+page.svelte`](src/routes/settings/+page.svelte#L1) - **Line:** 1 - **Context:** `Unknown` - **File:** [`src/lib/stores/nextEpisode.ts`](src/lib/stores/nextEpisode.ts#L9) - **Line:** 9 - **Context:** `Unknown` - **File:** [`src/lib/services/nextEpisodeService.ts`](src/lib/services/nextEpisodeService.ts#L7) - **Line:** 7 - **Context:** `Unknown` - **File:** [`src/lib/services/playerEvents.ts`](src/lib/services/playerEvents.ts#L309) - **Line:** 309 - **Context:** `function handleSleepTimerChanged(mode: SleepTimerMode, remainingSecond...` - **File:** [`src-tauri/src/player/autoplay.rs`](src-tauri/src/player/autoplay.rs#L2) - **Line:** 2 - **Context:** `Unknown` - **File:** [`src-tauri/src/settings.rs`](src-tauri/src/settings.rs#L1) - **Line:** 1 - **Context:** `Unknown` ### DR-050 **Locations:** 1 file(s) - **File:** [`src/lib/components/player/SleepTimerModal.svelte`](src/lib/components/player/SleepTimerModal.svelte#L1) - **Line:** 1 - **Context:** `Unknown` ### JA-001 **Locations:** 1 file(s) - **File:** [`src-tauri/src/jellyfin/client.rs`](src-tauri/src/jellyfin/client.rs#L1) - **Line:** 1 - **Context:** `Unknown` ### JA-002 **Locations:** 1 file(s) - **File:** [`src-tauri/src/jellyfin/client.rs`](src-tauri/src/jellyfin/client.rs#L1) - **Line:** 1 - **Context:** `Unknown` ### JA-003 **Locations:** 1 file(s) - **File:** [`src-tauri/src/jellyfin/client.rs`](src-tauri/src/jellyfin/client.rs#L1) - **Line:** 1 - **Context:** `Unknown` ### JA-004 **Locations:** 2 file(s) - **File:** [`src-tauri/src/commands/repository.rs`](src-tauri/src/commands/repository.rs#L4) - **Line:** 4 - **Context:** `Unknown` - **File:** [`src-tauri/src/jellyfin/client.rs`](src-tauri/src/jellyfin/client.rs#L1) - **Line:** 1 - **Context:** `Unknown` ### JA-005 **Locations:** 1 file(s) - **File:** [`src-tauri/src/commands/repository.rs`](src-tauri/src/commands/repository.rs#L4) - **Line:** 4 - **Context:** `Unknown` ### JA-007 **Locations:** 1 file(s) - **File:** [`src-tauri/src/jellyfin/client.rs`](src-tauri/src/jellyfin/client.rs#L1) - **Line:** 1 - **Context:** `Unknown` ### JA-010 **Locations:** 1 file(s) - **File:** [`src-tauri/src/jellyfin/client.rs`](src-tauri/src/jellyfin/client.rs#L1) - **Line:** 1 - **Context:** `Unknown` ### JA-011 **Locations:** 1 file(s) - **File:** [`src-tauri/src/jellyfin/client.rs`](src-tauri/src/jellyfin/client.rs#L1) - **Line:** 1 - **Context:** `Unknown` ### JA-012 **Locations:** 1 file(s) - **File:** [`src-tauri/src/jellyfin/client.rs`](src-tauri/src/jellyfin/client.rs#L1) - **Line:** 1 - **Context:** `Unknown` ### JA-017 **Locations:** 1 file(s) - **File:** [`src-tauri/src/jellyfin/client.rs`](src-tauri/src/jellyfin/client.rs#L1) - **Line:** 1 - **Context:** `Unknown` ### JA-021 **Locations:** 5 file(s) - **File:** [`src/lib/components/sessions/SessionsList.svelte`](src/lib/components/sessions/SessionsList.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-tauri/src/commands/sessions.rs`](src-tauri/src/commands/sessions.rs#L1) - **Line:** 1 - **Context:** `Unknown` - **File:** [`src-tauri/src/jellyfin/client.rs`](src-tauri/src/jellyfin/client.rs#L1) - **Line:** 1 - **Context:** `Unknown` - **File:** [`src-tauri/src/session_poller/mod.rs`](src-tauri/src/session_poller/mod.rs#L6) - **Line:** 6 - **Context:** `Unknown` ### JA-022 **Locations:** 2 file(s) - **File:** [`src/lib/components/sessions/RemoteControls.svelte`](src/lib/components/sessions/RemoteControls.svelte#L1) - **Line:** 1 - **Context:** `Unknown` - **File:** [`src-tauri/src/commands/player.rs`](src-tauri/src/commands/player.rs#L1) - **Line:** 1 - **Context:** `Unknown` ### JA-023 **Locations:** 2 file(s) - **File:** [`src/lib/components/sessions/RemoteControls.svelte`](src/lib/components/sessions/RemoteControls.svelte#L1) - **Line:** 1 - **Context:** `Unknown` - **File:** [`src-tauri/src/commands/player.rs`](src-tauri/src/commands/player.rs#L1) - **Line:** 1 - **Context:** `Unknown` ### JA-024 **Locations:** 2 file(s) - **File:** [`src/lib/components/sessions/RemoteControls.svelte`](src/lib/components/sessions/RemoteControls.svelte#L1) - **Line:** 1 - **Context:** `Unknown` - **File:** [`src-tauri/src/commands/player.rs`](src-tauri/src/commands/player.rs#L1) - **Line:** 1 - **Context:** `Unknown` ### JA-025 **Locations:** 2 file(s) - **File:** [`src/lib/components/sessions/SessionPickerModal.svelte`](src/lib/components/sessions/SessionPickerModal.svelte#L1) - **Line:** 1 - **Context:** `Unknown` - **File:** [`src-tauri/src/commands/player.rs`](src-tauri/src/commands/player.rs#L1) - **Line:** 1 - **Context:** `Unknown` ### JA-026 **Locations:** 2 file(s) - **File:** [`src/lib/components/sessions/RemoteControls.svelte`](src/lib/components/sessions/RemoteControls.svelte#L1) - **Line:** 1 - **Context:** `Unknown` - **File:** [`src-tauri/src/commands/player.rs`](src-tauri/src/commands/player.rs#L1) - **Line:** 1 - **Context:** `Unknown` ### JA-029 **Locations:** 3 file(s) - **File:** [`src/lib/components/library/CastSection.svelte`](src/lib/components/library/CastSection.svelte#L1) - **Line:** 1 - **Context:** `Unknown` - **File:** [`src/lib/components/library/CrewLinks.svelte`](src/lib/components/library/CrewLinks.svelte#L1) - **Line:** 1 - **Context:** `Unknown` - **File:** [`src-tauri/src/commands/repository.rs`](src-tauri/src/commands/repository.rs#L4) - **Line:** 4 - **Context:** `Unknown` ### JA-030 **Locations:** 2 file(s) - **File:** [`src/lib/components/library/PersonDetailView.svelte`](src/lib/components/library/PersonDetailView.svelte#L1) - **Line:** 1 - **Context:** `Unknown` - **File:** [`src-tauri/src/commands/repository.rs`](src-tauri/src/commands/repository.rs#L4) - **Line:** 4 - **Context:** `Unknown` ### JA-031 **Locations:** 2 file(s) - **File:** [`src/lib/components/library/PersonDetailView.svelte`](src/lib/components/library/PersonDetailView.svelte#L1) - **Line:** 1 - **Context:** `Unknown` - **File:** [`src-tauri/src/commands/repository.rs`](src-tauri/src/commands/repository.rs#L4) - **Line:** 4 - **Context:** `Unknown` ### UR-002 **Locations:** 10 file(s) - **File:** [`src/lib/stores/connectivity.ts`](src/lib/stores/connectivity.ts#L5) - **Line:** 5 - **Context:** `Unknown` - **File:** [`src/lib/services/syncService.ts`](src/lib/services/syncService.ts#L7) - **Line:** 7 - **Context:** `Unknown` - **File:** [`src-tauri/src/player/media.rs`](src-tauri/src/player/media.rs#L116) - **Line:** 116 - **Context:** `pub enum MediaType {` - **File:** [`src-tauri/src/commands/offline.rs`](src-tauri/src/commands/offline.rs#L133) - **Line:** 133 - **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/sync.rs`](src-tauri/src/commands/sync.rs#L5) - **Line:** 5 - **Context:** `Unknown` - **File:** [`src-tauri/src/storage/db_service.rs`](src-tauri/src/storage/db_service.rs#L288) - **Line:** 288 - **Context:** `Unknown` - **File:** [`src-tauri/src/storage/mod.rs`](src-tauri/src/storage/mod.rs#L159) - **Line:** 159 - **Context:** `pub fn file_size(&self) -> Option {` - **File:** [`src-tauri/src/storage/schema.rs`](src-tauri/src/storage/schema.rs#L3) - **Line:** 3 - **Context:** `Unknown` - **File:** [`src-tauri/src/repository/online.rs`](src-tauri/src/repository/online.rs#L1) - **Line:** 1 - **Context:** `Unknown` ### UR-003 **Locations:** 9 file(s) - **File:** [`src/lib/components/player/VideoPlayer.svelte`](src/lib/components/player/VideoPlayer.svelte#L1) - **Line:** 1 - **Context:** `Unknown` - **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L39) - **Line:** 39 - **Context:** `pub fn playback_failed>(message: S) -> Self {` - **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L235) - **Line:** 235 - **Context:** `Unknown` - **File:** [`src-tauri/src/player/mpv_backend_test.rs`](src-tauri/src/player/mpv_backend_test.rs#L8) - **Line:** 8 - **Context:** `Unknown` - **File:** [`src-tauri/src/player/media.rs`](src-tauri/src/player/media.rs#L42) - **Line:** 42 - **Context:** `Unknown` - **File:** [`src-tauri/src/player/media.rs`](src-tauri/src/player/media.rs#L116) - **Line:** 116 - **Context:** `pub enum MediaType {` - **File:** [`src-tauri/src/player/mod.rs`](src-tauri/src/player/mod.rs#L2) - **Line:** 2 - **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/player.rs`](src-tauri/src/commands/player.rs#L1) - **Line:** 1 - **Context:** `Unknown` ### UR-004 **Locations:** 11 file(s) - **File:** [`src/lib/components/player/AudioPlayer.svelte`](src/lib/components/player/AudioPlayer.svelte#L1) - **Line:** 1 - **Context:** `Unknown` - **File:** [`src/lib/services/preload.ts`](src/lib/services/preload.ts#L5) - **Line:** 5 - **Context:** `Unknown` - **File:** [`src/lib/services/preload.test.ts`](src/lib/services/preload.test.ts#L4) - **Line:** 4 - **Context:** `Unknown` - **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L39) - **Line:** 39 - **Context:** `pub fn playback_failed>(message: S) -> Self {` - **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L235) - **Line:** 235 - **Context:** `Unknown` - **File:** [`src-tauri/src/player/mpv_backend_test.rs`](src-tauri/src/player/mpv_backend_test.rs#L8) - **Line:** 8 - **Context:** `Unknown` - **File:** [`src-tauri/src/player/media.rs`](src-tauri/src/player/media.rs#L42) - **Line:** 42 - **Context:** `Unknown` - **File:** [`src-tauri/src/player/media.rs`](src-tauri/src/player/media.rs#L116) - **Line:** 116 - **Context:** `pub enum MediaType {` - **File:** [`src-tauri/src/player/mod.rs`](src-tauri/src/player/mod.rs#L2) - **Line:** 2 - **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/player.rs`](src-tauri/src/commands/player.rs#L1) - **Line:** 1 - **Context:** `Unknown` ### UR-005 **Locations:** 40 file(s) - **File:** [`src/lib/components/player/AudioPlayer.svelte`](src/lib/components/player/AudioPlayer.svelte#L1) - **Line:** 1 - **Context:** `Unknown` - **File:** [`src/lib/components/player/MiniPlayer.svelte`](src/lib/components/player/MiniPlayer.svelte#L1) - **Line:** 1 - **Context:** `Unknown` - **File:** [`src/lib/components/player/Controls.svelte`](src/lib/components/player/Controls.svelte#L1) - **Line:** 1 - **Context:** `Unknown` - **File:** [`src/lib/components/player/VideoPlayer.svelte`](src/lib/components/player/VideoPlayer.svelte#L1) - **Line:** 1 - **Context:** `Unknown` - **File:** [`src/lib/stores/appState.ts`](src/lib/stores/appState.ts#L2) - **Line:** 2 - **Context:** `Unknown` - **File:** [`src/lib/stores/queue.test.ts`](src/lib/stores/queue.test.ts#L4) - **Line:** 4 - **Context:** `Unknown` - **File:** [`src/lib/stores/player.ts`](src/lib/stores/player.ts#L8) - **Line:** 8 - **Context:** `Unknown` - **File:** [`src/lib/stores/player.ts`](src/lib/stores/player.ts#L29) - **Line:** 29 - **Context:** `Unknown` - **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L7) - **Line:** 7 - **Context:** `Unknown` - **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L106) - **Line:** 106 - **Context:** `Unknown` - **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L111) - **Line:** 111 - **Context:** `async function next() {` - **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L116) - **Line:** 116 - **Context:** `async function previous() {` - **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L121) - **Line:** 121 - **Context:** `async function skipTo(index: number) {` - **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L126) - **Line:** 126 - **Context:** `async function toggleShuffle() {` - **File:** [`src/lib/utils/duration.test.ts`](src/lib/utils/duration.test.ts#L4) - **Line:** 4 - **Context:** `Unknown` - **File:** [`src/lib/services/playbackReporting.ts`](src/lib/services/playbackReporting.ts#L10) - **Line:** 10 - **Context:** `Unknown` - **File:** [`src/lib/services/playbackReporting.ts`](src/lib/services/playbackReporting.ts#L21) - **Line:** 21 - **Context:** `Unknown` - **File:** [`src/lib/services/playbackReporting.ts`](src/lib/services/playbackReporting.ts#L64) - **Line:** 64 - **Context:** `Unknown` - **File:** [`src/lib/services/playbackReporting.ts`](src/lib/services/playbackReporting.ts#L99) - **Line:** 99 - **Context:** `Unknown` - **File:** [`src/lib/services/playerEvents.test.ts`](src/lib/services/playerEvents.test.ts#L4) - **Line:** 4 - **Context:** `Unknown` - **File:** [`src/lib/services/playbackReporting.test.ts`](src/lib/services/playbackReporting.test.ts#L4) - **Line:** 4 - **Context:** `Unknown` - **File:** [`src/lib/services/playerEvents.ts`](src/lib/services/playerEvents.ts#L8) - **Line:** 8 - **Context:** `Unknown` - **File:** [`src/lib/services/playerEvents.ts`](src/lib/services/playerEvents.ts#L26) - **Line:** 26 - **Context:** `Unknown` - **File:** [`src/lib/services/playerEvents.ts`](src/lib/services/playerEvents.ts#L160) - **Line:** 160 - **Context:** `Unknown` - **File:** [`src/lib/services/playerEvents.ts`](src/lib/services/playerEvents.ts#L170) - **Line:** 170 - **Context:** `function handlePositionUpdate(position: number, duration: number): voi...` - **File:** [`src-tauri/src/player/events.rs`](src-tauri/src/player/events.rs#L6) - **Line:** 6 - **Context:** `Unknown` - **File:** [`src-tauri/src/player/events.rs`](src-tauri/src/player/events.rs#L20) - **Line:** 20 - **Context:** `Unknown` - **File:** [`src-tauri/src/player/queue.rs`](src-tauri/src/player/queue.rs#L8) - **Line:** 8 - **Context:** `Unknown` - **File:** [`src-tauri/src/player/queue.rs`](src-tauri/src/player/queue.rs#L20) - **Line:** 20 - **Context:** `pub enum RepeatMode {` - **File:** [`src-tauri/src/player/queue.rs`](src-tauri/src/player/queue.rs#L508) - **Line:** 508 - **Context:** `pub enum AddPosition {` - **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L42) - **Line:** 42 - **Context:** `Unknown` - **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L46) - **Line:** 46 - **Context:** `Unknown` - **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L50) - **Line:** 50 - **Context:** `Unknown` - **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L54) - **Line:** 54 - **Context:** `Unknown` - **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L58) - **Line:** 58 - **Context:** `Unknown` - **File:** [`src-tauri/src/player/state.rs`](src-tauri/src/player/state.rs#L7) - **Line:** 7 - **Context:** `Unknown` - **File:** [`src-tauri/src/player/state.rs`](src-tauri/src/player/state.rs#L25) - **Line:** 25 - **Context:** `Unknown` - **File:** [`src-tauri/src/player/mod.rs`](src-tauri/src/player/mod.rs#L2) - **Line:** 2 - **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/player.rs`](src-tauri/src/commands/player.rs#L1) - **Line:** 1 - **Context:** `Unknown` ### UR-007 **Locations:** 6 file(s) - **File:** [`src/lib/components/library/GenericMediaListPage.svelte`](src/lib/components/library/GenericMediaListPage.svelte#L1) - **Line:** 1 - **Context:** `Unknown` - **File:** [`src/lib/stores/library.ts`](src/lib/stores/library.ts#L2) - **Line:** 2 - **Context:** `Unknown` - **File:** [`src/lib/services/imageCache.ts`](src/lib/services/imageCache.ts#L2) - **Line:** 2 - **Context:** `Unknown` - **File:** [`src/lib/services/imageCache.test.ts`](src/lib/services/imageCache.test.ts#L4) - **Line:** 4 - **Context:** `Unknown` - **File:** [`src-tauri/src/commands/repository.rs`](src-tauri/src/commands/repository.rs#L4) - **Line:** 4 - **Context:** `Unknown` - **File:** [`src-tauri/src/repository/online.rs`](src-tauri/src/repository/online.rs#L1) - **Line:** 1 - **Context:** `Unknown` ### UR-008 **Locations:** 1 file(s) - **File:** [`src/lib/stores/library.ts`](src/lib/stores/library.ts#L2) - **Line:** 2 - **Context:** `Unknown` ### UR-009 **Locations:** 13 file(s) - **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#L269) - **Line:** 269 - **Context:** `Unknown` - **File:** [`src/lib/stores/auth.ts`](src/lib/stores/auth.ts#L296) - **Line:** 296 - **Context:** `Unknown` - **File:** [`src/lib/stores/auth.test.ts`](src/lib/stores/auth.test.ts#L4) - **Line:** 4 - **Context:** `Unknown` - **File:** [`src/lib/utils/validation.test.ts`](src/lib/utils/validation.test.ts#L4) - **Line:** 4 - **Context:** `Unknown` - **File:** [`src/lib/services/deviceId.ts`](src/lib/services/deviceId.ts#L8) - **Line:** 8 - **Context:** `Unknown` - **File:** [`src/lib/services/deviceId.ts`](src/lib/services/deviceId.ts#L23) - **Line:** 23 - **Context:** `Unknown` - **File:** [`src/lib/services/deviceId.test.ts`](src/lib/services/deviceId.test.ts#L7) - **Line:** 7 - **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/device.rs`](src-tauri/src/commands/device.rs#L4) - **Line:** 4 - **Context:** `Unknown` - **File:** [`src-tauri/src/commands/device.rs`](src-tauri/src/commands/device.rs#L24) - **Line:** 24 - **Context:** `Unknown` - **File:** [`src-tauri/src/commands/device.rs`](src-tauri/src/commands/device.rs#L80) - **Line:** 80 - **Context:** `Unknown` - **File:** [`src-tauri/src/jellyfin/client.rs`](src-tauri/src/jellyfin/client.rs#L1) - **Line:** 1 - **Context:** `Unknown` ### UR-010 **Locations:** 12 file(s) - **File:** [`src/lib/components/sessions/SessionsList.svelte`](src/lib/components/sessions/SessionsList.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/CastButton.svelte`](src/lib/components/sessions/CastButton.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/SessionCard.svelte`](src/lib/components/sessions/SessionCard.svelte#L1) - **Line:** 1 - **Context:** `Unknown` - **File:** [`src/lib/stores/sessions.test.ts`](src/lib/stores/sessions.test.ts#L2) - **Line:** 2 - **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.ts`](src/lib/stores/sessions.ts#L2) - **Line:** 2 - **Context:** `Unknown` - **File:** [`src-tauri/src/commands/player.rs`](src-tauri/src/commands/player.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/session_poller/mod.rs`](src-tauri/src/session_poller/mod.rs#L6) - **Line:** 6 - **Context:** `Unknown` ### UR-011 **Locations:** 8 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` - **File:** [`src/lib/services/preload.ts`](src/lib/services/preload.ts#L5) - **Line:** 5 - **Context:** `Unknown` - **File:** [`src/lib/services/preload.test.ts`](src/lib/services/preload.test.ts#L4) - **Line:** 4 - **Context:** `Unknown` - **File:** [`src-tauri/src/player/media.rs`](src-tauri/src/player/media.rs#L116) - **Line:** 116 - **Context:** `pub enum MediaType {` - **File:** [`src-tauri/src/commands/offline.rs`](src-tauri/src/commands/offline.rs#L133) - **Line:** 133 - **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/download.rs`](src-tauri/src/commands/download.rs#L1552) - **Line:** 1552 - **Context:** `Unknown` ### UR-012 **Locations:** 8 file(s) - **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#L296) - **Line:** 296 - **Context:** `Unknown` - **File:** [`src/lib/stores/auth.ts`](src/lib/stores/auth.ts#L466) - **Line:** 466 - **Context:** `Unknown` - **File:** [`src/lib/stores/auth.test.ts`](src/lib/stores/auth.test.ts#L4) - **Line:** 4 - **Context:** `Unknown` - **File:** [`src-tauri/src/commands/mod.rs`](src-tauri/src/commands/mod.rs#L2) - **Line:** 2 - **Context:** `Unknown` - **File:** [`src-tauri/src/storage/db_service.rs`](src-tauri/src/storage/db_service.rs#L288) - **Line:** 288 - **Context:** `Unknown` - **File:** [`src-tauri/src/storage/mod.rs`](src-tauri/src/storage/mod.rs#L159) - **Line:** 159 - **Context:** `pub fn file_size(&self) -> Option {` - **File:** [`src-tauri/src/credentials.rs`](src-tauri/src/credentials.rs#L10) - **Line:** 10 - **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-015 **Locations:** 12 file(s) - **File:** [`src/lib/stores/queue.test.ts`](src/lib/stores/queue.test.ts#L4) - **Line:** 4 - **Context:** `Unknown` - **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L7) - **Line:** 7 - **Context:** `Unknown` - **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L106) - **Line:** 106 - **Context:** `Unknown` - **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L111) - **Line:** 111 - **Context:** `async function next() {` - **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L116) - **Line:** 116 - **Context:** `async function previous() {` - **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L121) - **Line:** 121 - **Context:** `async function skipTo(index: number) {` - **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L126) - **Line:** 126 - **Context:** `async function toggleShuffle() {` - **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L131) - **Line:** 131 - **Context:** `async function cycleRepeat() {` - **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L136) - **Line:** 136 - **Context:** `async function removeFromQueue(index: number) {` - **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L141) - **Line:** 141 - **Context:** `async function moveInQueue(fromIndex: number, toIndex: number) {` - **File:** [`src-tauri/src/player/queue.rs`](src-tauri/src/player/queue.rs#L20) - **Line:** 20 - **Context:** `pub enum RepeatMode {` - **File:** [`src-tauri/src/player/queue.rs`](src-tauri/src/player/queue.rs#L508) - **Line:** 508 - **Context:** `pub enum AddPosition {` ### UR-016 **Locations:** 2 file(s) - **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L62) - **Line:** 62 - **Context:** `Unknown` - **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L241) - **Line:** 241 - **Context:** `Unknown` ### UR-017 **Locations:** 8 file(s) - **File:** [`src/lib/components/player/MiniPlayer.svelte`](src/lib/components/player/MiniPlayer.svelte#L1) - **Line:** 1 - **Context:** `Unknown` - **File:** [`src/lib/services/favorites.ts`](src/lib/services/favorites.ts#L2) - **Line:** 2 - **Context:** `Unknown` - **File:** [`src/lib/services/favorites.test.ts`](src/lib/services/favorites.test.ts#L4) - **Line:** 4 - **Context:** `Unknown` - **File:** [`src/lib/services/syncService.ts`](src/lib/services/syncService.ts#L7) - **Line:** 7 - **Context:** `Unknown` - **File:** [`src/lib/services/syncService.ts`](src/lib/services/syncService.ts#L58) - **Line:** 58 - **Context:** `Unknown` - **File:** [`src/lib/services/syncService.ts`](src/lib/services/syncService.ts#L170) - **Line:** 170 - **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/sync.rs`](src-tauri/src/commands/sync.rs#L5) - **Line:** 5 - **Context:** `Unknown` ### UR-018 **Locations:** 3 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` - **File:** [`src-tauri/src/commands/download.rs`](src-tauri/src/commands/download.rs#L1552) - **Line:** 1552 - **Context:** `Unknown` ### UR-019 **Locations:** 10 file(s) - **File:** [`src/lib/services/playbackReporting.ts`](src/lib/services/playbackReporting.ts#L10) - **Line:** 10 - **Context:** `Unknown` - **File:** [`src/lib/services/playerEvents.test.ts`](src/lib/services/playerEvents.test.ts#L4) - **Line:** 4 - **Context:** `Unknown` - **File:** [`src/lib/services/playbackReporting.test.ts`](src/lib/services/playbackReporting.test.ts#L4) - **Line:** 4 - **Context:** `Unknown` - **File:** [`src/lib/services/playerEvents.ts`](src/lib/services/playerEvents.ts#L8) - **Line:** 8 - **Context:** `Unknown` - **File:** [`src/lib/services/playerEvents.ts`](src/lib/services/playerEvents.ts#L26) - **Line:** 26 - **Context:** `Unknown` - **File:** [`src-tauri/src/player/events.rs`](src-tauri/src/player/events.rs#L6) - **Line:** 6 - **Context:** `Unknown` - **File:** [`src-tauri/src/player/events.rs`](src-tauri/src/player/events.rs#L20) - **Line:** 20 - **Context:** `Unknown` - **File:** [`src-tauri/src/player/mod.rs`](src-tauri/src/player/mod.rs#L2) - **Line:** 2 - **Context:** `Unknown` - **File:** [`src-tauri/src/commands/mod.rs`](src-tauri/src/commands/mod.rs#L2) - **Line:** 2 - **Context:** `Unknown` - **File:** [`src-tauri/src/storage/mod.rs`](src-tauri/src/storage/mod.rs#L159) - **Line:** 159 - **Context:** `pub fn file_size(&self) -> Option {` ### UR-020 **Locations:** 2 file(s) - **File:** [`src/lib/components/player/VideoPlayer.svelte`](src/lib/components/player/VideoPlayer.svelte#L1) - **Line:** 1 - **Context:** `Unknown` - **File:** [`src-tauri/src/commands/player.rs`](src-tauri/src/commands/player.rs#L1) - **Line:** 1 - **Context:** `Unknown` ### UR-021 **Locations:** 2 file(s) - **File:** [`src/lib/components/player/VideoPlayer.svelte`](src/lib/components/player/VideoPlayer.svelte#L1) - **Line:** 1 - **Context:** `Unknown` - **File:** [`src-tauri/src/commands/player.rs`](src-tauri/src/commands/player.rs#L1) - **Line:** 1 - **Context:** `Unknown` ### UR-023 **Locations:** 14 file(s) - **File:** [`src/routes/settings/+page.svelte`](src/routes/settings/+page.svelte#L1) - **Line:** 1 - **Context:** `Unknown` - **File:** [`src/lib/stores/nextEpisode.ts`](src/lib/stores/nextEpisode.ts#L9) - **Line:** 9 - **Context:** `Unknown` - **File:** [`src/lib/stores/home.ts`](src/lib/stores/home.ts#L2) - **Line:** 2 - **Context:** `Unknown` - **File:** [`src/lib/services/nextEpisodeService.ts`](src/lib/services/nextEpisodeService.ts#L7) - **Line:** 7 - **Context:** `Unknown` - **File:** [`src/lib/services/playerEvents.test.ts`](src/lib/services/playerEvents.test.ts#L4) - **Line:** 4 - **Context:** `Unknown` - **File:** [`src/lib/services/playerEvents.ts`](src/lib/services/playerEvents.ts#L8) - **Line:** 8 - **Context:** `Unknown` - **File:** [`src/lib/services/playerEvents.ts`](src/lib/services/playerEvents.ts#L26) - **Line:** 26 - **Context:** `Unknown` - **File:** [`src/lib/services/playerEvents.ts`](src/lib/services/playerEvents.ts#L263) - **Line:** 263 - **Context:** `function handleMediaLoaded(duration: number): void {` - **File:** [`src/lib/services/playerEvents.ts`](src/lib/services/playerEvents.ts#L309) - **Line:** 309 - **Context:** `function handleSleepTimerChanged(mode: SleepTimerMode, remainingSecond...` - **File:** [`src-tauri/src/player/events.rs`](src-tauri/src/player/events.rs#L6) - **Line:** 6 - **Context:** `Unknown` - **File:** [`src-tauri/src/player/events.rs`](src-tauri/src/player/events.rs#L20) - **Line:** 20 - **Context:** `Unknown` - **File:** [`src-tauri/src/player/autoplay.rs`](src-tauri/src/player/autoplay.rs#L2) - **Line:** 2 - **Context:** `Unknown` - **File:** [`src-tauri/src/player/mod.rs`](src-tauri/src/player/mod.rs#L2) - **Line:** 2 - **Context:** `Unknown` - **File:** [`src-tauri/src/settings.rs`](src-tauri/src/settings.rs#L1) - **Line:** 1 - **Context:** `Unknown` ### UR-024 **Locations:** 1 file(s) - **File:** [`src/lib/stores/home.ts`](src/lib/stores/home.ts#L2) - **Line:** 2 - **Context:** `Unknown` ### UR-025 **Locations:** 12 file(s) - **File:** [`src/lib/utils/validation.test.ts`](src/lib/utils/validation.test.ts#L4) - **Line:** 4 - **Context:** `Unknown` - **File:** [`src/lib/services/playbackReporting.ts`](src/lib/services/playbackReporting.ts#L10) - **Line:** 10 - **Context:** `Unknown` - **File:** [`src/lib/services/playbackReporting.ts`](src/lib/services/playbackReporting.ts#L21) - **Line:** 21 - **Context:** `Unknown` - **File:** [`src/lib/services/playbackReporting.ts`](src/lib/services/playbackReporting.ts#L99) - **Line:** 99 - **Context:** `Unknown` - **File:** [`src/lib/services/playbackReporting.ts`](src/lib/services/playbackReporting.ts#L136) - **Line:** 136 - **Context:** `Unknown` - **File:** [`src/lib/services/playbackReporting.test.ts`](src/lib/services/playbackReporting.test.ts#L4) - **Line:** 4 - **Context:** `Unknown` - **File:** [`src/lib/services/playerEvents.ts`](src/lib/services/playerEvents.ts#L160) - **Line:** 160 - **Context:** `Unknown` - **File:** [`src/lib/services/syncService.ts`](src/lib/services/syncService.ts#L7) - **Line:** 7 - **Context:** `Unknown` - **File:** [`src/lib/services/syncService.ts`](src/lib/services/syncService.ts#L58) - **Line:** 58 - **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/sync.rs`](src-tauri/src/commands/sync.rs#L5) - **Line:** 5 - **Context:** `Unknown` - **File:** [`src-tauri/src/storage/mod.rs`](src-tauri/src/storage/mod.rs#L159) - **Line:** 159 - **Context:** `pub fn file_size(&self) -> Option {` ### UR-026 **Locations:** 14 file(s) - **File:** [`src/lib/components/player/SleepTimerModal.svelte`](src/lib/components/player/SleepTimerModal.svelte#L1) - **Line:** 1 - **Context:** `Unknown` - **File:** [`src/lib/components/player/VideoPlayer.svelte`](src/lib/components/player/VideoPlayer.svelte#L1) - **Line:** 1 - **Context:** `Unknown` - **File:** [`src/lib/stores/sleepTimer.ts`](src/lib/stores/sleepTimer.ts#L10) - **Line:** 10 - **Context:** `Unknown` - **File:** [`src/lib/services/playerEvents.test.ts`](src/lib/services/playerEvents.test.ts#L4) - **Line:** 4 - **Context:** `Unknown` - **File:** [`src/lib/services/playerEvents.ts`](src/lib/services/playerEvents.ts#L8) - **Line:** 8 - **Context:** `Unknown` - **File:** [`src/lib/services/playerEvents.ts`](src/lib/services/playerEvents.ts#L26) - **Line:** 26 - **Context:** `Unknown` - **File:** [`src/lib/services/playerEvents.ts`](src/lib/services/playerEvents.ts#L263) - **Line:** 263 - **Context:** `function handleMediaLoaded(duration: number): void {` - **File:** [`src/lib/services/playerEvents.ts`](src/lib/services/playerEvents.ts#L300) - **Line:** 300 - **Context:** `Unknown` - **File:** [`src-tauri/src/player/events.rs`](src-tauri/src/player/events.rs#L6) - **Line:** 6 - **Context:** `Unknown` - **File:** [`src-tauri/src/player/events.rs`](src-tauri/src/player/events.rs#L20) - **Line:** 20 - **Context:** `Unknown` - **File:** [`src-tauri/src/player/sleep_timer.rs`](src-tauri/src/player/sleep_timer.rs#L4) - **Line:** 4 - **Context:** `Unknown` - **File:** [`src-tauri/src/player/sleep_timer.rs`](src-tauri/src/player/sleep_timer.rs#L81) - **Line:** 81 - **Context:** `pub fn cancel(&mut self) {` - **File:** [`src-tauri/src/player/autoplay.rs`](src-tauri/src/player/autoplay.rs#L2) - **Line:** 2 - **Context:** `Unknown` - **File:** [`src-tauri/src/player/mod.rs`](src-tauri/src/player/mod.rs#L2) - **Line:** 2 - **Context:** `Unknown` ### UR-028 **Locations:** 2 file(s) - **File:** [`src/lib/components/player/AudioPlayer.svelte`](src/lib/components/player/AudioPlayer.svelte#L1) - **Line:** 1 - **Context:** `Unknown` - **File:** [`src/lib/components/player/MiniPlayer.svelte`](src/lib/components/player/MiniPlayer.svelte#L1) - **Line:** 1 - **Context:** `Unknown` ### UR-029 **Locations:** 2 file(s) - **File:** [`src/lib/components/library/GenericMediaListPage.svelte`](src/lib/components/library/GenericMediaListPage.svelte#L1) - **Line:** 1 - **Context:** `Unknown` - **File:** [`src/lib/stores/library.ts`](src/lib/stores/library.ts#L2) - **Line:** 2 - **Context:** `Unknown` ### UR-030 **Locations:** 2 file(s) - **File:** [`src/lib/components/library/GenericMediaListPage.svelte`](src/lib/components/library/GenericMediaListPage.svelte#L1) - **Line:** 1 - **Context:** `Unknown` - **File:** [`src/lib/stores/library.ts`](src/lib/stores/library.ts#L2) - **Line:** 2 - **Context:** `Unknown` ### UR-034 **Locations:** 3 file(s) - **File:** [`src/lib/components/home/HeroBanner.svelte`](src/lib/components/home/HeroBanner.svelte#L1) - **Line:** 1 - **Context:** `Unknown` - **File:** [`src/lib/components/home/Carousel.svelte`](src/lib/components/home/Carousel.svelte#L1) - **Line:** 1 - **Context:** `Unknown` - **File:** [`src/lib/stores/home.ts`](src/lib/stores/home.ts#L2) - **Line:** 2 - **Context:** `Unknown` ### UR-035 **Locations:** 3 file(s) - **File:** [`src/lib/components/library/CastSection.svelte`](src/lib/components/library/CastSection.svelte#L1) - **Line:** 1 - **Context:** `Unknown` - **File:** [`src/lib/components/library/CrewLinks.svelte`](src/lib/components/library/CrewLinks.svelte#L1) - **Line:** 1 - **Context:** `Unknown` - **File:** [`src-tauri/src/commands/repository.rs`](src-tauri/src/commands/repository.rs#L4) - **Line:** 4 - **Context:** `Unknown` ### UR-036 **Locations:** 2 file(s) - **File:** [`src/lib/components/library/PersonDetailView.svelte`](src/lib/components/library/PersonDetailView.svelte#L1) - **Line:** 1 - **Context:** `Unknown` - **File:** [`src-tauri/src/commands/repository.rs`](src-tauri/src/commands/repository.rs#L4) - **Line:** 4 - **Context:** `Unknown` ### UR-039 **Locations:** 1 file(s) - **File:** [`src/lib/components/BottomNav.svelte`](src/lib/components/BottomNav.svelte#L1) - **Line:** 1 - **Context:** `Unknown` ### IT-003 **Locations:** 1 file(s) - **File:** [`src-tauri/src/player/mpv_backend_test.rs`](src-tauri/src/player/mpv_backend_test.rs#L8) - **Line:** 8 - **Context:** `Unknown` ### IT-004 **Locations:** 1 file(s) - **File:** [`src-tauri/src/player/mpv_backend_test.rs`](src-tauri/src/player/mpv_backend_test.rs#L8) - **Line:** 8 - **Context:** `Unknown` ### UT-003 **Locations:** 1 file(s) - **File:** [`src-tauri/src/player/queue.rs`](src-tauri/src/player/queue.rs#L508) - **Line:** 508 - **Context:** `pub enum AddPosition {` ### UT-004 **Locations:** 1 file(s) - **File:** [`src-tauri/src/player/queue.rs`](src-tauri/src/player/queue.rs#L508) - **Line:** 508 - **Context:** `pub enum AddPosition {` ### UT-005 **Locations:** 1 file(s) - **File:** [`src-tauri/src/player/queue.rs`](src-tauri/src/player/queue.rs#L508) - **Line:** 508 - **Context:** `pub enum AddPosition {` ### UT-010 **Locations:** 1 file(s) - **File:** [`src/lib/stores/downloads.test.ts`](src/lib/stores/downloads.test.ts#L2) - **Line:** 2 - **Context:** `Unknown` ### UT-012 **Locations:** 1 file(s) - **File:** [`src-tauri/src/player/sleep_timer.rs`](src-tauri/src/player/sleep_timer.rs#L81) - **Line:** 81 - **Context:** `pub fn cancel(&mut self) {` ### UT-014 **Locations:** 2 file(s) - **File:** [`src-tauri/src/storage/db_service.rs`](src-tauri/src/storage/db_service.rs#L288) - **Line:** 288 - **Context:** `Unknown` - **File:** [`src-tauri/src/storage/mod.rs`](src-tauri/src/storage/mod.rs#L159) - **Line:** 159 - **Context:** `pub fn file_size(&self) -> Option {` ### UT-015 **Locations:** 2 file(s) - **File:** [`src-tauri/src/storage/db_service.rs`](src-tauri/src/storage/db_service.rs#L288) - **Line:** 288 - **Context:** `Unknown` - **File:** [`src-tauri/src/storage/mod.rs`](src-tauri/src/storage/mod.rs#L159) - **Line:** 159 - **Context:** `pub fn file_size(&self) -> Option {` ### UT-016 **Locations:** 2 file(s) - **File:** [`src-tauri/src/storage/db_service.rs`](src-tauri/src/storage/db_service.rs#L288) - **Line:** 288 - **Context:** `Unknown` - **File:** [`src-tauri/src/storage/mod.rs`](src-tauri/src/storage/mod.rs#L159) - **Line:** 159 - **Context:** `pub fn file_size(&self) -> Option {` ### UT-017 **Locations:** 2 file(s) - **File:** [`src-tauri/src/storage/db_service.rs`](src-tauri/src/storage/db_service.rs#L288) - **Line:** 288 - **Context:** `Unknown` - **File:** [`src-tauri/src/storage/mod.rs`](src-tauri/src/storage/mod.rs#L159) - **Line:** 159 - **Context:** `pub fn file_size(&self) -> Option {` ### UT-018 **Locations:** 2 file(s) - **File:** [`src-tauri/src/storage/db_service.rs`](src-tauri/src/storage/db_service.rs#L288) - **Line:** 288 - **Context:** `Unknown` - **File:** [`src-tauri/src/storage/mod.rs`](src-tauri/src/storage/mod.rs#L159) - **Line:** 159 - **Context:** `pub fn file_size(&self) -> Option {` ### UT-019 **Locations:** 2 file(s) - **File:** [`src-tauri/src/storage/db_service.rs`](src-tauri/src/storage/db_service.rs#L288) - **Line:** 288 - **Context:** `Unknown` - **File:** [`src-tauri/src/storage/mod.rs`](src-tauri/src/storage/mod.rs#L159) - **Line:** 159 - **Context:** `pub fn file_size(&self) -> Option {` ### UT-020 **Locations:** 2 file(s) - **File:** [`src-tauri/src/storage/db_service.rs`](src-tauri/src/storage/db_service.rs#L288) - **Line:** 288 - **Context:** `Unknown` - **File:** [`src-tauri/src/storage/mod.rs`](src-tauri/src/storage/mod.rs#L159) - **Line:** 159 - **Context:** `pub fn file_size(&self) -> Option {` ### UT-021 **Locations:** 2 file(s) - **File:** [`src-tauri/src/storage/db_service.rs`](src-tauri/src/storage/db_service.rs#L288) - **Line:** 288 - **Context:** `Unknown` - **File:** [`src-tauri/src/storage/mod.rs`](src-tauri/src/storage/mod.rs#L159) - **Line:** 159 - **Context:** `pub fn file_size(&self) -> Option {` ### UT-022 **Locations:** 2 file(s) - **File:** [`src-tauri/src/storage/db_service.rs`](src-tauri/src/storage/db_service.rs#L288) - **Line:** 288 - **Context:** `Unknown` - **File:** [`src-tauri/src/storage/mod.rs`](src-tauri/src/storage/mod.rs#L159) - **Line:** 159 - **Context:** `pub fn file_size(&self) -> Option {` ### UT-023 **Locations:** 2 file(s) - **File:** [`src-tauri/src/storage/db_service.rs`](src-tauri/src/storage/db_service.rs#L288) - **Line:** 288 - **Context:** `Unknown` - **File:** [`src-tauri/src/storage/mod.rs`](src-tauri/src/storage/mod.rs#L159) - **Line:** 159 - **Context:** `pub fn file_size(&self) -> Option {` ### UT-024 **Locations:** 1 file(s) - **File:** [`src/lib/stores/downloads.test.ts`](src/lib/stores/downloads.test.ts#L2) - **Line:** 2 - **Context:** `Unknown` ### UT-025 **Locations:** 2 file(s) - **File:** [`src-tauri/src/storage/db_service.rs`](src-tauri/src/storage/db_service.rs#L288) - **Line:** 288 - **Context:** `Unknown` - **File:** [`src-tauri/src/storage/mod.rs`](src-tauri/src/storage/mod.rs#L159) - **Line:** 159 - **Context:** `pub fn file_size(&self) -> Option {` ### UT-026 **Locations:** 2 file(s) - **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L235) - **Line:** 235 - **Context:** `Unknown` - **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L241) - **Line:** 241 - **Context:** `Unknown` ### UT-027 **Locations:** 1 file(s) - **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L235) - **Line:** 235 - **Context:** `Unknown` ### UT-028 **Locations:** 1 file(s) - **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L235) - **Line:** 235 - **Context:** `Unknown` ### UT-029 **Locations:** 1 file(s) - **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L235) - **Line:** 235 - **Context:** `Unknown` ### UT-030 **Locations:** 1 file(s) - **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L235) - **Line:** 235 - **Context:** `Unknown` ### UT-031 **Locations:** 1 file(s) - **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L235) - **Line:** 235 - **Context:** `Unknown` ### UT-032 **Locations:** 1 file(s) - **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L235) - **Line:** 235 - **Context:** `Unknown` ### UT-033 **Locations:** 1 file(s) - **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L235) - **Line:** 235 - **Context:** `Unknown` ### UT-042 **Locations:** 1 file(s) - **File:** [`src-tauri/src/commands/download.rs`](src-tauri/src/commands/download.rs#L1552) - **Line:** 1552 - **Context:** `Unknown` ### UT-043 **Locations:** 1 file(s) - **File:** [`src-tauri/src/commands/download.rs`](src-tauri/src/commands/download.rs#L1552) - **Line:** 1552 - **Context:** `Unknown` ### UT-044 **Locations:** 1 file(s) - **File:** [`src-tauri/src/commands/offline.rs`](src-tauri/src/commands/offline.rs#L133) - **Line:** 133 - **Context:** `Unknown` ### UR-031 **Locations:** 1 file(s) - **File:** [`src-tauri/src/settings.rs`](src-tauri/src/settings.rs#L1) - **Line:** 1 - **Context:** `Unknown` ### UR-032 **Locations:** 1 file(s) - **File:** [`src-tauri/src/settings.rs`](src-tauri/src/settings.rs#L1) - **Line:** 1 - **Context:** `Unknown` ### UR-033 **Locations:** 1 file(s) - **File:** [`src-tauri/src/settings.rs`](src-tauri/src/settings.rs#L1) - **Line:** 1 - **Context:** `Unknown`