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
7f51145915
Update docs for the refactored backend and add backend conventions guide
2026-09-24 13:01:32 +02:00
Admin
28a7c4a98c
Enable more analyzers, drop log-and-rethrow in file activities and apply dotnet format
...
Use invariant culture when formatting ids, put cancellation tokens last in endpoint handlers, remove the
CS8618 pragmas and keep only the analyzer overrides that still apply.
2026-09-24 12:57:53 +02:00
Admin
2d0867e68a
Add tests for MassTransit activities, routing slips, sagas, fault handling and playlist visibility
...
Infrastructure exposes its internals to the test project so the activities and slip builders can be
exercised directly, and the fault consumer and state machines run on the MassTransit test harness.
2026-09-24 12:53:33 +02:00
Admin
bc6ca3651f
Share the entity model between Database and the test database via ModelConfiguration
2026-09-24 12:41:05 +02:00
Admin
c4cf5af7f1
Make the Worker validate its service container and align Worker and Gateway hosts
...
The Worker now registers the Application layer, observability and stream tickets, validates the
container on build and ships a complete appsettings. The Gateway drops underscore fields and uses a
placeholder bucket in its default YARP transform.
2026-09-24 12:40:18 +02:00
Admin
fcf3093ad8
Unify API route parameters, return IResult everywhere, merge picture upload DTOs and centralize validation limits
...
Guid and long route constraints, id/trackId parameter names, Update*Request without the New prefix,
sentence-case operation summaries, shared security scheme id and a single Limits class.
2026-09-24 12:36:48 +02:00
Admin
405df082cc
Deduplicate MassTransit routing slips, activities and consumers
2026-09-24 12:25:55 +02:00
Admin
0cba32f776
Simplify infrastructure services and move all recurring jobs to Hangfire
2026-09-24 12:18:57 +02:00
Admin
0fa033faff
Separate responsibilities: start-listening command, API-side JSON converters, bulk track endpoints, mix kinds
2026-09-24 12:14:53 +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
75d0c0817e
Deduplicate picture flows: shared upload issuer, cover query and picture source change
2026-09-24 12:04:54 +02:00
Admin
4b708aa987
backend: add endpoint to add a whole album to a playlist
2026-09-24 12:04:28 +02:00
Admin
4b147d9ee3
Add shared pagination, projections and ownership helpers; simplify query and command handlers
2026-09-24 11:59: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
5a0f82b77b
Clean up domain entities: shared picture value object, lifecycle and ownership interfaces, explicit tables
2026-09-24 11:43:50 +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
4d943e068e
Unify picture configuration and options registration
2026-09-24 05:23:40 +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
b011ccdd5b
backend: expose track count and duration on playlist responses
2026-09-24 05:20:20 +02:00
Admin
5e819d7676
Remove dead code: unused storage/transcoder members, Upload table, retry columns, redundant packages
2026-09-24 05:19:59 +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
0e3576922f
Fix query and API bugs: 403 for non-owners, page bounds, lifecycle filters, cover fallback, race-safe inserts, async album delete
2026-09-24 05:14:05 +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
ab388e6ad6
Fix processing pipeline: report album failures, fault handling on create slips, config key names, audio duration
2026-09-24 05:02:04 +02:00
Admin
c8e9c7790e
Close data leaks: remove anonymous user creation, hide private playlists, validate uploads and clamp gateway ranges
2026-09-24 05:00:21 +02:00
Admin
dda8c30d45
backend: expose owner user id on playlist responses
2026-09-24 04:59:50 +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
c8fe28b07b
Add editorconfig and analyzers, format backend code
2026-09-24 04:54:17 +02:00
Admin
b2f450dcf7
web-player: add Vitest, unit tests and pure queue operations
2026-09-24 04:54:09 +02:00
NotS1mp
87c3f97529
Merge pull request 'Web player general changes' ( #22 ) from web-player-general-changes into master
...
CI/CD / BackEnd (push) Successful in 1m17s
CI/CD / WebPlayer (push) Successful in 40s
CI/CD / Deploy (push) Successful in 2m4s
Reviewed-on: #22
2026-09-23 22:37:30 +00: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
NotS1mp
421fc929e8
Merge pull request 'Dynamic genres' ( #20 ) from dynamic-genres into master
...
CI/CD / BackEnd (push) Successful in 1m23s
CI/CD / WebPlayer (push) Successful in 39s
CI/CD / Deploy (push) Successful in 1m38s
Reviewed-on: #20
2026-09-23 22:24:22 +00:00
NotS1mp
c4ab5dc388
Merge branch 'master' into dynamic-genres
CI/CD / BackEnd (push) Canceled after 0s
CI/CD / WebPlayer (push) Canceled after 0s
CI/CD / Deploy (push) Canceled after 0s
CI/CD / BackEnd (pull_request) Successful in 1m20s
CI/CD / WebPlayer (pull_request) Successful in 40s
CI/CD / Deploy (pull_request) Skipped
2026-09-23 22:15:22 +00:00
NotS1mp
920dcc6779
Merge pull request 'Listening time accuracy' ( #19 ) from listening-time-accuracy into master
...
CI/CD / BackEnd (push) Successful in 1m18s
CI/CD / WebPlayer (push) Successful in 39s
CI/CD / Deploy (push) Successful in 1m40s
Reviewed-on: #19
2026-09-23 22:15:10 +00:00
Admin
430c711ff2
Refactor CI/CD workflow to improve database migration process and key generation
CI/CD / BackEnd (push) Successful in 1m18s
CI/CD / WebPlayer (push) Successful in 40s
CI/CD / Deploy (push) Skipped
CI/CD / BackEnd (pull_request) Successful in 1m27s
CI/CD / WebPlayer (pull_request) Successful in 39s
CI/CD / Deploy (pull_request) Skipped
2026-09-23 23:59:45 +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