- YouTube reliability: Settings.youtubePlayerClient + youtubePoToken -> one --extractor-args "youtube:player_client=...;po_token=..." group (accessArgs, unit-tested); advanced fields in Settings -> Network. Automatic WebView PO-token minting deferred (documented). - docs/SMOKE-TEST.md: release-gate checklist for all shipped-but-untested OS wiring (cookies window, protocol/Send-to, scheduled sync, aria2c, proxy, tray/taskbar/pause-resume/terminal) — needs a human to run. - docs/SIGNING.md: code-signing guide (CSC_LINK/CSC_KEY_PASSWORD, OV/EV, CI, HSM hook, verification). Build is signing-ready; needs a cert. - i18n remains deferred (not faked). typecheck + test (195) + build all clean. Roadmap: Phase P code shipped. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
3.8 KiB
AeroFetch — manual smoke-test checklist
Some features can only be exercised against a real install (or a real yt-dlp run) —
they're main-process / Electron / OS-integration code that the Vite browser preview and the
unit suite can't reach. They're implemented and typecheck/test/build clean, but the roadmaps
flag them as needing a hands-on pass. Run this checklist after building
(npm run build:win) and installing the NSIS artifact (or launching the portable .exe).
Mark each ✅/❌ and note anything surprising.
Downloads & post-processing (Phases A, L, M)
- Basic download — paste a URL, Fetch, pick a format, Download → file lands in Documents\Video (or your folder), progress + speed update, "Completed".
- Trim / cut (Phase L) — set a section like
0:10-0:20, download → output is ~10s and starts/ends near the cut points (--download-sections+--force-keyframes-at-cuts). - Split by chapters (Phase L) — on a video with chapters, enable it → per-chapter files appear alongside the full file.
- Pause / resume (Phase M) — start a large download, Pause (process stops,
.partstays), Resume → it continues from where it stopped, not from 0% (yt-dlp--continue). - Scheduling (Phase M) — schedule a download a couple of minutes out → it sits "Saved / Scheduled", then auto-starts at the time (only while the app is running).
Access & networking (Phase B, P)
- Cookies — sign-in window — Settings → Cookies → "Sign-in window", log into a site, close it → "cookies saved" with a timestamp; a members-only/age-gated video then downloads.
- Cookies — from browser — pick an installed browser → a gated video downloads.
- Proxy — set a working proxy → downloads route through it (verify via the proxy logs).
- aria2c — drop
aria2c.exeintoresources/bin, enable it → multi-connection download works; remove it → silently falls back to yt-dlp's downloader. - YouTube client / PO token (Phase P) — set
youtubePlayerClient(e.g.web_safari) → the run includes--extractor-args youtube:player_client=web_safari(check Terminal/Preview).
OS integration (Phase E, J, O)
aerofetch://protocol — from a browser, openaerofetch://download?url=<encoded>→ AeroFetch focuses and the URL appears in the "Link received" banner.- Explorer "Send to AeroFetch" — drag a tab to the desktop to make a
.url, right-click → Send to → AeroFetch → the link is received. - Scheduled sync (Phase J) — Settings → enable the daily sync → a Windows Task Scheduler
task exists; run it (or
AeroFetch.exe --sync) → watched sources index and new items enqueue. - RSS fast-check (Phase J) — "Check for new" on a watched channel → newly-posted videos show as new without a full re-index.
- System tray (Phase O) — enable "Keep running in the tray", close the window → it hides to the tray; tray click reopens; tray → Quit actually exits.
- Taskbar progress (Phase O) — during downloads the taskbar icon shows a progress bar; it turns red if one fails and clears when the queue goes idle.
- Jump list (Phase O) — right-click the taskbar icon → "Open AeroFetch" focuses the app.
Terminal (Phase N)
- Enable "Run custom commands", open Terminal, run
--version→ the version prints; run-F <url>→ the format table streams in; Stop cancels a long run.
If anything here fails, capture the Settings → Diagnostics "Copy full report" output and the exact steps. These items have no automated coverage, so this checklist is the release gate for them. See also SIGNING.md for the code-signing step that removes the SmartScreen prompt for end users.