Kget 1.7.0

A powerful and versatile download manager and library
Documentation
# KGet Improvement Roadmap

## Shipped

### v1.7.0
- **Batch download (`--batch urls.txt`)** — parallel, one URL per line, `#` = comment.
-**Download scheduling (`--at "HH:MM"`)** — sleep until local wall-clock time.
-**Custom HTTP headers (`-H "Name: Value"`)** — injected into all download modes.
-**Auto-extract archives (`--extract`)** — unzip/tar/7z after download.
-**yt-dlp integration (`--ytdlp`, auto-detected)** — YouTube, Vimeo, Twitch, TikTok…, `--quality` preset.
-**WebDAV support (`webdav://`, `webdavs://`)** — RFC 4918; Basic auth from URL.
-**Share Extension** — macOS Share sheet → KGet, `kget://download?url=` scheme.
-**Public library API overhaul**`kget::builder()`, `kget::batch()`, `KgetError`, `DownloadEvent` channel, typed checksums, `RetryConfig`, async API.
-**macOS app — complete redesign**`NavigationSplitView`, sidebar filter nav, shimmer progress bar, drag-and-drop, clipboard monitor, speed sparkline, history tab.
-**egui GUI — complete redesign** — Apple-inspired colors, sidebar, shimmer bar, system-adaptive dark/light.
-**Security/bug fixes**`AdvancedDownloader::new()``Result`; global `TokenBucket` throttle; `ResumePolicy`; correct ISO MIME; `validate_filename` security hardening; 4xx no retry; SFTP host-key hard-error.

### v1.6.3
- **Persistent download history**`history.json`; `--history` / `--history-clear`. _(v1.6.3)_
-**Metalink / mirror fallback**`.meta4` / `.metalink`, priority-ordered mirrors, SHA-256 verification. _(v1.6.3)_
-**SFTP SSH host-key verification** — checks `~/.ssh/known_hosts`. _(v1.6.3)_
-**JSONL events**`--jsonl` for scripts and agents. _(v1.6.3)_
-**Content-Disposition filename** — uses server-suggested names. _(v1.6.3)_
-**Speed throttling** — token-bucket rate limiter for HTTP downloads. _(v1.6.3)_

## Product Ideas

- Persistent download queue with pause, resume, retry, and scheduled downloads.
- Browser extension for one-click capture (Chrome/Firefox/Safari).
- Download categories, tags, smart folders, and duplicate detection.
- Per-download speed limits, global bandwidth profiles, and metered-network mode.
- Download history search with filters by domain, status, type, and date.
- Better torrent UX: file selection, priority, peer/seeder stats, tracker status, and ratio controls.
- Notification center integration (macOS/Linux/Windows).

## Engineering Ideas

- Add a central job model: `DownloadJob`, `DownloadId`, `DownloadState`.
- Store queue/history in SQLite with schema migrations.
- Add a protocol trait for HTTP, FTP, SFTP, WebDAV, and torrent adapters.
- Add integration tests around resume, cancellation, range fallback, and disk-full behavior.
- Add CI matrix for macOS, Linux, and Windows with CLI-only and GUI-feature builds.
- Add release automation that builds signed macOS artifacts and cross-platform binaries.
- UniFFI or C ABI bindings for future iOS/iPadOS/Windows native shells.

## Platform Expansion

- **iPhone/iPad:** shared SwiftUI app, Rust engine via UniFFI/C ABI, share sheet, Files integration, background-safe downloads.
- **macOS:** replace process-output parsing with structured JSONL events; add menu bar queue controls.
- **Windows:** Tauri or egui AppImage/installer with tray integration and file associations.
- **Linux:** egui/Tauri AppImage/deb/rpm; xdg-open, desktop files, tray notifications.