Merge branch 'master' into worktree-mosaic-library

# Conflicts:
#	scripts/extract-traces.test.ts
This commit is contained in:
2026-08-16 00:51:46 +02:00
23 changed files with 116 additions and 95 deletions
+44 -30
View File
@@ -1,15 +1,15 @@
# Code Traceability Matrix
**Generated:** 8/16/2026, 12:05:50 AM
**Generated:** 8/16/2026, 12:51:46 AM
## Summary
- **Total Files Scanned:** 358
- **Total TRACES Found:** 709
- **Total TRACES Found:** 710
- **Requirements Covered:**
- User Requirements (UR): 71
- Integration Requirements (IR): 19
- Development Requirements (DR): 150
- Development Requirements (DR): 151
- Jellyfin API Requirements (JA): 28
## Requirements by Type
@@ -26,7 +26,7 @@ IR-003, IR-004, IR-009, IR-010, IR-011, IR-012, IR-013, IR-014, IR-015, IR-016,
### 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-022, DR-023, DR-024, DR-025, DR-026, DR-027, DR-028, DR-029, DR-030, DR-032, DR-033, DR-034, DR-035, DR-036, DR-037, DR-038, DR-039, DR-040, DR-041, DR-043, DR-044, DR-045, DR-047, DR-048, DR-049, DR-050, DR-051, DR-052, DR-053, DR-054, DR-055, DR-056, DR-057, DR-058, DR-059, DR-060, DR-061, DR-062, DR-063, DR-064, DR-065, DR-066, DR-067, DR-068, DR-069, DR-070, DR-074, DR-075, DR-076, DR-077, DR-078, DR-079, DR-080, DR-081, DR-082, DR-083, DR-084, DR-085, DR-086, DR-087, DR-088, DR-089, DR-090, DR-091, DR-092, DR-093, DR-095, DR-096, DR-097, DR-098, DR-099, DR-100, DR-101, DR-102, DR-103, DR-104, DR-105, DR-106, DR-107, DR-108, DR-109, DR-110, DR-111, DR-112, DR-113, DR-114, DR-115, DR-116, DR-117, DR-118, DR-119, DR-120, DR-123, DR-126, DR-127, DR-128, DR-129, DR-130, DR-131, DR-132, DR-133, DR-134, DR-135, DR-136, DR-137, DR-140, DR-141, DR-142, DR-143, DR-147, DR-148, DR-149, DR-150, DR-151, DR-152, DR-153, DR-154, DR-155, DR-156, DR-157, DR-158, DR-159, DR-160, DR-162, DR-167, DR-168, DR-169, DR-170, DR-171, DR-172, DR-173
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-022, DR-023, DR-024, DR-025, DR-026, DR-027, DR-028, DR-029, DR-030, DR-032, DR-033, DR-034, DR-035, DR-036, DR-037, DR-038, DR-039, DR-040, DR-041, DR-043, DR-044, DR-045, DR-047, DR-048, DR-049, DR-050, DR-051, DR-052, DR-053, DR-054, DR-055, DR-056, DR-057, DR-058, DR-059, DR-060, DR-061, DR-062, DR-063, DR-064, DR-065, DR-066, DR-067, DR-068, DR-069, DR-070, DR-074, DR-075, DR-076, DR-077, DR-078, DR-079, DR-080, DR-081, DR-082, DR-083, DR-084, DR-085, DR-086, DR-087, DR-088, DR-089, DR-090, DR-091, DR-092, DR-093, DR-095, DR-096, DR-097, DR-098, DR-099, DR-100, DR-101, DR-102, DR-103, DR-104, DR-105, DR-106, DR-107, DR-108, DR-109, DR-110, DR-111, DR-112, DR-113, DR-114, DR-115, DR-116, DR-117, DR-118, DR-119, DR-120, DR-123, DR-126, DR-127, DR-128, DR-129, DR-130, DR-131, DR-132, DR-133, DR-134, DR-135, DR-136, DR-137, DR-140, DR-141, DR-142, DR-143, DR-147, DR-148, DR-149, DR-150, DR-151, DR-152, DR-153, DR-154, DR-155, DR-156, DR-157, DR-158, DR-159, DR-160, DR-162, DR-167, DR-168, DR-169, DR-170, DR-171, DR-172, DR-174, DR-175
```
### Jellyfin API Requirements (JA)
@@ -2192,26 +2192,26 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-007, JA-008, JA-010, JA-011, JA-012,
- **File:** [`src/lib/components/player/VideoPlayer.tapSurface.test.ts`](src/lib/components/player/VideoPlayer.tapSurface.test.ts#L5)
- **Line:** 5
- **Context:** `Unknown`
- **File:** [`src/lib/components/player/VideoPlayer.touchScrub.test.ts`](src/lib/components/player/VideoPlayer.touchScrub.test.ts#L21)
- **Line:** 21
- **Context:** `Unknown`
- **File:** [`src/lib/components/player/tapGestures.ts`](src/lib/components/player/tapGestures.ts#L21)
- **Line:** 21
- **Context:** `Unknown`
- **File:** [`src/lib/components/player/VideoPlayer.svelte`](src/lib/components/player/VideoPlayer.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/components/player/VideoPlayer.touchScrub.test.ts`](src/lib/components/player/VideoPlayer.touchScrub.test.ts#L21)
- **Line:** 21
- **Context:** `Unknown`
### DR-099
**Locations:** 2 file(s)
- **File:** [`src/lib/components/player/VideoPlayer.touchScrub.test.ts`](src/lib/components/player/VideoPlayer.touchScrub.test.ts#L21)
- **Line:** 21
- **Context:** `Unknown`
- **File:** [`src/lib/components/player/VideoPlayer.svelte`](src/lib/components/player/VideoPlayer.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/components/player/VideoPlayer.touchScrub.test.ts`](src/lib/components/player/VideoPlayer.touchScrub.test.ts#L21)
- **Line:** 21
- **Context:** `Unknown`
### DR-100
@@ -3615,6 +3615,14 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-007, JA-008, JA-010, JA-011, JA-012,
### DR-172
**Locations:** 1 file(s)
- **File:** [`src/lib/stores/nativeVideo.ts`](src/lib/stores/nativeVideo.ts#L47)
- **Line:** 47
- **Context:** `Unknown`
### DR-174
**Locations:** 8 file(s)
- **File:** [`src/lib/components/common/CachedImage.svelte`](src/lib/components/common/CachedImage.svelte#L18)
@@ -3642,7 +3650,7 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-007, JA-008, JA-010, JA-011, JA-012,
- **Line:** 121
- **Context:** `Unknown`
### DR-173
### DR-175
**Locations:** 9 file(s)
@@ -4118,7 +4126,7 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-007, JA-008, JA-010, JA-011, JA-012,
### UR-003
**Locations:** 28 file(s)
**Locations:** 29 file(s)
- **File:** [`src/lib/api/bindings.ts`](src/lib/api/bindings.ts#L149)
- **Line:** 149
@@ -4165,6 +4173,9 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-007, JA-008, JA-010, JA-011, JA-012,
- **File:** [`src/lib/stores/nativeVideo.ts`](src/lib/stores/nativeVideo.ts#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src/lib/stores/nativeVideo.ts`](src/lib/stores/nativeVideo.ts#L47)
- **Line:** 47
- **Context:** `Unknown`
- **File:** [`src/lib/utils/videoSurface.ts`](src/lib/utils/videoSurface.ts#L4)
- **Line:** 4
- **Context:** `Unknown`
@@ -4207,7 +4218,7 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-007, JA-008, JA-010, JA-011, JA-012,
### UR-004
**Locations:** 35 file(s)
**Locations:** 36 file(s)
- **File:** [`src/lib/api/bindings.ts`](src/lib/api/bindings.ts#L306)
- **Line:** 306
@@ -4242,6 +4253,9 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-007, JA-008, JA-010, JA-011, JA-012,
- **File:** [`src/lib/stores/nativeVideo.ts`](src/lib/stores/nativeVideo.ts#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src/lib/stores/nativeVideo.ts`](src/lib/stores/nativeVideo.ts#L47)
- **Line:** 47
- **Context:** `Unknown`
- **File:** [`src/lib/utils/videoSurface.ts`](src/lib/utils/videoSurface.ts#L4)
- **Line:** 4
- **Context:** `Unknown`
@@ -4749,6 +4763,17 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-007, JA-008, JA-010, JA-011, JA-012,
- **Line:** 157
- **Context:** `pub fn file_size(&self) -> Option<u64> {`
### UT-026
**Locations:** 2 file(s)
- **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L245)
- **Line:** 245
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L251)
- **Line:** 251
- **Context:** `Unknown`
### UT-027
**Locations:** 1 file(s)
@@ -4939,9 +4964,6 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-007, JA-008, JA-010, JA-011, JA-012,
- **File:** [`src/lib/components/player/VideoPlayer.tapSurface.test.ts`](src/lib/components/player/VideoPlayer.tapSurface.test.ts#L5)
- **Line:** 5
- **Context:** `Unknown`
- **File:** [`src/lib/components/player/VideoPlayer.touchScrub.test.ts`](src/lib/components/player/VideoPlayer.touchScrub.test.ts#L21)
- **Line:** 21
- **Context:** `Unknown`
- **File:** [`src/lib/components/player/backgroundAudioHandoff.ts`](src/lib/components/player/backgroundAudioHandoff.ts#L69)
- **Line:** 69
- **Context:** `Unknown`
@@ -4963,6 +4985,9 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-007, JA-008, JA-010, JA-011, JA-012,
- **File:** [`src/lib/components/player/VideoPlayer.svelte`](src/lib/components/player/VideoPlayer.svelte#L801)
- **Line:** 801
- **Context:** `Unknown`
- **File:** [`src/lib/components/player/VideoPlayer.touchScrub.test.ts`](src/lib/components/player/VideoPlayer.touchScrub.test.ts#L21)
- **Line:** 21
- **Context:** `Unknown`
- **File:** [`src/lib/player/adapters/html5Adapter.ts`](src/lib/player/adapters/html5Adapter.ts#L19)
- **Line:** 19
- **Context:** `Unknown`
@@ -8047,17 +8072,6 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-007, JA-008, JA-010, JA-011, JA-012,
- **Line:** 853
- **Context:** `Unknown`
### UT-026
**Locations:** 2 file(s)
- **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L245)
- **Line:** 245
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L251)
- **Line:** 251
- **Context:** `Unknown`
### UT-108
**Locations:** 2 file(s)
@@ -8810,14 +8824,14 @@ JA-001, JA-002, JA-003, JA-004, JA-005, JA-007, JA-008, JA-010, JA-011, JA-012,
- **File:** [`src/lib/components/player/VideoPlayer.tapSurface.test.ts`](src/lib/components/player/VideoPlayer.tapSurface.test.ts#L5)
- **Line:** 5
- **Context:** `Unknown`
- **File:** [`src/lib/components/player/VideoPlayer.touchScrub.test.ts`](src/lib/components/player/VideoPlayer.touchScrub.test.ts#L21)
- **Line:** 21
- **Context:** `Unknown`
- **File:** [`src/lib/components/player/tapGestures.ts`](src/lib/components/player/tapGestures.ts#L21)
- **Line:** 21
- **Context:** `Unknown`
- **File:** [`src/lib/components/player/VideoPlayer.svelte`](src/lib/components/player/VideoPlayer.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/components/player/VideoPlayer.touchScrub.test.ts`](src/lib/components/player/VideoPlayer.touchScrub.test.ts#L21)
- **Line:** 21
- **Context:** `Unknown`