daniel-c-harvey
79e7bb4799
Merge p10-w1-renderer-fix2 into dev (P10 W1: 2-D datum texture fixes GL_MAX_TEXTURE_SIZE overflow + bridge diagnostics)
2026-06-15 19:29:11 -04:00
daniel-c-harvey
45bf5e5d37
fix(visualizer): lay Mix datum across a 2-D R8 texture to respect GL_MAX_TEXTURE_SIZE; manual texelFetch lerp avoids row-wrap seam
2026-06-15 19:28:52 -04:00
daniel-c-harvey
61d53dacff
Merge p10-w1-renderer-fix into dev (P10 W1: blank ribbon at rest + WebGL init/draw diagnostics)
2026-06-15 17:45:50 -04:00
daniel-c-harvey
06b58304c5
fix(visualizer): blank Mix ribbon at rest + init/draw diagnostics (P10 W1)
2026-06-15 17:45:21 -04:00
daniel-c-harvey
b3283d0bd2
docs: record Phase 10 Wave 1 (WebGL2 renderer swap) landed
2026-06-15 13:43:19 -04:00
daniel-c-harvey
cb6f75be5f
Merge p10-w1-renderer-swap into dev (Phase 10 Wave 1: WebGL2 fragment-shader Mix renderer at parity)
2026-06-15 13:36:01 -04:00
daniel-c-harvey
c1562dde03
Merge track-detail-play-wrong-track into dev (fix wrong-track Play on detail pages)
2026-06-15 13:34:09 -04:00
daniel-c-harvey
8b0bd6d26e
docs(client): note detail pages must load in OnParametersSetAsync under InteractiveAuto
2026-06-15 13:15:04 -04:00
daniel-c-harvey
7d23c0654b
fix(detail): capture guard fields before await to close re-entrancy window in OnParametersSetAsync
2026-06-15 12:55:15 -04:00
daniel-c-harvey
cab181db4b
refactor(visualizer): remove dead sampleCount field from Datum — shader uses durationSeconds only
2026-06-15 12:49:47 -04:00
daniel-c-harvey
f02f370ed9
fix(detail): reload track on route-param change so Play uses the right track
...
Detail pages loaded only in OnInitialized, which doesn't re-run when an
InteractiveAuto component instance is reused across same-template navigations,
leaving a stale track that Play streamed. Move load to OnParametersSetAsync
keyed on the route id, and guard the prerender bridge restore against an id mismatch.
2026-06-15 12:47:57 -04:00
daniel-c-harvey
b451dda79e
feat(visualizer): WebGL2 fragment-shader Mix renderer at parity; datum-as-texture, shader-clock rAF, drop CSS backdrop-filter (P10 W1)
2026-06-15 12:43:56 -04:00
daniel-c-harvey
4f84216ab6
Merge cms-special-action-columns into dev
...
Promote CMS release special actions (Mix waveform, Session hero) to dedicated grid columns.
2026-06-15 12:01:17 -04:00
daniel-c-harvey
bb50d8369b
Merge ui-detail-cover-art into dev (medium cover thumbnails on mix and session detail pages)
2026-06-15 11:59:39 -04:00
daniel-c-harvey
ebdcc29f2e
docs(mix-visualizer): lock MixVisualizerControlState widen decision (§3c)
2026-06-15 11:57:47 -04:00
daniel-c-harvey
ea8b97e47b
docs: spec WebGL2 Mix visualizer renderer (Phase 10)
...
Replaces the 1-2 FPS Canvas 2D visualizer with a WebGL2 fragment-shader
renderer. Four-control row, morphing navy/moss field, in-shader glass.
Full spec in product-notes; PLAN.md Phase 10 points at it.
2026-06-15 11:36:46 -04:00
daniel-c-harvey
f1600023dc
feat(detail): medium release cover thumbnails on mix and session detail pages
2026-06-15 11:36:39 -04:00
daniel-c-harvey
09f6dc88f7
docs: record CmsAlbumBrowser special-action column promotion
2026-06-15 11:30:54 -04:00
daniel-c-harvey
31084b09a4
fix(cms): stabilize _specialColumns allocation and refresh stale comments
...
Allocate _specialColumns once in OnInitialized; update RowActions references to SpecialColumns in the medium browsers and base class.
2026-06-15 11:26:21 -04:00
daniel-c-harvey
5941f1f23a
feat(cms): dedicated grid columns for medium-specific row actions
...
Replace CmsAlbumBrowser's single RowActions slot with a SpecialColumns
list (header + per-row cell). Mix renders a Waveform column, Session a
Hero column, between Tracks and Actions; Edit/Delete stay rightmost.
Child-row colspan now computed from column count. Cut/ALL unchanged.
2026-06-15 11:16:15 -04:00
daniel-c-harvey
7f1c6bdb66
Merge ui-share-relocate into dev (share button centered below detail metadata)
2026-06-15 11:13:22 -04:00
daniel-c-harvey
37608aee28
Merge ui-mix-visualizer into dev (footer above waveform backdrop; zoom slider to top)
2026-06-15 11:13:05 -04:00
daniel-c-harvey
e0ab2f3d00
Merge ui-archive-search into dev (archive search controls: centered flex row + narrow reflow)
2026-06-15 11:12:58 -04:00
daniel-c-harvey
41e3ccc9fa
fix(archive): center medium toggle between balanced search/genre side zones
2026-06-15 11:10:06 -04:00
daniel-c-harvey
709103ad71
ui: move SharePopover below metadata on all release detail pages
2026-06-15 10:45:27 -04:00
daniel-c-harvey
9f074f7350
fix(visualizer): lift footer above waveform backdrop; move zoom slider to top-right
2026-06-15 10:45:25 -04:00
daniel-c-harvey
47082591ee
refactor(archive): single flex row for search/medium/genre controls with narrow-screen reflow
2026-06-15 10:45:18 -04:00
daniel-c-harvey
4df2b8fb57
Merge 8k-w2-renderer into dev (8.K Wave 2: scrolling Canvas 2D Mix visualizer, read-only)
2026-06-14 19:02:16 -04:00
daniel-c-harvey
a9965ad751
docs: record 8.K Mix Visualizer redesign landed; Wave 8 fully complete
2026-06-14 18:39:19 -04:00
daniel-c-harvey
c64455f2f2
fix(visualizer): gate rAF loop on is-playing; one-shot redraws while idle (§E)
2026-06-14 18:31:24 -04:00
daniel-c-harvey
2d0a565765
feat(public): scrolling Canvas 2D Mix visualizer — windowed, playback-coupled, zoomable, read-only (8.K W2)
2026-06-14 18:20:32 -04:00
daniel-c-harvey
c608fa345a
Merge 8k-w1-datum into dev (8.K Wave 1: duration-derived Mix waveform datum density)
2026-06-14 17:13:05 -04:00
daniel-c-harvey
09a980ba2a
feat(api): derive Mix waveform datum density from duration (~333 samples/sec, capped/floored) instead of fixed 2048 buckets
2026-06-14 16:21:57 -04:00
daniel-c-harvey
da08ac4efb
Merge p9-w8-8m-legacy-form-retirement into dev (8.M: retire legacy single-track forms, track-addressed BatchEdit)
2026-06-14 14:51:47 -04:00
daniel-c-harvey
00d7215178
docs: record Wave 8 track 8.M landed (legacy single-track form retirement)
2026-06-14 12:43:42 -04:00
daniel-c-harvey
898fcfaa04
feat(cms): retire legacy single-track forms; route single-track edit into BatchEdit (8.M)
2026-06-14 11:53:06 -04:00
daniel-c-harvey
05130aaed2
docs: record Wave 8 tracks 8.C and 8.E landed; Phase 9 gate met
Deploy DeepDrftAPI / Build, Publish & Bundle (push) Successful in 2m10s
Deploy DeepDrftManager / Build & Publish (push) Successful in 1m25s
Deploy DeepDrftPublic / Build & Publish (push) Successful in 4m3s
Deploy DeepDrftAPI / Deploy (push) Successful in 1m33s
Deploy DeepDrftManager / Deploy (push) Successful in 1m29s
Deploy DeepDrftPublic / Deploy (push) Successful in 1m30s
2026-06-13 22:43:53 -04:00
daniel-c-harvey
03c96c621b
Merge p9-w8-8e-add-track-buttons into dev (8.E: medium-aware Add Track on Release Archive tabs)
2026-06-13 22:38:36 -04:00
daniel-c-harvey
c9457ae21b
Merge p9-w8-8c-medium-grid-parity into dev (8.C: per-medium tab grids to ALL-tab parity)
2026-06-13 22:38:19 -04:00
daniel-c-harvey
c6ef641ab9
feat(cms): medium-aware Add Track on Release Archive tabs (8.E)
...
Add Track now appears on every Release Archive tab and pre-selects the upload form's medium via ?medium=… (ALL→Cut); the selector stays user-changeable on landing.
2026-06-13 22:33:33 -04:00
daniel-c-harvey
3ef98aa3ff
feat(cms): bring per-medium tab grids to ALL-tab parity (§8.C)
...
Render the rich CmsAlbumBrowser filtered per medium in the CUTS/SESSIONS/MIXES
tabs via an optional RowActions slot; retire the thin CmsMediumTable. Session
hero and Mix waveform actions preserved; ALL tab and TrackList unchanged.
2026-06-13 22:33:31 -04:00
daniel-c-harvey
4b9e6531fd
docs: record Wave 8 track 8.A landed
2026-06-13 22:16:05 -04:00
daniel-c-harvey
f9c483bbad
Merge p9-w8-8a-tab-strip into dev (8.A: CMS Release Archive medium tab strip)
2026-06-13 22:09:19 -04:00
daniel-c-harvey
20084ace4f
feat(cms): Release Archive medium tab strip (ALL · CUTS · SESSIONS · MIXES), retire navigate-away cards
...
Replace the navigate-away ReleaseArchiveBrowser cards and the redundant top-level Releases
toggle with an in-page MudTabs strip under the Releases mode: ALL (CmsAllReleasesGrid) plus
one enum-driven tab per ReleaseMedium. Sessions/Mixes browsers gain an Embedded flag that
suppresses standalone page chrome when hosted as tab content; CmsCutBrowser is the new
Cut-filtered grid. /tracks/sessions, /tracks/mixes, /tracks/archive stay reachable by URL.
2026-06-13 22:02:28 -04:00
daniel-c-harvey
3f1230fd2d
docs: record Wave 8 tracks 8.B and 8.I landed
2026-06-13 21:38:00 -04:00
daniel-c-harvey
9e7755812f
Merge p9-w8-8i-nav-slim into dev (8.I: slim public nav, inline medium links, drop GENRES/Tracks)
2026-06-13 21:30:39 -04:00
daniel-c-harvey
314e7b1f34
Merge p9-w8-8b-all-tab-grid into dev (8.B: embeddable ALL-tab all-releases grid)
2026-06-13 21:30:26 -04:00
daniel-c-harvey
743c2c3d02
feat(public-nav): slim appbar to ARCHIVE + inline CUTS/SESSIONS/MIXES, drop GENRES and Tracks (8.I)
...
Desktop flattens the ARCHIVE popover into inline appbar links above the medium
breakpoint; mobile keeps the indented sub-list under ARCHIVE. GENRES and /tracks
removed from nav only — routes (GenresView, TracksView) remain reachable by URL.
Retires the now-dead desktop hover-popover and its 8.J collapse-state machinery
(mobile drawer still dismisses on click).
2026-06-13 21:26:44 -04:00
daniel-c-harvey
e78a61c3b1
feat(cms): extract all-releases grid as embeddable ALL-tab component (9.8.B)
...
CmsAllReleasesGrid self-loads the cross-medium release list so 8.A can host it as the ALL tab with no VM plumbing; TrackList's Albums mode renders it now. Preserves sort/delete/expand/edit and the 8.D Type chip.
2026-06-13 21:26:43 -04:00
daniel-c-harvey
2991d9ec5d
docs: record Wave 8 tracks 8.F and 8.H landed
2026-06-13 21:11:23 -04:00