ru
Feedback
Telegram github commits and releases

Telegram github commits and releases

Открыть в Telegram

Broadcast from the most important Telegram clients' repositories

Больше
4 547
Подписчики
+824 часа
-137 дней
-11130 день

Загрузка данных...

Привлечение подписчиков
август '26
август '26
+58
в 6 каналах
июль '26
+79
в 0 каналах
Get PRO
июнь '26
+129
в 0 каналах
Get PRO
май '26
+75
в 5 каналах
Get PRO
апрель '26
+39
в 9 каналах
Get PRO
март '26
+9
в 1 каналах
Get PRO
февраль '26
+13
в 2 каналах
Get PRO
январь '26
+16
в 2 каналах
Get PRO
декабрь '25
+19
в 0 каналах
Get PRO
ноябрь '25
+17
в 0 каналах
Get PRO
октябрь '25
+7
в 0 каналах
Get PRO
сентябрь '25
+5
в 0 каналах
Get PRO
август '25
+19
в 1 каналах
Get PRO
июль '25
+21
в 1 каналах
Get PRO
июнь '25
+23
в 0 каналах
Get PRO
май '25
+71
в 0 каналах
Get PRO
апрель '25
+28
в 0 каналах
Get PRO
март '25
+29
в 0 каналах
Get PRO
февраль '25
+24
в 0 каналах
Get PRO
январь '25
+61
в 0 каналах
Get PRO
декабрь '24
+16
в 0 каналах
Get PRO
ноябрь '24
+86
в 0 каналах
Get PRO
октябрь '24
+112
в 0 каналах
Get PRO
сентябрь '24
+814
в 0 каналах
Get PRO
август '24
+606
в 0 каналах
Get PRO
июль '24
+475
в 0 каналах
Get PRO
июнь '24
+415
в 0 каналах
Get PRO
май '24
+392
в 0 каналах
Get PRO
апрель '24
+422
в 0 каналах
Get PRO
март '24
+598
в 1 каналах
Get PRO
февраль '24
+1 585
в 0 каналах
Get PRO
январь '24
+3 043
в 0 каналах
Get PRO
декабрь '23
+3 050
в 0 каналах
Get PRO
ноябрь '23
+42
в 0 каналах
Get PRO
октябрь '23
+34
в 1 каналах
Get PRO
сентябрь '23
+25
в 0 каналах
Get PRO
август '23
+30
в 0 каналах
Get PRO
июль '23
+26
в 0 каналах
Get PRO
июнь '23
+12
в 0 каналах
Get PRO
май '23
+11
в 0 каналах
Get PRO
апрель '23
+18
в 0 каналах
Get PRO
март '23
+22
в 0 каналах
Get PRO
февраль '23
+14
в 0 каналах
Get PRO
январь '23
+10
в 0 каналах
Get PRO
декабрь '22
+13
в 0 каналах
Get PRO
ноябрь '22
+30
в 0 каналах
Get PRO
октябрь '22
+9
в 0 каналах
Get PRO
сентябрь '22
+23
в 0 каналах
Get PRO
август '22
+29
в 0 каналах
Get PRO
июль '22
+36
в 0 каналах
Get PRO
июнь '22
+22
в 0 каналах
Get PRO
май '22
+20
в 0 каналах
Get PRO
апрель '22
+40
в 0 каналах
Get PRO
март '22
+52
в 0 каналах
Get PRO
февраль '22
+24
в 0 каналах
Get PRO
январь '22
+13
в 0 каналах
Get PRO
декабрь '21
+61
в 0 каналах
Get PRO
ноябрь '21
+20
в 0 каналах
Get PRO
октябрь '21
+11
в 0 каналах
Get PRO
сентябрь '21
+28
в 0 каналах
Get PRO
август '21
+21
в 0 каналах
Get PRO
июль '21
+31
в 0 каналах
Get PRO
июнь '21
+25
в 0 каналах
Get PRO
май '21
+6
в 0 каналах
Get PRO
апрель '21
+40
в 0 каналах
Get PRO
март '21
+16
в 0 каналах
Get PRO
февраль '21
+11
в 0 каналах
Get PRO
январь '21
+30
в 0 каналах
Get PRO
декабрь '20
+477
в 0 каналах
Дата
Привлечение подписчиков
Упоминания
Каналы
27 августа+2
26 августа+10
25 августа+12
24 августа+2
23 августа+1
22 августа+1
21 августа0
20 августа0
19 августа+2
18 августа0
17 августа0
16 августа0
15 августа0
14 августа+1
13 августа+1
12 августа0
11 августа+1
10 августа0
09 августа+6
08 августа+4
07 августа+6
06 августа+4
05 августа0
04 августа+1
03 августа0
02 августа+2
01 августа+2
Посты канала
telegramdesktop/tdesktop/devba23d841 files, +3/-1 Fixed nosound flag dropping animated attribute from sent GIFs. Regression was introduced in fe7e967258. telegramdesktop/tdesktop/dev3fe51641 files, +7/-4 Added mp4 conversion for quicktime videos sent as GIFs. Related commit: fe7e967258. telegramdesktop/tdesktop/dev049b4ad2 files, +6/-0 Added getter of automatic clear time to emoji statuses. telegramdesktop/tdesktop/dev26612168 files, +137/-0 Added emoji status actions to custom emoji context menu. #tdesktop

