Konstantin Ostrovskii and Levi
a34383a7e2
fix(http): wait for the prefetch goroutine to exit before reusing its file ( #1606 )
...
* fix(http): wait for the prefetch goroutine to exit before reusing its file
stopPrefetchAndCopyData waited at most 10 s for the Resolve prefetch, but a
stalled body read only times out after readTimeout (15 s). The caller then
closed and removed the temporary file while the prefetch goroutine could
still write to it.
Stopping the prefetch now closes the Resolve body, which interrupts a
pending read, and waits on a channel closed when the goroutine exits. Pause
uses the same path. The stop channel is closed under resolveRespLock so a
concurrent Pause and first-connection takeover cannot close it twice.
The proxy test helper now calls Setup before Resolve, as the downloader
does, so the Resolve request also goes through the proxy.
Fixes #1563
* refactor(http): wait on prefetchExitCh in completeFromResolveFallback
Replaces the 10 ms polling loop with the exit channel added in the
previous commit, so every place that waits for the prefetch uses it.
---------
Co-authored-by: Levi <[email protected] >
2026-11-09 11:14:49 +08:00
Konstantin Ostrovskii
d873cd411c
fix(http): copy a fully prefetched body when Start runs before prefetchDone ( #1608 )
...
The prefetch goroutine sets prefetchDone only after one more read and
closing the body. A Start in that window took the whole file as the
fallback snapshot, expandConnections marked the task done, and the temp
file was never copied, leaving a zero-filled target.
Read prefetchSize once and treat the prefetch as complete when it reached
the known size.
2026-11-06 09:24:19 +08:00
Arpit Khandelwal
91edba9af6
perf(http): replace per-read goroutine in TimeoutReader with a timer ( #1597 )
2026-10-28 13:58:06 +08:00
Levi
d125d4ab75
feat(http): support advisory extension download sizes ( #1599 )
2026-10-22 23:35:01 +08:00
Arpit Khandelwal
47cafb7575
perf(http): use 64 KiB connection read buffers ( #1588 )
2026-10-21 14:19:01 +08:00
Levi
de65149b29
refactor(downloader): remove opts parameter from Resolve ( #1595 )
2026-10-19 21:40:57 +08:00
Ashish Goswami
6f20790b17
feat(protocol/http, mcpserver, download): add checksum verification, MCP speed tool, pause webhook, and CLI flags ( #1542 )
2026-10-13 08:28:56 +08:00
Kunpeng Xie
fa622a4063
fix(http): skip prefetch wait for restored downloads ( #1584 )
2026-10-12 11:13:42 +08:00
Levi
c6619794fc
fix: preserve Cookie headers in extension requests ( #1581 )
2026-10-10 22:10:08 +08:00
JiangJiang
363153fa33
fix(http): use Content-Range total size for 206 responses ( #1545 )
2026-09-23 09:52:59 +08:00
Levi
8301b1f9ce
feat(http): accelerate connection expansion with squared batches ( #1530 )
2026-09-18 23:22:57 +08:00
Levi
1ab452ced8
fix(bt): honor selected files when creating resolved tasks ( #1523 )
2026-09-18 22:32:09 +08:00
Levi
b1dd46cc7c
feat: spool media inputs to disk and report producer progress ( #1520 )
2026-09-18 22:17:22 +08:00
Levi
c667f097dc
feat: add FFmpeg WASM runtime ( #1512 )
2026-09-16 00:38:22 +08:00
Wu Shuwen
04b9aa18ec
fix(http): infer extension for opaque URLs ( #1495 )
2026-09-11 08:01:32 +08:00
Levi
177c225f16
feat: new ui ( #1455 )
2026-09-05 19:53:41 +08:00
Levi
3be8db664c
fix(http): resume ranged downloads with unknown size ( #1467 )
2026-09-03 23:16:38 +08:00
Levi
9b704f6f14
fix(http): keep Resolve response until Range takeover succeeds ( #1465 )
2026-09-02 23:49:37 +08:00
ggg
f49e2510f5
fix(http): re-probe range support after sequential retry ( #1464 )
2026-09-02 14:29:48 +08:00
Levi
c5c8bb2bf5
fix(http): reset discarded prefetch progress on resume ( #1462 )
2026-08-31 23:05:01 +08:00
ggg
962ff4dc98
fix(http): fall back when servers ignore range requests ( #1459 )
2026-08-31 22:32:14 +08:00
Levi
59f3aa7028
test: enforce async extension API contract ( #1452 )
2026-08-27 12:51:37 +08:00
Levi
cfdf87c3b8
feat: HTTP add TLS fingerprint fallback ( #1444 )
2026-08-20 20:21:02 +08:00
Levi
def54f8998
feat: add WebView support for extension ( #1359 )
2026-04-24 22:16:33 +08:00
Levi
847e88881d
fix: non-range HTTP downloaded bytes exceeding total file size ( #1317 )
2026-03-18 18:53:49 +08: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