1172 Commits

Author SHA1 Message Date
Daniel Harvey e334886022 Eliminate DeepDrftPublic internal track API 2026-05-25 12:55:30 -04:00
Daniel Harvey 068205a84e docs: update CLAUDE.md files for AuthBlocks split, DTO layer boundary, and CLI removal 2026-05-25 12:22:07 -04:00
Daniel Harvey a5f22c84e0 Merge remove-cli: DeepDrftCli project removed, replaced by CMS Manager 2026-05-25 11:56:28 -04:00
Daniel Harvey 6f90b3073d Merge trackservice-dto: ITrackService/TrackManager flipped to DTO output 2026-05-25 11:45:30 -04:00
Daniel Harvey 9ac7da4d14 Merge authblocks-split: AuthBlocks API host moved to DeepDrftAPI 2026-05-25 11:45:12 -04:00
Daniel Harvey 82a310cf58 remove DeepDrftCli project and CLI.sln; clean orphan GUID from DeepDrftHome.sln 2026-05-25 11:39:41 -04:00
Daniel Harvey 4351302a25 Flip ITrackService/TrackManager to DTO output; TrackConverter is the sole entity<->DTO path across all consumers 2026-05-25 11:35:04 -04:00
Daniel Harvey ef8a0e9c6e Move AuthBlocks API host (registration, migration/seed, endpoint mounting) from Manager to DeepDrftAPI; Manager keeps only AuthBlocksWeb 2026-05-25 11:26:29 -04:00
Daniel Harvey 81fc87391b docs: add implementation plan for AuthBlocks separation and TrackManager/ITrackService DTO layer boundary 2026-05-25 11:07:41 -04:00
Daniel Harvey 551cef0fe8 DeepDrftAPI Rename 2026-05-25 10:38:36 -04:00
Daniel Harvey 98b2c8d744 Manager Cleanup 2026-05-25 10:17:21 -04:00
Daniel Harvey 2574ed9af8 docs: update CLAUDE.md files for Content SQL authority and Manager HTTP-only 2026-05-25 09:33:28 -04:00
Daniel Harvey 5bf75d5abf Merge branch 'content-sql-unification' into dev 2026-05-25 09:25:29 -04:00
Daniel Harvey d9e4052e39 fix: review remediation — _busy finally block, TrackNotFoundMessage const, null-safe error log 2026-05-25 09:11:15 -04:00
Daniel Harvey f404602536 refactor: make DeepDrftContent sole authority over track SQL + vault; Manager goes HTTP-only 2026-05-25 08:46:09 -04:00
Daniel Harvey 72c33d9940 CMS -> API refactor part 1 2026-05-25 04:04:59 -04:00
Daniel Harvey 2b59eddad3 docs: update CLAUDE.md for CmsTrackService, no-controller CMS pattern 2026-05-24 21:31:37 -04:00
Daniel Harvey ab6f9eafee Merge branch 'cms-direct-service' into dev 2026-05-24 21:16:58 -04:00
Daniel Harvey 7f99479cae fix(manager): review remediation — DeleteTrackAsync dead code, TrackEdit Id long, dead @using 2026-05-24 21:14:26 -04:00
Daniel Harvey 428359b241 refactor(manager): replace internal CMS HTTP layer with direct CmsTrackService calls 2026-05-24 20:46:22 -04:00
Daniel Harvey 058e4ca196 docs: clear resolved TrackNew bearer-token entry from TODO 2026-05-24 19:01:30 -04:00
Daniel Harvey af59915cef Merge branch 'tracknew-bearer' into dev 2026-05-24 18:59:18 -04:00
Daniel Harvey e2a2064f7a fix(tracknew): attach bearer token to WAV upload request 2026-05-24 18:57:48 -04:00
Daniel Harvey 695acc70bb Merge branch 'auth-redirect-fix' into dev 2026-05-24 18:45:48 -04:00
Daniel Harvey 95772c655e fix(manager): redirect unauth nav to login instead of 401
AddAuthBlocks installs JwtBearer as the default challenge scheme; the
authorization middleware 401s unauthenticated nav requests before the
Blazor router runs. Tokens live in localStorage and are only readable
via JS interop after the SignalR circuit is live.

- Program.cs: MapRazorComponents .AllowAnonymous() so nav reaches the
  Blazor router; API surfaces (MapAuthBlocks, MapControllers) still
  enforce JWT. Fix middleware order to UseAuthentication -> UseAntiforgery
  -> UseAuthorization per Blazor Web App template.
- App.razor: InteractiveServerRenderMode(prerender:false) on Routes and
  HeadOutlet so AuthorizeRouteView evaluates after JS interop is ready;
  extract to static field (was two inline allocations per render cycle).
- CmsLayout/Pages: drop conflicting per-component @rendermode directives
  (parent now owns the render mode).
