DiheChen
|
c1d5bb2de0
|
feat: offer GitHub login over HTTP when an OAuth app is configured
|
2026-11-11 00:15:38 +08:00 |
|
DiheChen
|
1157843f50
|
feat: expose device pairing over HTTP
|
2026-11-11 00:15:01 +08:00 |
|
DiheChen
|
7863c02170
|
feat: open shared playlist links to request, save and copy their songs
|
2026-11-11 00:10:12 +08:00 |
|
DiheChen
|
1f99bd939b
|
feat: share my playlists from the playlist menu
|
2026-11-11 00:09:38 +08:00 |
|
DiheChen
|
8b941764b1
|
feat: expose playlist sharing over HTTP
|
2026-11-11 00:08:57 +08:00 |
|
DiheChen
|
910e7339ad
|
feat: show listening history from the server and sync the recording switch across devices
|
2026-11-11 00:06:40 +08:00 |
|
DiheChen
|
17e486209e
|
feat: read, remove and clear listening history and switch recording over HTTP
|
2026-11-11 00:06:11 +08:00 |
|
DiheChen
|
038cbb206b
|
feat: import playlists from files, links and search results
|
2026-11-11 00:03:16 +08:00 |
|
DiheChen
|
df8e0c5b8b
|
feat: export playlists to files and import them in the web client
|
2026-11-11 00:02:22 +08:00 |
|
DiheChen
|
649916ab9d
|
feat: expose playlist imports over HTTP
|
2026-11-11 00:01:47 +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 |
|
azmiao
|
d88e93cf91
|
style: add unified custom select dropdown
|
2026-11-02 11:04:20 +08:00 |
|