daniel-c-harvey
0b349da5f8
docs: spec Phase 9 — Release Medium Types
...
Four-wave plan for ReleaseMedium discriminator (Cut/Session/Mix),
medium-specific metadata tables, CMS Release Archive tab, and public
ARCHIVE nav + CUTS/SESSIONS/MIXES browse + detail surfaces.
2026-06-12 16:26:32 -04:00
daniel-c-harvey
f07ad58655
Merge branch 'parallax-js-deploy-fix' into dev
Deploy DeepDrftAPI / Build, Publish & Bundle (push) Successful in 2m9s
Deploy DeepDrftManager / Build & Publish (push) Successful in 1m23s
Deploy DeepDrftPublic / Build & Publish (push) Successful in 3m49s
Deploy DeepDrftAPI / Deploy (push) Successful in 1m32s
Deploy DeepDrftManager / Deploy (push) Successful in 1m29s
Deploy DeepDrftPublic / Deploy (push) Successful in 1m28s
2026-06-12 06:41:51 -04:00
daniel-c-harvey
2f7f8dbdf8
fix: track compiled RCL parallax JS for MapStaticAssets deployment
...
DeepDrftShared.Client's wwwroot/js/ was gitignored, so the TS-compiled
parallax.js was absent at build-time manifest generation. MapStaticAssets
serves _content/ exclusively from the build manifest, so the file was
missing from the publish output — requests fell through to the Blazor
HTML handler, producing a text/html MIME-type error in the browser.
DeepDrftPublic audio JS is unaffected because UseStaticFiles() serves
that startup project's physical wwwroot/ directly, bypassing the manifest.
The RCL has no such bypass, so its compiled JS must be present at
manifest-generation time, which requires tracking it in git.
2026-06-12 06:39:07 -04:00
daniel-c-harvey
528b904d72
Merge branch 'cms-bug-fixes' into dev
2026-06-12 06:33:24 -04:00
daniel-c-harvey
0448711082
fix: CMS image proxy + partial unique index for soft-deleted releases
2026-06-12 06:27:34 -04:00
daniel-c-harvey
dd30d57838
Merge branch 'tsconfig-publish-fix' into dev
Deploy DeepDrftManager / Build & Publish (push) Successful in 1m19s
Deploy DeepDrftPublic / Build & Publish (push) Successful in 3m50s
Deploy DeepDrftManager / Deploy (push) Successful in 1m23s
Deploy DeepDrftPublic / Deploy (push) Successful in 1m27s
2026-06-11 20:58:37 -04:00
daniel-c-harvey
70f110bed7
fix: use Content Update to suppress tsconfig.json from publish output
2026-06-11 20:55:43 -04:00
daniel-c-harvey
80ebc80a2a
fix: Home Page Styles Cleanup
Deploy DeepDrftPublic / Build & Publish (push) Failing after 3m27s
Deploy DeepDrftPublic / Deploy (push) Has been skipped
2026-06-11 19:59:08 -04:00
daniel-c-harvey
68bf328e7c
docs: add Phase 8 §8.7 to COMPLETED (upload cache invalidation + Albums→Releases rename)
Deploy DeepDrftManager / Build & Publish (push) Successful in 1m29s
Deploy DeepDrftPublic / Build & Publish (push) Failing after 3m29s
Deploy DeepDrftAPI / Build, Publish & Bundle (push) Successful in 1m59s
Deploy DeepDrftManager / Deploy (push) Successful in 1m23s
Deploy DeepDrftPublic / Deploy (push) Has been skipped
Deploy DeepDrftAPI / Deploy (push) Successful in 1m36s
2026-06-11 18:57:03 -04:00
daniel-c-harvey
b5bd1c977b
Merge branch 'p8-w7-release-label-upload-stale' into dev
2026-06-11 18:55:50 -04:00
daniel-c-harvey
4b26e0a969
fix: invalidate VM cache after upload and rename Albums tab/card to Releases
2026-06-11 18:55:36 -04:00
daniel-c-harvey
c6078a3e71
assets: add studio, live, and DJ mix images for home medium section
2026-06-11 18:50:07 -04:00
daniel-c-harvey
0874042040
docs: move Phase 8.6 from PLAN to COMPLETED, correct type labels to Studio/Live/Mix
2026-06-11 18:49:58 -04:00
daniel-c-harvey
6d3b9cd4d3
Merge branch 'p8-w6-medium-section' into dev
2026-06-11 18:38:10 -04:00
daniel-c-harvey
9792d4346e
docs: add Phase 8 §8.6 to COMPLETED (cache invalidation + orphaned release fixes)
2026-06-11 17:58:31 -04:00
daniel-c-harvey
fc20a5d3d2
Merge branch 'p8-w6-stale-refresh-album-delete' into dev
2026-06-11 17:57:08 -04:00
daniel-c-harvey
f02974b3c2
fix: refresh stale browse cache on track edits and allow deleting empty releases
...
- Add CmsTrackBrowserViewModel.Invalidate(); called from TrackEdit/BatchEdit on save or delete so album/genre cache is invalidated and re-fetches on next mode switch
- CmsAlbumBrowser now handles 0-track releases: confirm dialog + DeleteReleaseAsync instead of early return; partial-failure path also fires OnReleasesChanged to trigger cache invalidation
- TrackList.OnAlbumsChanged now calls VM.Invalidate() so genres stay fresh after any album delete
- UnifiedTrackService.DeleteAsync cascades release soft-delete when last live track is removed (non-fatal; logs on failure)
- New DELETE api/track/release/{id} endpoint (ApiKeyAuthorize) for direct release soft-delete
- EF migration SoftDeleteOrphanedReleases backfills existing orphaned release rows via raw SQL (data-only, no schema change)
2026-06-11 17:56:18 -04:00
daniel-c-harvey
a6e565e445
feat: replace home genre cards with Music through Every Medium image section
2026-06-11 17:55:13 -04:00
daniel-c-harvey
38e345ccf7
docs: add Phase 8.6 'Music through Every Medium' section spec to PLAN
2026-06-11 17:48:25 -04:00
daniel-c-harvey
fd8c0e389f
fix: correct missing @ directives on ExpandedGenre bindings in genre browser
2026-06-11 17:30:11 -04:00
daniel-c-harvey
b359786e69
docs: move Phase 8 §8.1-§8.5 from PLAN to COMPLETED (landed 2026-06-12)
2026-06-11 17:00:55 -04:00
daniel-c-harvey
bef3f590ca
Merge branch 'p8-w5c-batch-edit' into dev
2026-06-11 16:57:18 -04:00
daniel-c-harvey
407ed90341
feat: add BatchEdit page and extract reusable batch sub-components from BatchUpload
...
fix: TrackNumber sort case, stale _imagePath reset, skip Done rows on retry in BatchEdit
2026-06-11 16:56:55 -04:00
daniel-c-harvey
92a3bea129
Merge branch 'p8-w5b-t2-genre-browser' into dev
2026-06-11 16:45:10 -04:00
daniel-c-harvey
6480953189
Merge branch 'p8-w5b-t1-album-browser' into dev
2026-06-11 16:45:07 -04:00
daniel-c-harvey
b22c3f96d7
feat: add CmsGenreBrowser genre browse mode to CMS track list
...
fix: add @key="ExpandedGenre" to CmsTrackGrid so genre switch forces fresh component instance
2026-06-11 16:42:46 -04:00
daniel-c-harvey
62620bc0d4
feat(cms): add expandable Album browser to Track Browser
2026-06-11 16:26:44 -04:00
daniel-c-harvey
55b26b2e41
Merge branch 'p8-w5a-foundation' into dev
2026-06-11 16:18:19 -04:00
daniel-c-harvey
508a522a8d
feat(cms): add Track Browser foundation with mode toggle and CmsTrackGrid
...
- Extend ICmsTrackService.GetPagedAsync with album/genre filter params
- Add CmsTrackBrowserViewModel (DI-scoped) with lazy album/genre load
- Extract CmsTrackGrid: 9-column layout, waveform status, per-row generate,
info tooltip, album/genre filter params, OnStatusLoaded callback
- Restructure TrackList: remove MudTabs, add three @page routes, mode toggle,
Generate All Missing button; album/genre stubs for next wave
2026-06-11 16:17:45 -04:00
daniel-c-harvey
cf557e16aa
Merge branch 'p7-w6-parallax-pop' into dev
2026-06-11 16:09:34 -04:00
daniel-c-harvey
a2f9742f8a
fix(parallax): prime parallax position with pre-Blazor init script to kill Server->WASM position pop
2026-06-11 16:08:55 -04:00
daniel-c-harvey
a29b961c27
docs: move Phase 8 §8.0 to COMPLETED; unblock §8.1-§8.5 in PLAN
2026-06-11 15:58:30 -04:00
daniel-c-harvey
e077b8ec7b
Merge branch 'p8-w12-release-track-normalize' into dev
2026-06-11 15:55:10 -04:00
daniel-c-harvey
612b21b1e7
Merge branch 'p7-w5-parallax-prerender-pos' into dev
2026-06-11 15:47:48 -04:00
daniel-c-harvey
70d4a87cd5
fix: include Release nav on all TrackRepository query paths; add unique constraint on release(title, artist)
2026-06-11 14:48:52 -04:00
daniel-c-harvey
ae531116b7
fix(parallax): animate background-position-y directly so SSR parallax works pre-WASM
2026-06-11 14:45:30 -04:00
daniel-c-harvey
63bdc5ee93
feature: Home Pictures part 1
2026-06-11 13:47:41 -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
9d7f2ff003
feat(home): wire ParallaxImage hero to homepage; tweak crossfade to 700ms
2026-06-11 12:12:35 -04:00
daniel-c-harvey
c59f59c3fe
Merge branch 'p7-w4-parallax-css-scroll' into dev
2026-06-11 12:12:05 -04:00
daniel-c-harvey
91566692f6
fix(parallax): drive --parallax-pos via CSS scroll animation to kill SSR/hydration position pop
2026-06-11 11:57:43 -04:00
daniel-c-harvey
16f356a760
docs: resolve TrackDto nesting (§0.3) and add §8.0 wave sequencing
...
Resolve Phase 8 open question 0.3 — TrackDto gets a nested Release
(ReleaseDto); flat release fields removed, all consumers updated as
part of §8.0 (flat read-model rejected). Add §0.6 implementation
sequencing: five mergeable waves with Waves 1+2 as a single deployment
unit and Waves 3+4 parallelizable. Update PLAN.md §8.0 Shape to match.
2026-06-11 11:09:24 -04:00
daniel-c-harvey
8983592e56
Merge branch 'p7-w3-parallax-ssr' into dev
2026-06-11 11:07:55 -04:00
daniel-c-harvey
92ddc5bb3e
fix(parallax): add aspect-ratio mode to ParallaxImage to kill SSR/hydration layout shift
2026-06-11 11:06:16 -04:00
daniel-c-harvey
76e5080278
docs: gate Phase 8 on TrackEntity normalization (§8.0); fold review decisions
...
Add §8.0 TrackEntity → Release/Track normalization as a breaking
pre-requisite before Phase 8 UI. Fold in review decisions: Waveform tab
removed (in-grid status column + per-row/page-level generate),
ViewModel is DI-scoped (TracksViewModel pattern), BatchEdit confirmed as
a new page sharing extracted sub-components. Dissolve the AlbumSummaryDto
widening question (Release table supplies the fields directly).
2026-06-11 11:03:48 -04:00
daniel-c-harvey
675710d086
Merge branch 'p7-w2-parallax-aspect-ratio' into dev
2026-06-11 10:24:03 -04:00
daniel-c-harvey
c46c3a2f9c
feat(parallax): aspect-ratio-aware auto height via WindowHeightFraction + ResizeObserver, drop DotNetObjectReference round-trip
2026-06-11 10:23:25 -04:00
daniel-c-harvey
49e99ff986
docs: add Phase 8 (CMS Track Browser) to PLAN; supersede §6.2
2026-06-11 09:49:19 -04:00
daniel-c-harvey
5a345cabea
docs(plan): move Phase 1.2 audio format diversity to COMPLETED.md
2026-06-11 09:45:03 -04:00
daniel-c-harvey
25ade16b07
Merge branch 'p1.2-w3-factory-wiring' into dev
2026-06-11 09:42:05 -04:00