Jonathan Sykes
|
92432e4d83
|
Merge main (streamed search pages) into integrate/all
|
2026-10-15 22:50:45 +08:00 |
|
Jonathan Sykes
|
a48ea300cd
|
Search streams the rest: after the first page the app asks for each further page as the server pages YouTube and appends it
|
2026-10-15 22:50:31 +08:00 |
|
Jonathan Sykes
|
c60f1c327e
|
Merge main (search rendering fixes) into integrate/all
|
2026-10-15 22:35:29 +08:00 |
|
Jonathan Sykes
|
17115dc8e7
|
Search: clear the previous result line while a new search loads, draw long lists in chunks, append the full list instead of redrawing, warm fewer thumbnails
|
2026-10-15 22:35:16 +08:00 |
|
Jonathan Sykes
|
46fc756b68
|
Merge main (playlist file export/import + server download) into integrate/all
|
2026-10-15 22:19:24 +08:00 |
|
Jonathan Sykes
|
cda8b068c7
|
Playlist files: export with metadata and YouTube links (all or one playlist), import v1/v2 with duplicate handling, and ask the server to download the imported videos
|
2026-10-15 22:19:04 +08:00 |
|
Jonathan Sykes
|
b588dca461
|
Merge the watch party refresh from Codex (tabs, gentle sync, heartbeat) with presenting, invites, Prepared queue and reader view; host reload waits for the restore seek before broadcasting
|
2026-10-15 20:28:48 +08:00 |
|
Jonathan Sykes
|
088937d4de
|
Watch party refresh: Chat/Queue/Room tabs, host transport, gentle sync, heartbeat and latency-aware reconnect, in-place section updates
|
2026-10-15 20:19:44 +08:00 |
|
Jonathan Sykes
|
4e940e7321
|
Merge the Rust (Axum) backend port from codex/rust
|
2026-10-15 20:19:37 +08:00 |
|
Jonathan Sykes
|
450dc80488
|
Search: server-known videos first with YouTube results appended as they arrive; On server badge on cards the server holds a copy of
|
2026-10-15 19:46:16 +08:00 |
|
Jonathan Sykes
|
1383e89a25
|
Watch party: Prepared presentations queue for the host (add, name, reorder, remove, present when it is time)
|
2026-10-15 19:31:53 +08:00 |
|
Jonathan Sykes
|
1352ed9f29
|
Watch party reader view: presented websites become clean text with per-device font size, landscape/portrait and an Original switch; SSRF-guarded server fetch
|
2026-10-15 19:29:13 +08:00 |
|
Jonathan Sykes
|
3f913de0c3
|
Watch party invites by profile: host invites online profiles, invited users see running parties on open and can join one or dismiss
|
2026-10-15 19:26:37 +08:00 |
|
Jonathan Sykes
|
23097918e9
|
Sidebar drawer ends above the bottom nav so Audio-only is reachable; landscape lyrics (orientation lock, CSS rotation on iOS) in the stage and watch party
|
2026-10-15 19:24:26 +08:00 |
|
Jonathan Sykes
|
ca042ccbe3
|
Watch party presentation mode: share a website, Google Slides/Docs or PDF; everyone sees it, Slides and PDFs follow the presenter's page
|
2026-10-15 19:15:04 +08:00 |
|
Jonathan Sykes
|
32d1f6891b
|
Watch party: guests stream instead of waiting on a device copy, one load per song, host seat and guest seats can't be taken over, host reload restores the song, real taps only detach, reconnect after background, keep invite code and chat draft
|
2026-10-15 19:12:10 +08:00 |
|
Jonathan Sykes
|
63cea89b68
|
Admin: Gmail and Discord-bot settings for password reset, setup warning on open; export notes admin guard
|
2026-10-15 19:02:53 +08:00 |
|
Jonathan Sykes
|
69704d3e1a
|
Profile recovery: Discord webhook as a reset-code channel
|
2026-10-15 17:46:21 +08:00 |
|
Jonathan Sykes
|
ca47528581
|
Protected profiles: recovery email and Discord contacts with reset codes (Gmail SMTP, Discord relay)
|
2026-10-15 17:28:10 +08:00 |
|
Jonathan Sykes
|
dbcee5d5f8
|
Deep search: pass the database client, not the db module, so start/jobs/estimate stop returning 500
|
2026-10-15 16:41:25 +08:00 |
|
Jonathan Sykes
|
e8982162c0
|
Admin home: song library with coverage bar, need/have filters, artwork and paging; phone tab bar always rests on whole tabs
|
2026-10-15 15:34:08 +08:00 |
|
Jonathan Sykes
|
92ce7589f9
|
Admin portrait: top bar clears the notch, bottom bar's last tab stops inside the edge, song cards with stacked full-width actions
|
2026-10-15 12:07:19 +08:00 |
|
Jonathan Sykes
|
7ceefa3d6a
|
Admin login: ignore surrounding spaces/quotes in a pasted password; show-password toggle
|
2026-10-15 11:52:41 +08:00 |
|
Jonathan Sykes
|
b6e019c352
|
Catalog collection reads gzipped search responses; admin lyrics jobs resume once their table exists
|
2026-10-15 11:46:25 +08:00 |
|
Jonathan Sykes
|
41004bf14d
|
Update prompt: ask after at most 45 s instead of waiting up to 8 min for the background download
|
2026-10-15 11:42:07 +08:00 |
|
Jonathan Sykes
|
59871a5b88
|
Merge codex/admin-ops: editor redesign, deep search, admin tools and ops
|
2026-10-15 11:42:07 +08:00 |
|
Jonathan Sykes
|
313d5aef99
|
Recent searches open only after a real tap/click/key; close when the app is backgrounded
|
2026-10-15 11:37:40 +08:00 |
|
Jonathan Sykes
|
d45fa49a46
|
Settings: hidden Admin entry (opens /admin in the app window); admin page keeps a back link on phones
|
2026-10-15 11:21:49 +08:00 |
|
Jonathan Sykes
|
6f62c8c139
|
Don't open recent searches on start-up focus; no auto-focus on touch devices
|
2026-10-15 11:15:40 +08:00 |
|
Jonathan Sykes
|
007e5b5352
|
Update prompt: non-blocking update card with inline download, install and retry states
|
2026-10-15 11:10:56 +08:00 |
|
Jonathan Sykes
|
5c94a7d46a
|
Search: answer on the first YouTube page, fill the rest in background; never cache empty results; gzip search JSON
|
2026-10-15 10:30:20 +08:00 |
|
Jonathan Sykes
|
c242641b2d
|
iPhone: stop rate-slewing the video for sync; add playback telemetry beacon
|
2026-10-14 08:31:38 +08:00 |
|
Jonathan Sykes
|
4fa33e9810
|
Phone PWA: no backdrop blurs over video, cap auto quality at 480p on touch phones
|
2026-10-14 08:23:23 +08:00 |
|
Jonathan Sykes
|
c0c472f3ef
|
Stop asking for HEVC on devices without hardware decode and fall back when frames drop
|
2026-10-14 03:56:21 +08:00 |
|
Jonathan Sykes
|
27c694901d
|
Add upload library management and ops diagnostics
|
2026-10-14 03:09:12 +08:00 |
|
Jonathan Sykes
|
5177a4d441
|
Add device diagnostics and P2P access controls
|
2026-10-14 02:45:33 +08:00 |
|
Jonathan Sykes
|
e9a597c415
|
Add live server performance monitoring
|
2026-10-14 02:43:20 +08:00 |
|
Jonathan Sykes
|
4884589f36
|
Merge branch 'codex/admin-tools' into codex/admin-ops
|
2026-10-14 02:38:40 +08:00 |
|
Jonathan Sykes
|
0f402a8d20
|
Merge branch 'codex/deep-search' into codex/admin-ops
|
2026-10-14 02:38:38 +08:00 |
|
Jonathan Sykes
|
703aef617b
|
Add resumable bulk lyrics operations
|
2026-10-14 02:36:30 +08:00 |
|
Jonathan Sykes
|
555027a61c
|
Count all pending cache states
|
2026-10-14 02:15:00 +08:00 |
|
Jonathan Sykes
|
11b10e38e2
|
Add searchable lyrics index
|
2026-10-14 02:10:02 +08:00 |
|
Jonathan Sykes
|
e3821621f3
|
Add notes backup management
|
2026-10-14 02:06:33 +08:00 |
|
Jonathan Sykes
|
efac16ddaa
|
Add song-level report triage
|
2026-10-14 02:04:02 +08:00 |
|
Jonathan Sykes
|
34b1173ea6
|
Add searchable index health and repair tools
|
2026-10-14 02:02:07 +08:00 |
|
Jonathan Sykes
|
42c68609ec
|
Add cache pinning and health controls
|
2026-10-14 01:59:23 +08:00 |
|
Jonathan Sykes
|
180a28d3e4
|
Add a paged lyrics quality queue
|
2026-10-14 01:56:53 +08:00 |
|
Jonathan Sykes
|
301fab335f
|
Add searchable admin audit history
|
2026-10-14 01:54:08 +08:00 |
|
Jonathan Sykes
|
6bcaccbcaf
|
Merge branch 'codex/deep-search' into codex/admin-tools
|
2026-10-14 01:48:49 +08:00 |
|
Jonathan Sykes
|
58d0e6f140
|
Add resumable admin deep search
|
2026-10-14 01:47:35 +08:00 |
|