daniel-c-harvey
042641d841
docs: expand Phase 19 to all three AuthBlocks registration paths + reset brief
...
Cover admin provision-now, public self-service redeem, and admin invite-by-email across CMS + public-site tracks. Add standalone AuthBlocks password-reset team brief.
2026-06-19 19:18:53 -04:00
daniel-c-harvey
0358df82ac
feat: Player & Menu Styles
2026-06-19 19:18:40 -04:00
daniel-c-harvey
0f7088fe86
Merge p18-w1-theme-dark-remediation into dev (Phase 18 dark-mode token pass)
2026-06-19 19:12:26 -04:00
daniel-c-harvey
5408d0779c
fix: scope play-glyph override to dark mode, fix connect-option hover, tokenize bio placeholder, correct popover comment
2026-06-19 19:04:05 -04:00
daniel-c-harvey
abe94953b9
docs: add Phase 19 user-management CMS wiring plan + product note
2026-06-19 19:02:40 -04:00
daniel-c-harvey
03fdcda054
style: theme-aware token pass for dark-mode surfaces (Phase 18)
...
Re-point neutral page surfaces, play-chip, and default popover from constant brand tokens to theme-aware aliases defined twice in deepdrft-tokens.css. Decorative navy/green sections and bespoke dark-glass panels untouched. Appbar-navy symptom deferred (palette C#, out of CSS scope).
2026-06-19 18:12:35 -04:00
daniel-c-harvey
5298cab9b1
feature: Re-enable Dark Mode Toggle & App Bar Styles & Mobile App Bar Fixes
Deploy DeepDrftAPI / Build, Publish & Bundle (push) Successful in 2m9s
Deploy DeepDrftPublic / Build & Publish (push) Successful in 4m7s
Deploy DeepDrftAPI / Deploy (push) Successful in 1m34s
Deploy DeepDrftPublic / Deploy (push) Successful in 1m31s
2026-06-19 17:48:26 -04:00
daniel-c-harvey
e05d93a67b
docs: document upload staging directory and Upload:StagingPath config
2026-06-19 17:45:52 -04:00
daniel-c-harvey
fd4fdd2624
docs: add Phase 18 theme/dark-mode remediation plan + product note
2026-06-19 17:41:11 -04:00
daniel-c-harvey
639f4741e6
Merge upload-temp-disk-fix into dev (stage large audio uploads on data disk instead of /tmp)
2026-06-19 17:37:26 -04:00
daniel-c-harvey
d7071fdbc2
fix: always delete staging file on mid-copy abort
...
Build the staging path before the copy in both UploadTrack and ReplaceAudio so the finally block deletes it on cancellation or IO error, not only on success.
2026-06-19 17:36:06 -04:00
daniel-c-harvey
37cf19c405
fix: stage audio uploads on data disk instead of /tmp
...
Relocate both the framework multipart buffer (via ASPNETCORE_TEMP) and the controller staging file to a configurable data-disk directory, so large WAV/FLAC/MP3 uploads no longer fail on the host's small tmpfs.
2026-06-19 17:25:51 -04:00
daniel-c-harvey
37bbfb947f
docs: note footer PRIVACY button + centered MudOverlay privacy modal
2026-06-19 17:09:37 -04:00
daniel-c-harvey
261b11436e
Merge privacy-footer-overlay into dev (PRIVACY footer button + centered overlay note)
Deploy DeepDrftAPI / Build, Publish & Bundle (push) Successful in 2m11s
Deploy DeepDrftManager / Build & Publish (push) Successful in 1m29s
Deploy DeepDrftPublic / Build & Publish (push) Successful in 3m56s
Deploy DeepDrftAPI / Deploy (push) Successful in 1m33s
Deploy DeepDrftManager / Deploy (push) Successful in 1m29s
Deploy DeepDrftPublic / Deploy (push) Successful in 1m29s
2026-06-19 17:02:17 -04:00
daniel-c-harvey
280dbbcbc9
style: DRY footer btn CSS, add trailing newline, drop wrong section ordinal
2026-06-19 16:59:01 -04:00
daniel-c-harvey
ce17a685e0
docs: reflect Phase 17 Wave 17.3 landing; Phase 17 complete
2026-06-19 16:48:48 -04:00
daniel-c-harvey
64379c8901
feat: move footer privacy note behind PRIVACY overlay button
2026-06-19 16:48:46 -04:00
daniel-c-harvey
1f8802363c
Merge p17-w3-embed-panel into dev (Phase 17 Wave 17.3: Fixed embed queue panel + collapse/resize handshake)
2026-06-19 16:38:38 -04:00
daniel-c-harvey
58cdb4d9dc
fix: isolate multi-embed resize handshake with per-snippet token
...
ForRelease mints a per-call token used as the iframe id and threaded into the src as EmbedId; the host script matches on it so multiple embeds resize independently. ForTrack unchanged.
2026-06-19 16:32:59 -04:00
daniel-c-harvey
97cce691db
docs: document upload duplicate-detection rule, release/exists endpoint, and FindOrCreateRelease WasCreated contract
2026-06-19 16:25:50 -04:00
daniel-c-harvey
d0be26bb3e
Merge upload-duplicate-detection into dev (block duplicate-release uploads by title+artist)
2026-06-19 16:22:28 -04:00
daniel-c-harvey
466084b5a3
feat: Phase 17.3 — Fixed embed queue panel with collapse/expand iframe resize (OQ1 Option A)
...
Read-only inline queue panel below the release embed's player bar; row-jump reuses PlayRelease. ForRelease mints a taller iframe plus a postMessage resize listener for the collapse toggle; ForTrack unchanged.
2026-06-19 16:21:45 -04:00
daniel-c-harvey
558ff4b4c6
fix: close TOCTOU in CREATE path; add anti-forgery, loose-track, and case-sensitivity tests
...
FindOrCreateRelease now returns (ReleaseDto, bool WasCreated); the CREATE path in UploadAsync
rejects WasCreated=false as a duplicate rather than silently attaching on a lost race.
2026-06-19 15:55:08 -04:00
daniel-c-harvey
bd85507308
Block duplicate-release uploads by (title, artist): pre-flight check + server 409 backstop, with within-batch Cut attach via releaseId
2026-06-19 15:44:41 -04:00
daniel-c-harvey
fbd298b9c3
docs: reflect Phase 17 Wave 2 (docked overlay + Add-to-Queue) and Phase 16.5 capstone landing
Deploy DeepDrftAPI / Build, Publish & Bundle (push) Successful in 3m2s
Deploy DeepDrftManager / Build & Publish (push) Successful in 1m24s
Deploy DeepDrftPublic / Build & Publish (push) Successful in 4m2s
Package install tarball / package (push) Successful in 6s
Deploy DeepDrftAPI / Deploy (push) Successful in 1m34s
Deploy DeepDrftManager / Deploy (push) Successful in 1m31s
Deploy DeepDrftPublic / Deploy (push) Successful in 2m0s
beta-20260619-fbd298b
2026-06-19 15:42:17 -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
da60296cf8
Merge p17-w2-t2-add-to-queue into dev (Phase 17 Wave 17.4: Add-to-Queue affordance)
2026-06-19 15:35:19 -04:00
daniel-c-harvey
4320ea8029
Merge p17-w2-t1-docked-overlay into dev (Phase 17 Wave 17.2: docked queue overlay + ClearUpcoming)
2026-06-19 15:34:59 -04:00
daniel-c-harvey
678d3f66ad
Merge p16-w5-t2-privacy-footer into dev (anonId privacy disclosure footer line)
2026-06-19 15:33:28 -04:00
daniel-c-harvey
be04e53a97
Merge p16-w5-t1-plays-card into dev (Phase 16 Wave 16.5: home Plays-card live)
2026-06-19 15:31:37 -04:00
daniel-c-harvey
58b30d3c13
feat(footer): add anonId privacy disclosure line
...
Wraps existing footer row in .deepdrft-footer-main and adds a
.deepdrft-footer-privacy paragraph below it with the approved
Variant 1 copy. Mono fine-print at 0.55 rem / 70% opacity.
2026-06-19 15:26:07 -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
9d0ce99a5d
fix: PlayRelease always materialises a defensive copy so Items alias can't wipe the queue on jump; add aliasing regression test
2026-06-19 15:23:20 -04:00
daniel-c-harvey
1d387c2a34
feat(player): add append-only "Add to Queue" buttons beside detail-page play affordances
...
Cut header (release → EnqueueRange), Cut track rows + Session/Mix hero (track → Enqueue). Reuses existing engine path; add is not play.
2026-06-19 15:18:38 -04:00
daniel-c-harvey
fe3819f378
feat(player): docked queue overlay with reorder, remove, jump, and clear-upcoming
...
Add a Queue toggle to the docked player bar opening a centered editable queue
overlay. New additive QueueService.ClearUpcoming keeps the playing track while
dropping the rest. Current track is non-removable.
2026-06-19 15:18:25 -04:00
daniel-c-harvey
cfcc2693f2
docs: reflect raised upload cap (~1.86 GB) and 1200s response timeout
2026-06-19 15:14:07 -04:00
daniel-c-harvey
621c4f9cb3
docs(phase-16): draft anonId privacy-note copy; note deferred Postgres integration harness
2026-06-19 15:10:15 -04:00
daniel-c-harvey
67eeb38529
Merge fix-large-upload-cap into dev (raise CMS upload cap to ~1.86 GB + nginx timeouts)
2026-06-19 15:08:48 -04:00
daniel-c-harvey
9aa66e8a62
docs: resolve remaining seven Phase 17 open questions (all 11 now closed)
2026-06-19 15:08:39 -04:00
daniel-c-harvey
3b9ca700c9
raise upload size cap to ~1.86 GB and nginx timeouts to 1200s
...
Raise RequestSizeLimit/MultipartBodyLengthLimit on upload+replace-audio,
MaxUploadBytes in BatchUpload/BatchEdit, and DefaultResponseTimeoutSeconds to
1200s. Add client_max_body_size 2000m and proxy_read/send_timeout 1200s to the
nginx manager/public confs.
2026-06-19 15:02:49 -04:00
daniel-c-harvey
4317a2f9e7
docs(phase-16): record 16.2 absorption + 16.3 anonId landing
...
PLAN/COMPLETED mark 16.2 absorbed into 16.1 and 16.3 landed (no migration). Folder CLAUDE.md files reflect anonId now accepted/persisted + the distinct-listener queries.
2026-06-19 14:57:23 -04:00
daniel-c-harvey
297805b5a8
Merge p16-w3-anonid into dev (Phase 16 Wave 16.3: unique-listener anonId layer)
2026-06-19 14:43:46 -04:00
daniel-c-harvey
944f23a88c
docs: reflect Phase 17 Wave 17.1 landing (queue Move/RemoveAt + QueueList)
2026-06-19 14:43:36 -04:00
daniel-c-harvey
75e5d99aea
Merge p17-w1-queue-engine-list into dev (Phase 17 Wave 17.1: queue Move/RemoveAt + shared QueueList)
2026-06-19 14:38:25 -04:00
daniel-c-harvey
c084efa78e
feat(phase-16.3): light up anonId unique-listener layer
...
Mint a first-party localStorage anonId, thread it onto play/share beacons,
persist it via EventController, and add all-time distinct-listener counts
(site/track/release). Storage columns + indexes already existed from 16.1.
2026-06-19 14:37:55 -04:00
daniel-c-harvey
f296bbdf00
Add queue Move/RemoveAt + dormant-Enqueue coherence and shared QueueList (Phase 17.1)
2026-06-19 14:32:08 -04:00
daniel-c-harvey
ebbaa3f84f
docs: resolve four Phase 17 open questions (OQ1/OQ4/OQ8/OQ10), defer ReleaseGallery card affordance
2026-06-19 13:42:19 -04:00
daniel-c-harvey
a715f4b28d
Merge p16-w1-foundation into dev (Phase 16 Wave 16.1: anonymous play & share telemetry substrate)
2026-06-19 13:34:01 -04:00
daniel-c-harvey
90555dc4e0
docs: spec Phase 17 player-bar queue view (queue button, overlay/embed modes, add-to-queue)
2026-06-19 13:29:57 -04:00
daniel-c-harvey
0fbf81b23e
Merge branch 'dev' into p16-w1-foundation
...
# Conflicts:
# DeepDrftPublic.Client/Controls/SharePopover.razor.cs
2026-06-19 13:28:50 -04:00