Commit Graph

54 Commits

Author SHA1 Message Date
Daniel Harvey 0a0a1826ce Merge branch 'split-phase3-shared' into dev 2026-05-19 17:23:46 -04:00
Daniel Harvey 8b8796fc58 refactor(split): extract DeepDrftShared.Client RCL with shared atoms
TrackCard, TracksGallery, DDIcons, DeepDrftPalettes (Default+Cms), DeepDrftFontLinks,
and palette CSS tokens extracted. Both hosts and DeepDrftCms reference the shared RCL.
2026-05-19 17:14:23 -04:00
Daniel Harvey 490bbbe942 feat(split): strip AuthBlocks from DeepDrftWeb; move CMS controllers to DeepDrftManager
Public host is now auth-free: no AuthBlocks, no DeepDrftCms ref, no stealth routing.
MainLayout restored to full chrome. DeepDrft.Content/.Cms HttpClients wired on Manager.
2026-05-19 17:01:24 -04:00
Daniel Harvey 54865e7d10 fix(routing): move @rendermode InteractiveAuto from MainLayout onto the public pages so MudBlazor providers boot interactively 2026-05-19 08:32:59 -04:00
Daniel Harvey dba8b1d63e fix(routing): static Routes/HeadOutlet, InteractiveAuto on MainLayout, InteractiveServer on CmsLayout — Routes lived in server-only assembly and couldn't hydrate in WASM 2026-05-19 01:49:19 -04:00
Daniel Harvey 0c0ecfb101 fix(render-mode): remove conflicting @rendermode directives from CMS layouts/pages and MainLayout 2026-05-19 01:33:30 -04:00
Daniel Harvey f749ff79cf bump Cerebellum.AuthBlocks* references 10.3.31 -> 10.3.32 to pick up prerender-fix release 2026-05-19 01:07:38 -04:00
Daniel Harvey e164047584 chore: bump Cerebellum.AuthBlocks* to 10.3.31 2026-05-19 00:53:00 -04:00
Daniel Harvey 3dfa645101 style: replace fully-qualified AllowAnonymous with @using + short form in Home and TracksView 2026-05-19 00:07:22 -04:00
Daniel Harvey 4379883048 fix(routing): add [AllowAnonymous] to public pages so static-SSR AuthorizeRouteView doesn't block unauthenticated requests 2026-05-19 00:03:48 -04:00
Daniel Harvey d31a08bd15 fix(routing): InteractiveServer routing, WASM interactivity declared at layout level
Routes moves to InteractiveServer so the server router always sees all
assemblies (including AuthBlocksWeb). MainLayout declares
@rendermode InteractiveWebAssembly — the single source of WASM
interactivity for all public pages. CmsLayout in DeepDrftCms provides
a server-rendered admin shell without the audio dock. Assembly-level
_Imports.razor files set the default layout for each group; no per-page
rendermode declarations needed. Routes.razor moves to the server host
(its correct home) carrying the full AdditionalAssemblies list.
2026-05-18 23:31:10 -04:00
Daniel Harvey 7c9f3b1630 fix(client): force server reload for /account/* routes unknown to WASM router
AuthBlocksWeb pages live in a server-only assembly not bundled in the WASM
client. When InteractiveAuto switches routing to WASM, /account/login has
no matching component and shows NotFound. Routes.razor now intercepts
NotFound for /account/* paths and forces a full-page reload to the server
router, which knows the real login page via AddAdditionalAssemblies.
2026-05-18 23:14:15 -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 d1f3cbd89b Fix Wave 2 review: PG18 volume path, null guards, NotAuthorized redirect, drop docker-compose, port 5433 connection strings 2026-05-18 09:38:25 -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 13d0b08bfd Merge p0-w2-tc-dark: dark palette rewrite as navy/green/off-white mirror 2026-05-17 22:06:59 -04:00
Daniel Harvey 7940dd8ae9 Merge p0-w2-tb-home: Home.razor wireframe rewrite, site footer, CurrentTrack 2026-05-17 22:01:58 -04:00
Daniel Harvey 3d94e45d0c P0/W2/TB: rewrite Home to wireframe spec, add site footer, expose CurrentTrack; fix dead base writes, genre href scroll-to-top 2026-05-17 21:52:19 -04:00
Daniel Harvey ed27e0e997 P0 W2 TC: rewrite dark palette as navy/green/off-white wireframe variant; fix TextSecondary WCAG comment ~6.1:1 2026-05-17 21:51:43 -04:00
Daniel Harvey 2eb8e02f15 Replace MudAppBar with frosted-glass fixed nav in DeepDrftMenu; fix IAsyncDisposable, nav links to Pages.MenuPages, ::deep space, dark hover colour 2026-05-17 21:48:40 -04:00
Daniel Harvey 144f7c7527 Wireframe palette + font foundation: navy/green/off-white PaletteLight, Cormorant Garamond + Geist Mono + DM Sans, retire Bodoni Moda 2026-05-17 21:20:06 -04:00
Daniel Harvey 4420975cd2 Fix streaming minors: isActive_ sentinel, WAV error message, TextDecoder hoist, MIME 400, fmt first-match, processedBytes comment 2026-05-17 18:55:05 -04:00
Daniel Harvey 9f32c70e0f Merge p1-w2-tc-streaming-majors: streaming majors findings 5-14 2026-05-17 18:23:15 -04:00
Daniel Harvey 02d146ce02 Fix streaming majors: PCM-only validation, stream-from-disk, ConcatStream offset, AsyncDisposable, HTTP cancellation, await ensureReady, seekBeyondBuffer offset-0 guard, negative WAV chunk guard 2026-05-17 16:57:20 -04:00
Daniel Harvey 4c9bf0ca8d Fix 9 design majors: ITrackService interface, IsDescending, ArrayPool base, CliUtils, sort sentinel cleanup, content controller via TrackService, Skip property 2026-05-17 16:10:56 -04:00
Daniel Harvey dd96caa709 Fix Critical: streaming race, dirty buffer, dropped tail, fragmented header
- SeekBeyondBuffer and LoadTrackStreaming assign _activeStreamingTask before
  awaiting; DrainActiveStreamingTaskAsync awaits previous task before new
  stream starts, closing the concurrent-seek race on the JS StreamDecoder
- Always slice ArrayPool buffer to currentBytes before sending to JS interop;
  eliminates stale bytes from prior rentals reaching the audio decoder
- getSampleAlignedChunkSize accepts streamComplete flag; bypasses minimum
  chunk guard on final tail so trailing bytes are decoded, not dropped
- StreamDecoder accumulates headerSearchChunks until parseHeader succeeds,
  with 256 KB MAX_HEADER_SEARCH_BYTES bound; handles fragmented first chunks
  and extended WAV headers with LIST/INFO/JUNK chunks
- markStreamComplete early-returns when streamComplete already set to prevent
  double-drain and incorrect streamingCompleted flag after partial failure
- processedBytes advances only after successful decode; failed segments leave
  cursor in place rather than permanently skipping audio
- AudioInteropService.MarkStreamCompleteAsync wires C# loop exit to JS decoder
  ensuring tail drain fires even when Content-Length header is absent
2026-05-17 11:28:53 -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 bb3551a248 Theming Draft 2 2025-12-08 20:30:41 -05:00
daniel-c-harvey a68dc37012 2026 Deep DRFT Theme Draft 1 WIP 2025-12-07 18:41:09 -05:00
daniel-c-harvey 75456a59ce Spectrum Visualizer for player & Layout 2025-12-07 11:18:32 -05:00
daniel-c-harvey c5fdf12ef4 Smooth Seeking (no scrub audio) 2025-12-07 04:54:05 -05:00
daniel-c-harvey 20db222a0f Streaming Seek Support 2025-12-07 04:44:54 -05:00
daniel-c-harvey 2baf0575bc Streaming Bug Fixes 2025-12-06 06:41:32 -05:00
daniel-c-harvey 605fc94fbb True Streaming Support Draft 2025-09-15 17:03:36 -04:00
daniel-c-harvey 0fa8ac7379 Front End Streaming Playback Improvements 2025-09-13 15:22:26 -04:00
daniel-c-harvey cdeb300d5e Front End Cleanup 2025-09-13 12:41:21 -04:00
daniel-c-harvey 0f0fd828d2 Refactor Audio Plaback layers for simplification and improved maintenance 2025-09-13 08:26:12 -04:00
daniel-c-harvey 9ac2c9182a Player Client and Visual Enhancements
- Redesigned audio player bar to be mobile-friendly
 - Added unloading for track switching (needs to be fixed)
 - Added IsLoading status so loading spinner isn't hanging around when it shouldn't be
 - Normalized styles with scoped files (will further reduce)
 - Layout Cleanup
 - EF fixes (migrations now function for deployment)
 - deploy script updates (new dedicated host)
2025-09-12 20:37:17 -04:00
daniel-c-harvey 73d4b0a9c5 Front End Audio Player Always Available 2025-09-08 18:42:07 -04:00
daniel-c-harvey a25d067dff AUdio Player Service refactor 2025-09-08 14:20:38 -04:00
daniel-c-harvey bf054f3d1b API Connection Cleanup & Bugfixes 2025-09-08 11:10:23 -04:00
daniel-c-harvey c6f4ffc1fe Cleanup & Bug Fixes
- WebAssembly fix (missing app.Run)
 - API comms cleanup
2025-09-08 09:53:13 -04:00
daniel-c-harvey a5b7ab041e Deployment Configuration and Script
- Front End Cleanup
2025-09-06 18:40:32 -04:00
daniel-c-harvey 0951514778 Front End Work
- Colors & Styles
 - Fonts
 - Small Layout Adjustments
2025-09-06 15:21:03 -04:00
daniel-c-harvey 5a8a2da842 Front End Work
- Home Page
 - Custom Site Styles & Mud Theme Adjustments
2025-09-06 14:19:09 -04:00
daniel-c-harvey 66d800bd26 Front End Work
- Redesign component wiring for audio playback
 - Removed playback logic from the player control and moved it to injectable audio player engine service
 - Chunked/buffered stream loading from Content API passed to Web Audio API playback in 8K blocks
2025-09-06 13:39:26 -04:00
daniel-c-harvey 3766d4e010 Front End
- MudBlazor Theme Manager tryout
 - Navigation bar rework
 - Icons and styles rework
 - Track Gallery & Card layout redesign for SPA
 - Track Player bottom bar
2025-09-05 22:27:12 -04:00
daniel-c-harvey 7f78545a02 *Audio Playback*
Content API:
 - Enabling CORS for access from Blazor app
Web Server:
 - Content API URL environment config
 - Web Audio API JS Interop layer in TypeScript
 - HttpClient configs
Web Client:
 - Audio Tack player controls
 - Audio Player example page
 - Audio Interop Service Layer
 - Named HttpClients
2025-09-05 10:48:07 -04:00
daniel-c-harvey 5e02d004e3 CLAUDE.md files 2025-09-04 19:57:05 -04:00