Commit Graph

165 Commits

Author SHA1 Message Date
Claude
b19193841c plan: start 009-server-content-hash-186e7f 2026-09-30 07:11:55 +00:00
Claude
167df35a97 Add P2P tables, config flags and db helpers 2026-09-30 07:11:55 +00:00
Claude
2d98b25340 plan: start 008-p2p-schema-and-config-127966 2026-09-30 07:04:53 +00:00
Claude
9cac21afce Keep one long-lived yt-dlp worker process instead of spawning per call 2026-09-30 07:04:53 +00:00
Claude
b8658f3a9d plan: start 007-ytdlp-worker-045800 2026-09-30 06:58:05 +00:00
Claude
556436da34 Answer searches from YouTube InnerTube directly with yt-dlp fallback 2026-09-30 06:58:05 +00:00
Claude
d61809f5c4 plan: start 006-innertube-search-48066b 2026-09-30 06:53:48 +00:00
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