Files
ytplayer/plans/INDEX.md
2026-09-30 08:02:52 +00:00

4.1 KiB
Raw Blame History

Plan Queue Index

Speed first (001–007, independent of P2P), then peer-to-peer sharing (008–019, see docs/p2p-architecture.md). Run in order; each plan's depends_on lists what must be in done/ first. Every plan was dry-run end to end on 2026-09-29 (all 19 applied in order to a clean checkout: 13 server test files and 61 frontend tests green, app boots with no JS errors, P2P on by default, offline boot works).

Seq ID Title Status Commit Notes
001 001-perf-timing-marks-105acc Add startup, search and play timing marks plus yt-dlp duration logs done Add startup, search and play timing marks plus yt-dlp duration logs baseline numbers for the rest
002 002-compress-and-etag-shell-bd459c Serve the app shell gzip/brotli-compressed with ETags done Serve the app shell gzip/brotli-compressed with ETags app.js 426 KB → 94 KB (br)
003 003-self-host-fonts-89466b Self-host the three web fonts and drop the render-blocking Google Fonts CSS done Self-host the three web fonts and drop the render-blocking Google Fonts CSS needs network once; CSP font-src fix
004 004-coalesce-stream-resolves-a92d40 Coalesce concurrent resolveStreams calls for the same video done Coalesce concurrent resolveStreams calls for the same video
005 005-warm-streams-on-intent-47b3d3 Warm the stream cache for likely next plays done Warm the stream cache for likely next plays cold play 7.5 s → cached 1.2 s
006 006-innertube-search-48066b Answer searches from YouTube InnerTube directly with yt-dlp fallback done Answer searches from YouTube InnerTube directly with yt-dlp fallback search 4–5 s → ~0.8 s
007 007-ytdlp-worker-045800 Keep one long-lived yt-dlp worker process instead of spawning per call done Keep one long-lived yt-dlp worker process instead of spawning per call ~1 s per yt-dlp call
008 008-p2p-schema-and-config-127966 Add P2P tables, config flags and db helpers done Add P2P tables, config flags and db helpers P2P ON, malware scan OFF by default
009 009-server-content-hash-186e7f Hash every validated server copy and register it as verified content done Hash every validated server copy and register it as verified content uses plans/patches/009-*
010 010-views-and-retention-d0c6ca Count views and evict server copies by retention criteria before LRU done Count views and evict server copies by retention criteria before LRU
011 011-browser-sha256-e1793d Add an incremental SHA-256 library for the browser and node tests done Add an incremental SHA-256 library for the browser and node tests
012 012-device-file-registry-288d55 Add the on-device IndexedDB file registry and hash saves while downloading done Add the on-device IndexedDB file registry and hash saves while downloading browser harness
013 013-device-identity-and-holdings-3ba493 Register devices and report verified holdings to the server done Register devices and report verified holdings to the server persistent holders, no TTL
014 014-p2p-presence-hub-ceced8 Add the /ws/p2p presence and signalling hub and the holders endpoint done Add the /ws/p2p presence and signalling hub and the holders endpoint stale flag, never hidden
015 015-availability-ui-and-settings-3b9397 Show peer availability with stale markers and add Sharing settings done Show peer availability with stale markers and add Sharing settings
016 016-intake-and-server-verification-cfe031 Let a device hand a file to the server for hashing and validation done Let a device hand a file to the server for hashing and validation needs ffmpeg for tests
017 017-peer-transfer-1faaa7 Download a verified file from another device over WebRTC done Download a verified file from another device over WebRTC STUN only
018 018-server-rehydrate-from-peer-4fb8bd Restore an evicted server copy from an online holder done Restore an evicted server copy from an online holder
019 019-admin-p2p-panel-4dc623 Add a P2P panel to the admin page done Add a P2P panel to the admin page