Commit Graph

241 Commits

Author SHA1 Message Date
daniel-c-harvey 0d85f23f0e docs: add CD pipeline plan (Gitea workflows + remote installer) modeled on Skipper 2026-06-04 09:25:50 -04:00
daniel-c-harvey 179d11ce67 Merge branch 'player-hygiene' into dev 2026-06-03 14:33:17 -04:00
daniel-c-harvey 93569e30d1 docs: document StateChanged pattern, readiness guard, dead path removal; clear resolved TODOs 2026-06-03 14:31:51 -04:00
daniel-c-harvey 7d49c64a5d fix: enable player controls on load, clear track selection on stop and end-of-track
Add StateChanged multicast event to IPlayerService so AudioPlayerBar and TracksView
re-render themselves without relying on the IsFixed cascade re-render path. Clear
_selectedTrack in TracksView when IsLoaded drops (stop, unload, end-of-track). Set
IsLoaded=false in OnPlaybackEndCallback so end-of-track triggers the same clear path.
Add JS-module readiness probe in AudioInteropService; delete dead TS and buffered C#
path; consolidate GetPlayIcon/FormatTime helpers; fix misleading minimize dock icon.
2026-06-03 14:30:15 -04:00
daniel-c-harvey b8a51e4656 docs: update cascade type references and close resolved TODO item 2026-06-03 12:40:49 -04:00
daniel-c-harvey 12383874c2 Merge branch 'player-cascade-fix' into dev 2026-06-03 12:37:10 -04:00
daniel-c-harvey 252eb0bd44 environment and dependency cleanup 2026-06-03 12:36:48 -04:00
daniel-c-harvey c1f79a3aca fix: align player cascade type to IStreamingPlayerService so consumers stop receiving null 2026-06-03 12:29:43 -04:00
daniel-c-harvey 5b4c7c1a18 docs: analyse player-controls failure (cascade type mismatch), triage bugs into TODO
AudioPlayerProvider publishes CascadingValue<StreamingAudioPlayerService> (concrete)
but all consumers request interface types; cascade resolves null, controls render
disabled. PLAYER_ANALYSIS.md has the deep-dive; TODO.md has the actionable bugs.
2026-06-03 12:14:59 -04:00
daniel-c-harvey 016764929b enviornment examples 2026-06-02 10:04:32 -04:00
Daniel Harvey d2ef21066d fix: startup fixes 2026-05-26 12:54:39 -04:00
Daniel Harvey d41916c7b9 Merge branch 'public-proxy' into dev 2026-05-25 20:23:22 -04:00
Daniel Harvey 8adbfb195b docs: update CLAUDE.md for DeepDrftPublic proxy layer 2026-05-25 19:40:31 -04:00
Daniel Harvey 2e8233d9d3 fix: response leak, TrackProxyController rename, restore api.json load 2026-05-25 19:37:27 -04:00
Daniel Harvey e2a7944077 Proxy WASM track traffic through DeepDrftPublic to DeepDrftAPI 2026-05-25 19:11:00 -04:00
Daniel Harvey 02e230e236 Merge branch 'eliminate-public-api' into dev 2026-05-25 17:48:56 -04:00
Daniel Harvey 708836a169 docs: update CLAUDE.md files for DeepDrftPublic simplification 2026-05-25 17:33:32 -04:00
Daniel Harvey f48a21b7a0 chore: remove orphaned dch5-publish-cli.sh 2026-05-25 13:03:45 -04:00
Daniel Harvey 072189be9c fix: remove orphaned EF/Npgsql refs, trailing slash on SqlApi, ITrackDataService doc 2026-05-25 13:02:14 -04:00
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