Claude
|
b24366d6c0
|
Warm the stream cache for likely next plays
|
2026-09-30 06:53:48 +00:00 |
|
Claude
|
67c2f6e46c
|
plan: start 005-warm-streams-on-intent-47b3d3
|
2026-09-30 06:50:31 +00:00 |
|
Claude
|
e2a60792b9
|
Coalesce concurrent resolveStreams calls for the same video
|
2026-09-30 06:50:31 +00:00 |
|
Claude
|
617df320c7
|
plan: start 004-coalesce-stream-resolves-a92d40
|
2026-09-30 06:47:04 +00:00 |
|
Claude
|
663a33573a
|
Self-host the three web fonts and drop the render-blocking Google Fonts CSS
|
2026-09-30 06:47:04 +00:00 |
|
Claude
|
1001b85f40
|
plan: start 003-self-host-fonts-89466b
|
2026-09-30 06:45:11 +00:00 |
|
Claude
|
794410916a
|
Serve the app shell gzip/brotli-compressed with ETags
|
2026-09-30 06:45:11 +00:00 |
|
Claude
|
7229ca16b9
|
plan: start 002-compress-and-etag-shell-bd459c
|
2026-09-30 06:41:54 +00:00 |
|
Claude
|
7781e0a116
|
Add startup, search and play timing marks plus yt-dlp duration logs
|
2026-09-30 06:41:50 +00:00 |
|
Claude
|
7b818baf8d
|
plan: start 001-perf-timing-marks-105acc
|
2026-09-30 06:39:48 +00:00 |
|
Claude
|
c17bd4c9ac
|
Queue executable speed and peer-to-peer sharing plans with tested patches and harnesses
|
2026-09-29 19:03:12 +00:00 |
|
Claude
|
a0ffc1b493
|
Refocus the improvement plan on speed and new features
|
2026-09-29 17:40:57 +00:00 |
|
Claude
|
92985d209a
|
Add a phased improvement plan for the app
|
2026-09-29 17:35:55 +00:00 |
|
Jonathan Sykes
|
56d0838391
|
support shareable search links via a ?q= URL parameter
|
2026-09-30 00:19:20 +08:00 |
|
Jonathan Sykes
|
74777ef87f
|
show a lightning icon on recent searches that will load instantly
|
2026-09-30 00:18:22 +08:00 |
|
Jonathan Sykes
|
6ff9f86bd8
|
cache /api/search results for 3 minutes to skip repeat yt-dlp spawns
|
2026-09-30 00:17:44 +08:00 |
|
Jonathan Sykes
|
4f0ee45980
|
cache recent search results locally so re-running one is instant
|
2026-09-30 00:16:35 +08:00 |
|
Jonathan Sykes
|
6480b314d5
|
remember recent searches on-device and show them under the search box
|
2026-09-29 22:08:16 +08:00 |
|
Jonathan Sykes
|
b6fdff2438
|
drop the boxed background on the saved-offline card badge
|
2026-09-28 20:30:13 +08:00 |
|
Jonathan Sykes
|
ba697e5d11
|
floor service-mode lyric font size and space out verses
|
2026-09-26 02:11:07 +08:00 |
|
Jonathan Sykes
|
05e85a0a3f
|
Give untimed lyrics one uniform line size in service mode
|
2026-09-24 08:34:09 +08:00 |
|
Jonathan Sykes
|
d64c5f2613
|
Lift the section rail clear of the floating mini player
|
2026-09-22 14:58:31 +08:00 |
|
Jonathan Sykes
|
f411e49e4c
|
Floor the party panel and rail above the bottom nav in CSS so a bad measurement cannot hide their controls
|
2026-09-22 14:44:30 +08:00 |
|
Jonathan Sykes
|
aa92fb1f05
|
Count a bottom bar that stops above the home indicator when placing the rail
|
2026-09-22 14:33:31 +08:00 |
|
Jonathan Sykes
|
c9e021a045
|
Keep the watch party panel above the bottom bars so its leave button is reachable
|
2026-09-22 14:23:39 +08:00 |
|
Jonathan Sykes
|
6c4571cb33
|
Measure the bottom bars so the section rail is never hidden behind the mini player
|
2026-09-22 14:09:03 +08:00 |
|
Jonathan Sykes
|
530d07d920
|
Add a mobile section rail that follows the scroll, jumps between cards and folds the one you are on
|
2026-09-22 13:47:26 +08:00 |
|
Jonathan Sykes
|
987697e759
|
Paint saved playlists before the launch sync and swap a background-downloaded update instantly
|
2026-09-22 13:27:12 +08:00 |
|
Jonathan Sykes
|
691e204d61
|
Pass an effort level to agy and default it to the one that actually finishes
|
2026-09-21 23:53:02 +08:00 |
|
Jonathan Sykes
|
2a4526578f
|
Show lyrics in place of the video for watch parties and sing-alongs
|
2026-09-21 21:03:46 +08:00 |
|
Jonathan Sykes
|
0aa6c95494
|
Time correct lyrics from a machine transcript by aligning the two word streams
|
2026-09-21 20:16:02 +08:00 |
|
Jonathan Sykes
|
e6d14b9eb4
|
Find lyrics with agy when LRCLIB has nothing, keeping the best of several non-deterministic answers
|
2026-09-21 11:44:43 +08:00 |
|
Jonathan Sykes
|
808306ffce
|
Keep the five transport buttons grouped on one line at every screen width
|
2026-09-21 10:33:06 +08:00 |
|
Jonathan Sykes
|
1ce3cb8949
|
Document the admin lyric editor, the lyrics skills and the LRCLIB matching guards
|
2026-09-20 18:07:08 +08:00 |
|
Jonathan Sykes
|
89d35562d3
|
Match LRCLIB on the song title when the channel is not the artist, and stop generic words like Christian or worship from vouching for an artist
|
2026-09-20 18:06:04 +08:00 |
|
Jonathan Sykes
|
2987f46037
|
Add a scrubbable timed lyric editor to the admin page, LRCLIB regeneration tooling with lyrics skills, and keep the five playback buttons on one row on phones
|
2026-09-20 17:55:49 +08:00 |
|
Jonathan Sykes
|
b983c6ca3c
|
Fetch lyrics from LRCLIB (synced when available) and serve an admin media library of uploaded video and audio with cover art and embedded lyrics
|
2026-09-20 05:59:50 +08:00 |
|
Jonathan Sykes
|
9c1ec4ac51
|
Add presenter view, stats, lyrics worker, watch party with voice chat, timestamp sharing, soundbites, notes, transcript search, PiP, EQ, sleep fade, gestures and external players; fix the crossfade end-of-song race
|
2026-09-20 00:07:12 +08:00 |
|
Jonathan Sykes
|
ca07e1fdf1
|
Add gapless and crossfade playlist transitions with a mode toggle, and a waveform seek bar for audio-only playback
|
2026-09-19 16:12:33 +08:00 |
|
Jonathan Sykes
|
71fc51fb50
|
Add a lyrics-only service mode view with the sung line centred and auto-sized, and a free local faster-whisper script to transcribe saved songs
|
2026-09-19 08:33:00 +08:00 |
|
Jonathan Sykes
|
b82f17cd46
|
Add phone remote control: pair a phone with a 6-digit code or QR to drive a desktop instance's playback, queue, volume, sleep timer and service mode
|
2026-09-18 20:19:00 +08:00 |
|
Jonathan Sykes
|
524db986d2
|
Add shared synced lyrics, chapters and personal bookmarks with revision history, API tokens and an admin page
|
2026-09-18 18:10:10 +08:00 |
|
Jonathan Sykes
|
a20dd0a3a6
|
Replace saved copies that fail to play, reject truncated saves, and re-check the device cache when the app returns to the foreground
|
2026-09-18 10:11:20 +08:00 |
|
Jonathan Sykes
|
64f45a102d
|
Check the playlist inbox when the app returns to the foreground and every two minutes while open
Sent playlists were only picked up on a cold start, so an installed PWA
resumed from the background never showed them.
|
2026-09-18 09:28:01 +08:00 |
|
Jonathan Sykes
|
e4ac04cb5c
|
Sample two short windows before re-encoding a cached video and skip the full encode when HEVC will not save 15 percent
|
2026-09-14 00:51:14 +08:00 |
|
Jonathan Sykes
|
8b0060d42a
|
Re-encode cached videos to HEVC when it saves at least 15 percent and serve them only to devices that can decode HEVC
|
2026-09-13 21:09:15 +08:00 |
|
Jonathan Sykes
|
91dab289c3
|
Show the update banner only when the running build differs from the server and make Refresh UI land the new shell on flaky links
|
2026-09-13 17:42:50 +08:00 |
|
Jonathan Sykes
|
5fb863ba25
|
Cache every played or saved video on the server via background jobs with a validation gate and a Broken re-download button
|
2026-09-13 09:45:01 +08:00 |
|
Jonathan Sykes
|
292a0c7e29
|
Show the video inline in service mode and keep audio alive in the background
|
2026-09-08 17:36:55 +08:00 |
|
Jonathan Sykes
|
a3089dde74
|
Add a service mode shortcut to the now-playing bar and a video panel toggle
|
2026-09-08 16:59:43 +08:00 |
|