DiheChen
|
fa928102d1
|
feat: take the client address from trusted proxies
|
2026-11-08 21:43:35 +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 |
|
DiheChen
|
fbe8c516f7
|
fix: unify volume input handling
|
2026-11-01 01:43:07 +08:00 |
|
AZMIAO
|
6b1256cfb2
|
feat: optimize volume input control
|
2026-10-30 17:36:36 +08:00 |
|
DiheChen
|
8794686c3a
|
ci: add validation workflows and project tooling
|
2026-10-30 01:34:50 +08:00 |
|
DiheChen
|
c41b1d350a
|
build: add container and deployment configuration
|
2026-10-30 01:34:19 +08:00 |
|
DiheChen
|
50039353ad
|
test: add automated tests and fixtures
|
2026-10-30 01:33:34 +08:00 |
|
DiheChen
|
c4008505e6
|
feat: add web application sources
|
2026-10-30 01:32:51 +08:00 |
|