Telegram github commits and releases
Open in Telegram
Broadcast from the most important Telegram clients' repositories
Show more4 755
Subscribers
-824 hours
-757 days
-12630 days
Data loading in progress...
Similar Channels
Tags Cloud
Incoming and Outgoing Mentions
---
---
---
---
---
---
Attracting Subscribers
July '26
July '260
in 0 channels
June '26
+129
in 0 channels
Get PRO
May '26
+75
in 5 channels
Get PRO
April '26
+39
in 9 channels
Get PRO
March '26
+9
in 1 channels
Get PRO
February '26
+13
in 2 channels
Get PRO
January '26
+16
in 2 channels
Get PRO
December '25
+19
in 0 channels
Get PRO
November '25
+17
in 0 channels
Get PRO
October '25
+7
in 0 channels
Get PRO
September '25
+5
in 0 channels
Get PRO
August '25
+19
in 1 channels
Get PRO
July '25
+21
in 1 channels
Get PRO
June '25
+23
in 0 channels
Get PRO
May '25
+71
in 0 channels
Get PRO
April '25
+28
in 0 channels
Get PRO
March '25
+29
in 0 channels
Get PRO
February '25
+24
in 0 channels
Get PRO
January '25
+61
in 0 channels
Get PRO
December '24
+16
in 0 channels
Get PRO
November '24
+86
in 0 channels
Get PRO
October '24
+112
in 0 channels
Get PRO
September '24
+814
in 0 channels
Get PRO
August '24
+606
in 0 channels
Get PRO
July '24
+475
in 0 channels
Get PRO
June '24
+415
in 0 channels
Get PRO
May '24
+392
in 0 channels
Get PRO
April '24
+422
in 0 channels
Get PRO
March '24
+598
in 1 channels
Get PRO
February '24
+1 585
in 0 channels
Get PRO
January '24
+3 043
in 0 channels
Get PRO
December '23
+3 050
in 0 channels
Get PRO
November '23
+42
in 0 channels
Get PRO
October '23
+34
in 1 channels
Get PRO
September '23
+25
in 0 channels
Get PRO
August '23
+30
in 0 channels
Get PRO
July '23
+26
in 0 channels
Get PRO
June '23
+12
in 0 channels
Get PRO
May '23
+11
in 0 channels
Get PRO
April '23
+18
in 0 channels
Get PRO
March '23
+22
in 0 channels
Get PRO
February '23
+14
in 0 channels
Get PRO
January '23
+10
in 0 channels
Get PRO
December '22
+13
in 0 channels
Get PRO
November '22
+30
in 0 channels
Get PRO
October '22
+9
in 0 channels
Get PRO
September '22
+23
in 0 channels
Get PRO
August '22
+29
in 0 channels
Get PRO
July '22
+36
in 0 channels
Get PRO
June '22
+22
in 0 channels
Get PRO
May '22
+20
in 0 channels
Get PRO
April '22
+40
in 0 channels
Get PRO
March '22
+52
in 0 channels
Get PRO
February '22
+24
in 0 channels
Get PRO
January '22
+13
in 0 channels
Get PRO
December '21
+61
in 0 channels
Get PRO
November '21
+20
in 0 channels
Get PRO
October '21
+11
in 0 channels
Get PRO
September '21
+28
in 0 channels
Get PRO
August '21
+21
in 0 channels
Get PRO
July '21
+31
in 0 channels
Get PRO
June '21
+25
in 0 channels
Get PRO
May '21
+6
in 0 channels
Get PRO
April '21
+40
in 0 channels
Get PRO
March '21
+16
in 0 channels
Get PRO
February '21
+11
in 0 channels
Get PRO
January '21
+30
in 0 channels
Get PRO
December '20
+477
in 0 channels
| Date | Subscriber Growth | Mentions | Channels | |
| 01 July | 0 |
Channel Posts
Ajaxy/telegram-tt/master • f33f22a • 3 files, +4/-4
12.0.32
Ajaxy/telegram-tt/master • 360de48 • 16 files, +188/-37
Support startGroup deep link for bots (#7050)
Ajaxy/telegram-tt/master • 8f8cc05 • 1 files, +12/-3
Modal: Autofocus title by default (#7068)
Ajaxy/telegram-tt/master • 24fab59 • 3 files, +43/-20
Surface Container: Fix background color (#7071)
Ajaxy/telegram-tt/master • 63b505e • 1 files, +4/-1
Profile: Improve closing on Esc logic for profiles (#7070)
Ajaxy/telegram-tt/master • e3318c0 • 2 files, +7/-0
Passcode: Fix button spacing in passcode settings (#7069)
Ajaxy/telegram-tt/master • db6db81 • 5 files, +37/-23
Passcode: Persist shared state to fix theme flicker on unlock (#7066)
Co-authored-by: Dmitry Kabanov <153344039+dmitrykabanovdev@users.noreply.github.com>
Ajaxy/telegram-tt/master • 55557c2 • 6 files, +20/-11
Middle Header Panel: Fix styles (#7072)
Ajaxy/telegram-tt/master • 6a0d49f • 29 files, +587/-240
Middle Column: Redesign composer and chat panels mask (#7059)
Co-authored-by: Alexander Zinchuk <alx.zinchuk@gmail.com>
Ajaxy/telegram-tt/master • 3b3fde0 • 1 files, +19/-6
Mini Apps: Fix miniAppsCachedSize saving after fullscreen (#7074)
Ajaxy/telegram-tt/master • eb9f746 • 88 files, +246/-246
[Build]
#webz
| 2 | morethanwords/tweb/master • 3acb5a4 • 3 files, +295/-0
Add run-build skill to list and serve past build snapshots
Lists the git "Build" commits (compiled app in public/) as a paginated,
date-sorted table, then serves any chosen snapshot locally by extracting
that commit's public/ tree via git archive — mirroring server.js and
leaving the working tree untouched.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
#webk | 72 |
| 3 | telegramdesktop/tdesktop/dev • f1df250 • 1 files, +1/-1
Update lib_ui.
#tdesktop | 79 |
| 4 | telegramdesktop/tdesktop/dev • 3a528d8 • 2 files, +6/-3
Move -fuse-ld=lld to linker flags
telegramdesktop/tdesktop/dev • 6fcd650 • 1 files, +0/-8
Remove cmake policy linking error workarounds
telegramdesktop/tdesktop/dev • a2d3b37 • 3 files, +3/-5
Restore cmake 3.25 as minimum version
telegramdesktop/tdesktop/dev • fa3948d • 1 files, +3/-5
Use theme change event from qApp
telegramdesktop/tdesktop/dev • 09459d1 • 1 files, +9/-8
CreateOfficialIcon -> CreateSupportIcon
That better fits the current meaning
telegramdesktop/tdesktop/dev • 84b0f73 • 1 files, +4/-0
Preserve window icon name on Wayland
#tdesktop | 90 |
| 5 | telegramdesktop/tdesktop/dev • cf661e5 • 1 files, +1/-1
Update User-Agent for DNS to Chrome 149.0.0.0.
#tdesktop | 91 |
| 6 | telegramdesktop/tdesktop/dev • aad218a • 1 files, +0/-8
Removed 4 unused style entries.
#tdesktop | 92 |
| 7 | telegramdesktop/tdesktop/unused_styles_2026_07 • 1af2be2 • 1 files, +0/-8
Removed 4 unused style entries.
#tdesktop | 106 |
| 8 | telegramdesktop/tdesktop/chrome_149.0.0.0 • 0830bf3 • 1 files, +1/-1
Update User-Agent for DNS to Chrome 149.0.0.0.
#tdesktop | 122 |
| 9 | morethanwords/tweb/master • a5c7327 • 1 files, +42/-19
Fix video streaming edge cases in service worker
- Fall back to the worker on any cache read error (incl. a bare cache
timeout that rejects with undefined) instead of throwing TypeError on
error.type and killing the range request
- Preload the file's last chunk at start (moov/bounds) instead of chunk 0
- Treat PRELOAD_SIZE as a read-ahead window from the current position
rather than an absolute end offset (read-ahead was dead past 20MB)
- Align the preload window start to the chunk grid so preloaded offsets
stay valid MTProto offsets
- Gate the second range part on overflow > 0 (a byte count was used as a
boolean, so a negative value forced a wasteful extra chunk fetch)
- Clamp limit to a server-valid minimum (4KB) to avoid LIMIT_INVALID on
tiny ranges; make SMALLEST_CHUNK_LIMIT a valid 4KB and use it
- Don't resurrect a destroyed stream from toggleStreamInUse(false); clamp
inUse at 0 to stop zombie streams leaking in the map
- Re-arm the idle debounce instead of destroying a stream still bound to
a live <video>
- Swallow rejections from best-effort cache writes and fire-and-forget
preloads to avoid unhandled rejections
- Use Math.clz32 in alignLimit to drop the Math.log FP rounding; remove
the unused Response-Time header
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
morethanwords/tweb/master • 99de4a8 • 2 files, +30/-4
Fix rich-text paste/serialization of newlines around blockquotes
Three related fixes in the contenteditable rich-text path:
- getRichValueWithCaret paste reconciliation: the re-insertion pass used a
drifting offset threshold (`offset > plainTextLength - lineIndex + 1`) that
was only correct for one line index, shifting/losing entities on multi-line
formatted pastes (e.g. a second line in bold). Use the splice index directly
and adjust entity length, not just offset, in both removal and insertion.
- Paste handler: strip messageEntityLinebreak before insertRichTextAsHTML.
wrapDraftText renders line breaks from the text itself; passing explicit
linebreak entities made wrapRichText slice the one before a blockquote,
dropping a \n on e.g. `text\n\nquote`. Stripping them aligns paste with the
edit/draft path (verified: no extra blank line, model preserves both \n).
- getRichElementValue: a multiline blockquote built from block children
(<br>/<div>, what Enter produces) lost its last character outside the quote,
because the entity length is only grown by text nodes while block-generated
\n bypass it. Track the last real-content offset and re-span the blockquote
up to it, excluding trailing block line breaks.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
#webk | 121 |
| 10 | morethanwords/tweb/master • 0aaab72 • 300 files, +571/-562
Build
#webk | 109 |
| 11 | morethanwords/tweb/master • 96fb8c0 • 4 files, +227/-194
Fix intermittent SRP 2FA password rejection (unpadded A)
The client public value A = g^a mod p was serialized with its minimal
big-endian length instead of being zero-padded to 256 bytes. The server
normalizes A to 256 bytes before hashing u and M1, so whenever g^a mod p
had a leading zero byte (~1/256 of attempts) our M1 mismatched the
server's and a correct password was rejected at random; a retry (fresh
account.getPassword -> new a) usually succeeded. Pad A to 256 bytes
everywhere, exactly like tdlib's A_bn.to_binary(256).
While matching tdlib's PasswordManager::get_input_check_password:
- generate the ephemeral secret a from a fresh local CSPRNG instead of
the server-provided state.secure_random (which leaked the secret
exponent and was constant across the now-removed retry loop);
- add the validations that were commented-out stubs: verifyDhPrimeAndGenerator
(= check_config) for both the check and new-password paths, and the
srp_B range/length check (0 < B < p, 248 <= len <= 256).
Rewrite src/tests/srp.test.ts into a real suite: KDF vs an independent
Node-crypto reference, a client/server SRP round-trip x25, a forced
leading-zero-A regression (mutation-confirmed it fails on the unpadded
code), the isNew verifier path, and validation throws. Drop the stale
A/M1/srp_B fixtures and the dead src/mock/srp_original.ts.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
morethanwords/tweb/master • c6fb69c • 2 files, +1/-8
Align reply-quote poll icon inline instead of flexing the subtitle
The poll-option checkmark in the reply/pinned container now carries the
standard inline-icon classes (inline-icon inline-icon-left) so it aligns
with the quote text through the normal inline flow, dropping the bespoke
.with-icon flex wrapper on the subtitle.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
#webk | 114 |
| 12 | morethanwords/tweb/master • 512d07d • 1 files, +25/-2
Fix stories hold-to-pause not resuming on release
SwipeHandler bound its global mouseup/touchend listeners to
this.element.ownerDocument at construction time. For a Solid JSX
element (cloned from a <template>), ownerDocument is the inert
about:blank template-contents document until the node is inserted
into the live DOM. The stories viewer constructs the SwipeHandler
before its <Portal> mounts the element, so the release listeners
were bound to a document that never receives real events: mousedown
(bound to the element directly) still paused on press, but mouseup
never reached reset()/onReset()/play(), so the story stayed paused.
Bind the gesture-end listener lazily in handleStart instead, when the
element is live and ownerDocument resolves to the real (main or
Document-PiP) document. Keeps the PiP fix from 9d58fe155 intact and
mirrors the lazy pattern already used in attachGrabListeners.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
morethanwords/tweb/master • bbd3782 • 3 files, +87/-79
Render topic profile avatar in the profile-avatars header
Forum and bot-forum topic profiles used a separate inline 'simple avatar'
(.profile-avatar.avatar-120 inside the MainSection, gated by has-simple-avatar).
Route them through the same PeerProfileAvatars header as regular chats with no
photo instead: PeerProfileAvatars.setPeer now takes a threadId, skips the photo
carousel/list-loader, and renders the topic icon as a single centered avatar-120
(no profile-avatars-avatar-fake duplicate, no scaled-down full photo).
- peerProfileAvatars: topic branch in setPeer; processItem renders avatar-120
with a 120px custom-emoji size for topics.
- peerProfile: always use the carousel path, passing the topic id; drop the
needSimpleAvatar concept and the in-section avatar.
- _profile.scss: .is-topic centers the fixed-size icon and keeps it unscaled
when the header collapses; removed the dead .has-simple-avatar rule.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
morethanwords/tweb/master • 1296446 • 2 files, +23/-25
Fix sponsored topbar plate not reserving chat padding-top
The sponsored/ad plate is the only floating plate with height: 'auto', so setFloating measures its offsetHeight. The measurement ran inside the count loop, before the wrapper's `hide` (display: none) class was toggled off — and a display:none ancestor zeroes descendants' offsetHeight. So exactly when the ad plate is the one flipping the visible-plate count 0 -> 1, it was measured at 0 and never reserved its padding-top, leaving it overlapping the chat. Compute the visible set and un-hide the wrapper before measuring.
Also clarify in updatePinnedFloatingHeight that a mid-scroll position is left anchored on purpose (matches iOS/Android: the plate slides over the content rather than shoving it down); behavior unchanged.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
#webk | 83 |
| 13 | telegramdesktop/tdesktop/dev • 14909bc • 2 files, +6/-4
Fixed display of sticker-set and favorite actions for sending stickers.
telegramdesktop/tdesktop/dev • 85c9495 • 7 files, +184/-0
Added keyboard extension of message text selection to history sections.
#tdesktop | 103 |
| 14 | telegramdesktop/tdesktop/dev • 12ce38f • 1 files, +25/-4
Fixed editing of selected caption in album to target its own media.
telegramdesktop/tdesktop/dev • a5142b9 • 5 files, +94/-34
Slightly improved filling of swipe-next-channel gesture.
telegramdesktop/tdesktop/dev • 76120b7 • 6 files, +186/-175
Replaced custom scroll processing in profile top bar with regular one.
telegramdesktop/tdesktop/dev • a4ed19f • 1 files, +21/-7
Extended regular scroll processing to stories section.
telegramdesktop/tdesktop/dev • ffa6386 • 5 files, +137/-5
Cached peer list rows into opaque images while scrolling.
telegramdesktop/tdesktop/dev • fe8ca5a • 2 files, +34/-4
Added separate painting of peer badge emoji status to peer list.
telegramdesktop/tdesktop/dev • 1fb28f6 • 2 files, +14/-1
Added separate painting of peer list row emoji status to peer list.
telegramdesktop/tdesktop/dev • 89b4a78 • 2 files, +22/-1
Allowed emoji status animation over cached peer list rows.
telegramdesktop/tdesktop/dev • 3a90101 • 2 files, +45/-0
Added refresh of loaded userpics over cached peer list rows.
telegramdesktop/tdesktop/dev • 55b7484 • 3 files, +382/-113
Added media view video as system media controls source.
telegramdesktop/tdesktop/dev • 43b2110 • 3 files, +153/-1
Added metadata of media view video playback to system media controls.
telegramdesktop/tdesktop/dev • 40b3f62 • 3 files, +80/-7
Added swipe-back gesture to info profile section.
telegramdesktop/tdesktop/dev • f362c16 • 1 files, +2/-1
Fixed instant Cmd+Up/Down reply in sections with compose controls.
#tdesktop | 94 |
| 15 | telegramdesktop/tdesktop/dev • df268f3 • 4 files, +10/-10
Bump actions/cache from 5 to 6
Bumps [actions/cache](https://github.com/actions/cache) from 5 to 6.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v5...v6)
---
updated-dependencies:
- dependency-name: actions/cache
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
#tdesktop | 95 |
| 16 | telegramdesktop/tdesktop/dev • 7f8c690 • 1 files, +0/-1
Remove duplicate QT_NO_PRIVATE_MODULE_WARNING from root CMakeLists.txt
It now lives in cmake/external/qt/package.cmake
#tdesktop | 101 |
| 17 | telegramdesktop/tdesktop/dev • 24ccd1c • 1 files, +6/-1
Fix crash when finishing the appearing text animation
textAppearCheckLine() runs synchronously from inside the width and
height animation tick callbacks (textAppearWidthCallback /
textAppearHeightCallback). Calling RemoveComponents(TextAppearing::Bit())
there destroys those very animations (and their Ui::Animations::Simple
data) while the animations manager is still iterating them, leading to a
use-after-free / null _data dereference in Simple::value().
Defer the component removal to the next main loop iteration so the
running tick can unwind first.
#tdesktop | 108 |
| 18 | telegramdesktop/tdesktop/dev • 5e1a05f • 1 files, +1/-1
Fix crash when removing pinned chats during folder changes.
#tdesktop | 107 |
| 19 | telegramdesktop/tdesktop/dev • d6f2e4c • 1 files, +2/-4
Simplify the use of new ffmpeg thread option
#tdesktop | 110 |
| 20 | telegramdesktop/tdesktop/dev • 4943c41 • 9 files, +16/-38
Get rid of new Q_OS_LINUX
telegramdesktop/tdesktop/dev • 3447020 • 1 files, +3/-2
Make macOS packaged cache key more stable
telegramdesktop/tdesktop/dev • 22143a8 • 1 files, +15/-3
Per-week cache key for ccache on Linux action
telegramdesktop/tdesktop/dev • 734d709 • 3 files, +32/-1
Allow to override ffmpeg thread count for debugging purposes
#tdesktop | 111 |
Available now! Telegram Research 2025 — the year's key insights 
