DiheChen
|
dd18ea7e2c
|
feat: pair a new device from settings with a code or QR code
|
2026-11-10 12:59:53 +08:00 |
|
DiheChen
|
63279125a5
|
feat: offer GitHub login over HTTP when an OAuth app is configured
|
2026-11-10 12:55:58 +08:00 |
|
DiheChen
|
88f8e2f957
|
feat: expose device pairing over HTTP
|
2026-11-10 12:50:18 +08:00 |
|
DiheChen
|
9e4b8fa0c9
|
feat: open shared playlist links to request, save and copy their songs
|
2026-11-10 12:39:53 +08:00 |
|
DiheChen
|
ed6d55ec29
|
feat: share my playlists from the playlist menu
|
2026-11-10 12:37:00 +08:00 |
|
DiheChen
|
6a5d8b4ebd
|
feat: expose playlist sharing over HTTP
|
2026-11-10 12:34:57 +08:00 |
|
DiheChen
|
6e71dc1b15
|
feat: show listening history from the server and sync the recording switch across devices
|
2026-11-10 12:28:52 +08:00 |
|
DiheChen
|
fe05ac5486
|
feat: read, remove and clear listening history and switch recording over HTTP
|
2026-11-10 12:24:22 +08:00 |
|
DiheChen
|
110ec4c486
|
feat: import playlists from files, links and search results
|
2026-11-10 10:33:17 +08:00 |
|
DiheChen
|
3186fca62c
|
feat: export playlists to files and import them in the web client
|
2026-11-10 10:15:11 +08:00 |
|
DiheChen
|
c09f42a2dd
|
feat: expose playlist imports over HTTP
|
2026-11-10 10:05:38 +08:00 |
|
DiheChen
|
1b292fa5e3
|
feat: select several playlist songs to remove, save or reorder them and drag songs into place
|
2026-11-09 21:33:06 +08:00 |
|
DiheChen
|
a72fc40519
|
feat: browse my playlists as a sortable list or a glowing cover grid and open each one
|
2026-11-09 21:32:21 +08:00 |
|
DiheChen
|
0f01b1dfe9
|
feat: save songs to my playlists from the player, queue and history
|
2026-11-09 21:31:18 +08:00 |
|
DiheChen
|
5198fa5126
|
feat: track member playlists in the web client
|
2026-11-09 21:30:19 +08:00 |
|
DiheChen
|
96a3da903c
|
feat: tell which of my playlists contain a song
|
2026-11-09 21:29:43 +08:00 |
|
DiheChen
|
2657dca9e1
|
feat: remove, copy and reorder several playlist songs at once
|
2026-11-09 21:28:12 +08:00 |
|
DiheChen
|
fafde9041c
|
feat: expose member playlists over HTTP
|
2026-11-09 21:27:41 +08:00 |
|
DiheChen
|
f0f38ff511
|
feat: bind room tickets to member sessions and disconnect revoked sessions
|
2026-11-09 21:24:32 +08:00 |
|
DiheChen
|
a80c48824f
|
feat: register and sign in from the settings page
|
2026-11-09 21:23:23 +08:00 |
|
DiheChen
|
a0956299be
|
feat: switch registration and reset account passwords in the admin page
|
2026-11-09 21:22:40 +08:00 |
|
DiheChen
|
246baf5a0e
|
feat: expose account registration, login and admin recovery over HTTP
|
2026-11-09 21:21:23 +08:00 |
|
DiheChen
|
773ec302a7
|
feat: take the client address from proxies in private networks
|
2026-11-09 21:16:26 +08:00 |
|
DiheChen
|
0345d948ac
|
feat: show the player bar volume as a read-only readout
|
2026-11-07 07:57:21 +08:00 |
|
DiheChen
|
51ff98eff1
|
feat: widen the player bar to the page panels and enlarge its buttons
|
2026-11-07 07:54:17 +08:00 |
|
DiheChen
|
48dcb1fd97
|
chore: slim the worker image and streamline the Docker builds
|
2026-11-06 00:47:47 +08:00 |
|
DiheChen
|
22ddb5f49c
|
feat: raise the chat panel from the bottom
|
2026-11-05 12:53:55 +08:00 |
|
DiheChen
|
7168a97afa
|
fix: slide the side panel tabs in their own direction
|
2026-11-05 12:46:00 +08:00 |
|
DiheChen
|
4737bb9ddf
|
feat: float the player bar above the page
|
2026-11-05 12:31:45 +08:00 |
|
DiheChen
|
baa69f74b0
|
feat: reveal secondary song actions on hover
|
2026-11-05 12:26:31 +08:00 |
|
DiheChen
|
a4805e957d
|
feat: mark the playing song in lists
|
2026-11-05 12:26:21 +08:00 |
|
DiheChen
|
f6c925d3bd
|
fix: keep notifications clear of the side panel
|
2026-11-05 12:24:45 +08:00 |
|
DiheChen
|
d391f7e419
|
feat: fade covers in once they load
|
2026-11-05 12:24:20 +08:00 |
|
DiheChen
|
1a7f3cf2fc
|
fix: keep lines beside the current lyric on stable layers
|
2026-11-05 11:45:17 +08:00 |
|
DiheChen
|
4032edc5bb
|
feat: ripple lyric lines when the current line changes
|
2026-11-05 11:00:04 +08:00 |
|
DiheChen
|
e3b7e4111b
|
feat: count down long instrumental breaks with breathing dots
|
2026-11-05 10:58:03 +08:00 |
|
DiheChen
|
659096ed60
|
feat: light lyrics slightly ahead of the audio
|
2026-11-05 10:55:28 +08:00 |
|
DiheChen
|
75c5dad4b9
|
feat: sweep lyrics with a soft edge and emphasize held words
|
2026-11-05 01:32:12 +08:00 |
|
DiheChen
|
37ee162c83
|
feat: light up lyrics word by word with translations
|
2026-11-05 01:03:39 +08:00 |
|
DiheChen
|
a38d6ca3e2
|
feat: send word-by-word and translated lyrics to clients
|
2026-11-05 01:03:38 +08:00 |
|
DiheChen
|
0c12c92d1f
|
fix: recover playback after media errors
|
2026-11-04 22:06:41 +08:00 |
|
DiheChen
|
8b13436ba7
|
test: cover player sync and lifecycle
|
2026-11-04 21:31:47 +08:00 |
|
DiheChen
|
6d6163a9de
|
test: cover search request races
|
2026-11-04 21:28:32 +08:00 |
|
DiheChen
|
be016479ac
|
test: cover browser history writes and modal markers
|
2026-11-04 21:26:34 +08:00 |
|
DiheChen
|
d5e302f83a
|
test: cover member identity renewal
|
2026-11-04 21:24:12 +08:00 |
|
DiheChen
|
fb8f06e1e4
|
test: cover realtime connection recovery
|
2026-11-04 21:22:28 +08:00 |
|
DiheChen
|
ec9d5e78f7
|
fix: load avatars from Gravatar mirrors when Gravatar is unreachable
|
2026-11-03 04:16:33 +08:00 |
|
DiheChen
|
017dd0effa
|
fix: time out stalled realtime handshakes
|
2026-11-02 21:31:59 +08:00 |
|
DiheChen
|
349a95cc7d
|
fix: reconnect stalled realtime connections with jittered backoff
|
2026-11-02 21:24:19 +08:00 |
|
azmiao
|
40319ff244
|
fix: align playback metadata with queue display
|
2026-11-02 14:47:23 +08:00 |
|