Telegram github commits and releases
4.54K subscribers
601 files
20.3K links
Broadcast from the most important Telegram clients' repositories
Download Telegram
telegramdesktop/tdesktop/dev12ce38f1 files, +25/-4
Fixed editing of selected caption in album to target its own media.

telegramdesktop/tdesktop/deva5142b95 files, +94/-34
Slightly improved filling of swipe-next-channel gesture.

telegramdesktop/tdesktop/dev76120b76 files, +186/-175
Replaced custom scroll processing in profile top bar with regular one.

telegramdesktop/tdesktop/deva4ed19f1 files, +21/-7
Extended regular scroll processing to stories section.

telegramdesktop/tdesktop/devffa63865 files, +137/-5
Cached peer list rows into opaque images while scrolling.

telegramdesktop/tdesktop/devfe8ca5a2 files, +34/-4
Added separate painting of peer badge emoji status to peer list.

telegramdesktop/tdesktop/dev1fb28f62 files, +14/-1
Added separate painting of peer list row emoji status to peer list.

telegramdesktop/tdesktop/dev89b4a782 files, +22/-1
Allowed emoji status animation over cached peer list rows.

telegramdesktop/tdesktop/dev3a901012 files, +45/-0
Added refresh of loaded userpics over cached peer list rows.

telegramdesktop/tdesktop/dev55b74843 files, +382/-113
Added media view video as system media controls source.

telegramdesktop/tdesktop/dev43b21103 files, +153/-1
Added metadata of media view video playback to system media controls.

telegramdesktop/tdesktop/dev40b3f623 files, +80/-7
Added swipe-back gesture to info profile section.

telegramdesktop/tdesktop/devf362c161 files, +2/-1
Fixed instant Cmd+Up/Down reply in sections with compose controls.

#tdesktop
🫡3
telegramdesktop/tdesktop/dev14909bc2 files, +6/-4
Fixed display of sticker-set and favorite actions for sending stickers.

telegramdesktop/tdesktop/dev85c94957 files, +184/-0
Added keyboard extension of message text selection to history sections.

#tdesktop
🫡2
morethanwords/tweb/master512d07d1 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/masterbbd37823 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/master12964462 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
🫡3
morethanwords/tweb/master96fb8c04 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/masterc6fb69c2 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
🫡3
morethanwords/tweb/master0aaab72300 files, +571/-562
Build

#webk
🫡2
morethanwords/tweb/mastera5c73271 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/master99de4a82 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
🫡3
telegramdesktop/tdesktop/chrome_149.0.0.00830bf31 files, +1/-1
Update User-Agent for DNS to Chrome 149.0.0.0.

#tdesktop
🫡2
telegramdesktop/tdesktop/unused_styles_2026_071af2be21 files, +0/-8
Removed 4 unused style entries.

#tdesktop
🫡2
telegramdesktop/tdesktop/devaad218a1 files, +0/-8
Removed 4 unused style entries.

#tdesktop
🫡3
telegramdesktop/tdesktop/devcf661e51 files, +1/-1
Update User-Agent for DNS to Chrome 149.0.0.0.

#tdesktop
🫡3
telegramdesktop/tdesktop/dev3a528d82 files, +6/-3
Move -fuse-ld=lld to linker flags

telegramdesktop/tdesktop/dev6fcd6501 files, +0/-8
Remove cmake policy linking error workarounds

telegramdesktop/tdesktop/deva2d3b373 files, +3/-5
Restore cmake 3.25 as minimum version

telegramdesktop/tdesktop/devfa3948d1 files, +3/-5
Use theme change event from qApp

telegramdesktop/tdesktop/dev09459d11 files, +9/-8
CreateOfficialIcon -> CreateSupportIcon

That better fits the current meaning

telegramdesktop/tdesktop/dev84b0f731 files, +4/-0
Preserve window icon name on Wayland

#tdesktop
🫡3
telegramdesktop/tdesktop/devf1df2501 files, +1/-1
Update lib_ui.

#tdesktop
🫡3
morethanwords/tweb/master3acb5a43 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
🫡2
Ajaxy/telegram-tt/masterf33f22a3 files, +4/-4
12.0.32

