ZaStoGram_desktop/Telegram
Repository files (latest commit first)
Filename Latest commit message Latest commit date
loop-uh c8120a7a6d
All checks were successful
Desktop source guards / guards (push) Successful in 8s
Treat the WEB proxy carrier as one shared pipe
Every MTProto session through a WEB proxy is a stream on a single
carrier whose relay keeps one FIFO per direction. Bulk media and
uploads filled that FIFO, every session's own 4-8s receive timer then
fired at once, and the reconnects piled new OPENs behind the same
backlog.

- Uplink: a scheduler serves interactive streams first, download
  requests next and uploads round-robin in 64 KiB frames, with at most
  1 MiB of upload bytes uncredited by the relay (one bounded batch in
  front of a chat request); a burst guard keeps uploads from starving.
- Downlink: download streams keep only a share of a 2 MiB credit budget
  (256 KiB..1 MiB each) instead of the full 4 MiB window, so media waits
  in the backend's TCP buffers rather than in front of chat replies.
- Liveness: a WEB session asks the carrier before dropping its stream.
  It waits while its request is still queued or the downlink is busy,
  fails when the pipe is quiet for 8s after delivery, busy for 30s, or
  after 64s total. A carrier with bytes outstanding and no relay
  progress for 20s is recovered once, for all streams.
- A WEB session opens one stream instead of racing identical ones, and
  a -404 on a WEB stream reconnects first; only a second -404 before any
  reply decrypts destroys the temporary key.
- Uploads and downloads use at most two sessions per DC through a WEB
  proxy, and slow upload parts are no longer cancelled and moved.
- web_carrier diagnostics report carrier state, stalls, per-class
  stream and queue counts, credit and throughput every 10s of activity.

The policy lives in web_proxy_flow.{h,cpp} and is covered by the new
test_web_proxy_flow target and a source guard.
2026-09-23 20:29:51 +03:00
..
build Carry the reparented widget flush patch to Qt 6.11.2 2026-09-23 16:29:01 +03:00
cmake Treat the WEB proxy carrier as one shared pipe 2026-09-23 20:29:51 +03:00
codegen@dbd1d53137 Improve checks for old emoji data. 2026-09-22 11:51:23 +04:00
lib_base@de35c7abcb Update submodules. 2026-09-07 19:14:54 +04:00
lib_crl@7a165302fe Update lib_crl and TooManyCooks 2026-07-06 00:37:30 +04:00
lib_lottie@1f8c91c25e Merge upstream dev through a1ea1ddd8c (7.2.9) 2026-09-23 16:21:17 +03:00
lib_qr@6fdf604614 Added initial ability to share QR code from user profile. 2024-09-10 02:00:26 +03:00
lib_rpl@c57cccffb0 Renamed rpl::start_with_ with rpl::on_. 2025-12-10 21:28:33 +03:00
lib_spellcheck@3273fd25c1 Excluded misspelled mark drawing from builds with patched Qt. 2026-09-13 10:05:37 +03:00
lib_storage@ccdc72548a Version 5.2.3. 2024-07-07 09:01:58 +04:00
lib_tl@29746d3124 Update debug logs to skip skipped fields. 2026-08-28 12:12:33 +04:00
lib_translate@09c1072622 Made Swift 6 local translation support optional. 2026-04-06 17:52:53 +03:00
lib_ui@6bd20754d2 Merge upstream dev through a1ea1ddd8c (7.2.9) 2026-09-23 16:21:17 +03:00
lib_webrtc@52636e86ea Fix joining unmuted on macOS. 2026-04-21 17:10:22 +07:00
lib_webview@596fb2432b Update lib_webview. 2026-09-16 21:54:41 +04:00
Resources Merge upstream dev through a1ea1ddd8c (7.2.9) 2026-09-23 16:21:17 +03:00
shaders [qrhi] Restored the dither noise of the group call background. 2026-08-11 16:50:36 +03:00
SourceFiles Treat the WEB proxy carrier as one shared pipe 2026-09-23 20:29:51 +03:00
Telegram Unify macOS icon in Icon name. 2026-05-25 14:07:23 +04:00
ThirdParty Merge upstream dev through a1ea1ddd8c (7.2.9) 2026-09-23 16:21:17 +03:00
CMakeLists.txt Treat the WEB proxy carrier as one shared pipe 2026-09-23 20:29:51 +03:00
configure.bat
configure.py Fix build on Linux 2024-06-22 11:32:36 +04:00
configure.sh
create.bat Create .mm source blanks for macOS modules. 2024-07-06 11:08:42 +04:00
Telegram.plist Added macOS WebAuthn support via CoreBluetooth and libfido2. 2026-07-28 09:53:53 +03:00