Admin
461bae1b01
feat(backend): add playlist cover endpoint and relax description validation
...
Adds GET /playlists/{id}/cover (mirrors the track cover endpoint) so
uploaded playlist pictures can actually be served. Also drops the
NotEmpty rule on playlist description, which rejected the blank
description the frontend treats as optional; CreatePlayList now falls
back to the domain's default text instead.
2026-07-15 16:09:40 +02:00
Admin
b0e4ec650a
feat(frontend): hide playlists if the user doesn't have any
2026-07-14 19:24:41 +02:00
Admin
84ffb1eef6
Changes
2026-07-14 19:11:58 +02:00
Admin
126f767dca
fix(frontend): change max recent tracks
2026-07-14 18:51:42 +02:00
Admin
9e0c164e17
feat(frontend): persistent player volume
2026-07-14 18:48:57 +02:00
Admin
e31419b8c8
style(frontend): drop card background on explore results, match home track style
2026-07-14 14:30:19 +02:00
Admin
fe874b3608
style(frontend): make explore search bar span full width
2026-07-14 14:28:54 +02:00
Admin
9067e59f6f
feat(frontend): search tracks live as you type on explore page
2026-07-14 14:27:38 +02:00
Admin
e68bf36481
style(frontend): restore original card sizes and stretch all home grids full width
2026-07-14 14:24:28 +02:00
Admin
e7fe2dd888
style(frontend): let recently-played cards fill the full page width
2026-07-14 14:22:55 +02:00
Admin
04ae571eee
style(frontend): enlarge recently-played section on home page
2026-07-14 14:20:51 +02:00
Admin
befd392971
fix(frontend): give duration and remove-track their own grid columns
2026-07-14 14:11:36 +02:00
Admin
32f3cbe5cf
style(frontend): move remove-track button to the far right of the row
2026-07-14 14:08:45 +02:00
Admin
19a4299b71
fix(frontend): contain NowPlaying indicator inside playlist play button
2026-07-14 14:06:48 +02:00
Admin
87cdba6343
style(frontend): polish playlist page header, back link and action buttons
2026-07-14 14:04:31 +02:00
Admin
7d2681aaf6
feat(frontend): show track duration in a Spotify-style table on playlist page
2026-07-14 14:00:23 +02:00
Admin
2e866075a2
feat(backend): expose track duration and listen count in track response
2026-07-14 13:54:12 +02:00
Admin
afac7d5dd5
refactor(backend): rename AudioTranscoderConfiguration/Service to AudioConfiguration/AudioService
2026-07-14 13:54:08 +02:00
Admin
f6ac22af32
refactor(backend): return AudioTranscodeResult with status code and duration
2026-07-14 13:49:28 +02:00
Admin
8a637d71f0
feat(backend): add migration for Track.Duration column
2026-07-14 13:48:05 +02:00
Admin
209c02ded7
feat(backend): extract audio duration during transcoding and persist to track
2026-07-14 13:47:52 +02:00
Admin
c9e083b1c3
chore(frontend): allow dev server to fall back to a free port
2026-07-14 13:26:11 +02:00
Admin
46a6a9757a
feat(frontend): show recently played from listening history on home
2026-07-14 13:26:08 +02:00
Admin
78caf588be
fix(backend): order listening history by recency and cap to 15 tracks
2026-07-14 13:26:04 +02:00
Admin
937ad139e5
fix(frontend): apply display font to page titles missing it
2026-07-14 13:23:56 +02:00
Admin
f10b0b800b
refactor(frontend): drop downloads/import nav, promote library above upload
2026-07-14 13:23:51 +02:00
Admin
5bb6a4a1bf
feat(frontend): drive seek bar with rAF for smooth playback progress
2026-07-14 13:23:44 +02:00
Admin
e9e0b9ae9b
docs: add project README and frontend pages notes
2026-07-14 04:55:44 +02:00
Admin
a826c39003
refactor(frontend): tidy Navbar, Footer and document shell
...
Align Navbar and Footer with the new design tokens and enable stable scrollbar gutter on the document.
2026-07-14 04:55:44 +02:00
Admin
4f9ae51971
chore(frontend): add font/icon deps and dev config
...
Add @fontsource-variable (manrope/sora/inter), @lucide/svelte and @types/node, mark @lucide/svelte as noExternal for SSR, and add the dev-server launch config.
2026-07-14 04:55:39 +02:00
Admin
2eaca66ec2
feat(frontend): rework home page with recent, latest and playlists
...
Add SSR data loading for the home page and rebuild its layout (greeting hero, recently played, new releases, user playlists).
2026-07-14 04:55:12 +02:00
Admin
f155ccc912
feat(frontend): add (app) route group and rework auth routing
...
Move authenticated pages under an (app) group with a Sidebar shell, add /auth/login and page-based /login, drop the old explore page and login +server endpoint, and add the server upload helper.
2026-07-14 04:55:04 +02:00
Admin
6cc41d1d6f
feat(frontend): rework audio player and shared UI components
...
Expand the player store, split player controls (transport, seek, volume, track info), add Cover/PlaylistArt/NowPlaying UI primitives and a cover image proxy route.
2026-07-14 04:54:51 +02:00
Admin
8c87d84f80
feat(frontend): add theme tokens and dynamic accent palette
...
Introduce theme.css design tokens, color/palette helpers, and global layout styles (scrollbars, animations, home gradient).
2026-07-14 04:54:45 +02:00
Admin
0b72363c33
feat(tracks): add track cover endpoint
...
Serve cover images via GET /tracks/{id}/cover with a size parameter, streamed from storage with long-lived immutable cache headers.
2026-07-14 04:54:40 +02:00
Admin
a40f3da247
feat(tracks): add user listening history
...
Record a listening-history entry when a stream ticket is issued and expose GET /users/{id}/listening-history to read it back.
2026-07-14 04:54:35 +02:00
Admin
18d3aea853
feat(frontend): play tracks from the explore page
2026-07-06 02:40:44 +02:00
Admin
9b34f2db84
feat(frontend): music player component with separated controls and stream proxy
2026-07-06 02:40:44 +02:00
Admin
812913156b
refactor(application): drop redundant default values on query records
2026-07-06 02:23:35 +02:00
Admin
927f965023
fix(playlists): reject empty/whitespace name and description on update
2026-07-06 02:20:47 +02:00
Admin
7623b4e80e
refactor(search): treat empty search strings as no filter (string.IsNullOrEmpty)
2026-07-06 02:12:58 +02:00
Admin
fef788462d
feat(frontend): add /explore page with track listing and name search
2026-07-06 02:05:47 +02:00
Admin
b9cd3533dc
chore(frontend): regenerate api types with track name search
2026-07-06 02:04:04 +02:00
Admin
ac1c515dec
feat(tracks): support search by name in GetTracks
2026-07-06 02:04:01 +02:00
Admin
5d2c9d3986
chore(frontend): generate backend API types from live OpenAPI spec
2026-07-06 01:54:28 +02:00
Admin
93fe2fb942
feat(frontend): add typed backend API client (openapi-fetch) with codegen script
2026-07-06 01:52:25 +02:00
Admin
f58f6a0aa5
refactor(frontend): require refresh/id token in Session, validate at callback boundary
2026-07-05 23:57:19 +02:00
Admin
ac5fc49800
refactor(frontend): restrict insecure HTTP issuer to dev / explicit opt-in
2026-07-05 23:56:35 +02:00
Admin
6a49b17e38
refactor(frontend): make SessionUser fields non-null and normalize claims at boundary
2026-07-05 23:45:18 +02:00
Admin
ea36816777
refactor(frontend): centralize configurable auth/session values in config.ts
2026-07-05 23:43:50 +02:00