Commit Graph

10 Commits

Author SHA1 Message Date
daniel-c-harvey beec36a382 fix(vault): atomic streamed write via temp→rename, suppress OCE log noise
AddEntryStreamingAsync now writes to a temp file in the same vault directory,
renames it into place (POSIX rename(2) — atomic on Linux), and updates the
index only after the rename succeeds. A client disconnect or I/O fault during
the write leaves the original backing file intact and the index unchanged; the
temp file is cleaned up best-effort on failure. Fixes the data-corruption
regression on the replace path where a cancelled write could truncate the live
backing file after the index update and FileMode.Create already ran.

Also filters OperationCanceledException from error-level logging in
RegisterResourceStreamingAsync — a normal client disconnect is not an error.

Two tests added to AudioStoreStreamingTests covering cancel and fault on the
replace path.
2026-06-25 15:46:58 -04:00
daniel-c-harvey 79bbbd4956 fix(api): stream audio store path to eliminate whole-file buffering (OOM)
Processors now emit a ProcessedAudio plan with a streamed writer instead of a whole-file AudioBinary; vault writes stream via RegisterResourceStreamingAsync. Header parsing is bounded. Wave 2 (waveform/Opus) still re-reads the full file by design.
2026-06-25 15:27:28 -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-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 1a9a3271d4 Content API Upgrades 2025-09-04 19:58:29 -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 c4c4662c67 FileDatabase Improvements
- small bugfixes
 - Startup configuration to load an arbitrary file database for the API
2025-09-04 14:19:57 -04:00
daniel 9124e82e24 FileDatabase engine port from snailbird-content TS/Node program 2025-09-01 16:55:28 -04:00