Ajaxy/telegram-tt/master360de4816 files, +188/-37
Support startGroup deep link for bots (#7050)

Ajaxy/telegram-tt/master8f8cc051 files, +12/-3
Modal: Autofocus title by default (#7068)

Ajaxy/telegram-tt/master24fab593 files, +43/-20
Surface Container: Fix background color (#7071)

Ajaxy/telegram-tt/master63b505e1 files, +4/-1
Profile: Improve closing on Esc logic for profiles (#7070)

Ajaxy/telegram-tt/mastere3318c02 files, +7/-0
Passcode: Fix button spacing in passcode settings (#7069)

Ajaxy/telegram-tt/masterdb6db815 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/master55557c26 files, +20/-11
Middle Header Panel: Fix styles (#7072)

Ajaxy/telegram-tt/master6a0d49f29 files, +587/-240
Middle Column: Redesign composer and chat panels mask (#7059)

Co-authored-by: Alexander Zinchuk <alx.zinchuk@gmail.com>

Ajaxy/telegram-tt/master3b3fde01 files, +19/-6
Mini Apps: Fix miniAppsCachedSize saving after fullscreen (#7074)

Ajaxy/telegram-tt/mastereb9f74688 files, +246/-246
[Build]

#webz
🫡2
telegramdesktop/tdesktop/dev7bc0e171 files, +0/-1
Removed dead deep copy of reactions in unread lookup.

telegramdesktop/tdesktop/dev0426e191 files, +3/-0
Fixed quick-action icon loss after swipe returns to origin in dialogs.

telegramdesktop/tdesktop/devabf77d72 files, +8/-19
Replaced flattened table rows with label in rich reply previews.

telegramdesktop/tdesktop/dev94af1581 files, +1/-10
Fixed extra empty space below short member lists in info profiles.

telegramdesktop/tdesktop/deve2a6a082 files, +2/-1
Fixed profile scroll bar sliding under flexible top bar scroll.

telegramdesktop/tdesktop/dev8457d131 files, +6/-2
Fix escaping in HTML export of keyboards.

telegramdesktop/tdesktop/dev673d3d39 files, +18/-37
Revert "Disable IV editor for now."

This reverts commit 9a234182e1e8b3e099719404378b10f374a21731.

telegramdesktop/tdesktop/dev869941c9 files, +378/-200
Check for changes in rich message.

telegramdesktop/tdesktop/devf7c2ff32 files, +18/-7
Support Ctrl+X to cut block selections.

telegramdesktop/tdesktop/deva47aad43 files, +70/-0
Close editors on session destructions.

telegramdesktop/tdesktop/dev388da4b37 files, +2773/-178
Improve editor top bar controls.

telegramdesktop/tdesktop/dev6b970df7 files, +627/-38
Improve math formula edit with a box.

telegramdesktop/tdesktop/dev732df973 files, +182/-110
Improve emoji toggle, italic icon.

telegramdesktop/tdesktop/devb6672283 files, +346/-47
Improve undo/redo and single-block Ctrl+A.

#tdesktop
🫡3
telegramdesktop/tdesktop/dev6508c9824 files, +195/-49
Improve icons in the editor.

telegramdesktop/tdesktop/dev8b734137 files, +734/-37
Improve inter-blocks navigation.

telegramdesktop/tdesktop/dev05455fb3 files, +379/-50
Fix incorrect scroll jumps and block selections.

telegramdesktop/tdesktop/dev8d4226211 files, +1169/-103
Implement some media management.

telegramdesktop/tdesktop/dev2027d352 files, +451/-122
Improve arrows navigation through text nodes.

telegramdesktop/tdesktop/dev748bc829 files, +2855/-85
Allow drag-n-drop of blocks selections.

telegramdesktop/tdesktop/dev282d64722 files, +1781/-298
Support nice ordered list editing.

telegramdesktop/tdesktop/dev9dc4b8c24 files, +2356/-241
Support rich messages drafts.

telegramdesktop/tdesktop/devf68b30b12 files, +246/-298
Improve rich message draft preview.

telegramdesktop/tdesktop/dev67f47566 files, +382/-53
Improve draft preview, make it rich.

telegramdesktop/tdesktop/devec7e05613 files, +594/-161
Improve rich messages serialization.

telegramdesktop/tdesktop/devc0cb8894 files, +621/-29
Improve block creation / wrapping.

telegramdesktop/tdesktop/dev348f9163 files, +315/-9
Correct handling monospace/codeblock shortcuts.

telegramdesktop/tdesktop/dev60cd8942 files, +15/-5
Fix copy of codeblock from rich message.

#tdesktop
🫡3
telegramdesktop/tdesktop/dev31d1cb74 files, +1163/-81
Improve selection by keyboard.

telegramdesktop/tdesktop/devff867352 files, +41/-14
Normalize rich draft compose controls

telegramdesktop/tdesktop/dev1f87c0411 files, +342/-15
Send previewed rich drafts from compose

telegramdesktop/tdesktop/devaf71b4c8 files, +218/-24
Redesign rendered pullquotes

telegramdesktop/tdesktop/deveecda908 files, +178/-27
Make pullquote edits resize live

telegramdesktop/tdesktop/dev90d1dd32 files, +34/-0
Add three-state editor toolbar button helper

telegramdesktop/tdesktop/dev19e759b8 files, +218/-18
Add pill-group background for toolbar buttons

telegramdesktop/tdesktop/dev039367f1 files, +105/-759
Lay out IV editor top toolbar as pill groups

telegramdesktop/tdesktop/devcc192fd1 files, +11/-4
Lay out IV editor top toolbar as pill groups

telegramdesktop/tdesktop/dev9e1715f1 files, +2/-8
Lay out IV editor top toolbar as pill groups

telegramdesktop/tdesktop/dev5af16f97 files, +64/-24
Scroll IV editor content under the top pills with a fade

telegramdesktop/tdesktop/dev224b7401 files, +30/-3
Shadow IV emoji column and toggle emoji button state

telegramdesktop/tdesktop/dev0a0f56d8 files, +64/-3
Add floating close button over IV emoji column

telegramdesktop/tdesktop/devc89afaa4 files, +329/-7
Make IV editor toolbar style menus context-aware

#tdesktop
🫡3
telegramdesktop/tdesktop/deva36e7e63 files, +91/-5
Make IV editor table toolbar button context-aware

telegramdesktop/tdesktop/dev0da984010 files, +100/-21
Add IV editor attach, link and formula button behaviors

telegramdesktop/tdesktop/dev0eec90b3 files, +184/-0
Add live preview to the IV formula editor

telegramdesktop/tdesktop/dev75a57cd3 files, +47/-6
Anchor IV editor toolbar pills to the article column

Lay out the toolbar pills with even skips at minimal width and keep the undo/redo and controls group on the article's left edge while the emoji pill tracks its right edge.

telegramdesktop/tdesktop/dev86ee3ce1 files, +6/-4
Keep IV toolbar pills non-overlapping at min width

telegramdesktop/tdesktop/devdc3211f1 files, +24/-1
Make IV editor toolbar pill buttons clickable

telegramdesktop/tdesktop/dev8c054dc10 files, +418/-51
Fix pullquote width remeasure

telegramdesktop/tdesktop/devec8b2123 files, +18/-5
[ai] Use smartest model / highest reasoning.

telegramdesktop/tdesktop/devb0c4f299 files, +200/-8
[ai] Add -testagent for silent crashes.

telegramdesktop/tdesktop/deve3f0a361 files, +3/-0
Fix possible crash in paid reactions.

telegramdesktop/tdesktop/devd14c8f41 files, +10/-1
Fit 8 emoji per row in IV editor column

telegramdesktop/tdesktop/dev11300bf4 files, +45/-13
Shrink IV emoji close button and clear search field

telegramdesktop/tdesktop/dev21a27713 files, +17/-12
Resize and restyle the IV formula editor preview

#tdesktop
🫡3
telegramdesktop/tdesktop/dev8b6d76d1 files, +34/-1
Show random LaTeX samples in formula editor

telegramdesktop/tdesktop/dev20ae0276 files, +18/-10
Update IV editor toolbar and menu icons

telegramdesktop/tdesktop/dev045604b1 files, +23/-0
Restore IV editor Toggle Block and Map menu entries

telegramdesktop/tdesktop/devbb283911 files, +1/-1
Strengthen IV editor top fade under toolbar

telegramdesktop/tdesktop/dev2f40c2c3 files, +26/-7
Cap IV editor content width to the toolbar span

Photos and other inserted blocks no longer grow past the top
controls; the article column and the floating top pills stay
centered together at the same position when the window widens.

telegramdesktop/tdesktop/devf7672561 files, +4/-7
Lay out IV editor article to the full toolbar span

telegramdesktop/tdesktop/dev0fd49da3 files, +42/-19
Float IV editor bottom controls over full-height scroll

telegramdesktop/tdesktop/devfd094572 files, +78/-32
Turn IV editor bottom controls into icon pills

telegramdesktop/tdesktop/deve2da54a4 files, +23/-26
Enlarge IV emoji close button and clear scroll bar

telegramdesktop/tdesktop/dev0ad18821 files, +3/-1
Make IV emoji search field gap symmetric

telegramdesktop/tdesktop/dev5378e7a2 files, +9/-5
Shorten emoji search pill for reserved right space

telegramdesktop/tdesktop/dev88517352 files, +9/-1
Apply edit drafts while IV editor owns thread draft

telegramdesktop/tdesktop/devf6137ce6 files, +155/-8
Switch between composing and editing rich messages

#tdesktop
🫡3
telegramdesktop/tdesktop/devaaafc9f2 files, +29/-0
Repaint IV editor article on theme change

telegramdesktop/tdesktop/dev9d5320c6 files, +75/-9
Show media context menu only over media

telegramdesktop/tdesktop/dev08051fe3 files, +19/-1
Target collage spoiler at the clicked media item

telegramdesktop/tdesktop/dev142265f1 files, +1/-1
Fix crash in table deselection.

telegramdesktop/tdesktop/dev2606e4e5 files, +24/-23
Fix build with Xcode.

telegramdesktop/tdesktop/dev938ec734 files, +9/-8
Fix attach submenu in editor.

telegramdesktop/tdesktop/dev7ac37944 files, +207/-5
Insert IV blocks from dragged or pasted media files

telegramdesktop/tdesktop/dev5141c261 files, +9/-6
Reserve marker-column indent for nested task lists

telegramdesktop/tdesktop/dev1b138761 files, +1/-0
Position send button nicely in the editor.

telegramdesktop/tdesktop/devf854d0c2 files, +59/-30
Keep table h-scroll after changing list type

telegramdesktop/tdesktop/dev0f176a47 files, +49/-16
Make nice fade-to-background in IV editor.

telegramdesktop/tdesktop/deveee20b24 files, +29/-21
Make nice close button in emoji panel.

telegramdesktop/tdesktop/dev27327494 files, +26/-12
Use menu undo/redo icons in editors

telegramdesktop/tdesktop/dev1743eb03 files, +14/-4
Gate rich-message premium only at entry and send

#tdesktop
🫡3
telegramdesktop/tdesktop/deve9caa132 files, +19/-7
Gray formula placeholder, re-roll sample on clear

telegramdesktop/tdesktop/dev45f03417 files, +40/-33
Make a better shadow for pills.

telegramdesktop/tdesktop/devc65aab210 files, +785/-178
Reuse existing media views for Slideshow.

telegramdesktop/tdesktop/devf68033d1 files, +1/-1
Fix build with Qt 5.

telegramdesktop/tdesktop/dev923f36e4 files, +12/-3
Replace Bordered table action with Borderless toggle

telegramdesktop/tdesktop/dev2a6f2e41 files, +16/-0
Show Unite cells in the top-control table menu

telegramdesktop/tdesktop/dev0818ea01 files, +11/-11
Swap attach and formula buttons in IV editor toolbar

telegramdesktop/tdesktop/dev8234f9f4 files, +85/-36
Round Send button and normal Discard pill in editor

telegramdesktop/tdesktop/dev05eb0db4 files, +52/-58
Round Save button and normal Cancel pill in editor

telegramdesktop/tdesktop/dev8362d8b2 files, +12/-2
Clamp editor auto-scroll between floating controls.

telegramdesktop/tdesktop/dev90fbd233 files, +155/-0
Send simple rich messages as normal text without premium

telegramdesktop/tdesktop/dev20d54993 files, +99/-1
Carry the field draft into the editor on Article

telegramdesktop/tdesktop/dev7e3ab2e1 files, +11/-9
Strip blockquote and code wrappers when splitting draft

telegramdesktop/tdesktop/dev2e72ebe5 files, +119/-0
Add Expand compose button to open the rich editor

#tdesktop
🫡3