Telegram github commits and releases
رفتن به کانال در Telegram
Broadcast from the most important Telegram clients' repositories
نمایش بیشتر4 853
مشترکین
-1524 ساعت
-677 روز
-24230 روز
آرشیو پست ها
telegramdesktop/tdesktop/nightly • 344e330 • 2 files, +6/-2
Fixed crash on Linux and Windows.
telegramdesktop/tdesktop/nightly • 02f420a • 1 files, +52/-3
Updated macOS build on Github CI.
#tdesktop
telegramdesktop/tdesktop/nightly • 5d7ca1b • 1 files, +52/-3
Updated macOS build on Github CI.
#tdesktop
telegramdesktop/tdesktop/dev • 65f24c3 • 1 files, +2/-2
Fix build with Windows on ARM.
#tdesktop
telegramdesktop/tdesktop/dev • fc1fc69 • 4 files, +228/-337
Once again try fixing separators in profiles.
#tdesktop
morethanwords/tweb/master • fa1fc25 • 1 files, +12/-5
fix: cancel in-flight autocomplete load when hiding the panel
morethanwords/tweb/master • 010b12d • 1 files, +5/-4
fix: don't disable HMR inside .claude worktree checkouts
morethanwords/tweb/master • 6795d84 • 19 files, +1161/-11
feat: capture every logger() call to an exportable, symbolicatable log buffer
#webk
Assets for release
v6.8.5 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
#tdesktoptelegramdesktop/tdesktop/nightly • acd2540 • 1 files, +24/-2
Fixed build for Windows ARM on Github CI.
telegramdesktop/tdesktop/nightly • d4f530e • 2 files, +6/-2
Fixed crash on Linux and Windows.
#tdesktop
telegramdesktop/tdesktop/dev • e60476c • 4 files, +4/-36
Replaced global Qt RHI forcing with per-window activation.
telegramdesktop/tdesktop/dev • 818f562 • 1 files, +73/-2
Added separate send action animation for round video messages.
telegramdesktop/tdesktop/dev • bc6705e • 1 files, +20/-29
Fix creating chats from webapps.
telegramdesktop/tdesktop/dev • a681dbe • 1 files, +1/-1
Add styles for send round video message animation.
telegramdesktop/tdesktop/dev • ba6c966 • 1 files, +1/-1
Fix build with Qt < 6.7.
telegramdesktop/tdesktop/dev • 4d4ba03 • 7 files, +32/-16
Beta version 6.8.5.
- Animated 3D objects on settings covers (premium star, coin, diamond).
- Particle effects for one-time voice message playback.
- Birthday celebration effect on profile.
- Poll votes graph in message statistics.
- Separate send action animation for round video messages.
- Open public channels from chat folder invite links.
- Notify toggle and muted icon for silent scheduled messages.
- Per-window Qt RHI renderer activation.
- Fix empty chat list preview after deleting last message.
- Fix shaking of pinned chats dragged past rows of other heights.
- Fix scroll with keyboard in chat history.
- Fix pause of animated reactions when opening their context menu.
#tdesktop
New telegramdesktop/tdesktop release:
v6.8.5 (beta)
- Animated 3D objects on settings covers (premium star, coin, diamond).
- Particle effects for one-time voice message playback.
- Birthday celebration effect on profile.
- Poll votes graph in message statistics.
- Separate send action animation for round video messages.
- Open public channels from chat folder invite links.
- Notify toggle and muted icon for silent scheduled messages.
- Per-window Qt RHI renderer activation.
- Fix empty chat list preview after deleting last message.
- Fix shaking of pinned chats dragged past rows of other heights.
- Fix scroll with keyboard in chat history.
- Fix pause of animated reactions when opening their context menu.
- Improve performance with RHI enabled.
#tdesktopmorethanwords/tweb/master • 689bc71 • 4 files, +4/-5
refactor(tabs): drop manual tab.title pokes where the scaffold can set it
includedChats moves its sync, payload-derived title to a scaffold
function-title (type -> FilterAlwaysShow/FilterNeverShow). chatInviteLinks and
chatInviteLink drop redundant tab.title pokes that just re-set the static title
the scaffold already applies (InviteLinks / InviteLink); chatInviteLink keeps
only the custom-title override (wrapEmojiText), which has no scaffold equivalent.
morethanwords/tweb/master • 70bf3c1 • 300 files, +2626/-2389
Merge master into HMR-tabs branch; reconcile settings-store migration
Master advanced 9 commits (useAppSettings store, chat edge-to-edge scroll,
media-viewer rework, voice fixes, Build artifacts). Reconciled:
- modify/delete conflicts: master edited the legacy editFolder.ts /
backgroundColor.ts, which this branch replaced with .tsx — kept the .tsx,
deleted the .ts, and ported master's rootScope.settings -> useAppSettings()
migration into editFolder.tsx + backgroundColor.tsx (background.tsx auto-merged
master's migration cleanly).
- rootScope.settings removed in master: all three ported background/folder tabs
now read via useAppSettings() (writes use unwrap(appSettings)); no
rootScope.settings remains in the ported tabs (remaining hits in sendingStatus
et al. are identical to master).
- hotReloadGuard.ts/.tsx auto-merge keeps both master's showTranslatePopup and
this branch's scaffold-tab/appDialogsManager/StoriesProvider entries.
tsc clean; eslint clean (tabs.ts indent autofixed).
morethanwords/tweb/master • 06a052c • 9 files, +179/-53
Merge branch 'master' into xenodochial-swartz-dbc3ca
#webk
morethanwords/tweb/master • 9c9d9c1 • 1 files, +134/-177
refactor(chatFolders): idiomatic Solid Sections + Button
Return JSX: the sticker/caption are plain JSX, the create-folder control is a
<Button>, and the Filters / Recommended / View blocks are <Section>s whose hidden
state is driven by signals. The recommended section uses contentProps.ref so its
content element keeps the legacy name-first child layout (the slice(1) cleanup is
unchanged); the view section embeds the two RadioField rows. The dynamic folder
rows, Sortable and the lottie animation (no Solid alternative) are built from
onMount into the refs. Runtime-verified.
morethanwords/tweb/master • 8e6dafe • 1 files, +585/-575
refactor(privacyAndSecurity): idiomatic Solid Sections + Buttons
Return a JSX tree of six <Section>s instead of building SettingSections and
appending to tab.scrollable. The premium-dependent caption and the premium /
sensitive-content visibility toggles are signals; the two action controls
(clear payment info, delete cloud drafts) are <Button>s with their handlers in
the body. The 16 privacy Rows have dynamic, server-driven subtitles and no Solid
alternative, so they are still built imperatively — now from an onMount build
that appends into the section content refs (contentProps.ref). Runtime-verified.
morethanwords/tweb/master • 4ddfecf • 2 files, +175/-163
refactor(chatReactions, editChat): idiomatic Sections + drop title poke
chatReactions now returns a two-<Section> JSX tree: the toggle section's name,
caption and the reactions section's hidden state are signals, and the toggle
row / radio form / sticker checkbox rows (no Solid alternative) are built from an
onMount pass into the section content refs. editChat drops its redundant
tab.title poke (the scaffold already sets title: 'Edit'); its re-entrant
permission-driven builder stays imperative.
morethanwords/tweb/master • 83f4804 • 4 files, +244/-228
refactor(chatDiscussion, userPermissions, editTopic): Sections + scaffold titles
chatDiscussion returns a JSX tree: the sticker, the dynamic caption, the
discussion <Section> and the unlink <Section> are declarative; the create-group
and unlink controls are <Button>s; the section caption / unlink text / create
visibility are signals driven by the onMount build, and the appDialogsManager
chatlist + its per-row update() (no Solid alternative) stay embedded.
userPermissions and editTopic move their sync, payload-derived titles to scaffold
function-titles (editingAdmin -> EditAdmin/UserRestrictions; threadId ->
ForumTopic.Title.Edit/NewTopic) and drop the in-component tab.title pokes; their
ChatPermissions / EmojiTab-dominated bodies stay imperative.
#webk
morethanwords/tweb/master • 9ab7896 • 9 files, +300/-383
refactor(2fa): make the ported 2FA tabs idiomatic Solid
Replace the imperative innards of the seven 2FA tabs with JSX: `new SettingSection`
→ `<Section>`, manual `document.createElement` wrappers → JSX `<div class="...">`,
imperative `Button(...)` → `<Button>` (buttonTsx), `<InputFieldTsx>` for the email/
hint inputs, `<Show>` for the conditional buttons. Each component now returns JSX
mounted by the scaffold instead of appending to tab.scrollable.
Add a payload→title function form to the scaffold `title` option so dynamic titles
(passwordSet password/email, enterPassword first/current) are declared on the
scaffold rather than poked via tab.title in the component body. Imperative widgets
with no Solid alternative (PasswordMonkey/TrackingMonkey, PasswordInputField,
CodeInputFieldCompat, wrapStickerEmoji/lottie, ForgotPasswordLink) are embedded
via their containers. Runtime-verified in the worktree preview: passwordSet and
enterPassword render with correct sections/buttons/titles.
morethanwords/tweb/master • ca4361c • 1 files, +66/-74
refactor(groupPermissions): idiomatic Solid Sections + signals
Return a JSX tree of <Section> instead of building SettingSections imperatively
and appending to tab.scrollable. The async/conditional parts use <Show> + signals
for the charge/boosters elements and the convert-to-gigagroup row, and the slow-mode
caption is a reactive signal driven by the range selector. Genuinely-imperative
widgets with no Solid alternative (ChatPermissions/CheckboxFields, RangeStepsSelector,
the participants chatlist, ScrollableLoader, the exception Rows) are embedded into
ref'd content divs. The ref-dependent build runs from onMount so the refs are mounted;
the promiseCollector still gates the open since onMount runs before its await. Drop
the redundant tab.title poke; the scaffold sets the static title. Runtime-verified.
morethanwords/tweb/master • 130fb6d • 2 files, +114/-133
refactor(myStories): idiomatic Solid placeholder + Section
Return JSX instead of building the DOM by hand: the placeholder (sticker / caption
/ Show-Archive button) is now JSX with <Button>, the archived-stories hint is a
<Section> driven by a reactive caption signal (sync for the self-archive case,
async once the chat broadcast-ness resolves), and the title moves to a payload
function on the scaffold (archive vs my). The already-Solid StoriesProfileList,
the lottie sticker and the header menu stay as-is, created from onMount so the
refs are mounted. Runtime-verified: placeholder/caption/button/stories render,
no stray section.
morethanwords/tweb/master • cc7649b • 2 files, +68/-67
refactor(editChatInviteLink): idiomatic Solid Sections
Return a JSX tree of <Section> with the name field as <InputFieldTsx>. The
broadcast-only paid/approve sections are Show-n on a reactive isBroadcast signal
with their rows held in element signals, and the number-of-uses section hides via
a classList signal. The genuinely-imperative widgets with no Solid alternative
(RangeStepsSelector, CheckboxField, InputStarsField, InputRightNumber) are embedded
into ref'd content divs. The title moves to a payload function on the scaffold
(edit vs new). The ref-dependent build runs from onMount. Runtime-verified.
#webk
morethanwords/tweb/master • 5f6a6b3 • 1 files, +1/-1
fix: restore sticker suggestions for custom emoji input
morethanwords/tweb/master • 2881548 • 3 files, +27/-16
fix: scheduled-view message lookups by id pulled another chat's message
Looking up a message by a bare id (getMessageByPeer / the string branch of
chat.getMessage(fullMid)) resolves against the per-peer history box and, for
legacy private-chat ids, the shared global history box — it never consults the
separate `_scheduled` box. So in the Scheduled view, copying or deleting a
message could grab a same-id message from a different chat.
- contextMenu: getSelectedMessagesText no longer re-fetches by id — the single
message uses the in-hand object, and a selection uses the storage-aware
selection.getSelectedMessages().
- chat.getMessage(FullMid): for our own scheduled peer, read from this chat's
(scheduled) storage instead of getMessageByPeer. Fixes the whole bubbles.ts
getMessage(fullMid) family in Scheduled at the chokepoint; gated, so
non-scheduled / Logs / cross-peer behavior is byte-for-byte unchanged.
- deleteMessages: use getScheduledMessageByPeer when type === Scheduled (history
fetch returned undefined/foreign messages, breaking the megagroup-admin and
giveaway checks).
- Document that ChatType.Logs has the same separate-box (`_logs`) shape but is
left wired to `_history` for now (works via fallbacks).
morethanwords/tweb/master • 623baf7 • 5 files, +151/-36
fix: release camera/mic when owner is torn down mid-getUserMedia
#webk
telegramdesktop/tdesktop/dev • 29445ff • 1 files, +0/-5
Fixed build on Linux.
telegramdesktop/tdesktop/dev • 6c3b12a • 1 files, +3/-1
Fixed build for Windows.
telegramdesktop/tdesktop/dev • 980bce6 • 5 files, +152/-1
Added notify toggle with to schedule box.
telegramdesktop/tdesktop/dev • 7b4cdb2 • 5 files, +38/-0
Added muted icon to bottom info for silent scheduled messages.
telegramdesktop/tdesktop/dev • 1431703 • 4 files, +4/-36
Replaced global Qt RHI forcing with per-window activation.
telegramdesktop/tdesktop/dev • e505b39 • 1 files, +73/-2
Added separate send action animation for round video messages.
#tdesktop
telegramdesktop/tdesktop/dev • 86ca2c7 • 2 files, +12/-0
Added golden mode pass-through to premium 3D star widget.
telegramdesktop/tdesktop/dev • a715ab7 • 3 files, +15/-1
Added golden star variant to premium settings top bar.
telegramdesktop/tdesktop/dev • d68ada6 • 3 files, +41/-18
Added orange to yellow particle gradient to golden star cover.
telegramdesktop/tdesktop/dev • 87a8ba6 • 3 files, +49/-4
Added star glyph option to particle cloud sprites for credits settings.
telegramdesktop/tdesktop/dev • 30bfddf • 6 files, +7009/-0
Added 3D coin meshes and border texture for business settings cover.
telegramdesktop/tdesktop/dev • aeaa4f7 • 2 files, +132/-0
Added rendering shaders for 3D coin cover object.
telegramdesktop/tdesktop/dev • 18ad769 • 3 files, +436/-0
Added QRhi renderer for 3D coin cover object.
telegramdesktop/tdesktop/dev • f537636 • 3 files, +100/-0
Added widget and spin animation for 3D coin cover object.
telegramdesktop/tdesktop/dev • 429a0d0 • 3 files, +30/-2
Added 3D coin object to business settings cover.
telegramdesktop/tdesktop/dev • 6abddb9 • 5 files, +87/-17
Added flipping coin option to particle cloud for business settings.
telegramdesktop/tdesktop/dev • dba9eca • 3 files, +234/-0
Added particle effects for one-time voice message playback.
telegramdesktop/tdesktop/dev • 5908c2f • 2 files, +58/-2
Animated one-time voice playback with radial and waveform particles.
telegramdesktop/tdesktop/dev • 9c470a8 • 1 files, +24/-19
Batched random generation for fireworks particles.
#tdesktop
telegramdesktop/tdesktop/dev • 2076f85 • 1 files, +1/-1
Linked admin log replies to their in-log target messages.
telegramdesktop/tdesktop/dev • e8d0a8d • 4 files, +17/-7
Allowed admin log original entries to carry preview photo or document.
telegramdesktop/tdesktop/dev • cf4e440 • 2 files, +139/-7
Added previous media preview rendering to admin log caption web page.
telegramdesktop/tdesktop/dev • e06b8dd • 1 files, +29/-1
Passed previous media of edited messages into admin log.
telegramdesktop/tdesktop/dev • b12612c • 5 files, +172/-100
Extracted shared 3D mesh, shader, and texture loaders from premium star.
telegramdesktop/tdesktop/dev • 1544dd5 • 4 files, +152/-107
Extracted shared 3D easing and QRhi support probe from star.
telegramdesktop/tdesktop/dev • 4754ede • 5 files, +326/-0
Added 3D diamond meshes and shaders for currency settings cover.
telegramdesktop/tdesktop/dev • fe98e9b • 2 files, +33/-0
Added shared 3D multi-shell model loader.
telegramdesktop/tdesktop/dev • efe49a9 • 3 files, +411/-0
Added QRhi renderer for 3D diamond.
telegramdesktop/tdesktop/dev • c8dd53b • 5 files, +601/-0
Added shared 3D cover widget with spin and drag, and diamond.
telegramdesktop/tdesktop/dev • 0a7d16e • 3 files, +50/-18
Added display of 3D diamond on currency settings cover when supported.
telegramdesktop/tdesktop/dev • 653c20b • 2 files, +65/-0
Added golden star fragment path to premium 3D star shader.
telegramdesktop/tdesktop/dev • 5817899 • 2 files, +8/-0
Added golden mode toggle to premium 3D star renderer.
#tdesktop
morethanwords/tweb/master • 57c9af1 • 17 files, +79/-48
refactor: read app settings via useAppSettings store, drop rootScope.settings
Migrate every settings access off the `rootScope.settings` getter onto the
reactive `useAppSettings()` store, making the Solid store the single source of
truth (the old getter could read stale values — e.g. the sent-message-sound
toggle).
- Remove the `rootScope.settings` field and the `Object.defineProperty` shim
in apiManagerProxy that aliased it to `unwrap(appSettings)`.
- Consumers now read via `const [appSettings] = useAppSettings()`
(animationIntersector, dialogsContextMenu, liteMode, themeController,
appImManager, isSendShortcutPressed, sidebarLeft, background tabs, …).
- Writers persist with `unwrap(appSettings)`; bootstrap uses
`setAppSettingsSilent()`.
- Expose `useAppSettings` on `MOUNT_CLASS_TO` for debugging.
Also: folders-sidebar active badge uses primary color / white text, and
slider title flexes to fill with fixed text-super + emoji baseline alignment.
morethanwords/tweb/master • e05c7bf • 3 files, +71/-14
refactor: chat scrolls edge-to-edge; fix right-sidebar peek past iOS safe-area
Chat scroll area:
- The .bubbles scroll container now spans the full middle zone — from the left
card's edge to the page edge (or the docked right column's inner edge) — so the
chat scrolls edge-to-edge and the scrollbar sits at the very edge. Was capped to
100% − right-column with a -.5rem inset. Messages stay centred at --chat-width
via the inner's max-width + margin:auto.
- inset-inline is now a symmetric value mirroring #column-center's translateX
centring formulas, countering that shift to reach the real edges: the page edge
when the right column is closed/floating, the docked right column's inner edge
when it's shown. Drop the width: calc(100% − --right-column-width) override and
expand the centring comments to match.
iOS safe-area:
- Add a --safe-area-inset-inline-end var (0px no-env() fallback; in the @supports
block min(16px, env(safe-area-inset-right)), mirrored to safe-area-inset-left
on :root.is-rtl). Set on :root to match --reflect's specificity; value goes
through #{} interpolation so Sass doesn't emit the min() literally.
- Fold it into the closed right-sidebar transform so the card + box-shadow slide
fully past the real screen edge and no longer peek through the safe-area strip
on landscape iPhones (0 on desktop, so the desktop offset is unchanged).
morethanwords/tweb/master • 9a4c1af • 177 files, +304/-304
Build
#webk
morethanwords/tweb/master • 1213b59 • 20 files, +329/-106
fix: voice volume above 100%, frozen conference roster, group-call id lookups, layout
Voice/round volume:
- Amplifying a voice past 100% leaked into the shared master `volume` and got
persisted as a >1 value, bleeding into video/music. Split it out into a
voice-only `boost`: the 0-100% slider range drives the shared `volume`,
100-200% drives `boost`. Both clamp to [0, 1]; effective voice volume =
volume + boost in [0, 2].
- Feed HTMLMediaElement a clamped [0, 1] value (the element rejects >1).
- Migrate corrupted/legacy state: a stale >1 `volume` is clamped back and its
excess recovered into `boost`, and the normalized params are persisted once on
init (rewrites e.g. a stored volume: 1.04).
Conference (TdE2E) participants:
- Roster + count froze at the connect-time snapshot — conferences get no
reliable updateGroupCallParticipants pushes. Add
appGroupCallsManager.refreshConferenceParticipants: a fresh full SFU fetch
that reconciles the cache (adds joiners + their SSRCs, marks absent peers
`left`) and takes the count from the authoritative server total. Driven off
the e2e group_state (each applied chain block) with a 5s backstop timer; skip
self so a lagging server snapshot can't tear the call down.
Group-call id lookups:
- Small ids stored as numbers but looked up as strings missed the manager cache
("Group call <id> not found" on connect, empty conference popup). Keep ids in
native fetchLong form (number for small, string for large) end to end —
instance id, resolvedCallId, placeholder, chain-block callId, rootScope event
— so they stay === the cache key. Drops the GroupCallIdMap workaround.
Chat input:
- Paint the rounded surface directly on .chat-input-container instead of a
separate .chat-input-background element; rename --chat-input-background-color
-> --chat-input-background.
Layout:
- chat: on mobile, a theme/wallpaper that finishes loading while the chat is
off-screen no longer flips the global background; re-assert it on return.
- columns: size off html's content-box width (minus the iOS safe-area inset
padding) instead of vw, so the chat stops collapsing against the left bar on
landscape iPhones.
- topbar: ellipsis-truncate peer title/info and fix chat-info width.
- slider: stop horizontal-menu tabs from stretching (flex 0 0 auto).
- chatPreview: neutralize the topbar transform inside the preview popup.
morethanwords/tweb/master • df09867 • 185 files, +481/-481
Build
#webk
morethanwords/tweb/master • ad40acb • 12 files, +995/-101
feat: engagement metrics + media viewer layout rework, plus fixes
- metrics: report music-listen and channel read engagement (messages.reportMusicListen /
reportReadMetrics) via new MusicListenTracker + ReadMetricsTracker
- media viewer: center layout moved off CSS vars to inline JS, resize refit,
live-stream controls anchored to the screen bottom, PiP via opacity
- calls: detect rear camera when iOS reports empty facingMode
- filters: don't block on a folder filter that no longer exists
- messages: persist hiddenPinnedMessages across reload
#webk
telegramdesktop/tdesktop/nightly • 3936cc1 • 1 files, +0/-5
Fixed build on Linux.
telegramdesktop/tdesktop/nightly • e74313c • 1 files, +3/-1
Fixed build for Windows.
#tdesktop
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
