telegramdesktop/tdesktop/dev • 71ea71b • 1 files, +1/-1
Drop author-only quotes that the server rejects
telegramdesktop/tdesktop/dev • 8584f29 • 2 files, +45/-4
Recover cleanly when rich submit is empty or rejected
telegramdesktop/tdesktop/dev • 0da3e55 • 1 files, +12/-7
Restore the rich draft via cloud draft on send fail
telegramdesktop/tdesktop/dev • ae57ec4 • 1 files, +5/-0
Re-add the divider insert entry to the block menu
telegramdesktop/tdesktop/dev • 382e173 • 1 files, +24/-0
Swap table title and first-cell backspace boundary
telegramdesktop/tdesktop/dev • 6e2397c • 3 files, +133/-14
Show shortcuts and active-color marking in style menus
telegramdesktop/tdesktop/dev • d15a500 • 2 files, +145/-13
Restore hover tooltips on the IV editor top toolbar
telegramdesktop/tdesktop/dev • 45adb8f • 4 files, +68/-0
Mark rich-formatted drafts with a Send-button lock badge
telegramdesktop/tdesktop/dev • 7a56e10 • 5 files, +133/-1
Offer to send a rich draft without formatting
telegramdesktop/tdesktop/dev • 102665c • 2 files, +49/-4
Show premium stars on rich-only toolbar buttons
telegramdesktop/tdesktop/dev • bcddead • 4 files, +84/-20
Show premium stars in place of style menu shortcuts
telegramdesktop/tdesktop/dev • 929fbf2 • 4 files, +41/-1
Show grayed Hide-from-name for non-premium forwards
telegramdesktop/tdesktop/dev • 74075ae • 3 files, +74/-3
Keep non-premium formatting when flattening rich sends
telegramdesktop/tdesktop/dev • 2abc55e • 2 files, +5/-2
Fade the clipped rich-draft preview bottom
#tdesktop
Drop author-only quotes that the server rejects
telegramdesktop/tdesktop/dev • 8584f29 • 2 files, +45/-4
Recover cleanly when rich submit is empty or rejected
telegramdesktop/tdesktop/dev • 0da3e55 • 1 files, +12/-7
Restore the rich draft via cloud draft on send fail
telegramdesktop/tdesktop/dev • ae57ec4 • 1 files, +5/-0
Re-add the divider insert entry to the block menu
telegramdesktop/tdesktop/dev • 382e173 • 1 files, +24/-0
Swap table title and first-cell backspace boundary
telegramdesktop/tdesktop/dev • 6e2397c • 3 files, +133/-14
Show shortcuts and active-color marking in style menus
telegramdesktop/tdesktop/dev • d15a500 • 2 files, +145/-13
Restore hover tooltips on the IV editor top toolbar
telegramdesktop/tdesktop/dev • 45adb8f • 4 files, +68/-0
Mark rich-formatted drafts with a Send-button lock badge
telegramdesktop/tdesktop/dev • 7a56e10 • 5 files, +133/-1
Offer to send a rich draft without formatting
telegramdesktop/tdesktop/dev • 102665c • 2 files, +49/-4
Show premium stars on rich-only toolbar buttons
telegramdesktop/tdesktop/dev • bcddead • 4 files, +84/-20
Show premium stars in place of style menu shortcuts
telegramdesktop/tdesktop/dev • 929fbf2 • 4 files, +41/-1
Show grayed Hide-from-name for non-premium forwards
telegramdesktop/tdesktop/dev • 74075ae • 3 files, +74/-3
Keep non-premium formatting when flattening rich sends
telegramdesktop/tdesktop/dev • 2abc55e • 2 files, +5/-2
Fade the clipped rich-draft preview bottom
#tdesktop
🫡3
telegramdesktop/tdesktop/dev • aa66497 • 1 files, +2/-0
Keep chat focus when rich-draft preview is shown
telegramdesktop/tdesktop/dev • a3b1e8f • 1 files, +30/-3
Fix possible crash in tooltip show.
telegramdesktop/tdesktop/dev • b72f7a1 • 7 files, +41/-9
Hide rich messages editor behind an option.
telegramdesktop/tdesktop/dev • fd759d9 • 2 files, +7/-1
Fix rich message re-layout.
Fixes #30906.
telegramdesktop/tdesktop/dev • fb6e0b9 • 2 files, +34/-0
Attempt to fix overscroll for history up-loading.
telegramdesktop/tdesktop/dev • 2779b2a • 7 files, +104/-36
Mark premium actions better.
telegramdesktop/tdesktop/dev • d499052 • 4 files, +34/-2
Gate rich-message authoring on app config
telegramdesktop/tdesktop/dev • 9c22623 • 6 files, +25/-0
Add Rich Formatting premium-promo section
telegramdesktop/tdesktop/dev • 99d0cac • 1 files, +1/-0
Include core/version.h directly in Windows platform sources.
telegramdesktop/tdesktop/dev • c025334 • 4 files, +23/-0
Stop overscroll if we have more to load.
telegramdesktop/tdesktop/dev • 6b4fdb6 • 1 files, +6/-2
Keep IV selection visible while window is inactive
telegramdesktop/tdesktop/dev • a0b8267 • 1 files, +6/-1
Hide IV jump-to-top button near the very bottom
telegramdesktop/tdesktop/dev • dcb1fa9 • 7 files, +32/-30
Lock scroll axis for IV touchpad gestures
telegramdesktop/tdesktop/dev • 8f4bd0e • 1 files, +0/-31
Trim the IV link/text context menu
#tdesktop
Keep chat focus when rich-draft preview is shown
telegramdesktop/tdesktop/dev • a3b1e8f • 1 files, +30/-3
Fix possible crash in tooltip show.
telegramdesktop/tdesktop/dev • b72f7a1 • 7 files, +41/-9
Hide rich messages editor behind an option.
telegramdesktop/tdesktop/dev • fd759d9 • 2 files, +7/-1
Fix rich message re-layout.
Fixes #30906.
telegramdesktop/tdesktop/dev • fb6e0b9 • 2 files, +34/-0
Attempt to fix overscroll for history up-loading.
telegramdesktop/tdesktop/dev • 2779b2a • 7 files, +104/-36
Mark premium actions better.
telegramdesktop/tdesktop/dev • d499052 • 4 files, +34/-2
Gate rich-message authoring on app config
telegramdesktop/tdesktop/dev • 9c22623 • 6 files, +25/-0
Add Rich Formatting premium-promo section
telegramdesktop/tdesktop/dev • 99d0cac • 1 files, +1/-0
Include core/version.h directly in Windows platform sources.
telegramdesktop/tdesktop/dev • c025334 • 4 files, +23/-0
Stop overscroll if we have more to load.
telegramdesktop/tdesktop/dev • 6b4fdb6 • 1 files, +6/-2
Keep IV selection visible while window is inactive
telegramdesktop/tdesktop/dev • a0b8267 • 1 files, +6/-1
Hide IV jump-to-top button near the very bottom
telegramdesktop/tdesktop/dev • dcb1fa9 • 7 files, +32/-30
Lock scroll axis for IV touchpad gestures
telegramdesktop/tdesktop/dev • 8f4bd0e • 1 files, +0/-31
Trim the IV link/text context menu
#tdesktop
🫡3
telegramdesktop/tdesktop/dev • 2b6f26c • 1 files, +1/-1
Use normal font size for IV quote author label
telegramdesktop/tdesktop/dev • adc94bf • 1 files, +3/-0
Keep rich messages as text, not isolated emoji
telegramdesktop/tdesktop/dev • 86b9b42 • 1 files, +10/-2
Keep IV word selection across text nodes
telegramdesktop/tdesktop/dev • 13b61fc • 2 files, +23/-0
Add IV triple-click paragraph selection
telegramdesktop/tdesktop/dev • 8099f5d • 3 files, +39/-1
Zoom the IV article on Ctrl+wheel
telegramdesktop/tdesktop/dev • eeef96e • 7 files, +67/-9
Request IV media images at zoomed pixel size
telegramdesktop/tdesktop/dev • 8d26202 • 1 files, +9/-2
Fix Escape in sections with compose controls.
Regression from f362c1610648: moving the key event filter from the
InputField to its raw QTextEdit made the Escape branch consume the key
before InputField::keyPressEventInner could fire cancelled(), so
sections like scheduled messages no longer went back on Escape with a
focused field. Keep the Cmd+Up/Down handling on the raw text edit and
suppress the propagated Escape in a separate filter on the field.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
telegramdesktop/tdesktop/dev • 802beab • 3 files, +14/-7
Show loading dots for thinking-only rich drafts
telegramdesktop/tdesktop/dev • 7b2754f • 4 files, +115/-110
Extract reusable top bar suggestion bubble mount.
Factor the floating cloud bubble's painting and scroll-mount wiring into shared helpers so the bubble content can be mounted standalone over any scrollable surface.
telegramdesktop/tdesktop/dev • ea0ba76 • 2 files, +3/-1
Add a skip above rich messages.
telegramdesktop/tdesktop/dev • b2f324c • 1 files, +1/-1
Nudge editor toolbar premium stars inward
telegramdesktop/tdesktop/dev • 7c2795d • 1 files, +3/-4
Fixed dangling image reference in peer list rows scroll cache.
#tdesktop
Use normal font size for IV quote author label
telegramdesktop/tdesktop/dev • adc94bf • 1 files, +3/-0
Keep rich messages as text, not isolated emoji
telegramdesktop/tdesktop/dev • 86b9b42 • 1 files, +10/-2
Keep IV word selection across text nodes
telegramdesktop/tdesktop/dev • 13b61fc • 2 files, +23/-0
Add IV triple-click paragraph selection
telegramdesktop/tdesktop/dev • 8099f5d • 3 files, +39/-1
Zoom the IV article on Ctrl+wheel
telegramdesktop/tdesktop/dev • eeef96e • 7 files, +67/-9
Request IV media images at zoomed pixel size
telegramdesktop/tdesktop/dev • 8d26202 • 1 files, +9/-2
Fix Escape in sections with compose controls.
Regression from f362c1610648: moving the key event filter from the
InputField to its raw QTextEdit made the Escape branch consume the key
before InputField::keyPressEventInner could fire cancelled(), so
sections like scheduled messages no longer went back on Escape with a
focused field. Keep the Cmd+Up/Down handling on the raw text edit and
suppress the propagated Escape in a separate filter on the field.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
telegramdesktop/tdesktop/dev • 802beab • 3 files, +14/-7
Show loading dots for thinking-only rich drafts
telegramdesktop/tdesktop/dev • 7b2754f • 4 files, +115/-110
Extract reusable top bar suggestion bubble mount.
Factor the floating cloud bubble's painting and scroll-mount wiring into shared helpers so the bubble content can be mounted standalone over any scrollable surface.
telegramdesktop/tdesktop/dev • ea0ba76 • 2 files, +3/-1
Add a skip above rich messages.
telegramdesktop/tdesktop/dev • b2f324c • 1 files, +1/-1
Nudge editor toolbar premium stars inward
telegramdesktop/tdesktop/dev • 7c2795d • 1 files, +3/-4
Fixed dangling image reference in peer list rows scroll cache.
#tdesktop
🫡3
telegramdesktop/tdesktop/dev • 9766019 • 1 files, +20/-5
Removed redundant background fill under opaque peer list rows.
telegramdesktop/tdesktop/dev • 7c2725f • 4 files, +17/-10
Moved peer list rows scroll cache to separate module.
telegramdesktop/tdesktop/dev • b3a2434 • 4 files, +58/-1
Cached dialogs list rows into opaque images while scrolling.
telegramdesktop/tdesktop/dev • ffeb5d4 • 7 files, +257/-25
Allowed live animations over cached dialogs list rows.
telegramdesktop/tdesktop/dev • 03d1a1d • 2 files, +43/-7
Added refresh of loaded userpics over cached dialogs list rows.
telegramdesktop/tdesktop/dev • 8e535a2 • 7 files, +7/-34
Drop the rich-messages-editor experimental flag
telegramdesktop/tdesktop/dev • 435482e • 4 files, +87/-0
Open the editor in edit mode from Expand
telegramdesktop/tdesktop/dev • 90707a9 • 8 files, +90/-13
Corner-lock the send badge and gate rich send
telegramdesktop/tdesktop/dev • bd4a6b4 • 2 files, +10/-3
Restyle the send-without-formatting box
telegramdesktop/tdesktop/dev • 340eb6a • 7 files, +136/-6
Gate flatten offer on lossless rich drafts
telegramdesktop/tdesktop/dev • 1820743 • 2 files, +7/-3
Base rich-draft preview fade on line height
telegramdesktop/tdesktop/dev • 99d9e7f • 1 files, +35/-0
[ai] Note non-Q_OBJECT findChildren pitfall for test overlays.
telegramdesktop/tdesktop/dev • 3664506 • 2 files, +37/-2
Keep a following list intact when replacing blocks
telegramdesktop/tdesktop/dev • 3738d58 • 3 files, +12/-4
Fix problems with paywalls in rich messages.
#tdesktop
Removed redundant background fill under opaque peer list rows.
telegramdesktop/tdesktop/dev • 7c2725f • 4 files, +17/-10
Moved peer list rows scroll cache to separate module.
telegramdesktop/tdesktop/dev • b3a2434 • 4 files, +58/-1
Cached dialogs list rows into opaque images while scrolling.
telegramdesktop/tdesktop/dev • ffeb5d4 • 7 files, +257/-25
Allowed live animations over cached dialogs list rows.
telegramdesktop/tdesktop/dev • 03d1a1d • 2 files, +43/-7
Added refresh of loaded userpics over cached dialogs list rows.
telegramdesktop/tdesktop/dev • 8e535a2 • 7 files, +7/-34
Drop the rich-messages-editor experimental flag
telegramdesktop/tdesktop/dev • 435482e • 4 files, +87/-0
Open the editor in edit mode from Expand
telegramdesktop/tdesktop/dev • 90707a9 • 8 files, +90/-13
Corner-lock the send badge and gate rich send
telegramdesktop/tdesktop/dev • bd4a6b4 • 2 files, +10/-3
Restyle the send-without-formatting box
telegramdesktop/tdesktop/dev • 340eb6a • 7 files, +136/-6
Gate flatten offer on lossless rich drafts
telegramdesktop/tdesktop/dev • 1820743 • 2 files, +7/-3
Base rich-draft preview fade on line height
telegramdesktop/tdesktop/dev • 99d9e7f • 1 files, +35/-0
[ai] Note non-Q_OBJECT findChildren pitfall for test overlays.
telegramdesktop/tdesktop/dev • 3664506 • 2 files, +37/-2
Keep a following list intact when replacing blocks
telegramdesktop/tdesktop/dev • 3738d58 • 3 files, +12/-4
Fix problems with paywalls in rich messages.
#tdesktop
🫡3
telegramdesktop/tdesktop/dev • 2509a3c • 5 files, +22/-31
Show premium required toast instead of promo.
telegramdesktop/tdesktop/dev • f04e4f5 • 1 files, +1/-1
Update lib_ui.
#tdesktop
Show premium required toast instead of promo.
telegramdesktop/tdesktop/dev • f04e4f5 • 1 files, +1/-1
Update lib_ui.
#tdesktop
🫡3
telegramdesktop/tdesktop/dev • 71bd56e • 2 files, +93/-29
Moved chat list selection to the navigated row on screen reader focus.
telegramdesktop/tdesktop/dev • 317eefa • 4 files, +284/-69
Opened chat on screen reader activate of a chat list row.
telegramdesktop/tdesktop/dev • 164eddf • 1 files, +1/-1
Fix python warning in prepare.
#tdesktop
Moved chat list selection to the navigated row on screen reader focus.
telegramdesktop/tdesktop/dev • 317eefa • 4 files, +284/-69
Opened chat on screen reader activate of a chat list row.
telegramdesktop/tdesktop/dev • 164eddf • 1 files, +1/-1
Fix python warning in prepare.
#tdesktop
🫡3
telegramdesktop/tdesktop/dev • c362a47 • 2 files, +14/-6
Fix identities for dialogs list rows.
#tdesktop
Fix identities for dialogs list rows.
#tdesktop
🫡2
telegramdesktop/tdesktop/dev • 9101d41 • 1 files, +14/-8
Fix premium markings in text style buttons.
telegramdesktop/tdesktop/dev • db5f107 • 1 files, +17/-0
Improve divider insertion.
telegramdesktop/tdesktop/dev • 2edcbd2 • 1 files, +15/-7
Fix fade to bg in rich message drafts.
telegramdesktop/tdesktop/dev • 4be2bc7 • 4 files, +139/-2
Insert empty paragraph on Up key in the start.
#tdesktop
Fix premium markings in text style buttons.
telegramdesktop/tdesktop/dev • db5f107 • 1 files, +17/-0
Improve divider insertion.
telegramdesktop/tdesktop/dev • 2edcbd2 • 1 files, +15/-7
Fix fade to bg in rich message drafts.
telegramdesktop/tdesktop/dev • 4be2bc7 • 4 files, +139/-2
Insert empty paragraph on Up key in the start.
#tdesktop
🫡3
telegramdesktop/tdesktop/dev • adf04f5 • 2 files, +2/-14
Allow X11 WM to automatically position SeparatePanel with a foreign parent
telegramdesktop/tdesktop/dev • 80833b6 • 4 files, +3/-22
Get rid of DESKTOP_APP_DISABLE_X11_INTEGRATION
#tdesktop
Allow X11 WM to automatically position SeparatePanel with a foreign parent
telegramdesktop/tdesktop/dev • 80833b6 • 4 files, +3/-22
Get rid of DESKTOP_APP_DISABLE_X11_INTEGRATION
#tdesktop
🫡3
telegramdesktop/tdesktop/dev • 4200a27 • 6 files, +3/-40
Fix build with GCC.
telegramdesktop/tdesktop/dev • 0eb071f • 3 files, +3/-3
Update submodules.
#tdesktop
Fix build with GCC.
telegramdesktop/tdesktop/dev • 0eb071f • 3 files, +3/-3
Update submodules.
#tdesktop
🫡3
telegramdesktop/tdesktop/dev • 4bafe2f • 1 files, +10/-3
Update breakpad to latest commit in Docker
#tdesktop
Update breakpad to latest commit in Docker
#tdesktop
🫡3
New telegramdesktop/tdesktop release:
- Add rich message editor with media, tables and math formulas.
- Show rich message drafts with full formatting in chat compose area.
- Add text recognition with selection and copying to media viewer images.
- Add swipe navigation and pinch zoom gestures to media viewer.
- Support zoom and dragging files out in shared media photos.
- Allow adapting existing stickers into custom emoji.
- Add media viewer video playback to system media controls.
- Add alphabetical fast-scroll index to contacts box.
- Improve screen reader accessibility for chats list and folders.
#tdesktop
v6.9.4 (beta)- Add rich message editor with media, tables and math formulas.
- Show rich message drafts with full formatting in chat compose area.
- Add text recognition with selection and copying to media viewer images.
- Add swipe navigation and pinch zoom gestures to media viewer.
- Support zoom and dragging files out in shared media photos.
- Allow adapting existing stickers into custom emoji.
- Add media viewer video playback to system media controls.
- Add alphabetical fast-scroll index to contacts box.
- Improve screen reader accessibility for chats list and folders.
#tdesktop
🫡3
telegramdesktop/tdesktop/dev • 8a22f2c • 6 files, +29/-17
Beta version 6.9.4.
- Add rich message editor with media, tables and math formulas.
- Show rich message drafts with full formatting in chat compose area.
- Add text recognition with selection and copying
to media viewer images.
- Add swipe navigation and pinch zoom gestures to media viewer.
- Support zoom and dragging files out in shared media photos.
- Allow adapting existing stickers into custom emoji.
- Add media viewer video playback to system media controls.
- Add alphabetical fast-scroll index to contacts box.
- Improve screen reader accessibility for chats list and folders.
#tdesktop
Beta version 6.9.4.
- Add rich message editor with media, tables and math formulas.
- Show rich message drafts with full formatting in chat compose area.
- Add text recognition with selection and copying
to media viewer images.
- Add swipe navigation and pinch zoom gestures to media viewer.
- Support zoom and dragging files out in shared media photos.
- Allow adapting existing stickers into custom emoji.
- Add media viewer video playback to system media controls.
- Add alphabetical fast-scroll index to contacts box.
- Improve screen reader accessibility for chats list and folders.
#tdesktop
🫡4
Assets for release
• 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
#tdesktop
v6.9.4 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
#tdesktop
🫡4
UnigramDev/Unigram/layer228 • 53501e5 • 1 files, +1/-1
Fix missing default value
UnigramDev/Unigram/layer228 • da4f41c • 2 files, +0/-142
Remove unused code
UnigramDev/Unigram/layer228 • da41770 • 9 files, +1/-31
Removed TextStyle
UnigramDev/Unigram/layer228 • 24e067a • 1 files, +53/-69
Refactor formatted text block pools
UnigramDev/Unigram/layer228 • 90d9201 • 1 files, +16/-18
Fix fast run and auto font size
UnigramDev/Unigram/layer228 • 1a081c8 • 44 files, +441/-8
Debug chat history UI tree
UnigramDev/Unigram/layer228 • bd8c037 • 4 files, +80/-35
Don't use explicit bindings in FormattedTextBlock
UnigramDev/Unigram/layer228 • bcc5581 • 3 files, +9/-9
Fix code block font family
UnigramDev/Unigram/layer228 • c22c16b • 2 files, +76/-14
Optimize SVG decompression
UnigramDev/Unigram/layer228 • 67f34b7 • 1 files, +25/-10
Properly unsubscribe window
UnigramDev/Unigram/layer228 • 5c5590f • 1 files, +8/-1
Fix leak in dead code
UnigramDev/Unigram/layer228 • 49b2c6b • 3 files, +41/-9
Fixes
UnigramDev/Unigram/layer228 • b727254 • 1 files, +18/-5
Fix context menu for selected messages
UnigramDev/Unigram/layer228 • 15f1274 • 1 files, +1/-1
Fix context menu for vote-once polls
UnigramDev/Unigram/layer228 • 14e7634 • 2 files, +2/-6
Refactoring
#unigram
Fix missing default value
UnigramDev/Unigram/layer228 • da4f41c • 2 files, +0/-142
Remove unused code
UnigramDev/Unigram/layer228 • da41770 • 9 files, +1/-31
Removed TextStyle
UnigramDev/Unigram/layer228 • 24e067a • 1 files, +53/-69
Refactor formatted text block pools
UnigramDev/Unigram/layer228 • 90d9201 • 1 files, +16/-18
Fix fast run and auto font size
UnigramDev/Unigram/layer228 • 1a081c8 • 44 files, +441/-8
Debug chat history UI tree
UnigramDev/Unigram/layer228 • bd8c037 • 4 files, +80/-35
Don't use explicit bindings in FormattedTextBlock
UnigramDev/Unigram/layer228 • bcc5581 • 3 files, +9/-9
Fix code block font family
UnigramDev/Unigram/layer228 • c22c16b • 2 files, +76/-14
Optimize SVG decompression
UnigramDev/Unigram/layer228 • 67f34b7 • 1 files, +25/-10
Properly unsubscribe window
UnigramDev/Unigram/layer228 • 5c5590f • 1 files, +8/-1
Fix leak in dead code
UnigramDev/Unigram/layer228 • 49b2c6b • 3 files, +41/-9
Fixes
UnigramDev/Unigram/layer228 • b727254 • 1 files, +18/-5
Fix context menu for selected messages
UnigramDev/Unigram/layer228 • 15f1274 • 1 files, +1/-1
Fix context menu for vote-once polls
UnigramDev/Unigram/layer228 • 14e7634 • 2 files, +2/-6
Refactoring
#unigram
🫡2
UnigramDev/Unigram/layer228 • 7b8b6d2 • 2 files, +42/-0
IsTextTrimmable
UnigramDev/Unigram/layer228 • 90d5a6e • 5 files, +172/-26
WIP: memory optimizations
#unigram
IsTextTrimmable
UnigramDev/Unigram/layer228 • 90d5a6e • 5 files, +172/-26
WIP: memory optimizations
#unigram
🫡2
morethanwords/tweb/master • 6e3d57a • 1 files, +15/-1
Add view-in-stealth-mode option to profile stories context menu
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
morethanwords/tweb/master • 3c6ca05 • 3 files, +106/-5
Fix code-block markdown paste and send handling
- parseMarkdown: only treat the first line of a ``` block as a language tag when it's a single identifier token, so a leading { (e.g. pretty-printed JSON with the opening fence on the same line) is kept as code instead of being swallowed.
- parseMarkdown: a lone ``` run (all-backtick content, not a real fence) was pushed twice — once in the all-backtick branch and again in the !pushedEntity fallback — duplicating it and drifting every entity after it on send. Emit it verbatim once.
- inputField paste handler: don't discard perfectly good rich HTML when text/plain is a markdown rendering of the same content (backticks/asterisks make it longer). Also accept the rich value when its non-whitespace chars are an in-order subsequence of the plain text.
- Add parseMarkdownCode.test.ts covering language detection and the lone-``` duplication.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
morethanwords/tweb/master • 5dae11d • 8 files, +203/-21
Route OffscreenCanvas stickers and spoilers through per-tab workers
OffscreenCanvas presentation (transferControlToOffscreen) is incompatible
with a SharedWorker: a tab-owned canvas's frame sink is bound to the owning
renderer process, so a cross-process present is rejected ("Invalid client ID")
and kills the tab with RESULT_CODE_KILLED_BAD_MESSAGE whenever two same-origin
tabs land in different processes. Gate both offscreen paths behind a shared
IS_SHARED_WORKER_OFFSCREEN_CANVAS_SUPPORTED flag.
- Spoiler renderer runs as a per-tab dedicated Worker instead of a SharedWorker.
- rlottie 'canvas' stickers keep decoding in the shared rlottie worker but
present via the per-tab emoji compositor: the worker ships ImageBitmaps and
the compositor holds/tints/blits the transferred canvases (attach/detach/
resize/config/present sticker ops, keyed by item reqId). Re-key
lottieLoader.players on the offscreen->legacy fallback via a new reqIdChanged
event, and extract paintFrameTinted shared by both workers.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
#webk
Add view-in-stealth-mode option to profile stories context menu
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
morethanwords/tweb/master • 3c6ca05 • 3 files, +106/-5
Fix code-block markdown paste and send handling
- parseMarkdown: only treat the first line of a ``` block as a language tag when it's a single identifier token, so a leading { (e.g. pretty-printed JSON with the opening fence on the same line) is kept as code instead of being swallowed.
- parseMarkdown: a lone ``` run (all-backtick content, not a real fence) was pushed twice — once in the all-backtick branch and again in the !pushedEntity fallback — duplicating it and drifting every entity after it on send. Emit it verbatim once.
- inputField paste handler: don't discard perfectly good rich HTML when text/plain is a markdown rendering of the same content (backticks/asterisks make it longer). Also accept the rich value when its non-whitespace chars are an in-order subsequence of the plain text.
- Add parseMarkdownCode.test.ts covering language detection and the lone-``` duplication.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
morethanwords/tweb/master • 5dae11d • 8 files, +203/-21
Route OffscreenCanvas stickers and spoilers through per-tab workers
OffscreenCanvas presentation (transferControlToOffscreen) is incompatible
with a SharedWorker: a tab-owned canvas's frame sink is bound to the owning
renderer process, so a cross-process present is rejected ("Invalid client ID")
and kills the tab with RESULT_CODE_KILLED_BAD_MESSAGE whenever two same-origin
tabs land in different processes. Gate both offscreen paths behind a shared
IS_SHARED_WORKER_OFFSCREEN_CANVAS_SUPPORTED flag.
- Spoiler renderer runs as a per-tab dedicated Worker instead of a SharedWorker.
- rlottie 'canvas' stickers keep decoding in the shared rlottie worker but
present via the per-tab emoji compositor: the worker ships ImageBitmaps and
the compositor holds/tints/blits the transferred canvases (attach/detach/
resize/config/present sticker ops, keyed by item reqId). Re-key
lottieLoader.players on the offscreen->legacy fallback via a new reqIdChanged
event, and extract paintFrameTinted shared by both workers.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
#webk
🫡3
morethanwords/tweb/master • a42b5b4 • 4 files, +283/-3
Add Stories and Reactions sections to notification settings
Settings → Notifications gains two iOS-style sections:
- Stories: a 3-state "New Stories" control (all / important-only / off) mapped
to the nullable stories_muted flag on inputNotifyUsers, plus "Show Sender's
Name" (stories_hide_sender). The global toggle is inherited by the per-peer
story-notification guard and by server web-push, so it actually silences new
story notifications on WebK (bugs.telegram.org/c/63273).
- Reactions: per-category (messages / stories) off / My Contacts / Everyone
pickers plus "Show Sender's Name", backed by new appNotificationsManager
get/setReactionsNotifySettings wrappers over account.*ReactionsNotifySettings.
The stories write also publishes its change locally right away so the sibling
Private Chats section, which shares inputNotifyUsers and rewrites the whole
object on tab-close, cannot clobber the story flags.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
morethanwords/tweb/master • 257c29d • 14 files, +2390/-35
Render Markdown documents in Instant View
Open .md / text/markdown attachments as a native Instant View page instead
of downloading them. A client-side CommonMark-ish parser builds a Telegram
Page from the markdown, rendered by the existing IV UI.
Parser (src/lib/richTextProcessor/):
- parseMarkdownToPage: headings H1-H6 (+ slug anchors), unordered/ordered/
nested lists, GFM tables with alignment, task lists, blockquotes, fenced
and indented code, $$...$$ math blocks, <details> collapsibles, footnotes
(sequential numbering + clickable reference<->definition links),
reference/inline links, HTML comment stripping, thematic breaks.
- inlineMarkdownToRichText: bold/italic/underline/strike/code/spoiler,
<sub>/<sup>/<mark>, <b>/<i>/<u>/<s> -> real formatting, <url>/<email>
autolinks, reference links, backslash escapes, inline $x$ math.
Instant View (src/components/):
- markdownInstantView + wrappers/document.ts: open .md attachments as IV.
- instantView.tsx: highlighted code blocks (reusing wrapRichText's
messageEntityPre markup) with working copy/wrap buttons, square task
checkboxes (StaticCheckbox), app-standard quote styling, Temml-rendered
math (inline + block), in-page anchor & footnote scrolling.
- instantViewMath: lazy Temml (LaTeX -> MathML) loader with plain-text
fallback, loaded as a Vite-minified async chunk on first formula.
- browser.tsx: hide open/copy-link menu actions for the URL-less md page.
Extract src/helpers/dom/codeBlockClick.ts for the shared code-block
copy/wrap detection; the Instant View onClick delegator reuses it.
Adds the temml dependency. Covered by src/tests/parseMarkdownToPage.test.ts.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
#webk
Add Stories and Reactions sections to notification settings
Settings → Notifications gains two iOS-style sections:
- Stories: a 3-state "New Stories" control (all / important-only / off) mapped
to the nullable stories_muted flag on inputNotifyUsers, plus "Show Sender's
Name" (stories_hide_sender). The global toggle is inherited by the per-peer
story-notification guard and by server web-push, so it actually silences new
story notifications on WebK (bugs.telegram.org/c/63273).
- Reactions: per-category (messages / stories) off / My Contacts / Everyone
pickers plus "Show Sender's Name", backed by new appNotificationsManager
get/setReactionsNotifySettings wrappers over account.*ReactionsNotifySettings.
The stories write also publishes its change locally right away so the sibling
Private Chats section, which shares inputNotifyUsers and rewrites the whole
object on tab-close, cannot clobber the story flags.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
morethanwords/tweb/master • 257c29d • 14 files, +2390/-35
Render Markdown documents in Instant View
Open .md / text/markdown attachments as a native Instant View page instead
of downloading them. A client-side CommonMark-ish parser builds a Telegram
Page from the markdown, rendered by the existing IV UI.
Parser (src/lib/richTextProcessor/):
- parseMarkdownToPage: headings H1-H6 (+ slug anchors), unordered/ordered/
nested lists, GFM tables with alignment, task lists, blockquotes, fenced
and indented code, $$...$$ math blocks, <details> collapsibles, footnotes
(sequential numbering + clickable reference<->definition links),
reference/inline links, HTML comment stripping, thematic breaks.
- inlineMarkdownToRichText: bold/italic/underline/strike/code/spoiler,
<sub>/<sup>/<mark>, <b>/<i>/<u>/<s> -> real formatting, <url>/<email>
autolinks, reference links, backslash escapes, inline $x$ math.
Instant View (src/components/):
- markdownInstantView + wrappers/document.ts: open .md attachments as IV.
- instantView.tsx: highlighted code blocks (reusing wrapRichText's
messageEntityPre markup) with working copy/wrap buttons, square task
checkboxes (StaticCheckbox), app-standard quote styling, Temml-rendered
math (inline + block), in-page anchor & footnote scrolling.
- instantViewMath: lazy Temml (LaTeX -> MathML) loader with plain-text
fallback, loaded as a Vite-minified async chunk on first formula.
- browser.tsx: hide open/copy-link menu actions for the URL-less md page.
Extract src/helpers/dom/codeBlockClick.ts for the shared code-block
copy/wrap detection; the Instant View onClick delegator reuses it.
Adds the temml dependency. Covered by src/tests/parseMarkdownToPage.test.ts.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
#webk
🫡3
morethanwords/tweb/master • 5312839 • 2 files, +303/-89
Add trackpad swipe-to-reply for message bubbles
A two-finger horizontal trackpad swipe now replies to a message on desktop,
alongside the existing touch swipe. Wheel events (deltaX) drive the same reply
visuals through a shared createReplySwipeController; the gesture axis-locks per
burst so vertical scroll and inner horizontal scrollers (code blocks, wide
tables) keep working, and the commit point is found by detecting the momentum
decay (with a wheel-idle-debounce fallback) so the reply fires near release
without waiting out the full trackpad inertia.
Also fix two visual regressions in the reply gesture: fade the side reply icon
out on release instead of dropping it in a single frame, and keep the group
avatar's bottom animating during the slide-back so replying to the last message
no longer makes the avatar jump vertically.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
morethanwords/tweb/master • a3cad62 • 11 files, +174/-16
Add guest bots (bot_guestchat)
Sender: a guest bot's @username typed at the start of a message sends a plain
message instead of triggering an inline query, and guest bots are suggested in
the @ autocomplete (except in channels and monoforums).
Display: an incoming message carrying guestchat_via_from renders the guest
bot's avatar (forced even in a 1-on-1) and a "<Bot> for <Visitor>" name, with
consecutive messages grouped by visitor. A one-time hint explains that the bot
can't read the chat — only the message where it was mentioned.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
morethanwords/tweb/master • 33179d0 • 2 files, +9/-16
Route code-block click handling through the codeBlockClick helper
Replace the inline code-header / monospace-text click detection and
wrap-toggle logic in ChatBubbles with getCodeBlockClickTarget and
toggleCodeBlockWrap from @helpers/dom/codeBlockClick. Also sort the
pngjs / @types/pngjs devDependencies alphabetically.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
morethanwords/tweb/master • a8cda12 • 300 files, +713/-603
Build
#webk
Add trackpad swipe-to-reply for message bubbles
A two-finger horizontal trackpad swipe now replies to a message on desktop,
alongside the existing touch swipe. Wheel events (deltaX) drive the same reply
visuals through a shared createReplySwipeController; the gesture axis-locks per
burst so vertical scroll and inner horizontal scrollers (code blocks, wide
tables) keep working, and the commit point is found by detecting the momentum
decay (with a wheel-idle-debounce fallback) so the reply fires near release
without waiting out the full trackpad inertia.
Also fix two visual regressions in the reply gesture: fade the side reply icon
out on release instead of dropping it in a single frame, and keep the group
avatar's bottom animating during the slide-back so replying to the last message
no longer makes the avatar jump vertically.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
morethanwords/tweb/master • a3cad62 • 11 files, +174/-16
Add guest bots (bot_guestchat)
Sender: a guest bot's @username typed at the start of a message sends a plain
message instead of triggering an inline query, and guest bots are suggested in
the @ autocomplete (except in channels and monoforums).
Display: an incoming message carrying guestchat_via_from renders the guest
bot's avatar (forced even in a 1-on-1) and a "<Bot> for <Visitor>" name, with
consecutive messages grouped by visitor. A one-time hint explains that the bot
can't read the chat — only the message where it was mentioned.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
morethanwords/tweb/master • 33179d0 • 2 files, +9/-16
Route code-block click handling through the codeBlockClick helper
Replace the inline code-header / monospace-text click detection and
wrap-toggle logic in ChatBubbles with getCodeBlockClickTarget and
toggleCodeBlockWrap from @helpers/dom/codeBlockClick. Also sort the
pngjs / @types/pngjs devDependencies alphabetically.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
morethanwords/tweb/master • a8cda12 • 300 files, +713/-603
Build
#webk
🫡3
morethanwords/tweb/master • 859205f • 10 files, +580/-51
Layer 227
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
morethanwords/tweb/master • e22ba93 • 12 files, +968/-42
Add support for MTProto rich messages (#669)
Render incoming message.rich_message payloads through the Instant View block
renderer, with reply/search summary text and a messages.getRichMessage fetch for
"read more" parts. Math (pageBlockMath / inline textMath) renders via the Temml
path; the TL schema comes from the official Layer 227.
Also fixes a threaded-worker port-attachment race that could stick the app on
dialog load.
Fixes #664
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
#webk
Layer 227
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
morethanwords/tweb/master • e22ba93 • 12 files, +968/-42
Add support for MTProto rich messages (#669)
Render incoming message.rich_message payloads through the Instant View block
renderer, with reply/search summary text and a messages.getRichMessage fetch for
"read more" parts. Math (pageBlockMath / inline textMath) renders via the Temml
path; the TL schema comes from the official Layer 227.
Also fixes a threaded-worker port-attachment race that could stick the app on
dialog load.
Fixes #664
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
#webk
🫡4