- Routes.razor: break authenticated-but-wrong-role redirect loop; split
  NotAuthorized into unauthenticated -> RedirectToLogin and
  authenticated-wrong-role -> RedirectToAccessDenied (new component).
- Pages/Index.razor: deleted — NavigateTo('/cms') was unreachable for
  unauthenticated users and racey for authorized ones.
2026-05-24 18:29:07 -04:00
Daniel Harvey e6dc15e451 docs: add TODO.md tracking TrackNew upload bearer-token bug 2026-05-23 05:09:49 -04:00
Daniel Harvey d6156552cd Merge branch 'authblocks-10333' into dev 2026-05-23 05:04:11 -04:00
Daniel Harvey e73b3c3218 chore(manager): upgrade AuthBlocks to 10.3.33; migrate ITokenService → IAuthSession, SystemRoleConstants, hoist usings to _Imports 2026-05-22 23:33:25 -04:00
Daniel Harvey 770baffb88 remove NetBlocks and DeepDrftCli from DeepDrftHome.sln 2026-05-21 21:42:59 -04:00
Daniel Harvey fc49a65824 fix(cms): use SystemRoleConstants.Admin in /cms page auth 2026-05-21 21:32:35 -04:00
Daniel Harvey 5a9ac3d060 Merge branch 'cms-inline' into dev 2026-05-21 21:29:51 -04:00
Daniel Harvey 01b8813b61 docs: reflect DeepDrftCms RCL inlined into DeepDrftManager 2026-05-21 20:51:02 -04:00
Daniel Harvey 710705415a move DeleteTrackDialog to Shared/, drop redundant usings 2026-05-21 20:44:32 -04:00
Daniel Harvey ce1cbccad5 inline DeepDrftCms RCL into DeepDrftManager and delete the project 2026-05-21 20:36:00 -04:00
Daniel Harvey db463a9049 Merge branch 'palette-init-order' into dev 2026-05-21 16:01:04 -04:00
Daniel Harvey f76c96fe34 add NotFound page, wire Routes.NotFoundPage, set log level to Debug 2026-05-21 15:55:34 -04:00
Daniel Harvey 389fc88aa0 fix(palettes): reorder DeepDrftPalettes static props so Light/Dark/Typography init before Default/Cms (fixes null MudTheme NRE) 2026-05-21 15:46:10 -04:00
Daniel Harvey e496d9cde6 Merge branch 'remove-thememanager' into dev 2026-05-21 15:24:15 -04:00
Daniel Harvey b27f687291 remove broken MudBlazor.ThemeManager 3.0.0 dependency — incompatible with MudBlazor 8.15.0, ThemeManagerTheme wrapper produced NRE in GenerateTheme; wire MudThemeProvider to DeepDrftPalettes.Default and hardcode AppBar Elevation=4 2026-05-21 15:22:52 -04:00
Daniel Harvey 599fc7ce9b Merge branch 'routes-layout-fix' into dev 2026-05-21 10:35:05 -04:00
Daniel Harvey 94163f4ad6 fix(client): remove @layout MainLayout from _Imports.razor — DefaultLayout on RouteView covers pages; directive incorrectly applied to Routes causing double-MainLayout crash 2026-05-21 10:29:21 -04:00
Daniel Harvey 1176553bac Merge branch 'remove-statehaschanged' into dev 2026-05-21 10:03:01 -04:00
Daniel Harvey 0b7475e7ea fix(MainLayout): remove redundant StateHasChanged() from OnInitialized to prevent nested ProcessRenderQueue and NullReferenceException in MudThemeProvider during SSR prerender 2026-05-21 10:02:40 -04:00
Daniel Harvey 9b6784d49a Merge branch 'routes-to-client' into dev 2026-05-21 09:07:41 -04:00
Daniel Harvey a88a523f39 fix(public): await OnSeekEnd in onpointerleave handlers (was fire-and-forget) 2026-05-21 09:06:26 -04:00
Daniel Harvey c436e564be fix(public): move Routes.razor to client assembly so InteractiveAuto can resolve it in WASM 2026-05-21 08:56:01 -04:00
Daniel Harvey daa1530292 Merge branch 'public-structural-fix' into dev 2026-05-21 07:55:10 -04:00
Daniel Harvey 5d823868c8 docs(AudioPlayerProvider): explain IsFixed=true intent and runtime-swap caveat 2026-05-21 07:52:13 -04:00
Daniel Harvey b4fff43cb3 fix(public): break OnStateChanged callback chain and lazy-init audio player to stop circuit memory blowup 2026-05-21 07:36:55 -04:00
Daniel Harvey ae2bdcd065 Merge branch 'public-prerender-hang' into dev 2026-05-21 06:34:13 -04:00