2
telegramdesktop/tdesktop/dev • 70f4f42 • 1 files, +1/-1 Fixed crash constructing a raced shared Lottie state. A shared provider is destroyed by the first render() that fails, on the renderer thread, while SharedState is constructed on a crl::async one - so _shared could go away between valid() and construct(). Tolerate that instead of asserting, and treat a missing cover as a failed animation: the metadata copied at load time no longer describes such a state, and frameForPaint() would have asserted on its null frame later on. telegramdesktop/tdesktop/dev • 50efdbc • 1 files, +8/-1 Guard enlarging a group call video with no monitors. videoEndpointLargeValue() fires on data, not on user input, so it can reach enlargeVideo() during the interval when the last monitor is gone and QWidget::screen() is nullptr. telegramdesktop/tdesktop/dev • 8bcbab7 • 1 files, +5/-1 Show the moved service message in its new topic. The half beside applyItemRemoved() was missing: the edited item left the old topic but was never offered to the new one, so its preview and order in the topic list stayed stale until a reload. telegramdesktop/tdesktop/dev • 23b6c1b • 1 files, +1/-1 Destroy a removed menu item before its action. An item reads action() while it is being torn down, so removeAction() deleting the action first left it pointing at freed memory for the whole widget destructor. clearActions() and clearLastSeparator() already do it in this order. telegramdesktop/tdesktop/dev • 9732805 • 1 files, +1/-1 Don't clear metadata through a null display updater. init() registers the ButtonPressed handler before it fills in the display updater, so an E_OUTOFMEMORY in between leaves the token set and the updater null - and the destructor takes exactly that branch, calling ClearAll() on a null projected interface at process exit. telegramdesktop/tdesktop/dev • 7f65351 • 2 files, +12/-4 Destroy the info controller with its content widgets. createMemento() freed the Controller while _content lived on, and the content widgets hold it by a raw pointer: MainWidget::showHistory takes the memento, runs a whole HistoryWidget::showHistory - which reaches itemVisibilitiesUpdated() and the still-subscribed media list - and only then destroys the section. The nulling was never a lifetime requirement, just the "memento already taken" flag showInternal() reads, so make that a flag and let the controller die with the widget after _content. telegramdesktop/tdesktop/dev • 4023790 • 1 files, +1/-1 Update lib_ui. #tdesktop
30
3
morethanwords/tweb/master • ef41b29 • 183 files, +7649/-4673 Migrate legacy rows to Solid RowTsx #webk
89
4
telegramdesktop/tdesktop/public-canary • 74503d9 • 1 files, +26/-10 Extracted shared video encoder setup from H264 encoder. telegramdesktop/tdesktop/public-canary • cb897b2 • 2 files, +7/-3 Added VP9 encoder and webm muxer to ffmpeg build configs. telegramdesktop/tdesktop/public-canary • 46be7b3 • 2 files, +150/-20 Added webm sticker output mode to video encoder. telegramdesktop/tdesktop/public-canary • 181a39f • 7 files, +332/-69 Added adapting video stickers into custom emoji. Related commit: 9895e5bb89. #tdesktop
115
5
telegramdesktop/tdesktop/public-canary • 4f6a48f • 3 files, +19/-21 Hide Layer Info before its sublist is erased Task: 2026/08/21/resubscribe-info-wrap-teardown-on-replaced-sublist telegramdesktop/tdesktop/public-canary • 1aaeee4 • 2 files, +15/-18 Preserve teardown stream across Info wrap removal Task: 2026/08/21/resubscribe-info-wrap-teardown-on-replaced-sublist telegramdesktop/tdesktop/public-canary • 055522e • 1 files, +0/-1 Remove stale Info teardown implementation note Task: 2026/08/21/resubscribe-info-wrap-teardown-on-replaced-sublist telegramdesktop/tdesktop/public-canary • dea7ba5 • 1 files, +3/-2 Keep saved sublists alive through item teardown Task: 2026/08/21/finish-info-wrap-sublist-teardown-past-item-destroy telegramdesktop/tdesktop/public-canary • 28d924b • 4 files, +39/-20 Align sublist media counts, windows and titles Task: 2026/08/21/align-sublist-media-count-window-and-title telegramdesktop/tdesktop/public-canary • 5f1bf03 • 1 files, +7/-5 Show the new window tooltip only on entries that have one Task: 2026/08/23/verify-saved-sublist-media-surfaces-and-gate-tooltip telegramdesktop/tdesktop/public-canary • 0cb4b75 • 4 files, +90/-67 Unify sublist media window ids and persisted titles Task: 2026/08/23/unify-sublist-separate-id-and-window-naming-rulings telegramdesktop/tdesktop/public-canary • 7f9844b • 1 files, +2/-2 Limit media topic context to forum chats telegramdesktop/tdesktop/public-canary • 1a70cff • 1 files, +1/-1 Removed stale comment about swscale destination format caching. telegramdesktop/tdesktop/public-canary • 963f8bb • 1 files, +5/-0 Restricted transcode temp directory permissions to user. Related commit: 0807483acc. telegramdesktop/tdesktop/public-canary • dae8e52 • 2 files, +26/-6 Extracted video editor layer showing to shared helper. #tdesktop
95
6
telegramdesktop/tdesktop/public-canary • 2c095b0 • 4 files, +35/-0 Request pinned messages when a pin is not loaded Task: 2026/08/20/reach-unloaded-pin-on-complete-pinned-slice telegramdesktop/tdesktop/public-canary • 7fc04c3 • 6 files, +21/-10 Open a saved sublist's own shared media page Task: 2026/08/20/open-saved-sublist-own-info-media-page telegramdesktop/tdesktop/public-canary • 3188a10 • 9 files, +63/-43 Align sublist media count, query and window keys Task: 2026/08/21/align-sublist-media-count-query-and-window-keys telegramdesktop/tdesktop/public-canary • 0fb9de2 • 4 files, +55/-3 Keep Info pages on their topic or sublist Task: 2026/08/21/preserve-info-thread-identity-and-lifetime telegramdesktop/tdesktop/public-canary • dfa728f • 1 files, +12/-10 Tear down Info after a sublist is destroyed Task: 2026/08/21/preserve-info-thread-identity-and-lifetime telegramdesktop/tdesktop/public-canary • 5af7323 • 1 files, +14/-12 Clear Info immediately when its sublist dies Task: 2026/08/21/preserve-info-thread-identity-and-lifetime telegramdesktop/tdesktop/public-canary • 48fc35a • 1 files, +9/-13 Always drop an Info wrap when its sublist dies Task: 2026/08/21/preserve-info-thread-identity-and-lifetime telegramdesktop/tdesktop/public-canary • 7c87f53 • 6 files, +90/-34 Reach unloaded pins on thread keys and updates Task: 2026/08/21/reach-unloaded-pins-across-thread-and-update-paths telegramdesktop/tdesktop/public-canary • 8ca5c10 • 3 files, +11/-4 Rebind Info wrap teardown when a sublist is replaced Task: 2026/08/21/resubscribe-info-wrap-teardown-on-replaced-sublist telegramdesktop/tdesktop/public-canary • 2f3b1b2 • 2 files, +14/-10 Tear down Layer Info instantly when its sublist dies Task: 2026/08/21/resubscribe-info-wrap-teardown-on-replaced-sublist telegramdesktop/tdesktop/public-canary • 298f4c8 • 2 files, +17/-14 Queue Info wrap teardown off sublist destroyed() Task: 2026/08/21/resubscribe-info-wrap-teardown-on-replaced-sublist #tdesktop
78
7
telegramdesktop/tdesktop/public-canary • 411085f • 2 files, +52/-1 Write the pinned thread index only in forum peers Task: 2026/08/20/stop-orphaning-general-id-shared-media-lists telegramdesktop/tdesktop/public-canary • 4023d1a • 2 files, +5/-2 Give a saved sublist its own pinned message list Task: 2026/08/19/make-saved-sublist-pinned-bar-read-one-list telegramdesktop/tdesktop/public-canary • 3ec95b8 • 1 files, +6/-0 Retire shared media of a deleted topic with no object Task: 2026/08/20/retire-forum-media-lists-without-topic-objects telegramdesktop/tdesktop/public-canary • 30876f2 • 5 files, +31/-0 Retire all topic shared media when a forum is destroyed Task: 2026/08/20/retire-stranded-forum-media-keys-on-forum-teardown telegramdesktop/tdesktop/public-canary • 2b9fb29 • 1 files, +6/-4 Guard the live-topic media unload against a zero root Task: 2026/08/20/guard-live-topic-unload-against-zero-root telegramdesktop/tdesktop/public-canary • e389116 • 1 files, +6/-4 Guard the forum teardown media unload against a zero root Task: 2026/08/20/guard-forum-teardown-unload-against-zero-root telegramdesktop/tdesktop/public-canary • 8cde4e4 • 2 files, +4/-4 Resolve the self peer sublist in the shared resolver Task: 2026/08/20/resolve-self-peer-sublist-in-shared-resolver telegramdesktop/tdesktop/public-canary • 5dada73 • 2 files, +0/-2 Drop the write-only monoforum id from top controls Task: 2026/08/20/retire-write-only-top-controls-monoforum-peer-id telegramdesktop/tdesktop/public-canary • fee7306 • 1 files, +1/-1 Read the inbox when a sublist has no parent chat Task: 2026/08/20/restore-read-inbox-on-parentless-sublist-send telegramdesktop/tdesktop/public-canary • f5b5f84 • 1 files, +2/-8 Use the shared sublist resolver in the player panel Task: 2026/08/20/collapse-player-panel-sublist-onto-shared-resolver #tdesktop
45
8
telegramdesktop/tdesktop/public-canary • e4a8e0b • 1 files, +10/-1 Fallback to v1 update unpacking. telegramdesktop/tdesktop/public-canary • 3a10553 • 3 files, +26/-7 [ai] Refuse implausible test watchdog values Task: 2026/08/23/refuse-implausible-test-watchdog-values telegramdesktop/tdesktop/public-canary • b441b83 • 3 files, +0/-0 Delete unused account_check icon rasters Task: 2026/08/18/delete-orphaned-account-check-icon telegramdesktop/tdesktop/public-canary • 329910a • 2 files, +11/-2 Correct shared media index writes and viewer counts Task: 2026/08/18/repair-shared-media-index-and-count-bookkeeping telegramdesktop/tdesktop/public-canary • ef9be27 • 1 files, +16/-3 Re-index a sent message only when its thread moves Task: 2026/08/18/repair-shared-media-index-and-count-bookkeeping telegramdesktop/tdesktop/public-canary • 99ad271 • 2 files, +60/-6 Derive the pinned bar's topic root from the thread Task: 2026/08/19/align-replies-thread-shared-media-attribution telegramdesktop/tdesktop/public-canary • 206edab • 2 files, +1/-1 Pair the uploaded media edit's shared media removal Task: 2026/08/19/pair-media-edit-removal-with-index-add telegramdesktop/tdesktop/public-canary • 4f10eb6 • 1 files, +20/-5 Drop a sent message from the shared media lists it left Task: 2026/08/19/match-sent-message-removal-to-written-mask telegramdesktop/tdesktop/public-canary • f1e7b58 • 1 files, +3/-3 Don't keep a media reference across rich page changes Task: 2026/08/19/refetch-saved-media-after-rich-page-changes telegramdesktop/tdesktop/public-canary • 0b9f3f9 • 5 files, +30/-13 Don't lower shared media counts for unindexed messages Task: 2026/08/20/stop-unmatched-removal-lowering-shared-media-counts telegramdesktop/tdesktop/public-canary • e4dc19f • 7 files, +40/-56 Tie stored pinned index writes to the pinned flag Task: 2026/08/19/unify-pinned-index-writers #tdesktop
34
9
telegramdesktop/tdesktop/public-canary • 86649fa • 4 files, +32/-14 Improve version display for canary. telegramdesktop/tdesktop/public-canary • d53ae21 • 1 files, +141/-40 Split macOS canary build into per-arch jobs. telegramdesktop/tdesktop/public-canary • 1f34704 • 7 files, +198/-3 Add an in-title CANARY/PRIVATE marking. telegramdesktop/tdesktop/public-canary • 083f5df • 6 files, +42/-24 Rename canary branches. telegramdesktop/tdesktop/public-canary • 588628f • 1 files, +3/-0 Fixed per-arch build picking universal crashpad handler. telegramdesktop/tdesktop/public-canary • a893870 • 1 files, +11/-4 Keep TelegramForcePortable in portable archives. telegramdesktop/tdesktop/public-canary • 45de183 • 1 files, +11/-11 Allow CANARY_ALLOW_UNSIGNED in public lane too. telegramdesktop/tdesktop/public-canary • 48e5556 • 1 files, +38/-3 Try workaround clone problems. telegramdesktop/tdesktop/public-canary • b5896f2 • 1 files, +25/-19 Fix build with GCC. telegramdesktop/tdesktop/public-canary • 4ddbb38 • 2 files, +36/-19 Fix public publishing. telegramdesktop/tdesktop/public-canary • 145ddf7 • 1 files, +6/-6 Keep canary artifacts for seven days telegramdesktop/tdesktop/public-canary • b0dc6e1 • 1 files, +29/-1 Fixed missing ATL breaking breakpad build in canary Windows job. telegramdesktop/tdesktop/public-canary • ccfadeb • 1 files, +50/-20 Install ATL for the pinned Windows toolset #tdesktop
40
10
telegramdesktop/tdesktop/public-canary • 1800603 • 1 files, +70/-28 Publish portable archives as canary first installs telegramdesktop/tdesktop/public-canary • 430ae6d • 1 files, +5/-4 Drop the bundled d3d compiler from canary builds telegramdesktop/tdesktop/public-canary • e240f44 • 3 files, +41/-4 Embed external and local signatures in one packer pass telegramdesktop/tdesktop/public-canary • b7cc975 • 2 files, +82/-3 Add a v2 update switch to the release build scripts telegramdesktop/tdesktop/public-canary • 64256c5 • 1 files, +29/-1 Read the pinned metadata through the local Bot API telegramdesktop/tdesktop/public-canary • 98a224c • 3 files, +25/-1 Support v2 updates in the updater and deploy scripts telegramdesktop/tdesktop/public-canary • 183a2c6 • 23 files, +872/-216 Harden canary builds running. telegramdesktop/tdesktop/public-canary • e3802ea • 4 files, +20/-10 Fix build for Release. telegramdesktop/tdesktop/public-canary • edb6eea • 2 files, +68/-21 Try to fix signing. telegramdesktop/tdesktop/public-canary • 5e2e4e0 • 1 files, +77/-5 Improve caching. telegramdesktop/tdesktop/public-canary • 9a8e58b • 1 files, +17/-5 Try to fix signing again. telegramdesktop/tdesktop/public-canary • 6ed6442 • 10 files, +598/-311 New names, separate publishing. telegramdesktop/tdesktop/public-canary • 27a8777 • 7 files, +255/-6 Fix translocated launch on macOS. #tdesktop
34
11
telegramdesktop/tdesktop/public-canary • ccfb5b3 • 2 files, +21/-1 Give up clearing a history after enough failed retries. Re-requesting the dialog entry until the last message is known has no bound, so an entry that keeps coming back unknown - offline, or a flood wait - spun requests forever and the clear never finished. telegramdesktop/tdesktop/public-canary • 367052b • 4 files, +7/-0 Add public keys for canary channel. telegramdesktop/tdesktop/public-canary • 570c478 • 9 files, +1279/-0 Add v2 update verification core and build channels telegramdesktop/tdesktop/public-canary • ebc783a • 3 files, +672/-0 Support v2 channel packing in the Packer telegramdesktop/tdesktop/public-canary • 72a32c4 • 7 files, +662/-141 Verify, fetch and install v2 updates in the client telegramdesktop/tdesktop/public-canary • 1c3da59 • 2 files, +9/-1 Show canary version and skip changelogs on canary telegramdesktop/tdesktop/public-canary • 8823c56 • 2 files, +821/-0 Add focused tests for v2 update verification telegramdesktop/tdesktop/public-canary • 86bf3a8 • 1 files, +862/-0 Add canary build and publish workflow telegramdesktop/tdesktop/public-canary • af2d7d9 • 1 files, +186/-163 Build one canary lane per repository in CI telegramdesktop/tdesktop/public-canary • 2ee9549 • 3 files, +31/-13 Use readable v2 update file names telegramdesktop/tdesktop/public-canary • 2363f18 • 4 files, +117/-8 Use new update names and pinned Bot API image in CI telegramdesktop/tdesktop/public-canary • 81bb9f4 • 3 files, +108/-62 Ship per-arch mac updates with a universal installer #tdesktop
31
12
telegramdesktop/tdesktop/public-canary • f1f07db • 1 files, +1/-1 Guard the other popup menu show paths as well. telegramdesktop/tdesktop/public-canary • b3e85dc • 2 files, +41/-2 Fixed resetting icons that outlived their owner. ChatStyle::value() hands its result to the caller, so the icons it makes are not ours to keep in _ownedIcons: the lifetime overload's icons die with the caller - a section's corner buttons, for instance, while the session style lives on - and the by-value overload's live in a local. A later palette change then reset through freed pointers. Track only what the lifetime overload creates, and drop it again when that lifetime ends. telegramdesktop/tdesktop/public-canary • 4f3da4d • 1 files, +7/-0 Fixed stale last message after a service edition. createServiceFromMtp() rebuilds the data topicRootId() reads, so a service edition can move the item to another topic - and the old one was left holding a raw pointer History::itemRemoved() would never tell it about. The sublist beside it was already handled this way. telegramdesktop/tdesktop/public-canary • 7e4e39d • 1 files, +5/-3 Don't hide a download another entry still owns. detach() reported the item removed even when another downloaded entry still held it, so the downloads list dropped a row that was still backed by a file until the view was rebuilt. telegramdesktop/tdesktop/public-canary • 98807cc • 1 files, +1/-1 Don't call through a null WinRT stream reference factory. telegramdesktop/tdesktop/public-canary • 2ad89e6 • 2 files, +2/-2 Update Qt patches, narrower guard and a wider cocoa one. telegramdesktop/tdesktop/public-canary • eda64ab • 1 files, +38/-13 Fixed huge allocation cropping a panorama thumbnail. Expanding to the box before cropping avoids deep copying a 12000x9000 photo, but it blows up the other way on an extreme aspect ratio: a 2560x26 panorama expands to about 35000x360, where cropping first cost almost nothing. Both orders scale by the same factor, so take whichever intermediate is smaller. telegramdesktop/tdesktop/public-canary • 9f47cda • 1 files, +4/-1 Fixed one more crash when the last monitor is removed. #tdesktop
29
13
telegramdesktop/tdesktop/public-canary • 499b1bb • 2 files, +30/-6 Fixed stack overflow typing a date with an IME. Same cycle the phone field fix closed: putNext() ends in setFocus(), and on Windows a focus change with an open IME composition makes QWindowsInputContext::reset() re-send the commit to the field we came from, whose correctValue() fires putNext() again. Focus the next field asynchronously, the way Ui::TimeInput already breaks this exact loop - a re-entrancy flag would instead swallow a chained overflow digit, since correctValue() can hand one straight on to the field after next. telegramdesktop/tdesktop/public-canary • e1b410e • 1 files, +6/-0 Fixed crash painting an info layer with no content. parentResized() can move the content out into a MoveMemento and only queue hideSpecialLayer(), and LayerStackWidget renders the layer synchronously through Ui::Shadow::grab() during transitions, so paintEvent could run in the same window showFinished() was guarded for. telegramdesktop/tdesktop/public-canary • f827ef8 • 1 files, +7/-1 Fixed crash in the media viewer with no monitors left. telegramdesktop/tdesktop/public-canary • f012556 • 1 files, +11/-3 Fixed huge allocation blurring a video preview. The frame was blurred at full resolution and only then scaled down to the preview width, which both allocates by the source pixel count and washes the blur out in proportion to how much is scaled away - a 4K video got a noticeably sharper preview than a small one. telegramdesktop/tdesktop/public-canary • 1a5921f • 1 files, +7/-1 Don't leak a background subscription per font family tap. telegramdesktop/tdesktop/public-canary • 07d3096 • 1 files, +1/-1 Don't abort on E_OUTOFMEMORY building media controls. telegramdesktop/tdesktop/public-canary • 7d5492e • 1 files, +45/-26 Fixed acting on the wrong sticker in a mixed set. Hit testing yields an index into _elements, which skips the premium stickers an account that cannot get premium must not see, while preview, sending, the context menu, deletion and reordering all looked that index up in _pack - which keeps them. With one skipped sticker before a visible one, clicking a sticker sent a different one. Everything driven by a visible position now reads _elements, and the reorder translates both positions through the documents so the full pack and the server still get the position in the whole set. telegramdesktop/tdesktop/public-canary • 7caa13c • 1 files, +1/-1 Fixed reentrancy destroying the last menu separator. #tdesktop
27
14
telegramdesktop/tdesktop/public-canary • 12682e6 • 1 files, +4/-2 [ai] Reconcile only the groups the run selected telegramdesktop/tdesktop/public-canary • 51ac1a6 • 1 files, +7/-2 Fixed abort scheduling TTL with a wrong system clock. The interval was computed from two int32 timestamps, so a wrapped or stale unixtime::now() - which is what the OS correcting a badly wrong clock produces - overflowed it negative, and base::Timer aborts on that. telegramdesktop/tdesktop/public-canary • fa86363 • 2 files, +59/-28 Fixed stale last message after a topic switch. The reply fields decide topicRootId(), so setReplyFields() can move an item to another topic. History::itemRemoved() later notifies only the current topic(), leaving the old one holding a raw pointer to an item it would never hear about again. Also stop publishing item data changes from inside createComponents(): notifying about an item that new HistoryItem() has not finished building lets a listener re-enter and reach it half-constructed. telegramdesktop/tdesktop/public-canary • 61be1b5 • 1 files, +1/-1 Fixed crash showing a popup menu destroyed inside show(). telegramdesktop/tdesktop/public-canary • 5efbf50 • 3 files, +15/-2 Reset palette icon copies through their own palette. telegramdesktop/tdesktop/public-canary • d0b86c6 • 2 files, +2/-2 Update Qt patches to guard windows destroyed mid-event. telegramdesktop/tdesktop/public-canary • 9959fd7 • 1 files, +14/-3 Fixed assertion editing a deleted proxy into a duplicate. replaceItemWith() removed the edited row from the settings list without restoring it first, so doing that to a row already marked deleted - which is not in that list at all - failed the Assert. Its sibling replaceItemValue() has restored first all along. _list is also a vector, so erasing the edited item shifts everything after it and left the iterator for the duplicate naming a different item - or one past the end when the duplicate was last. Read its id and deleted flag before the erase; everything after it works by id anyway. #tdesktop
33
15
telegramdesktop/tdesktop/public-canary • b0d9930 • 2 files, +35/-0 Fixed use-after-free of Iv block media on item death. telegramdesktop/tdesktop/public-canary • 0809aac • 1 files, +1/-1 Don't keep the gzip scratch buffer in the result. telegramdesktop/tdesktop/public-canary • 36ab8e9 • 2 files, +2/-2 Update Qt patches to fix a crash on screen removal. telegramdesktop/tdesktop/public-canary • 135d9cd • 1 files, +1/-1 Fixed spoiler overlay bound to a replaced text context. telegramdesktop/tdesktop/public-canary • ac7da71 • 1 files, +1/-1 Fixed reentrancy destroying a removed menu item. telegramdesktop/tdesktop/public-canary • 4bdb250 • 1 files, +1/-1 Fixed use-after-free of shared Lottie provider metadata. telegramdesktop/tdesktop/public-canary • 1d76c8f • 1 files, +20/-21 Fixed huge allocation cropping shared media photos. CropMediaFrame() cut the frame out at the source resolution before scaling, deep copying the whole cut region - a few hundred megabytes for a 12000x9000 photo in a square cell. Expanding to the box applies the same scale factor, so the visible pixels are unchanged. telegramdesktop/tdesktop/public-canary • f1f2933 • 1 files, +31/-13 Fixed deleting all downloads of one message. deleteFiles() is addressed by item, but removed only the first matching download and then fired loadedRemoved anyway, so the rest kept their files while the row was already hidden. changed() likewise re-checked only the first entry. telegramdesktop/tdesktop/public-canary • 3390cf9 • 2 files, +13/-11 Fixed editing an album thumb after moving the cursor away. The edit and delete callbacks resolved their target from the cursor position at the moment they ran, but editing is delayed by the ripple hide duration and keyboard activation has no cursor over the thumb at all. Bind the thumbnail that owns the button - by pointer, since takeOrder() permutes _thumbs in place - and translate it through the current order. telegramdesktop/tdesktop/public-canary • 4f38a10 • 2 files, +18/-8 Fixed two more crashes when the last monitor is removed. #tdesktop
38
16
telegramdesktop/tdesktop/public-canary • ce094ed • 1 files, +5/-2 Fixed assertion clearing a history twice at once. telegramdesktop/tdesktop/public-canary • 556dd3a • 1 files, +10/-2 Fixed crash editing an album thumb with no cursor one. telegramdesktop/tdesktop/public-canary • 3c0a78c • 1 files, +9/-1 Fixed stack overflow relayouting the drag areas. telegramdesktop/tdesktop/public-canary • 5be5a47 • 1 files, +6/-2 Fixed crash choosing a group call reaction. telegramdesktop/tdesktop/public-canary • 6e3fb88 • 2 files, +24/-5 Fixed use-after-free in the recent chats switcher. telegramdesktop/tdesktop/public-canary • bfdeec9 • 1 files, +1/-1 Don't abort on E_OUTOFMEMORY from a WinRT server. telegramdesktop/tdesktop/public-canary • 68a2544 • 2 files, +14/-0 Fixed stack overflow typing a phone with an IME. telegramdesktop/tdesktop/public-canary • 39428b4 • 1 files, +23/-6 Fixed crash when the last monitor is removed. telegramdesktop/tdesktop/public-canary • 5285816 • 1 files, +8/-1 Fixed use-after-free of the font preview theme. telegramdesktop/tdesktop/public-canary • b47690e • 1 files, +8/-0 Fixed crash closing the location picker webview. telegramdesktop/tdesktop/public-canary • 3afebb7 • 1 files, +7/-2 Fixed archive assertion on an unknown unread state. telegramdesktop/tdesktop/public-canary • 786289e • 3 files, +33/-21 Reclaim the right button ripple callback per press. The ripple outlives the row it was created for: it is owned per peer by _rightButtons, so a callback baked in on the first press kept repainting a Row that was long gone. Keep the callback in the button and refresh it on every press, holding the row through a weak pointer - which is why has_weak_ptr moves down to BasicRow, where nearly every subclass already had it. #tdesktop
34
17
telegramdesktop/tdesktop/public-canary • 3ad1b6c • 1 files, +19/-6 Fixed crashes reordering stickers in a set. A press without a following move leaves lastSelected == -1, always so for mask sets, and reordering to -1 rotated past _elements.begin(). _pack also keeps every sticker while _elements skips premium ones when the account cannot buy premium, so _pack is the longer list - but hit testing bounded itself by _pack, the shift animation map was keyed over _pack, and the paint loop reached _elements[index] through those keys before its own bounds check. Index everything by _elements, which is what is actually painted. telegramdesktop/tdesktop/public-canary • e7d87b8 • 1 files, +9/-1 Fixed crash pasting a huge image from the clipboard. telegramdesktop/tdesktop/public-canary • 4446222 • 2 files, +22/-9 Fixed use-after-free with several downloads per message. telegramdesktop/tdesktop/public-canary • 14861f3 • 3 files, +24/-0 Fixed account deleted from inside its own teardown. telegramdesktop/tdesktop/public-canary • 2a07892 • 1 files, +1/-1 Fixed divide by zero on a raced Lottie frame rate. telegramdesktop/tdesktop/public-canary • b7bc201 • 1 files, +4/-1 Fixed crash on a sensitive album of documents. telegramdesktop/tdesktop/public-canary • 19239dc • 1 files, +14/-4 Fixed crash opening a url auth box already closed. show() can hand back an already empty pointer, and subscribing to boxClosing() through it dereferenced null. That event has also already passed by then, so the decline request has to be sent right away instead. telegramdesktop/tdesktop/public-canary • aba8ea0 • 1 files, +10/-1 Fixed stale last message after a sublist switch. telegramdesktop/tdesktop/public-canary • 099b081 • 2 files, +41/-12 Fixed use-after-free in the text appearing animation. telegramdesktop/tdesktop/public-canary • 4a9c4e5 • 1 files, +19/-1 Fixed use-after-free in the filtered chats ripple. #tdesktop
32
18
telegramdesktop/tdesktop/public-canary • ae99761 • 2 files, +15/-1 Fixed handling a 2FA password removed from another session. The intro step reported a permanent "Server Error" for both a removed password and an unsupported algorithm; mtp.unknownAlgorithm separates them, and a removal is what PASSWORD_EMPTY already reports, so go back. CloudPassword::check() also missed the !hasPassword guard its own set() and setEmail() have, and ComputeCloudPasswordHash() aborts on the null algorithm variant. telegramdesktop/tdesktop/public-canary • e97d6dc • 1 files, +7/-0 Fixed crash destroying history widget on logout. telegramdesktop/tdesktop/public-canary • 822b2cd • 2 files, +7/-1 Fixed crash using info media list after controller. telegramdesktop/tdesktop/public-canary • 6866b46 • 1 files, +25/-10 Fixed use-after-free of the pinned bar custom button. When the pinned id changes the producer drops the subscription watching the pushed item for Destroyed, so the consumer must not be left holding that pointer with nobody to clear it. Resolve the new item first and emit nullptr only when nothing replaced the pushed one, so an already loaded item does not make the bar crossfade a default button in and back out. telegramdesktop/tdesktop/public-canary • 00d0305 • 1 files, +1/-1 Fixed reentrancy destroying menu item widgets. telegramdesktop/tdesktop/public-canary • ed78e2c • 1 files, +8/-3 Fixed abort on failed video frame allocation. telegramdesktop/tdesktop/public-canary • 1f1ad7b • 1 files, +6/-3 Fixed out of bounds read tracking the pinned bar. telegramdesktop/tdesktop/public-canary • ff90c7c • 1 files, +4/-1 Fixed collectible emoji stars on backwards time. telegramdesktop/tdesktop/public-canary • 7e4aa9c • 1 files, +3/-1 Fixed crash on double skip of the recovery email. telegramdesktop/tdesktop/public-canary • 98f5ab4 • 1 files, +6/-0 Fixed crash finishing info layer show after resize. #tdesktop
39
19
telegramdesktop/tdesktop/public-canary • 9d4d03a • 1 files, +16/-12 Added closing of restore windows offer when chat is opened. Related commit: 3284a5a399. telegramdesktop/tdesktop/public-canary • 382a713 • 3 files, +9/-3 Moved plain text paste check to message field module. telegramdesktop/tdesktop/public-canary • e3dd1f7 • 1 files, +3/-1 Fixed rich paste offer on explicit plain text paste. telegramdesktop/tdesktop/public-canary • 049456b • 1 files, +17/-0 [ai] Reconcile wave verdicts against the ledger telegramdesktop/tdesktop/public-canary • 6ea5a9b • 1 files, +27/-9 [ai] Require no perf cost for auto-committed crash fixes telegramdesktop/tdesktop/public-canary • 4cda457 • 1 files, +3/-0 Fixed crash on deleting already deleted proxies. telegramdesktop/tdesktop/public-canary • de10785 • 1 files, +17/-5 Fixed use-after-free on global media slice update. telegramdesktop/tdesktop/public-canary • 70c994e • 1 files, +16/-2 Fixed huge allocation blurring shared media photos. telegramdesktop/tdesktop/public-canary • b9c6dfa • 1 files, +1/-1 Fixed pure virtual call in accessible interfaces. telegramdesktop/tdesktop/public-canary • 061e074 • 1 files, +7/-3 Fixed use-after-free of the account before intro. telegramdesktop/tdesktop/public-canary • 7e1c09e • 1 files, +6/-1 Fixed crash on gifting Stars without a callback. telegramdesktop/tdesktop/public-canary • 4cf1edd • 2 files, +6/-2 Fixed use-after-free in the group call bar content. telegramdesktop/tdesktop/public-canary • c2169c6 • 1 files, +10/-4 Fixed crash saving a photo with no loaded image. #tdesktop
62
20
morethanwords/tweb/master • e5ad661 • 4 files, +134/-7 Restore sticker fade-in without delaying settled dice #webk
95