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 |
|
Jonathan Sykes
|
b77938ab4a
|
Queue bounded stream prewarm requests
|
2026-10-07 03:13:30 +08:00 |
|
Jonathan Sykes
|
2042c9b6fc
|
Recover related videos with bounded discovery and retryable fallbacks
|
2026-10-04 02:42:02 +08:00 |
|
Jonathan Sykes
|
c6074bdbc5
|
Load the direct-transfer protocol from public/ inside the container image
|
2026-10-03 22:11:24 +08:00 |
|
Jonathan Sykes
|
d78b06ff4b
|
Close unconfirmed transfer paths and reject binary signalling envelopes
|
2026-10-03 20:45:04 +08:00 |
|
Jonathan Sykes
|
795a5aaed4
|
Prefer direct copies for playback, saves and exports within verified device groups
|
2026-10-03 20:38:51 +08:00 |
|
Jonathan Sykes
|
88e2e67eeb
|
Authorize direct file invitations within paired rooms and parties
|
2026-10-03 20:26:07 +08:00 |
|
Jonathan Sykes
|
f341b0c76e
|
Restart failed saves through a guarded server retry
|
2026-10-03 19:16:08 +08:00 |
|
Jonathan Sykes
|
5485a3c2f4
|
Try alternate YouTube clients for unavailable save sources
|
2026-10-03 19:12:48 +08:00 |
|
Jonathan Sykes
|
856ddda6a6
|
Backfill device song metadata and queue guarded server caching
|
2026-10-03 17:55:49 +08:00 |
|