Stop a dead upload spinning forever, and say what 100% means

Fixkamo-internal
Shipped
8 Agosti 2026, 04:08 UTC
Author
kamo
Commit
620a49a

A stalled upload sat at 100% with the bar full and no way out. Three separate reasons, all of them mine. XMLHttpRequest has no useful read timeout: when bytes stop arriving it waits indefinitely. A watchdog now aborts after two minutes of complete silence and reports it as a failure the member can retry — routed apart from Cancel, which goes through the same abort path but is not a fault. Reaching 100% does not mean finished: the server still has to hash and store the file, which for gigabytes is a long silence with nothing left to measure. The panel now says so, and drops the speed and time-left figures rather than freezing them at their last values, which is precisely what made a working upload look hung. That silence is also why the post-upload wait gets its own generous timeout instead of the stall watchdog, which would otherwise abort a perfectly healthy transfer. Also fixes the sheen that was meant to mark a live transfer: @keyframes kc-sheen was referenced but never defined, so it has never animated since I added it. Both rails now stand down under prefers-reduced-motion.

All changes

Je, unaona nini kuhusu usafiri?

Kila moja ya hizi updates ardhi katika nafasi yako ya kazi moja kwa moja. Kuanza bure na kuangalia kukua wiki baada ya wiki.

Kuwa Huru MileleMtazamo wa bei