| Download lifecycle, events, pause/resume/cancel, progress aggregation | Downloader/AbstractDownloadService.cs |
StartDownload, parallel/serial dispatch, auto-resume, Stopped-vs-Failed | Downloader/DownloadService.cs |
Settings / defaults / clone / INotifyPropertyChanged | Downloader/DownloadConfiguration.cs |
| HTTP headers, request/proxy/auth/cookies/redirect/user-agent | Downloader/RequestConfiguration.cs, Downloader/Request.cs |
| Range probe, file-size/filename extraction, redirects | Downloader/SocketClient.cs |
Retry classification (IsMomentumError), redirect status, cert callback | Downloader/Extensions/ExceptionHelper.cs |
| One chunk: retry/backoff, pause, ArrayPool reads, throttle wiring | Downloader/ChunkDownloader.cs |
| Split file into chunks | Downloader/ChunkHub.cs |
Live state, status transitions, TrySetCompleteState, storage choice | Downloader/DownloadPackage.cs |
| Thread-safe writes + background watcher | Downloader/ConcurrentStream.cs, Downloader/ConcurrentPacketBuffer.cs |
| Bandwidth limit / speed | Downloader/ThrottledStream.cs, Downloader/Bandwidth.cs |
| Fluent API | Downloader/DownloadBuilder.cs |
URL normalization before new Uri() | Downloader/Extensions/UrlHelper.cs |
| Test HTTP endpoints (failure/timeout/redirect/truncate/cookie-challenge/useragent) | Downloader.DummyHttpServer/Controllers/DummyFileController.cs |
| Test URL builders | Downloader.DummyHttpServer/DummyFileHelper.cs |