# 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, `.part` stays), 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.exe` into `resources/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, open `aerofetch://download?url=` → 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 ` → 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](SIGNING.md) for the code-signing step that removes the SmartScreen prompt for end users.