Commit Graph

130 Commits

Author SHA1 Message Date
Jonathan Sykes
2e6c79e360 Still lane: size the looped picture to the audio's real length 2026-10-16 18:33:09 +08:00
Jonathan Sykes
fcbc9344ba Media cache: still-picture lane re-encodes album-art videos as one looped frame in H.264 2026-10-16 18:18:42 +08:00
Jonathan Sykes
1f79750ec5 Catalog collect: per-IP budget and fill-only writes; bulk import moves to an admin/API-token route 2026-10-16 12:20:39 +08:00
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
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
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
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
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
59871a5b88 Merge codex/admin-ops: editor redesign, deep search, admin tools and ops 2026-10-15 11:42:07 +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
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
703aef617b Add resumable bulk lyrics operations 2026-10-14 02:36:30 +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
58d0e6f140 Add resumable admin deep search 2026-10-14 01:47:35 +08:00
Jonathan Sykes
ca10fe6486 Refetch missing media from catalog source 2026-10-14 01:26:25 +08:00
Jonathan Sykes
593ecaecd9 Extend video catalog source metadata 2026-10-14 01:22:32 +08:00
Jonathan Sykes
d027696d4e Merge manifest hygiene and reconcile runtime exclusions with CSP response capture 2026-10-09 15:12:39 +08:00
Jonathan Sykes
8a4144eb00 Document runtime exclusions and verify offline transfer savings 2026-10-09 14:56:31 +08:00
Jonathan Sykes
dd09f66578 Separate runtime manifest inputs from directly served files 2026-10-09 14:40:46 +08:00
Jonathan Sykes
a86fa1cebe Cache the page-owned app response before starting the worker 2026-10-08 09:04:20 +08:00
Jonathan Sykes
e7a7cdc6b9 Preload classic layout CSS before the blocking head loader 2026-10-08 08:50:51 +08:00
Jonathan Sykes
5d6a1545df Load layouts and optional features from staged asset caches 2026-10-08 01:29:50 +08:00
Jonathan Sykes
d98d444552 Embed build-local asset groups in stamped indexes 2026-10-08 00:50:18 +08:00
Jonathan Sykes
bb446c717f Keep single-tag rollback on the legacy worker path 2026-10-07 23:58:29 +08:00
Jonathan Sykes
54a07a0a2a Synchronize verified assets incrementally and guard update activation 2026-10-07 23:40:20 +08:00
Jonathan Sykes
d18d17cf29 Preserve legacy cache rules and pin service worker bytes at boot 2026-10-07 23:01:55 +08:00
Jonathan Sykes
6cb00d5073 Add per-file asset hashes and a rollback-compatible server manifest 2026-10-07 22:57:41 +08:00
Jonathan Sykes
b6dd2be40f Add server characterization tests for build tag, index stamping and cache headers 2026-10-07 03:28:45 +08:00