Commit Graph

5 Commits

Author SHA1 Message Date
Daniel Harvey 88c94b24cf Fix W3-T1 review: forward CancellationToken in GetPaged, scrub ex.Message from snackbar, drop unused Navigation inject, annotate ITrackService wiring in CmsStartup 2026-05-18 14:58:36 -04:00
Daniel Harvey a65339395b Migrate DeepDrftContext from SQLite to PostgreSQL; add docker-compose for local Postgres 17 2026-05-17 23:11:44 -04:00
Daniel Harvey 4c9bf0ca8d Fix 9 design majors: ITrackService interface, IsDescending, ArrayPool base, CliUtils, sort sentinel cleanup, content controller via TrackService, Skip property 2026-05-17 16:10:56 -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 b16bcfc6cd Backend Services Split into separate projects for reference from other front ends 2025-09-07 12:56:52 -04:00