Admin
8e85af2b3b
Render unknown URLs inside the app shell and move ListeningStats to the domain types
...
CI/CD / BackEnd (push) Successful in 1m19s
CI/CD / WebPlayer (push) Successful in 46s
CI/CD / Deploy (push) Skipped
Add catch-all routes so unknown pages 404 inside the (app) layout and unknown
/api URLs return a JSON 404 instead of redirecting to the login page. Restore
the full root error page.
2026-09-24 14:29:45 +02:00
Admin
2d23eb87c6
Update frontend docs for the new structure and fix session test typing
2026-09-24 14:06:46 +02:00
Admin
e5ce63a192
Add tests for API endpoints, liked store, listen tracker and paged list
2026-09-24 14:04:43 +02:00
Admin
b5c9658d65
Add tests for sessions, guards, API error details and the app layout load
2026-09-24 14:03:35 +02:00
Admin
ba0a2373b5
Normalize API counters in the server mappers instead of route loaders
2026-09-24 14:02:23 +02:00
Admin
b0163f6a4d
Split the explore page into genre grid, top result and search results components
2026-09-24 14:01:33 +02:00
Admin
0a192645d6
Drive the theme accent from the app layout instead of the player
2026-09-24 13:59:54 +02:00
Admin
351b333529
Split the server API module into client, guards, form fields and action helpers
2026-09-24 13:59:21 +02:00
Admin
155f0e2b6a
Move liked tracks state to state/ and recently played merge to player/
2026-09-24 13:58:43 +02:00
Admin
a54d1ef077
Move store-connected components out of ui/ into components/music and lint the ui boundary
2026-09-24 13:58:13 +02:00
Admin
2361b88e0a
Rename the app shell components folder and move AccountMenu next to its consumers
2026-09-24 13:57:35 +02:00
Admin
e7c2fd5571
Move the app shell and its data loading into the (app) route group layout
2026-09-24 13:57:02 +02:00
Admin
3126cb6dd6
web-player: regenerate package-lock with npm 10 so npm ci works on Node 22
CI/CD / BackEnd (push) Successful in 1m19s
CI/CD / WebPlayer (push) Successful in 45s
CI/CD / Deploy (push) Skipped
2026-09-24 13:16:43 +02:00
Admin
03afcc8a90
web-player: sync package-lock with missing emnapi optional dependencies
CI/CD / BackEnd (push) Successful in 1m24s
CI/CD / WebPlayer (push) Failing after 8s
CI/CD / Deploy (push) Skipped
2026-09-24 13:02:38 +02:00
Admin
f210fa4702
web-player: add albums to playlists through the bulk endpoint
CI/CD / BackEnd (push) Successful in 1m29s
CI/CD / WebPlayer (push) Failing after 7s
CI/CD / Deploy (push) Skipped
2026-09-24 12:05:34 +02:00
Admin
bd07b1134e
web-player: fix icon size guardrail and add larger icon tokens
2026-09-24 11:56:09 +02:00
Admin
c041daf649
web-player: add lint guardrails for imports, non-null assertions, unused props and icon sizes; refresh docs
2026-09-24 11:54:38 +02:00
Admin
975fa7e4fd
web-player: consistent imports, tokens, glossary and app route grouping
2026-09-24 11:52:57 +02:00
Admin
1a2ae37f49
web-player: show only real upload steps
2026-09-24 11:51:47 +02:00
Admin
1cad36b929
web-player: extract menu, paged list and play-all components from pages
2026-09-24 11:51:14 +02:00
Admin
8cb9386447
web-player: unify primitive link/button rendering, add onEscape action and self-contained AccountMenu
2026-09-24 05:27:25 +02:00
Admin
5cda7cb4c1
web-player: split player, navigation and accent state into focused modules
2026-09-24 05:25:35 +02:00
Admin
e89463fb83
web-player: use playlist totals from the API, cache genres and parallelize explore requests
2026-09-24 05:21:29 +02:00
Admin
1df7f6ccf6
web-player: share form limits between client and server and extract form parsers
2026-09-24 05:19:41 +02:00
Admin
2915737f03
web-player: centralize server helpers (apiFor, authedAction, form readers) and unify page sizes
2026-09-24 05:13:51 +02:00
Admin
5b2a0e4d46
web-player: normalize tracks, albums and playlists into single domain types at the server boundary
2026-09-24 05:09:37 +02:00
Admin
37fc229bf6
web-player: remove dead code and unused props
2026-09-24 05:04:09 +02:00
Admin
bc43b4b6eb
web-player: fix playlist ownership, sidebar counts, home spotlight and assorted page bugs
2026-09-24 05:02:26 +02:00
Admin
906f38140a
web-player: dedupe queue, stop at end of queue, open queue once and harden localStorage
2026-09-24 04:59:28 +02:00
Admin
3e546d4a1e
web-player: fix open redirect via returnTo, require SESSION_SECRET and validate API inputs
2026-09-24 04:58:08 +02:00
Admin
b2f450dcf7
web-player: add Vitest, unit tests and pure queue operations
2026-09-24 04:54:09 +02:00
Admin
302dd1e0f8
Merge master into web-player-general-changes
CI/CD / BackEnd (push) Canceled after 0s
CI/CD / WebPlayer (push) Canceled after 0s
CI/CD / BackEnd (pull_request) Successful in 1m23s
CI/CD / WebPlayer (pull_request) Successful in 40s
CI/CD / Deploy (pull_request) Skipped
CI/CD / Deploy (push) Canceled after 0s
2026-09-24 00:32:03 +02:00
Admin
cfdc61a4b8
Scroll content inside the shell so the player shares the ambient backdrop
...
CI/CD / BackEnd (push) Successful in 1m17s
CI/CD / WebPlayer (push) Successful in 40s
CI/CD / Deploy (push) Skipped
The player dock used to sit fixed over the scrolling page, so it needed an
opaque background. The shell is now a fixed-height frame where only the
content column scrolls, letting the dock stay transparent like the sidebar
and queue. Scroll reset/restore on navigation moves to restoreScroll(), and
the stable scrollbar gutter moves from <html> to the content scroller.
2026-09-23 23:52:27 +02:00
Admin
0f28e19c1d
Remove follow button from user rows
CI/CD / BackEnd (push) Successful in 1m24s
CI/CD / WebPlayer (push) Successful in 40s
CI/CD / Deploy (push) Skipped
2026-09-23 23:20:27 +02:00
Admin
7316e355ee
Add a second greeting variant per time slot
2026-09-23 23:20:27 +02:00
Admin
b39e55fd87
Restore master hero and spotlight gradients and sway them in place
2026-09-23 23:15:15 +02:00
Admin
cb046bba9e
Let users browse followers and following lists
...
Following lists are public; followers are visible to the user and to mutual followers.
Adds GET /users/{id}/followers and /following, exposes isFollowing and canViewFollowers
on the profile, and returns isFollowedByViewer from user search so the web player no
longer calls /is-following per user.
2026-09-23 22:55:14 +02:00
Admin
b9a40186b1
Lighten active surface gradients in light mode
CI/CD / BackEnd (push) Successful in 1m15s
CI/CD / WebPlayer (push) Successful in 40s
CI/CD / Deploy (push) Skipped
2026-09-23 22:44:42 +02:00
Admin
fd0a39b879
IsExplicit
2026-09-23 22:42:28 +02:00
Admin
cc7afe4326
Add explicit flag to tracks and mark it on upload
2026-09-23 22:41:57 +02:00
Admin
72cbc18a48
Add follow button next to each user in search results
...
Extract FollowButton and shared follow/unfollow actions, reused by the user profile page.
2026-09-23 22:34:56 +02:00
Admin
84408b842b
Semibold
2026-09-23 22:25:04 +02:00
Admin
339fcb56ad
Semibold
2026-09-23 22:24:57 +02:00
Admin
74cf534be5
Animate queue drag and drop reordering
2026-09-23 22:18:21 +02:00
Admin
89820c1377
Fix gradient background syntax in Artwork component
2026-09-23 22:10:46 +02:00
Admin
2fe26b15dd
Allow reordering upcoming tracks in the queue by drag and drop
2026-09-23 22:10:21 +02:00
Admin
2cb560fda4
Keep light mode gradients visible while drifting
2026-09-23 22:07:50 +02:00
Admin
d8530b9209
Animate menu close with shared pop transition
2026-09-23 22:01:51 +02:00
Admin
5049b0ba91
Update global icon stroke width to 1.5 in layout.css
2026-09-23 21:59:24 +02:00
Admin
1b98a75c0e
Added shadow
2026-09-23 21:59:13 +02:00