Claude
25e7a28b6a
Merge shuffle, repeat list and loop one into one playback mode button
2026-10-01 21:03:48 +00:00
Claude
f9cb7edeb2
Replace transport emoji with centred SVG icons and distinguish loop-one from repeat-list
2026-10-01 21:02:23 +00:00
Claude
9f313f61af
Move secondary player controls into a More controls sheet
2026-10-01 20:58:15 +00:00
Claude
88f878b8eb
Move rarely used video actions into a More actions sheet
2026-10-01 20:55:04 +00:00
Claude
9eb5e98048
Add Gallery action beside Save and an icon-only refresh beside Play all
2026-10-01 20:39:17 +00:00
Claude
02b337fcbc
Add save-to-device export, server export route and an On other devices P2P list
2026-10-01 18:53:00 +00:00
Claude
9d74769029
Add deck tabs, uniform action buttons, lyric reports in the player panel and a song list in the lyrics studio
2026-09-30 15:57:11 +00:00
Claude
e64880c163
Redesign playlist header, player deck, now-playing actions and lyrics panel layout
2026-09-30 15:29:44 +00:00
Claude
04a74ab45d
Redesign service-mode controls and add per-profile wrong-lyric-line reports
2026-09-30 15:15:07 +00:00
Claude
c8837befed
Download a verified file from another device over WebRTC
2026-09-30 07:54:34 +00:00
Claude
61d0274896
Show peer availability with stale markers and add Sharing settings
2026-09-30 07:45:13 +00:00
Claude
c629ff5836
Register devices and report verified holdings to the server
2026-09-30 07:38:47 +00:00
Claude
6af96622dd
Add the on-device IndexedDB file registry and hash saves while downloading
2026-09-30 07:31:18 +00:00
Claude
b56be586ee
Add an incremental SHA-256 library for the browser and node tests
2026-09-30 07:27:31 +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
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
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
2a4526578f
Show lyrics in place of the video for watch parties and sing-alongs
2026-09-21 21:03:46 +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
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
Jonathan Sykes
14e1d8e3dd
Add service mode set-list view with screen wake lock
2026-08-16 13:51:27 +00:00
Jonathan Sykes
57413a07a1
Hide the list pane on the home view until the first search
2026-08-16 12:58:05 +00:00
Jonathan Sykes
fa9ef000b9
Show playlists instead of the branding hero on the empty home
2026-08-15 07:19:46 +00:00
Jonathan Sykes
b2154bd9c4
Add shareable profile link to settings and sidebar
2026-08-15 06:58:43 +00:00
Claude Worker
8c0776f97d
feat: Add support for editing video
...
Add an Edit
2026-07-18 16:43:15 +00:00
Jonathan Sykes
6fff68884b
add per-song remember-position flag and playlist play-in-full mode
2026-07-14 15:15:11 +08:00
Jonathan Sykes
e6f032a6f2
feat: add shuffle toggle for upcoming tracks with S shortcut
2026-07-02 21:01:28 +08:00
Claude Worker
8018060d26
feat: update ready keeps showing even after updating
...
Task #61 completed by ClaudeQueue
ClaudeQueue
2026-07-01 17:40:50 +00:00
Claude Worker
d9371fdea4
feat: fix portrait mode design in pwa — YouTube-style bottom bar
...
Task #46 completed by ClaudeQueue
ClaudeQueue
2026-06-30 17:02:25 +00:00
Claude Worker
02153d877d
feat: add portrait orientation design for mobile that only triggers in portrait pwa mode
...
Task #42 completed by ClaudeQueue
ClaudeQueue
2026-06-30 06:51:31 +00:00
ClaudeQueue
05e78677b0
feat: side bar playlist and other items not present on some screensizes. make completely responsive
...
Task #40 completed by ClaudeQueue
ClaudeQueue
2026-06-30 01:06:54 +00:00
Jonathan Sykes
84d6487125
feat: wire up WEB-mode OPFS offline cache for PWA
...
The PWA conversion shipped sw.js, opfs.js, manifest and icons, but app.js
was never updated to use them — it still routed cache_* calls through the
native bridge (call('cache.list', ...)), which throws 'No native bridge
available' in a browser. That surfaced as 'Offline cache unavailable /
not available in this build' on the Saved videos and Settings pages.
- Add WEB mode detection (no Tauri/zero bridge present)
- Route cache_* through OPFS (opfsDownload/Status/List/Delete/Clear)
- Proxy downloads via /api/download so the browser never hits YouTube CDN
- Load fingerprint.js + opfs.js; add manifest link and PWA meta tags
- Relax CSP to allow blob: media/img and worker-src 'self' for the SW
2026-06-30 08:37:45 +08:00
Jonathan Sykes
20cd2f29ba
feat: sleep timer, A-B loop, related panel, smart playlists, history delete/search, batch ops, auto-backup
2026-06-21 18:43:26 +08:00
Jonathan Sykes
3ad2e40606
Refresh Windows release artifacts and sync build outputs
2026-06-21 16:15:30 +08:00
Jonathan Sykes
f497eecebd
Merge branch 'main' of ssh://git2.hesed.sbs:6612/josh/ytplayer
...
# Conflicts:
# frontend/app.js
2026-06-21 15:43:45 +08:00
Jonathan Sykes
38511fa450
feat: queue, channel view, downloads/saved pages, repeat/loop, accessibility, perf, multithreading
2026-06-21 15:39:58 +08:00
Claude Worker
95dc9e3f98
feat: Prevent UI hanging during video save or playlist add
...
Task #1 completed by ClaudeQueue
ClaudeQueue
2026-06-18 18:43:48 +00:00
Jonathan Sykes
c1855a1a91
Add persistent mini now-playing bar
...
Fixed bar at bottom of window when video is playing. Shows title,
channel, progress, play/pause toggle. Click to restore player view.
Files:
- frontend/index.html: mini-bar markup
- frontend/app.js: showMiniBar/hideMiniBar/updateMiniBar, wiring
- frontend/styles.css: .mini-bar, .mini-bar-inner, .mini-progress styles
2026-06-14 15:18:57 +08:00
Jonathan Sykes
4376cd9e88
Add up-next queue panel
...
Shows upcoming videos in the autoplay queue below now-playing meta.
Clickable to jump to any video. Hidden when queue has 1 item or empty.
Updates on playFromList, playNext, playPrev. Hidden in empty player state.
Files:
- frontend/index.html: upnext section in player pane
- frontend/app.js: renderUpNext(), wired into playFromList/playNext/playPrev
- frontend/styles.css: .upnext, .upnext-item, .upnext-list styles
2026-06-14 14:44:52 +08:00
Jonathan Sykes
a4d6b825d5
Replace single toast with stacked toast queue
...
Multiple toasts can appear simultaneously, capped at 3. Oldest
toast auto-evicts when cap is reached. Each toast auto-dismisses
with a fade-up exit animation.
- frontend/app.js: toast() now creates DOM elements in toastContainer
- frontend/index.html: single #toast replaced with #toastContainer
- frontend/styles.css: .toast-container flexbox row, .toast-exit animation
2026-06-14 14:36:07 +08:00
Jonathan Sykes
c676786144
Add keyboard-shortcut help overlay
...
Press '?' to open a styled overlay showing all keyboard shortcuts,
Esc to close. Lists Space (play/pause), arrow keys (seek/volume),
F (fullscreen), M (mute), ? (help), Esc (close).
Files:
- frontend/app.js: toggleShortcutHelp(), wireShortcutHelp(), '?' and Esc handlers
- frontend/index.html: shortcut-overlay markup with .shortcut-grid
- frontend/styles.css: .shortcut-overlay, .shortcut-panel, .shortcut-row, kbd styles
2026-06-14 14:19:42 +08:00