Telegram github commits and releases
4.85K subscribers
601 files
19.1K links
Broadcast from the most important Telegram clients' repositories
Download Telegram
TelegramMessenger/tgcalls/experimentaleb2bd7d7 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/experimental08cd6d52 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/experimentalb0245de3 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
🫡4💅1
UnigramDev/Unigram/developf2522c11 files, +1/-1
Update TDLib

UnigramDev/Unigram/developc7d57ba45 files, +2486/-281
Initial progress with polls

UnigramDev/Unigram/develop55601bf8 files, +504/-15
Initial progress with ai editor

UnigramDev/Unigram/develop09deed414 files, +71/-21
API changes

UnigramDev/Unigram/develop64bc48e2 files, +70/-0
Markup acc

UnigramDev/Unigram/develop5d603eb1 files, +1/-1
Show "Connecting to proxy" whenever a proxy is enabled

UnigramDev/Unigram/develop7f013572 files, +2/-2
Bump version to 12.6

#unigram
🫡2
morethanwords/tweb/design26dd6a7a966 files, +2085/-1314
WIP: New Forward

#webk
🫡3
telegramdesktop/tdesktop/dev0e7a4831 files, +1/-1
Fix muted icon outline clipping.

telegramdesktop/tdesktop/devb87df701 files, +6/-7
Fix microphone testing in Settings.

telegramdesktop/tdesktop/devd39af8e1 files, +2/-2
[ai] Fix custom command for icon creation.

telegramdesktop/tdesktop/devce10b711 files, +1/-1
Fix geometry counting around collapsed blockquote.

telegramdesktop/tdesktop/deve3a34ea5 files, +90/-21
Cache date string in dialog rows.

telegramdesktop/tdesktop/devf31421a1 files, +2/-2
Fix unread media indicator display.

telegramdesktop/tdesktop/dev1b967721 files, +3/-3
Allow continue macOS build after partial.

telegramdesktop/tdesktop/dev2cd90eb14 files, +958/-133
Add proxy auto-rotation option.

#tdesktop
🫡4💅1
telegramdesktop/tdesktop/dev6cc58e33 files, +8/-17
Use git -C with xargs

#tdesktop
🫡3
telegramdesktop/tdesktop/devaae56312 files, +19/-5
Fix bio cut-off in calls peer info.

#tdesktop
🫡3
morethanwords/tweb/claude/upbeat-lamarr-eecfec9a37da26 files, +10/-14
Fix several small bugs

- Hide message read info in context menu for bot chats
- Fix broken asset URLs in SCSS (url(assets/...) resolved relative to
the CSS file, e.g. /partials/assets/... instead of /assets/...);
this also fixes the monoforum avatar mask, media editor assets and
chat thread separator backgrounds
- Fix birthday display for dates where the day does not exist in the
current month (e.g. Oct 31 while today is April): the previous
setDate/setMonth/setFullYear sequence overflowed the day; use the
Date constructor directly

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

#webk
🤝2🫡2👍1
morethanwords/tweb/master0d79feb6 files, +10/-14
Merge pull request #629 from morethanwords/claude/upbeat-lamarr-eecfec

Fix several small bugs

#webk
🫡2👍1
morethanwords/tweb/masteraf9ed281 files, +12/-3
Merge pull request #627 from AoiNyanko/fix-clearing-cache

Fix cache clearing when no service worker is available

#webk
🫡2
morethanwords/tweb/masterfbfab896 files, +30/-13
Various fixes

- Hide DisableSharing, EnableSharing and SendGift menu items for bots
in the chat topbar (SendGift was broken by missing `await` on a
manager proxy call)
- Hide stories menu (Show Archive / Create Album) in profile header
when the viewer lacks edit_stories rights
- Show upload preloader for huge videos that hit the early return in
wrapVideo because canAutoplay is false
- Cap upload progress at fileSize to avoid >100%
- Add quote-block class to quote entities in rich text

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

morethanwords/tweb/master4af54887 files, +22/-17
Merge branch 'master' of https://github.com/morethanwords/tweb

#webk
🫡2
telegramdesktop/tdesktop/dev66b38cc1 files, +9/-2
Pause animations only if video message isn't paused.

telegramdesktop/tdesktop/dev5eed8131 files, +2/-3
Fix layout for RTL messages.

telegramdesktop/tdesktop/dev43192453 files, +204/-31
Allow seeking in video messages.

#tdesktop
🫡3
telegramdesktop/tdesktop/devef848e01 files, +8/-8
Port Linux notifications to std::get_if

There's no sense to use abstrations calling std::holds_alternative

telegramdesktop/tdesktop/dev92488b22 files, +19/-26
Move GNotification action creation to the rest of notification code

telegramdesktop/tdesktop/devbc2eb3d1 files, +4/-20
Remove explicit disconnections where object lifetime is the same

telegramdesktop/tdesktop/devb5f3ea62 files, +26/-1
Try to use KSandbox::startHostProcess

telegramdesktop/tdesktop/dev3fbe3022 files, +167/-0
feat(accessibility): add screen reader support for country select box

