Less traffic: compressed td downloads, symbol table only when changed, no update retry loop

- /download serves a gzip copy (made when binaries are published) to
  clients that accept it: td's self-update and the Linux installer
  (curl --compressed). 86 MB -> 32 MB for Windows, 123 MB -> 41 MB for Linux.
- /api/symbols carries an ETag; td keeps it with its snapshot and gets 304
  when nothing changed (it fetched 1.2 MB on every sync).
- td's self-update gave up after 10 minutes, so a slow connection downloaded
  most of the binary every hour forever. It now only gives up on a download
  that stalls for a minute.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RNwtXPYqFu3oKaaXwYwNWW
This commit is contained in:
Saty 2026-10-18 18:21:31 +02:00
commit 994cbb36d3
7 changed files with 89 additions and 13 deletions

View file

@ -29,6 +29,8 @@ ssh "$HOST" "set -e
install -o togetherdecomp -g togetherdecomp -m 0644 /tmp/\$f \$D/\$f.new && mv \$D/\$f.new \$D/\$f && rm -f /tmp/\$f
done
chmod 0755 \$D/td-linux-x64
# Compressed copies for clients that accept gzip (td self-update, the Linux installer).
for f in td-windows-x64.exe td-linux-x64; do gzip -9 -k -f \$D/\$f && chown togetherdecomp:togetherdecomp \$D/\$f.gz; done
echo 'td binaries published'
fi
TD_KEEP_WORKER='${TD_KEEP_WORKER:-}' sh \"\$d/deploy/update.sh\" \"\$d\"