copilot-swe-agent[bot] and monkeyWie
8b02844ec3
Fix tests: use StartTestCustomServer (no Content-Length) to match real bug scenario
...
Remove StartTestNoRangeServer and its tests since the real bug is about
servers that don't return Content-Length at all (like GitHub's zip downloads),
not servers with Content-Length but no Range support.
The chunked tests (TestFetcher_DownloadChunkedContinue and
TestFetcher_DownloadChunkedNotExceedSize) correctly simulate the real-world
bug using StartTestCustomServer which serves files without Content-Length.
Co-authored-by: monkeyWie <[email protected] >
2026-03-11 10:53:52 +00:00
copilot-swe-agent[bot] and monkeyWie
b8e517b35b
Fix data race in expandConnections: remove orphaned waitForCompletion goroutine
...
The go f.waitForCompletion() goroutine in expandConnections was redundant
since the downloadLoop's slow start loop already handles stateSteady by
calling waitForCompletion directly. The orphaned goroutine could race with
doStart() when writing f.ctx during pause/resume.
Co-authored-by: monkeyWie <[email protected] >
2026-03-11 02:59:41 +00:00
copilot-swe-agent[bot] and monkeyWie
2daa9c45df
Fix non-range download bug: downloaded bytes exceeding total file size
...
When HTTP server doesn't return Content-Length or doesn't support Range
requests, the download can accumulate extra bytes on pause/resume because:
1. Each retry/resume re-downloads from the beginning but writes at the
accumulated offset
2. No size limit enforcement for non-range downloads
3. onDownloadComplete incorrectly uses chunk.remain() for non-range
downloads, which gives negative values for chunk(0,0)
Fixes:
- Reset chunk state in downloadChunkOnce and runConnectionFallback for
non-range downloads since server will send from beginning
- Add size limit checks in download loops when Size is known
- Fix onDownloadComplete to use conn.Completed for non-range downloads
instead of unreliable chunk.remain()
- Add test cases for non-range download, pause/resume, and size limit
Co-authored-by: monkeyWie <[email protected] >
2026-03-11 02:50:48 +00:00
Levi
3eb6df55df
feat: implement task patching functionality ( #1267 )
2026-02-06 23:42:57 +08:00
Levi
93088b22f1
fix: improve retry handling for expired HTTP redirect url ( #1263 )
2026-01-29 22:13:42 +08:00
Levi
c9626cb389
perf: slow down DHT announcing on errors ( #1186 )
2026-01-14 20:04:21 +08:00
Levi
a9eee26be7
refactor: fethcer interface & download flow ( #1229 )
2026-01-08 21:50:47 +08:00
Copilot
abd16d5326
fix: filename truncation for HTML-encoded ampersands in Content-Disposition ( #1215 )
2026-01-05 22:56:04 +08:00
Copilot
6756d82ffa
fix: use PathUnescape for filename URL decoding ( #1214 )
2026-01-05 21:46:50 +08:00
Matteo Pietro Dazzi
b0e133b554
feat: show extraction progress ( #1217 )
2025-12-31 09:25:21 +08:00
Copilot
2f5fbfb17c
fix: HTTP filename parsing for mixed encodings and GBK-encoded ( #1189 )
2025-11-29 11:34:50 +08:00
Levi
75a8a3a9ac
ci: downgrade to Ubuntu 22.04 ( #1128 )
2025-10-09 21:01:06 +08:00
Krau
cfdcb586ee
fix: decode URL-encoded filename from contentDisposition header ( #1099 )
2025-09-04 18:22:30 +08:00
Levi
3451f577ab
fix: remove invalid characters in HTTP headers ( #1053 )
2025-07-15 22:34:10 +08:00
Levi
cd5fd45667
fix: resolve http non encode attachment filename ( #975 )
2025-04-05 22:37:19 +08:00
Levi
50bc9ab129
feat: improve http download strategy to prevent speed drops near completion ( #969 )
2025-04-05 22:20:35 +08:00
Levi
f4b839fd11
fix: http download size exceeds file size ( #959 )
2025-03-14 20:07:34 +08:00
Levi
03e26dbea8
feat: improve http download retry strategy ( #951 )
2025-03-07 12:01:52 +08:00
Levi
9c5aebaf36
fix: path url encode filename parse ( #939 )
2025-02-18 19:37:38 +08:00
Levi
fba990a056
fix: http MIME encoded word filename parse ( #931 )
2025-02-13 21:54:13 +08:00
Levi
0919936050
feat: support custom http request headers ( #868 )
2025-01-16 00:19:50 +08:00
Levi
acc7ed8f6b
feat: torrent scheme deep link and file associations ( #866 )
2025-01-16 00:02:00 +08:00
Levi
c970378fd7
fix: http download retries too many times ( #849 )
2024-12-24 20:28:04 +08:00
Levi
f4876c8a0e
fix: HTTP fetch crash when modified request extra via extension ( #832 )
2024-12-08 12:07:08 +08:00
Ricky
2523282a89
feat(http): add option to skip SSL certificate verification ( #801 )
2024-11-12 10:30:21 +08:00
Levi
a1981328aa
fix: avoid HTTP zero connections ( #729 )
2024-09-07 13:49:32 +08:00
Levi
0c17093b1a
feat: task separate proxy ( #727 )
2024-09-06 18:35:23 +08:00
Levi
ece5b91dc2
fix: torrent redundant directory ( #649 )
2024-08-14 21:54:59 +08:00
foxxorcat
d119de7b98
feat: enhanced extension engine ( #629 )
2024-08-05 10:44:17 +08:00
Levi
4fbe13a1f0
fix: clear UPNP port mapping when exist app ( #624 )
2024-07-30 18:43:54 +08:00
Levi
3b50465708
feat: torrent seed config ( #599 )
2024-07-30 12:50:06 +08:00
Levi
473c58796c
fix: handle empty string params ( #620 )
2024-07-24 11:51:31 +08:00
Levi
cea454b015
feat: support system proxy ( #515 )
2024-05-01 18:53:12 +08:00
Levi
070db64ca9
fix: http request cookie incremented indefinitely on retries ( #514 )
2024-05-01 17:45:59 +08:00
Levi
62c22bc6b4
feat: support use server time for file creation ( #359 )
2024-01-30 09:08:01 +08:00
Tracey Lesley
6d136604db
feat: downloader task stats ( #339 )
2024-01-22 11:43:12 +08:00
Tracey Lesley
99f4e8c895
feat: add download stats info ( #323 )
2024-01-17 21:59:01 +08:00
Tracey Lesley
3a542054fc
fix: compatible with not follow the http range response standard
2024-01-14 09:58:14 +08:00
Levi
65fd6fb489
fix: http pause handle ( #303 )
2023-12-15 19:15:38 +08:00
Levi
16b7a3d5b3
feat: support proxy ( #284 )
2023-12-02 18:36:52 +08:00
Levi
6bb32372ab
feat: support more configurations ( #281 )
2023-11-29 12:52:51 +08:00
Levi
7d6428c967
fix: task can not completed ( #280 )
2023-11-28 18:27:36 +08:00
Levi
11befc09bd
refractor: downloader task action dispatch ( #249 )
2023-10-24 16:02:39 +08:00
Levi
39202b44a1
fix: http retry strategy ( #240 )
2023-10-20 12:15:21 +08:00
Levi
c073fc0a67
feat: extension support ( #78 )
2023-10-16 09:47:31 +08:00
Tracey Lesley
d28fcef0a7
feat: default http User-Agent header ( #26 )
2023-09-13 10:03:26 +08:00
Levi
b6d60f6bdf
fix: http download timeout ( #188 )
2023-08-25 18:42:10 +08:00
Li Wei
34fc886662
fix: http filename resolve ( #124 )
2023-06-28 10:22:45 +08:00
Li Wei
dd46e7a3eb
fix: crash caused by non-resumable http download resources ( #97 )
2023-03-06 21:09:31 +08:00
liwei
a875a9258e
refactor: change repo url
2023-02-11 21:37:05 +08:00