telegramdesktop/tdesktop/dev • 51021d1 • 8 files, +326/-17
Added YouTube-like hold-to-speedup gesture and hotkeys to media view.
telegramdesktop/tdesktop/dev • fcb695d • 1 files, +1/-1
[poll-create] Allowed creating polls with single answer option.
telegramdesktop/tdesktop/dev • 0a43ca7 • 2 files, +3/-1
Fixed live location time overlap and cleared status text after expiry.
Regression was introduced in f5486e3090.
telegramdesktop/tdesktop/dev • 2ff6ac4 • 3 files, +118/-10
Added userpic pin to map in live location messages.
telegramdesktop/tdesktop/dev • 978116b • 1 files, +19/-4
Fixed inline bot photo results with unknown dimensions being dropped.
telegramdesktop/tdesktop/dev • f4cbbb2 • 4 files, +6/-32
Moved unread voice dot indicator next to media label in dialog list.
Related commit: 9febcd88d4.
telegramdesktop/tdesktop/dev • 045cb68 • 2 files, +26/-5
Fix timestamp text appearing glitch.
#tdesktop
Added YouTube-like hold-to-speedup gesture and hotkeys to media view.
telegramdesktop/tdesktop/dev • fcb695d • 1 files, +1/-1
[poll-create] Allowed creating polls with single answer option.
telegramdesktop/tdesktop/dev • 0a43ca7 • 2 files, +3/-1
Fixed live location time overlap and cleared status text after expiry.
Regression was introduced in f5486e3090.
telegramdesktop/tdesktop/dev • 2ff6ac4 • 3 files, +118/-10
Added userpic pin to map in live location messages.
telegramdesktop/tdesktop/dev • 978116b • 1 files, +19/-4
Fixed inline bot photo results with unknown dimensions being dropped.
telegramdesktop/tdesktop/dev • f4cbbb2 • 4 files, +6/-32
Moved unread voice dot indicator next to media label in dialog list.
Related commit: 9febcd88d4.
telegramdesktop/tdesktop/dev • 045cb68 • 2 files, +26/-5
Fix timestamp text appearing glitch.
#tdesktop
🫡2🤨1
telegramdesktop/tdesktop/dev • 0dd4722 • 4 files, +51/-6
Added ability to hide phone number in main settings section.
telegramdesktop/tdesktop/dev • 6f4c9f6 • 1 files, +9/-3
[poll-view] Fixed sending custom emoji from add-option overlay.
telegramdesktop/tdesktop/dev • 57c5ddc • 4 files, +54/-6
Added emoji pack info to poll option context menu.
telegramdesktop/tdesktop/dev • 1d04cae • 3 files, +16/-0
Replaced chart emoji with themed poll icon in reply view.
telegramdesktop/tdesktop/dev • 5ff29c4 • 1 files, +1/-0
Fixed retract vote menu item display for unvoted polls in media view.
telegramdesktop/tdesktop/dev • f6d1208 • 1 files, +7/-0
Fixed poll options refresh after append/delete answer updates.
telegramdesktop/tdesktop/dev • 2200dbb • 1 files, +53/-12
Added emoji selector with custom emoji for premium quick reaction.
telegramdesktop/tdesktop/dev • 4f8b3ef • 1 files, +1/-1
Fixed possible crash from url auth box.
telegramdesktop/tdesktop/dev • a1389ac • 3 files, +149/-4
Added inline buttons to macOS notifications from notification user.
telegramdesktop/tdesktop/dev • 8ed9085 • 8 files, +329/-58
Added recent search entries to settings.
telegramdesktop/tdesktop/dev • 24edbf4 • 4 files, +91/-25
Implement gradient-reveal for text appearing.
telegramdesktop/tdesktop/dev • 9af4fb4 • 3 files, +78/-28
Improve text-tight bubble width, appear animation.
#tdesktop
Added ability to hide phone number in main settings section.
telegramdesktop/tdesktop/dev • 6f4c9f6 • 1 files, +9/-3
[poll-view] Fixed sending custom emoji from add-option overlay.
telegramdesktop/tdesktop/dev • 57c5ddc • 4 files, +54/-6
Added emoji pack info to poll option context menu.
telegramdesktop/tdesktop/dev • 1d04cae • 3 files, +16/-0
Replaced chart emoji with themed poll icon in reply view.
telegramdesktop/tdesktop/dev • 5ff29c4 • 1 files, +1/-0
Fixed retract vote menu item display for unvoted polls in media view.
telegramdesktop/tdesktop/dev • f6d1208 • 1 files, +7/-0
Fixed poll options refresh after append/delete answer updates.
telegramdesktop/tdesktop/dev • 2200dbb • 1 files, +53/-12
Added emoji selector with custom emoji for premium quick reaction.
telegramdesktop/tdesktop/dev • 4f8b3ef • 1 files, +1/-1
Fixed possible crash from url auth box.
telegramdesktop/tdesktop/dev • a1389ac • 3 files, +149/-4
Added inline buttons to macOS notifications from notification user.
telegramdesktop/tdesktop/dev • 8ed9085 • 8 files, +329/-58
Added recent search entries to settings.
telegramdesktop/tdesktop/dev • 24edbf4 • 4 files, +91/-25
Implement gradient-reveal for text appearing.
telegramdesktop/tdesktop/dev • 9af4fb4 • 3 files, +78/-28
Improve text-tight bubble width, appear animation.
#tdesktop
🫡3
telegramdesktop/tdesktop/dev • 37d870f • 1 files, +1/-1
[poll-view] Fixed option bar width to match percentage.
telegramdesktop/tdesktop/dev • 418233f • 7 files, +41/-0
Added frame-by-frame stepping hotkeys to media view on paused video.
telegramdesktop/tdesktop/dev • d6d7046 • 1 files, +29/-20
Fixed ability to open profile of poll option creator from menu.
telegramdesktop/tdesktop/dev • 365cd72 • 1 files, +8/-0
Fixed display of button for new poll in shared polls.
telegramdesktop/tdesktop/dev • 9245c2e • 2 files, +4/-0
Fixed missing reply action for timecode reply in voice messages menu.
Related commit: 73d0b4cb84.
Fixed #30557.
telegramdesktop/tdesktop/dev • de737b3 • 4 files, +309/-92
Added support of pagination to stickers and emoji search.
telegramdesktop/tdesktop/dev • 52615a3 • 12 files, +236/-41
Added support of draw-to-reply from shared media.
telegramdesktop/tdesktop/dev • faa7c1c • 1 files, +3/-1
Fixed spoiler menu entry display for non-media files in send files box.
telegramdesktop/tdesktop/dev • d6cb8d6 • 2 files, +7/-0
Added drag support for url inline keyboard buttons in messages.
telegramdesktop/tdesktop/dev • cfa8ecb • 1 files, +2/-0
Fix possible crash in ResolveWindowDefault.
telegramdesktop/tdesktop/dev • ab61dda • 1 files, +3/-4
Disable shrink-to-text with media shown.
telegramdesktop/tdesktop/dev • 05d2881 • 1 files, +1/-27
Disable attempts to launch bingmaps.
Fixes #30551.
#tdesktop
[poll-view] Fixed option bar width to match percentage.
telegramdesktop/tdesktop/dev • 418233f • 7 files, +41/-0
Added frame-by-frame stepping hotkeys to media view on paused video.
telegramdesktop/tdesktop/dev • d6d7046 • 1 files, +29/-20
Fixed ability to open profile of poll option creator from menu.
telegramdesktop/tdesktop/dev • 365cd72 • 1 files, +8/-0
Fixed display of button for new poll in shared polls.
telegramdesktop/tdesktop/dev • 9245c2e • 2 files, +4/-0
Fixed missing reply action for timecode reply in voice messages menu.
Related commit: 73d0b4cb84.
Fixed #30557.
telegramdesktop/tdesktop/dev • de737b3 • 4 files, +309/-92
Added support of pagination to stickers and emoji search.
telegramdesktop/tdesktop/dev • 52615a3 • 12 files, +236/-41
Added support of draw-to-reply from shared media.
telegramdesktop/tdesktop/dev • faa7c1c • 1 files, +3/-1
Fixed spoiler menu entry display for non-media files in send files box.
telegramdesktop/tdesktop/dev • d6cb8d6 • 2 files, +7/-0
Added drag support for url inline keyboard buttons in messages.
telegramdesktop/tdesktop/dev • cfa8ecb • 1 files, +2/-0
Fix possible crash in ResolveWindowDefault.
telegramdesktop/tdesktop/dev • ab61dda • 1 files, +3/-4
Disable shrink-to-text with media shown.
telegramdesktop/tdesktop/dev • 05d2881 • 1 files, +1/-27
Disable attempts to launch bingmaps.
Fixes #30551.
#tdesktop
🫡4
telegramdesktop/tdesktop/dev • 59e64f5 • 1 files, +5/-1
Fix possible crash in chats list.
telegramdesktop/tdesktop/dev • d36f7d5 • 1 files, +1/-0
Make sure we check for non-null in background first.
#tdesktop
Fix possible crash in chats list.
telegramdesktop/tdesktop/dev • d36f7d5 • 1 files, +1/-0
Make sure we check for non-null in background first.
#tdesktop
🫡3
tdlib/td/master • c4394fe • 4 files, +36/-0
Add and use MessagesManager::get_message_poll_id.
tdlib/td/master • b0c75c1 • 7 files, +12/-82
Move set_poll_answer and get_poll_voters to PollManager.
tdlib/td/master • 42ea83d • 7 files, +19/-50
Move stop_poll to PollManager.
tdlib/td/master • ea683b2 • 7 files, +12/-55
Move add_poll_option and delete_poll_option to PollManager.
tdlib/td/master • 3bde478 • 2 files, +2/-2
Make iOS build reproducible by @g000sha256.
tdlib/td/master • f3713bb • 1 files, +3/-1
Add g000sha256/tdl-coroutines to the list of examples.
tdlib/td/master • 8921c22 • 2 files, +13/-13
Fix handling of links to specific task and poll option.
#tdlib
Add and use MessagesManager::get_message_poll_id.
tdlib/td/master • b0c75c1 • 7 files, +12/-82
Move set_poll_answer and get_poll_voters to PollManager.
tdlib/td/master • 42ea83d • 7 files, +19/-50
Move stop_poll to PollManager.
tdlib/td/master • ea683b2 • 7 files, +12/-55
Move add_poll_option and delete_poll_option to PollManager.
tdlib/td/master • 3bde478 • 2 files, +2/-2
Make iOS build reproducible by @g000sha256.
tdlib/td/master • f3713bb • 1 files, +3/-1
Add g000sha256/tdl-coroutines to the list of examples.
tdlib/td/master • 8921c22 • 2 files, +13/-13
Fix handling of links to specific task and poll option.
#tdlib
🫡2
Ajaxy/telegram-tt/master • 507123f • 4 files, +4/-5
12.0.23
Ajaxy/telegram-tt/master • 85c6df2 • 17 files, +756/-89
Layer: Support layer 224 (#6801)
Ajaxy/telegram-tt/master • aafb84c • 16 files, +144/-50
Dialog: Migrate messages to new lang API (#6800)
Ajaxy/telegram-tt/master • 0d9d4bb • 4 files, +58/-116
Update layer (#6827)
Ajaxy/telegram-tt/master • 319c039 • 150 files, +3009/-4586
Bump dependencies (#6714)
Ajaxy/telegram-tt/master • 2bf27f3 • 1 files, +22/-12
Calendar: Jump by year while holding Shift (#6828)
Ajaxy/telegram-tt/master • 54d5b79 • 3 files, +6/-7
Tauri: Fix build on Mac (#6829)
Ajaxy/telegram-tt/master • ee3faa9 • 1 files, +2/-3
Reactions: Allow in chat with Telegram (#6831)
Ajaxy/telegram-tt/master • 29b8289 • 2 files, +18/-18
[dev] GH Actions: Bump version (#6830)
Ajaxy/telegram-tt/master • e9955fa • 2 files, +10/-12
Pull translations from platform (#6832)
Ajaxy/telegram-tt/master • a2a601f • 19 files, +820/-217
Dates: Support composer input (#6796)
Ajaxy/telegram-tt/master • 43b6ddd • 2 files, +2/-3
Forward Modal: Make items wider (#6833)
Ajaxy/telegram-tt/master • ac07a22 • 3 files, +6/-9
Message: Fix appearance order (#6835)
Ajaxy/telegram-tt/master • 97ba6b8 • 31 files, +1558/-60
UI: Introduce new set of controls (#6825)
Ajaxy/telegram-tt/master • 854ee08 • 2 files, +30/-24
Composer: Check character limit on edit (#6839)
#webz
12.0.23
Ajaxy/telegram-tt/master • 85c6df2 • 17 files, +756/-89
Layer: Support layer 224 (#6801)
Ajaxy/telegram-tt/master • aafb84c • 16 files, +144/-50
Dialog: Migrate messages to new lang API (#6800)
Ajaxy/telegram-tt/master • 0d9d4bb • 4 files, +58/-116
Update layer (#6827)
Ajaxy/telegram-tt/master • 319c039 • 150 files, +3009/-4586
Bump dependencies (#6714)
Ajaxy/telegram-tt/master • 2bf27f3 • 1 files, +22/-12
Calendar: Jump by year while holding Shift (#6828)
Ajaxy/telegram-tt/master • 54d5b79 • 3 files, +6/-7
Tauri: Fix build on Mac (#6829)
Ajaxy/telegram-tt/master • ee3faa9 • 1 files, +2/-3
Reactions: Allow in chat with Telegram (#6831)
Ajaxy/telegram-tt/master • 29b8289 • 2 files, +18/-18
[dev] GH Actions: Bump version (#6830)
Ajaxy/telegram-tt/master • e9955fa • 2 files, +10/-12
Pull translations from platform (#6832)
Ajaxy/telegram-tt/master • a2a601f • 19 files, +820/-217
Dates: Support composer input (#6796)
Ajaxy/telegram-tt/master • 43b6ddd • 2 files, +2/-3
Forward Modal: Make items wider (#6833)
Ajaxy/telegram-tt/master • ac07a22 • 3 files, +6/-9
Message: Fix appearance order (#6835)
Ajaxy/telegram-tt/master • 97ba6b8 • 31 files, +1558/-60
UI: Introduce new set of controls (#6825)
Ajaxy/telegram-tt/master • 854ee08 • 2 files, +30/-24
Composer: Check character limit on edit (#6839)
#webz
🫡2
Ajaxy/telegram-tt/master • e98306c • 3 files, +32/-27
Chat List: Move unread badge on forum view (#6837)
Ajaxy/telegram-tt/master • dd86466 • 3 files, +3/-3
[dev] Better comments (#6841)
Ajaxy/telegram-tt/master • 8f5108c • 2 files, +19/-19
Passkey: Fix date format (#6844)
Ajaxy/telegram-tt/master • 32a0a1e • 2 files, +5/-4
Message List: Fix stuck scheduled loading (#6846)
Ajaxy/telegram-tt/master • 7b26965 • 6 files, +26/-1
Profile: Show insecure client warning (#6845)
Ajaxy/telegram-tt/master • d7e3456 • 7 files, +113/-60
Forward: Fix forward to forum topics (#6842)
Co-authored-by: Dmitry Kabanov <153344039+dmitrykabanovdev@users.noreply.github.com>
Co-authored-by: Dmitry Kabanov <dmitrykabanovdev@gmail.com>
Ajaxy/telegram-tt/master • d4138b0 • 69 files, +2928/-134
Composer: Support AI messages (#6826)
Ajaxy/telegram-tt/master • fc0e52e • 94 files, +3848/-2485
Poll: Support new features (#6819)
Ajaxy/telegram-tt/master • 3248a9a • 2 files, +0/-0
Icons: Rebuild (#6850)
Ajaxy/telegram-tt/master • f2c6e8c • 300 files, +1497/-1481
[Build]
#webz
Chat List: Move unread badge on forum view (#6837)
Ajaxy/telegram-tt/master • dd86466 • 3 files, +3/-3
[dev] Better comments (#6841)
Ajaxy/telegram-tt/master • 8f5108c • 2 files, +19/-19
Passkey: Fix date format (#6844)
Ajaxy/telegram-tt/master • 32a0a1e • 2 files, +5/-4
Message List: Fix stuck scheduled loading (#6846)
Ajaxy/telegram-tt/master • 7b26965 • 6 files, +26/-1
Profile: Show insecure client warning (#6845)
Ajaxy/telegram-tt/master • d7e3456 • 7 files, +113/-60
Forward: Fix forward to forum topics (#6842)
Co-authored-by: Dmitry Kabanov <153344039+dmitrykabanovdev@users.noreply.github.com>
Co-authored-by: Dmitry Kabanov <dmitrykabanovdev@gmail.com>
Ajaxy/telegram-tt/master • d4138b0 • 69 files, +2928/-134
Composer: Support AI messages (#6826)
Ajaxy/telegram-tt/master • fc0e52e • 94 files, +3848/-2485
Poll: Support new features (#6819)
Ajaxy/telegram-tt/master • 3248a9a • 2 files, +0/-0
Icons: Rebuild (#6850)
Ajaxy/telegram-tt/master • f2c6e8c • 300 files, +1497/-1481
[Build]
#webz
🫡2
telegramdesktop/tdesktop/dev • c5317e6 • 2 files, +26/-50
Revert "Replace mozjpeg with jpegli on Linux"
This reverts commit cb5fdac0da0cb063fe3978a4220eca16a328a17d.
#tdesktop
Revert "Replace mozjpeg with jpegli on Linux"
This reverts commit cb5fdac0da0cb063fe3978a4220eca16a328a17d.
#tdesktop
🫡3
Ajaxy/telegram-tt/master • ce378d0 • 4 files, +5/-5
12.0.24
Ajaxy/telegram-tt/master • c97503a • 4 files, +5/-2
Mini App: Bring back `allow-same-origin` (#6852)
Ajaxy/telegram-tt/master • 41688f5 • 22 files, +25/-25
[Build]
#webz
12.0.24
Ajaxy/telegram-tt/master • c97503a • 4 files, +5/-2
Mini App: Bring back `allow-same-origin` (#6852)
Ajaxy/telegram-tt/master • 41688f5 • 22 files, +25/-25
[Build]
#webz
🫡2
telegramdesktop/tdesktop/dev • f9d8628 • 1 files, +1/-1
Fix build with GCC.
telegramdesktop/tdesktop/dev • 33dda9d • 1 files, +27/-1
Return possibility for maps handler customization on Windows.
telegramdesktop/tdesktop/dev • 59e9a91 • 2 files, +7/-1
First text appearing animation duration floor.
telegramdesktop/tdesktop/dev • 668a91b • 6 files, +31/-15
Version 6.7.6.
- Gradient-reveal animation for text appearing in messages.
- Support draw-to-reply from shared media.
- Frame-by-frame stepping and hold-to-speedup hotkeys in media view.
- Fix loading stickers and emoji search results.
- Custom emoji picker for premium quick reaction.
- Search in section of pinned messages.
- Recent search entries in settings search.
- Hide phone number in main settings section.
- Suggest sending large texts as files.
- Allow creating polls with single answer option.
- Bring menus and fullscreen media viewer to active space on macOS.
- Fix several poll display and voting menu issues.
- Fix possible crashes in chats list, url auth and others.
#tdesktop
Fix build with GCC.
telegramdesktop/tdesktop/dev • 33dda9d • 1 files, +27/-1
Return possibility for maps handler customization on Windows.
telegramdesktop/tdesktop/dev • 59e9a91 • 2 files, +7/-1
First text appearing animation duration floor.
telegramdesktop/tdesktop/dev • 668a91b • 6 files, +31/-15
Version 6.7.6.
- Gradient-reveal animation for text appearing in messages.
- Support draw-to-reply from shared media.
- Frame-by-frame stepping and hold-to-speedup hotkeys in media view.
- Fix loading stickers and emoji search results.
- Custom emoji picker for premium quick reaction.
- Search in section of pinned messages.
- Recent search entries in settings search.
- Hide phone number in main settings section.
- Suggest sending large texts as files.
- Allow creating polls with single answer option.
- Bring menus and fullscreen media viewer to active space on macOS.
- Fix several poll display and voting menu issues.
- Fix possible crashes in chats list, url auth and others.
#tdesktop
🫡3
New telegramdesktop/tdesktop release:
- Gradient-reveal animation for text appearing in messages.
- Support draw-to-reply from shared media.
- Frame-by-frame stepping and hold-to-speedup hotkeys in media view.
- Fix loading stickers and emoji search results.
- Custom emoji picker for premium quick reaction.
- Search in section of pinned messages.
- Recent search entries in settings search.
- Hide phone number in main settings section.
- Suggest sending large texts as files.
- Allow creating polls with single answer option.
- Bring menus and fullscreen media viewer to active space on macOS.
- Fix several poll display and voting menu issues.
- Fix possible crashes in chats list, url auth and others.
#tdesktop
v6.7.6 (stable)- Gradient-reveal animation for text appearing in messages.
- Support draw-to-reply from shared media.
- Frame-by-frame stepping and hold-to-speedup hotkeys in media view.
- Fix loading stickers and emoji search results.
- Custom emoji picker for premium quick reaction.
- Search in section of pinned messages.
- Recent search entries in settings search.
- Hide phone number in main settings section.
- Suggest sending large texts as files.
- Allow creating polls with single answer option.
- Bring menus and fullscreen media viewer to active space on macOS.
- Fix several poll display and voting menu issues.
- Fix possible crashes in chats list, url auth and others.
#tdesktop
🫡4
Assets for release
• Source code (tar.gz, full)
• Windows on ARM: Portable
• Windows 64 bit: Portable
• Windows 32 bit: Portable
• Windows on ARM: Installer
• Windows 64 bit: Installer
• macOS 10.13+: Installer
• Windows 32 bit: Installer
• Linux 64 bit: Binary
#tdesktop
v6.7.6 of telegramdesktop/tdesktop:• Source code (tar.gz, full)
• Windows on ARM: Portable
• Windows 64 bit: Portable
• Windows 32 bit: Portable
• Windows on ARM: Installer
• Windows 64 bit: Installer
• macOS 10.13+: Installer
• Windows 32 bit: Installer
• Linux 64 bit: Binary
#tdesktop
🫡3
TelegramMessenger/tgcalls/experimental • 616810f • 38 files, +38/-0
build: add #include <cstdint> for GCC 15 compatibility
TelegramMessenger/tgcalls/experimental • 24fd51b • 7 files, +2218/-19
feat: SCTP signaling improvements for reliable connection establishment
Add writable gate for role-based SCTP handshake ordering: caller
(isOutgoing=true) starts writable and sends INIT immediately; callee
starts not-writable and defers Connect() until first received packet
triggers setWritable(true).
Implement CustomDcSctpSocket to fix WebRTC's missing timer backoff cap
on t1_init and t1_cookie handshake timers. Without this, simultaneous-open
under packet loss causes 20+ second stalls due to unlimited exponential
backoff (1s, 2s, 4s, 8s...). With the fix: 400ms init, 750ms max backoff,
yielding ~18 attempts in 15s and 100% success at 30% loss.
Timer values are configurable via JSON custom parameters:
- network_sctp_t1_init_ms, network_sctp_t1_cookie_ms, network_sctp_max_backoff_ms
Squashed from:
- feat: add SCTP writable gate for role-based handshake ordering
- chore: whitespace cleanup in NativeNetworkingImpl
- fix: CustomDcSctpSocket with t1 timer backoff cap for signaling SCTP
TelegramMessenger/tgcalls/experimental • 212a874 • 1 files, +5/-0
fix: use-after-free in InstanceV2ReferenceImpl::writeStateLogRecords()
writeStateLogRecords() captured a raw Call* pointer on the media thread
and posted it to the worker thread. If stop() called
_peerConnection->Close() (which destroys Call) between the post and
worker thread execution, the worker thread would dereference a dangling
pointer. WebRTC's call_ptr_ is Call* const and never nulled after Close(),
so the existing null check didn't catch this.
Fix: add _isStopped atomic flag, set before Close() in stop(), checked
in the worker thread lambda before accessing call.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
#tgcalls
build: add #include <cstdint> for GCC 15 compatibility
TelegramMessenger/tgcalls/experimental • 24fd51b • 7 files, +2218/-19
feat: SCTP signaling improvements for reliable connection establishment
Add writable gate for role-based SCTP handshake ordering: caller
(isOutgoing=true) starts writable and sends INIT immediately; callee
starts not-writable and defers Connect() until first received packet
triggers setWritable(true).
Implement CustomDcSctpSocket to fix WebRTC's missing timer backoff cap
on t1_init and t1_cookie handshake timers. Without this, simultaneous-open
under packet loss causes 20+ second stalls due to unlimited exponential
backoff (1s, 2s, 4s, 8s...). With the fix: 400ms init, 750ms max backoff,
yielding ~18 attempts in 15s and 100% success at 30% loss.
Timer values are configurable via JSON custom parameters:
- network_sctp_t1_init_ms, network_sctp_t1_cookie_ms, network_sctp_max_backoff_ms
Squashed from:
- feat: add SCTP writable gate for role-based handshake ordering
- chore: whitespace cleanup in NativeNetworkingImpl
- fix: CustomDcSctpSocket with t1 timer backoff cap for signaling SCTP
TelegramMessenger/tgcalls/experimental • 212a874 • 1 files, +5/-0
fix: use-after-free in InstanceV2ReferenceImpl::writeStateLogRecords()
writeStateLogRecords() captured a raw Call* pointer on the media thread
and posted it to the worker thread. If stop() called
_peerConnection->Close() (which destroys Call) between the post and
worker thread execution, the worker thread would dereference a dangling
pointer. WebRTC's call_ptr_ is Call* const and never nulled after Close(),
so the existing null check didn't catch this.
Fix: add _isStopped atomic flag, set before Close() in stop(), checked
in the worker thread lambda before accessing call.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
#tgcalls
🫡3
TelegramMessenger/tgcalls/experimental • eb2bd7d • 7 files, +2173/-155
feat: add InstanceV2CompatImpl for cross-version interop (v14.0.0)
New implementation that uses WebRTC PeerConnection internally but speaks
V2Impl's signaling protocol (InitialSetupMessage, NegotiateChannelsMessage,
CandidatesMessage). Enables bidirectional calls between PeerConnection-based
clients and V2Impl clients (versions 7.0.0-13.0.0).
Architecture: PeerConnection <-> SignalingTranslator <-> EncryptedConnection
<-> SignalingSctpConnection
Key components:
- SignalingTranslator: converts between cricket::SessionDescription and V2Impl
signaling messages using JsepSessionDescription programmatic API (no SDP
string round-trips)
- Shared conversion functions extracted to Signaling.h/.cpp for use by both
ContentNegotiationContext (V2Impl) and SignalingTranslator (CompatImpl)
- Data channel works for CompatImpl<->CompatImpl calls; padded as rejected
when paired with V2Impl (which has no PeerConnection)
100% success rate at 30% loss in both call directions.
Squashed from:
- refactor: extract signaling content conversion functions to Signaling.h/.cpp
- feat: add SignalingTranslator for V2Impl signaling <-> PeerConnection conversion
- feat: add InstanceV2CompatImpl — PeerConnection with V2Impl signaling (version 14.0.0)
- feat: add data channel support to InstanceV2CompatImpl
TelegramMessenger/tgcalls/experimental • 08cd6d5 • 2 files, +1110/-0
feat: add GroupInstanceReferenceImpl — PeerConnection-based group calls
Alternative group call implementation using standard WebRTC PeerConnection
instead of the manual ICE/DTLS/SRTP management in GroupInstanceCustomImpl.
Implements the same GroupInstanceInterface (~1500 lines vs ~4700).
Uses a single PeerConnection to the SFU with:
- sendrecv audio transceiver (outgoing audio)
- recvonly audio transceivers added dynamically per remote SSRC
- data channel for Colibri protocol (ActiveAudioSsrcs discovery)
- Programmatic SDP construction via cricket::SessionDescription API
Key implementation details:
- Loopback ICE enabled (network_ignore_mask=0) for localhost SFU
- RTP header extensions copied from local offer per m-line (BUNDLE-safe)
- MID extension excluded from remote answer to prevent wrong-channel routing
- Renegotiation mirrors local offer mids exactly in constructed answer
- Synthetic audio levels (0.1) for known remote SSRCs
- Serialized renegotiation (one offer/answer at a time)
Squashed from:
- feat: add GroupInstanceReferenceImpl — PeerConnection-based group call client
- fix: add missing jsep_session_description.h include
- fix: enable loopback ICE and add remote candidates
- fix: add RTP header extensions to SDP answer
- fix: rewrite buildRemoteAnswer to mirror local offer mids for renegotiation
- fix: simplify audio level polling to use known remote SSRCs directly
#tgcalls
feat: add InstanceV2CompatImpl for cross-version interop (v14.0.0)
New implementation that uses WebRTC PeerConnection internally but speaks
V2Impl's signaling protocol (InitialSetupMessage, NegotiateChannelsMessage,
CandidatesMessage). Enables bidirectional calls between PeerConnection-based
clients and V2Impl clients (versions 7.0.0-13.0.0).
Architecture: PeerConnection <-> SignalingTranslator <-> EncryptedConnection
<-> SignalingSctpConnection
Key components:
- SignalingTranslator: converts between cricket::SessionDescription and V2Impl
signaling messages using JsepSessionDescription programmatic API (no SDP
string round-trips)
- Shared conversion functions extracted to Signaling.h/.cpp for use by both
ContentNegotiationContext (V2Impl) and SignalingTranslator (CompatImpl)
- Data channel works for CompatImpl<->CompatImpl calls; padded as rejected
when paired with V2Impl (which has no PeerConnection)
100% success rate at 30% loss in both call directions.
Squashed from:
- refactor: extract signaling content conversion functions to Signaling.h/.cpp
- feat: add SignalingTranslator for V2Impl signaling <-> PeerConnection conversion
- feat: add InstanceV2CompatImpl — PeerConnection with V2Impl signaling (version 14.0.0)
- feat: add data channel support to InstanceV2CompatImpl
TelegramMessenger/tgcalls/experimental • 08cd6d5 • 2 files, +1110/-0
feat: add GroupInstanceReferenceImpl — PeerConnection-based group calls
Alternative group call implementation using standard WebRTC PeerConnection
instead of the manual ICE/DTLS/SRTP management in GroupInstanceCustomImpl.
Implements the same GroupInstanceInterface (~1500 lines vs ~4700).
Uses a single PeerConnection to the SFU with:
- sendrecv audio transceiver (outgoing audio)
- recvonly audio transceivers added dynamically per remote SSRC
- data channel for Colibri protocol (ActiveAudioSsrcs discovery)
- Programmatic SDP construction via cricket::SessionDescription API
Key implementation details:
- Loopback ICE enabled (network_ignore_mask=0) for localhost SFU
- RTP header extensions copied from local offer per m-line (BUNDLE-safe)
- MID extension excluded from remote answer to prevent wrong-channel routing
- Renegotiation mirrors local offer mids exactly in constructed answer
- Synthetic audio levels (0.1) for known remote SSRCs
- Serialized renegotiation (one offer/answer at a time)
Squashed from:
- feat: add GroupInstanceReferenceImpl — PeerConnection-based group call client
- fix: add missing jsep_session_description.h include
- fix: enable loopback ICE and add remote candidates
- fix: add RTP header extensions to SDP answer
- fix: rewrite buildRemoteAnswer to mirror local offer mids for renegotiation
- fix: simplify audio level polling to use known remote SSRCs directly
#tgcalls
🫡3💅1
TelegramMessenger/tgcalls/experimental • b0245de • 3 files, +533/-17
feat: add video support to group calls (CustomImpl + ReferenceImpl)
Enable H264 simulcast video in group calls for both GroupInstanceCustomImpl
and GroupInstanceReferenceImpl, with reactive channel setup mirroring the
real Telegram app's flow.
Infrastructure:
- DiscardPacketsWithUnknownSsrc field trial prevents outgoing video channel
from stealing incoming RTP for unregistered SSRCs
- dataChannelMessageReceived callback on GroupInstanceDescriptor forwards
Colibri messages (ActiveVideoSsrcs) to the application layer
ReferenceImpl video implementation:
- Pre-allocate 6 video SSRCs (3 layers x primary + RTX) at construction
- SDP munging: replace PeerConnection's auto-generated StreamParams with
pre-allocated SSRCs + SIM + FID groups before SetLocalDescription
- Video source activated via sender()->SetTrack() (no renegotiation)
- Incoming video: recvonly transceivers with explicit remote SSRCs in answer
(required because DiscardPacketsWithUnknownSsrc is process-wide)
- Video sinks wired explicitly after SetRemoteDescription (OnTrack doesn't
fire for locally-created recvonly transceivers)
- Colibri ReceiverVideoConstraints sent over data channel to control SFU
forwarding; SFU responds with SenderVideoConstraints + proactive PLI
Squashed from:
- feat: enable DiscardPacketsWithUnknownSsrc field trial for video group calls
- feat: add dataChannelMessageReceived callback to GroupInstanceDescriptor
- feat(group-ref): store video configuration from descriptor
- feat(group-ref): pre-allocate video SSRCs and include in join payload
- feat(group-ref): add video encoder/decoder factories to PeerConnectionFactory
- feat(group-ref): implement setVideoSource with SDP munging for simulcast SSRCs
- feat(group-ref): extend buildRemoteAnswer with video m-line construction
- feat(group-ref): forward data channel messages to app for video signaling
- feat(group-ref): implement setRequestedVideoChannels with Colibri constraints
- feat(group-ref): implement addIncomingVideoOutput with video sink wiring
- fix(group-ref): activate outgoing video after join response is applied
- feat(group-ref): add video support to GroupInstanceReferenceImpl
#tgcalls
feat: add video support to group calls (CustomImpl + ReferenceImpl)
Enable H264 simulcast video in group calls for both GroupInstanceCustomImpl
and GroupInstanceReferenceImpl, with reactive channel setup mirroring the
real Telegram app's flow.
Infrastructure:
- DiscardPacketsWithUnknownSsrc field trial prevents outgoing video channel
from stealing incoming RTP for unregistered SSRCs
- dataChannelMessageReceived callback on GroupInstanceDescriptor forwards
Colibri messages (ActiveVideoSsrcs) to the application layer
ReferenceImpl video implementation:
- Pre-allocate 6 video SSRCs (3 layers x primary + RTX) at construction
- SDP munging: replace PeerConnection's auto-generated StreamParams with
pre-allocated SSRCs + SIM + FID groups before SetLocalDescription
- Video source activated via sender()->SetTrack() (no renegotiation)
- Incoming video: recvonly transceivers with explicit remote SSRCs in answer
(required because DiscardPacketsWithUnknownSsrc is process-wide)
- Video sinks wired explicitly after SetRemoteDescription (OnTrack doesn't
fire for locally-created recvonly transceivers)
- Colibri ReceiverVideoConstraints sent over data channel to control SFU
forwarding; SFU responds with SenderVideoConstraints + proactive PLI
Squashed from:
- feat: enable DiscardPacketsWithUnknownSsrc field trial for video group calls
- feat: add dataChannelMessageReceived callback to GroupInstanceDescriptor
- feat(group-ref): store video configuration from descriptor
- feat(group-ref): pre-allocate video SSRCs and include in join payload
- feat(group-ref): add video encoder/decoder factories to PeerConnectionFactory
- feat(group-ref): implement setVideoSource with SDP munging for simulcast SSRCs
- feat(group-ref): extend buildRemoteAnswer with video m-line construction
- feat(group-ref): forward data channel messages to app for video signaling
- feat(group-ref): implement setRequestedVideoChannels with Colibri constraints
- feat(group-ref): implement addIncomingVideoOutput with video sink wiring
- fix(group-ref): activate outgoing video after join response is applied
- feat(group-ref): add video support to GroupInstanceReferenceImpl
#tgcalls
🫡4💅1
UnigramDev/Unigram/develop • f2522c1 • 1 files, +1/-1
Update TDLib
UnigramDev/Unigram/develop • c7d57ba • 45 files, +2486/-281
Initial progress with polls
UnigramDev/Unigram/develop • 55601bf • 8 files, +504/-15
Initial progress with ai editor
UnigramDev/Unigram/develop • 09deed4 • 14 files, +71/-21
API changes
UnigramDev/Unigram/develop • 64bc48e • 2 files, +70/-0
Markup acc
UnigramDev/Unigram/develop • 5d603eb • 1 files, +1/-1
Show "Connecting to proxy" whenever a proxy is enabled
UnigramDev/Unigram/develop • 7f01357 • 2 files, +2/-2
Bump version to 12.6
#unigram
Update TDLib
UnigramDev/Unigram/develop • c7d57ba • 45 files, +2486/-281
Initial progress with polls
UnigramDev/Unigram/develop • 55601bf • 8 files, +504/-15
Initial progress with ai editor
UnigramDev/Unigram/develop • 09deed4 • 14 files, +71/-21
API changes
UnigramDev/Unigram/develop • 64bc48e • 2 files, +70/-0
Markup acc
UnigramDev/Unigram/develop • 5d603eb • 1 files, +1/-1
Show "Connecting to proxy" whenever a proxy is enabled
UnigramDev/Unigram/develop • 7f01357 • 2 files, +2/-2
Bump version to 12.6
#unigram
🫡2
🫡3
telegramdesktop/tdesktop/dev • 0e7a483 • 1 files, +1/-1
Fix muted icon outline clipping.
telegramdesktop/tdesktop/dev • b87df70 • 1 files, +6/-7
Fix microphone testing in Settings.
telegramdesktop/tdesktop/dev • d39af8e • 1 files, +2/-2
[ai] Fix custom command for icon creation.
telegramdesktop/tdesktop/dev • ce10b71 • 1 files, +1/-1
Fix geometry counting around collapsed blockquote.
telegramdesktop/tdesktop/dev • e3a34ea • 5 files, +90/-21
Cache date string in dialog rows.
telegramdesktop/tdesktop/dev • f31421a • 1 files, +2/-2
Fix unread media indicator display.
telegramdesktop/tdesktop/dev • 1b96772 • 1 files, +3/-3
Allow continue macOS build after partial.
telegramdesktop/tdesktop/dev • 2cd90eb • 14 files, +958/-133
Add proxy auto-rotation option.
#tdesktop
Fix muted icon outline clipping.
telegramdesktop/tdesktop/dev • b87df70 • 1 files, +6/-7
Fix microphone testing in Settings.
telegramdesktop/tdesktop/dev • d39af8e • 1 files, +2/-2
[ai] Fix custom command for icon creation.
telegramdesktop/tdesktop/dev • ce10b71 • 1 files, +1/-1
Fix geometry counting around collapsed blockquote.
telegramdesktop/tdesktop/dev • e3a34ea • 5 files, +90/-21
Cache date string in dialog rows.
telegramdesktop/tdesktop/dev • f31421a • 1 files, +2/-2
Fix unread media indicator display.
telegramdesktop/tdesktop/dev • 1b96772 • 1 files, +3/-3
Allow continue macOS build after partial.
telegramdesktop/tdesktop/dev • 2cd90eb • 14 files, +958/-133
Add proxy auto-rotation option.
#tdesktop
🫡4💅1
🫡3
telegramdesktop/tdesktop/dev • aae5631 • 2 files, +19/-5
Fix bio cut-off in calls peer info.
#tdesktop
Fix bio cut-off in calls peer info.
#tdesktop
🫡3