#tdesktop
🫡3
telegramdesktop/tdesktop/devc354ed72 files, +202/-169
Simplify, reuse stuff in country_select_box.

telegramdesktop/tdesktop/dev5bb03921 files, +1/-1
Fix sticker size option with scaling

#tdesktop
🫡3
Ajaxy/telegram-tt/master741c6f53 files, +4/-4
12.0.25

Ajaxy/telegram-tt/master86684cd31 files, +1327/-825
Chat: Support unread poll votes (#6847)

Ajaxy/telegram-tt/master5eda3f54 files, +662/-650
Icons: Rebuild (#6855)

Ajaxy/telegram-tt/masterdf5c8291 files, +13/-0
Open Chat Button: Fix text color on button hover (#6859)

Ajaxy/telegram-tt/master889d07829 files, +542/-144
Message Translate: Support Tone (#6849)

Ajaxy/telegram-tt/master7e789e64 files, +23/-9
General: Better validation for iframe event origins (#6856)

Ajaxy/telegram-tt/master83ed53d11 files, +295/-37
UI: Add Island and Surface (#6851)

Ajaxy/telegram-tt/mastere5da72b88 files, +85/-85
[Build]

#webz
🫡2
telegramdesktop/tdesktop/devd53ee9c13 files, +0/-18
Fix warnings.

telegramdesktop/tdesktop/dev6419bb11 files, +1/-1
Update User-Agent for DNS to Chrome 146.0.0.0.

#tdesktop
🫡2
telegramdesktop/tdesktop/deved1e3ca1 files, +1/-1
Bump actions/deploy-pages from 4 to 5

Bumps [actions/deploy-pages](https://github.com/actions/deploy-pages) from 4 to 5.
- [Release notes](https://github.com/actions/deploy-pages/releases)
- [Commits](https://github.com/actions/deploy-pages/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/deploy-pages
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

#tdesktop
🫡3
telegramdesktop/tdesktop/devc9ca79a1 files, +2/-0
Don't remember incorrect value in textRealWidth.

telegramdesktop/tdesktop/dev76a1fff2 files, +18/-3
Update API scheme to layer 225.

telegramdesktop/tdesktop/dev34496016 files, +45/-5
Added subscriber-only poll restrictions in creation flow and MTProto flags

telegramdesktop/tdesktop/dev3df3c2b7 files, +133/-2
Added country-based poll restrictions with selectable allowed countries

telegramdesktop/tdesktop/dev48188762 files, +169/-2
Added poll vote restriction toasts for subscriber and country errors.

telegramdesktop/tdesktop/dev985c7a58 files, +200/-1
Added poll stats action and dialog with API-backed chart loading.

telegramdesktop/tdesktop/devb1589a71 files, +114/-1
Enabled Ctrl for debug config to show mock poll stats.

telegramdesktop/tdesktop/dev69027761 files, +30/-13
Fixed long chart filter labels in statistics.

telegramdesktop/tdesktop/devd6575106 files, +118/-44
Added poll vote restriction info to context menu.

telegramdesktop/tdesktop/devb3f5bb85 files, +181/-49
[poll-view] Improved handle of poll vote restriction.

telegramdesktop/tdesktop/dev8dba4c97 files, +12/-2
Update API scheme on layer 225.

telegramdesktop/tdesktop/dev33d4bea11 files, +142/-2
Support guest chat bot messages.

telegramdesktop/tdesktop/dev16635b65 files, +20/-1
Fix userpic painting for guest chat bot messages.

telegramdesktop/tdesktop/dev8ce0f8a1 files, +11/-0
Add an icon for new tone creation.

#tdesktop
🫡4
telegramdesktop/tdesktop/dev507ab671 files, +19/-1
Update API on layer 225.

telegramdesktop/tdesktop/devd5e3d9718 files, +748/-19
Initial cloud tones support.

telegramdesktop/tdesktop/devcd90c1c4 files, +1/-65
Remove legacy app-config ai tones.

telegramdesktop/tdesktop/devb42dfce6 files, +558/-92
Update API scheme on layer 225. Edit tone icon.

telegramdesktop/tdesktop/devf637d751 files, +10/-0
Add icon for new tone icon placeholder.

telegramdesktop/tdesktop/dev0280fbc5 files, +218/-43
Improve Create/Edit custom AI tone box design.

telegramdesktop/tdesktop/dev224f7b314 files, +383/-23
Update API scheme on layer 225. Show toasts.

telegramdesktop/tdesktop/dev91a82bb7 files, +208/-100
Delete tone from Edit, restore scroll.

telegramdesktop/tdesktop/devba8d1a710 files, +490/-33
wip style preview

telegramdesktop/tdesktop/dev4f259b19 files, +100/-47
wip original quality

telegramdesktop/tdesktop/devab5030711 files, +185/-38
wip links

#tdesktop
🫡3
telegramdesktop/tdesktop/dev827ec8212 files, +168/-44
Bring back original video quality option

#tdesktop
🫡4💅1
telegramdesktop/tdesktop/dev9878ee614 files, +84/-98
Improve work on original video quality.

#tdesktop
🫡3