daniel-c-harvey
c2a3e53991
Merge p10-w3-effects-rework into dev (P10 W3 rework: vivid HSL field, time-driven bubbling, surface-born bubbles, working color-shift)
2026-06-16 00:40:41 -04:00
daniel-c-harvey
23b34004ff
Merge p11-w1-description-schema into dev (P11 11.G: release Description field, migration authored)
2026-06-16 00:38:13 -04:00
daniel-c-harvey
aedbe82d28
Merge p11-w1-queue-service into dev (P11 11.F: play-queue IQueueService + skip controls)
2026-06-16 00:37:31 -04:00
daniel-c-harvey
ff9c87c461
Merge p11-w1-cuts-detail into dev (P11 11.A: /cuts/{id} album-detail page)
2026-06-16 00:37:01 -04:00
daniel-c-harvey
b27ec1b7d0
docs: record Phase 11 Wave 1 landed (11.A cuts page, 11.F queue, 11.G description)
...
Annotate PLAN.md §11 with landed tracks; add COMPLETED.md Phase 11 section;
document TrackNumber as a supported sortColumn in DeepDrftAPI/CLAUDE.md.
2026-06-16 00:19:41 -04:00
daniel-c-harvey
c1ed2a9ba3
fix(visualizer): vivid HSL field, time-driven bubbling, surface-born bubbles, visible color-shift (P10 W3 rework)
2026-06-16 00:16:37 -04:00
daniel-c-harvey
294414d00a
fix(queue): guard OnTrackEnded against direct-play cross-context advance
...
Only advance when player's CurrentTrack.Id matches queue's Current.Id;
direct-play call sites (SessionDetail, StreamNowButton, resume) that
supersede the queue no longer spuriously advance the album. Adds
regression test covering the scenario.
2026-06-16 00:13:51 -04:00
daniel-c-harvey
2b42e01cd0
feat(player): add IQueueService orchestrating album playback above the single-slot player (P11 11.F)
...
Queue owns ordered tracks, current index, skip-fwd/back, and auto-advance via the player's TrackEnded hook; binds through Attach (no ctor growth, no service-locator). Player-bar skip controls; empty-queue play unchanged. Adds QueueService unit tests.
2026-06-16 00:04:44 -04:00
daniel-c-harvey
26d7a05ba4
docs: record Phase 10 Wave 3 (in-shader effects) landed
2026-06-16 00:01:05 -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
07ddc69cee
feat(public): add /cuts/{id} album-detail page
...
Compose ReleaseDetailScaffold via Header + BodyContent slots for the Cut
album view: left meta + Play/Share, right theme-bordered cover, TrackNumber-
ordered track list with per-row play. CutDetailBase carries the multi-track
prerender bridge.
2026-06-15 23:59:19 -04:00
daniel-c-harvey
779e1f569c
Merge p10-w3-shader-effects into dev (Phase 10 Wave 3: four in-shader effects — gradient field, bubblyness, lava-lamp detach, glass)
2026-06-15 23:56:07 -04:00
daniel-c-harvey
5011fb43f0
perf(shader): hoist playhead texture tap; clamp neighbour sdRoundBox corner radius
2026-06-15 23:55:16 -04:00
daniel-c-harvey
a9d6445881
feat(visualizer): four in-shader Mix effects — morphing navy-moss field, bubblyness, lava-lamp detach, glass (P10 W3)
2026-06-15 23:42:44 -04:00
daniel-c-harvey
56e205082d
docs(plan): add release Description field as commitment 8 / wave 11.G
...
Verified no Description column exists on ReleaseEntity/ReleaseDto (mirror
image of commitment 5, which was already built). Specs the new base-release
column + EF migration (Daniel-gated), DTO/converter/write-path plumbing,
CMS multiline input, and detail-page text block. Schema lands as 11.G;
render rides 11.A plus a Session/Mix touch.
2026-06-15 23:38:51 -04:00
daniel-c-harvey
31e00e6abd
docs(plan): spec Phase 10 Wave 4 — Mix detail popover controls, RadialKnobs, lava-lamp icon, wider body
2026-06-15 23:38:26 -04:00
daniel-c-harvey
e9f4411fdf
docs(plan): revise Phase 11 — ordinal, full stack retirement, shared cards, release-share, queue
...
Fold Daniel's 2026-06-15 decisions into PLAN.md §11 and the product note:
4→7 commitments, six waves. Headline: the track ordinal already shipped
in Phase 8, so commitment 5 is verify-and-consume, not a new migration.
Queue half of §1.3 absorbed; preload stays deferred.
2026-06-15 23:30:28 -04:00
daniel-c-harvey
22c2ae5ecb
chore: RadialKnob control
2026-06-15 23:26:11 -04:00
daniel-c-harvey
b7bd6ba04f
docs: record Phase 10 Wave 2 (controls row + control state) landed
2026-06-15 23:22:02 -04:00
daniel-c-harvey
1e6129401b
Merge p10-w2-controls-row into dev (Phase 10 Wave 2: visualizer controls row + unified MixVisualizerControlState)
2026-06-15 23:20:28 -04:00
daniel-c-harvey
bf00b7f22f
feat(visualizer): controls row + unified MixVisualizerControlState; 3 inert uniforms wired (P10 W2)
2026-06-15 23:15:44 -04:00
daniel-c-harvey
913861860b
docs(plan): shape Phase 11 — Public Site Enhancements
...
Add Phase 11 to PLAN.md and a full design spec under product-notes:
Cuts gain a /cuts/{id} album detail page; release-title click resolves
medium to a dedicated detail page; redundant /tracks?album view retired;
Archive filters move into the URL. Includes gap analysis and open
questions for Daniel.
2026-06-15 23:09:16 -04:00
daniel-c-harvey
e0f371cda6
Merge p10-w1-jitter-cleanup into dev (P10 W1: startup-jitter easing, diagnostics gated off, review remediation)
2026-06-15 22:46:46 -04:00
daniel-c-harvey
44a15bf67d
fix(review): const→static readonly Debug silences CS0162; update stale rAF comment to renderedPlayhead()
2026-06-15 22:44:20 -04:00
daniel-c-harvey
65e5e09245
fix(visualizer): ease playhead re-anchor to kill startup jitter; gate diagnostics off (P10 W1)
2026-06-15 22:32:02 -04:00
daniel-c-harvey
d73e94a12f
Merge p10-w1-fps-smoothness into dev (P10 W1: wall-clock playhead interpolation for smooth 60 FPS scroll)
2026-06-15 22:16:52 -04:00
daniel-c-harvey
df4381b4d8
fix(visualizer): interpolate Mix playhead on wall clock so ribbon scrolls at 60 FPS, not 10 Hz push cadence
2026-06-15 22:16:45 -04:00
daniel-c-harvey
ad8cb7dbc0
Merge p10-w1-resolution-slider into dev (P10 W1: fix zoom slider stacking-context occlusion)
2026-06-15 21:54:43 -04:00
daniel-c-harvey
652c90979d
fix(visualizer): lift zoom slider out of fixed backdrop's stacking context so it receives pointer events again (P10 W1)
2026-06-15 21:54:22 -04:00
daniel-c-harvey
1ad501ff11
Merge mix-play-track-selection-fix into dev (forward releaseId through TrackProxyController so WASM-path mix/session Play resolves the release's own track)
2026-06-15 21:23:35 -04:00
daniel-c-harvey
c9b8dfcf3f
fix(proxy): forward releaseId filter in TrackProxyController.GetPage so WASM-path mix/session track resolution is not stripped at the proxy boundary
2026-06-15 21:07:50 -04:00
daniel-c-harvey
2bacf58241
Merge session-detail-hero-overlay into dev (Session detail hero-overlay redesign, NowPlaying-themed)
2026-06-15 20:38:09 -04:00
daniel-c-harvey
83c0425133
docs: note SessionDetail hero-overlay composition and scaffold divergence
2026-06-15 19:35:36 -04:00
daniel-c-harvey
0758bfe7f1
fix(css): add ::deep to .session-detail-page so Blazor isolation scope pierces MudContainer boundary
2026-06-15 19:32:34 -04:00
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
3c7f28b2eb
redesign(public): session detail as hero-overlay composition, NowPlaying-themed
2026-06-15 19:27:12 -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