daniel-c-harvey
19793ba1c3
feature: Opus format resolution + sidecar lookup contract (Phase 18.2)
2026-06-23 07:45:06 -04:00
daniel-c-harvey
1ed518b018
chore: bump Cerebellum stack to NetBlocks 10.3.32 / BlazorBlocks 10.3.35 / AuthBlocks 10.3.39
...
Delivers the ResultDtoBase.From() null-crash fix to DeepDrft's
Users/Registrations pages.
2026-06-22 22:27:57 -04:00
daniel-c-harvey
7c41aa678d
Revert "Merge bisect-match-skipper into dev"
...
This reverts commit 475e5e671c , reversing
changes made to 0d1da9e63c .
2026-06-22 12:47:02 -04:00
daniel-c-harvey
9971474403
bisect: pin DeepDrftHome to Skipper's known-good package versions
...
AuthBlocks* → 10.3.35, BlazorBlocks* → 10.3.32. Diagnostic downgrade to
isolate null-ref crash on Users/Registrations pages.
2026-06-22 12:23:19 -04:00
daniel-c-harvey
450204cdbf
Bump Cerebellum packages to fix null-Items crash on Users/Registrations pages
...
AuthBlocks → 10.3.38, BlazorBlocks → 10.3.34, NetBlocks → 10.3.31.
Pulls server-side null-Items guard (AuthBlocks) and BlazorBlocks render
guard. Direct refs for BlazorBlocks/NetBlocks raised to avoid NU1605
downgrade conflicts with AuthBlocks 10.3.38's transitive requirements.
2026-06-21 11:50:05 -04:00
daniel-c-harvey
3da6591194
docs(phase-16): reflect live Plays card in stats CLAUDE.md
...
HomeStatsDto gains TotalPlays + UniqueListeners; StatsController now composes ITrackService + IEventService (best-effort play/listener reads).
2026-06-19 15:41:17 -04:00
daniel-c-harvey
be1a55fd37
feat(stats): flip home Plays card live (Phase 16.5)
...
Add TotalPlays + UniqueListeners to HomeStatsDto, composed at
StatsController from IEventService (no migration). Card reads via
existing persistent-state-bridged round-trip.
2026-06-19 15:26:07 -04:00
daniel-c-harvey
dbd90ee52a
feat(phase-16): anonymous play & share telemetry substrate (wave 16.1)
...
Player-service play-session tracker (floor + 3-bucket classify), SharePopover share tracker with debounce, sendBeacon interop, proxied rate-limited POST api/event/{play,share}, append-only event logs + incremental play_counter with server-side release resolution. Migration authored, not applied. No anonId, no read surface.
2026-06-19 12:59:00 -04:00
daniel-c-harvey
df7acd9e80
docs: reflect live home-hero stats (duration column, stats endpoint, backfill, NowPlayingStats wiring)
2026-06-18 13:14:52 -04:00
daniel-c-harvey
5f0422a263
Wire NowPlayingStats to live aggregates: add SQL track duration column, stats endpoint, and duration backfill
2026-06-18 11:53:49 -04:00
daniel-c-harvey
accf20ba57
feat(waveform): generalize high-res compute to every track (Direction B)
...
Per-track high-res datum keyed by EntryKey in the renamed track-waveforms vault; computed at upload for all tracks, regenerable per-track via CMS, with a re-runnable backfill. Mix read path repointed so it keeps working.
2026-06-17 10:18:44 -04:00
daniel-c-harvey
f07d29cdcf
feat(release): front int PK with app-minted GUID EntryKey on the public addressing surface (P11 W5, 11.H)
2026-06-16 17:11:55 -04:00
daniel-c-harvey
cfacc9f79a
feat(release): add plain-text Description field plumbed CMS->DTO->release (11.G)
...
New nullable Description column (max 4000) on ReleaseEntity, rides the Genre write channel through upload + edit; multiline CMS input. Migration authored, not applied.
2026-06-16 00:00:06 -04:00
daniel-c-harvey
737c423d9c
feat: replace /archive with release-cardinal searchable browser (Phase 9 §8.H)
...
Retire the three-card overview for a search + medium + genre browser over all
releases. Adds q/genre filter params to the api/release paged read path,
mirroring the existing api/track/page TrackFilter pattern.
2026-06-13 20:47:50 -04:00
daniel-c-harvey
b893ca84de
Enforce per-medium track cardinality in the upload service via MediumRules
...
Promote the Session/Mix single-track rule from a CMS-form convention to a
domain invariant: declare cardinality as data in MediumRules, enforce it in
UnifiedTrackService before the vault write (no orphan), return 409, and read
the same rule in the batch-form collapse.
2026-06-13 14:12:01 -04:00
daniel-c-harvey
8b62915083
Make release Medium writable via upload + meta-edit; resolve detail-page track by releaseId not album title
2026-06-13 11:34:45 -04:00
daniel-c-harvey
5d6b54d2fc
Phase 9 Wave 1: add ReleaseMedium discriminator + Session/Mix metadata
...
Add ReleaseMedium enum (Cut/Session/Mix) and two 1:1 satellite entities
(SessionMetadata, MixMetadata) with EF configs and an additive migration.
ReleaseDto.ReleaseType is now nullable, nulled for non-Cut at the converter.
Existing releases default to Cut via column default; no data migration.
2026-06-12 21:47:04 -04:00
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
d47a5e00af
feat(tracks): add ReleaseType and TrackNumber to track metadata model and CMS edit form
2026-06-10 21:36:00 -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
3de88c786a
feat: capture and display original upload filename for tracks
2026-06-07 09:00:17 -04:00
daniel-c-harvey
6e25ad3085
Add CMS waveform pre-processing panel with backfill endpoints
...
GET api/track/waveform-status and POST api/track/{id}/waveform (ApiKey);
CmsTrackService methods; TrackPreProcessing page with per-row and
sequential bulk generation; nav links from TrackList and Index.
2026-06-05 17:56:25 -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
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
ee7dc8409e
Wire AuthBlocks 10.3.30 JWT auth; gate /cms (InteractiveAuto) behind Admin role; add CreatedByUserId migration
2026-05-18 08:37:18 -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
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
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
9de2063ea3
Infrastructure upgrades
2025-09-04 19:58:00 -04:00
daniel-c-harvey
5e02d004e3
CLAUDE.md files
2025-09-04 19:57:05 -04:00
daniel-c-harvey
d556d32829
Inject framework HttpClient to support prerendering behavior on server instead of baking in the HttpClient on the client project
2025-09-04 09:48:58 -04:00
daniel
aac0004e03
Initial DeepDrft Models Project
...
- Track Entity & DTO
- Paging models
2025-08-30 21:43:15 -04:00