Commit Graph

7 Commits

Author SHA1 Message Date
Daniel Harvey 9f32c70e0f Merge p1-w2-tc-streaming-majors: streaming majors findings 5-14 2026-05-17 18:23:15 -04:00
Daniel Harvey 02d146ce02 Fix streaming majors: PCM-only validation, stream-from-disk, ConcatStream offset, AsyncDisposable, HTTP cancellation, await ensureReady, seekBeyondBuffer offset-0 guard, negative WAV chunk guard 2026-05-17 16:57:20 -04:00
Daniel Harvey 4bd3be2eb8 Fix 8 design majors: optional ILogger in libraries, IndexFactoryService singleton threading, SharedMediaTypeRegistry, required TrackDto fields, GetExtensionType dedup, PagedResult zero-guard, TrackService null-return on failure 2026-05-17 16:57:03 -04:00
Daniel Harvey 4a0c17c318 Fix Critical: IndexSystem lock races and TrackRepository.Update silent-create
- Replace object lock with SemaphoreSlim(1,1) on both DirectoryIndexDirectory
  and VaultIndexDirectory; SaveIndexAsync now executes inside the semaphore
  so mutate+persist is atomic
- ReloadIndexAsync acquires the semaphore before LoadIndexAsync so disk load
  and in-memory swap are atomic with respect to concurrent writes
- HasIndexEntry and GetEntryMetadata converted to async Task with WaitAsync;
  MediaVault.GetEntryAsync call sites updated accordingly
- TrackRepository.Update throws InvalidOperationException when Id not found
  instead of silently calling Create; service layer catches and wraps as fail result
2026-05-17 11:24:50 -04:00
daniel-c-harvey 8c58edd5f9 File Database Index watching 2025-12-07 04:40:52 -05:00
daniel-c-harvey 2baf0575bc Streaming Bug Fixes 2025-12-06 06:41:32 -05:00
daniel-c-harvey b16bcfc6cd Backend Services Split into separate projects for reference from other front ends 2025-09-07 12:56:52 -04:00