daniel-c-harvey
f767d288c5
feat: normalize release-cardinal fields out of track into a Release entity (Phase 8 §8.0)
2026-06-11 12:51:21 -04:00
daniel-c-harvey
4a46ec36b3
fix(mp3): remove dead FrameSize field, fix CBR duration ID3 exclusion, add MPEG2 bitrate table, pin CBR test assertions
2026-06-11 06:13:20 -04:00
daniel-c-harvey
3bb8104967
feat(audio): add MP3 and FLAC upload support via format-routed processors
...
AudioProcessorRouter dispatches by extension; vault stores original bytes with correct MIME type.
2026-06-11 05:49:17 -04:00
daniel-c-harvey
8d80d43a47
test: assert data region in float and padded-container conversion tests; add TryExtractPcm null-return coverage
2026-06-10 20:08:45 -04:00
daniel-c-harvey
eddbb00cd9
feat(audio): accept EXTENSIBLE IEEE-float and padded 24-in-32 WAV
...
Convert float to 24-bit PCM and repack padded containers on normalize; vault still stores standard PCM.
2026-06-10 20:04:55 -04:00
daniel-c-harvey
5cae83b9ed
feat: add search/album/genre filtering and /albums + /genres browse pages
2026-06-10 10:54:56 -04:00
daniel-c-harvey
79a015f60a
docs: update CLAUDE.md files to reflect Range header seek, remove WavOffsetService references
2026-06-09 07:41:38 -04:00
daniel-c-harvey
fa57861dbf
Add server-side waveform loudness profiling on track upload
...
ILoudnessAlgorithm strategy (RmsLoudnessAlgorithm first impl), WaveformProfileService
stores quantized byte[] sidecar in new MediaFileVault (profiles vault), wired into
UnifiedTrackService.UploadAsync; failure is logged and swallowed. WaveformProfileDto
and WaveformProfileOptions in shared projects.
2026-06-05 16:38:02 -04:00
Daniel Harvey
551cef0fe8
DeepDrftAPI Rename
2026-05-25 10:38:36 -04:00
Daniel Harvey
cd700dc758
feat(data): rename *.Services projects, lift TrackEntity onto BlazorBlocks data layer, regenerate initial Postgres migration
...
DeepDrftWeb.Services → DeepDrftData; DeepDrftContent.Services → DeepDrftContent.Data.
TrackEntity:BaseEntity, TrackRepository:Repository<>, TrackManager:Manager<>+ITrackService.
Drops DeepDrftModels PagingParameters/PagedResult in favour of Models.Common.* from BlazorBlocks.
InitialCreate migration captures full schema including is_deleted index.
2026-05-18 22:22:09 -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 Harvey
7cf3d965b6
Rewrite all folder-level CLAUDE.md files; update root
...
net10.0 throughout; corrected EntryKey field name; documented *.Services split.
Two new files (DeepDrftWeb.Services, DeepDrftContent.Services). FileDatabase
README inaccuracies fixed (ImageVault, project target).
2026-05-16 21:45:56 -04:00
daniel-c-harvey
bc521d5b29
Styles & Home Page Content Cleanup
...
Mobile Menu System & Dark Mode Cookie
Theme Draft
2025-12-09 16:46:07 -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
daniel-c-harvey
5e02d004e3
CLAUDE.md files
2025-09-04 19:57:05 -04:00
daniel-c-harvey
97ad4e3ac7
FileDatabase Refactor and normalization
...
Test cleanup
2025-09-04 17:27:28 -04:00
daniel-c-harvey
6fefcbcfb5
FileDatabase refactor for normalization and consistency
2025-09-04 16:26:10 -04:00
daniel-c-harvey
e82366e47f
DeepDrftTests.csproj
...
- FileDatabase Tests
2025-09-04 14:20:29 -04:00