黄云龙
5dbe0fa7e3
fix(telegram): break long HTML chunks on word boundaries, not mid-word ( #104473 )
...
* fix(telegram): break long HTML chunks on word boundaries
* test(telegram): cover word-safe HTML chunk boundaries
2026-07-29 00:38:36 -04:00
Peter Steinberger
9ffebcadea
fix(telegram): preserve valid tg-time markup ( #112911 )
2026-07-23 07:00:00 -04:00
Ayaan Zaidi
8170bdb556
test(telegram): drop rich-HTML formatter tests superseded by blocks emitter
2026-07-15 14:57:55 +05:30
snowzlmbot
e8ad0466ff
fix: render assistant transcript headers safely ( #99404 )
...
* fix: render assistant transcript headers safely
Co-authored-by: snowzlmbot <293528334+snowzlmbot@users.noreply.github.com >
* fix(markdown): nest crossing annotation spans
* fix(markdown): protect final transport projections
* refactor(markdown): split transcript render ownership
* test(ui): cover assistant transcript render flag
* refactor(markdown): keep transcript helpers private
* docs(changelog): note assistant transcript headers
* chore(plugin-sdk): refresh transcript annotation baseline
* fix(markdown): harden final transcript projections
* docs(changelog): defer transcript note to release
* refactor(markdown): centralize HTML tokenization
* fix(markdown): satisfy lint gates
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
Co-authored-by: snowzlmbot <293528334+snowzlmbot@users.noreply.github.com >
2026-07-14 02:25:37 -07:00
Peter Steinberger
33f4856875
refactor(telegram): privatize pure helper surface ( #106892 )
2026-07-14 00:21:51 +01:00
ZOOWH
e327a3dca1
fix(telegram): deliver content instead of throwing when tag overhead fills chunk ( #102999 )
...
* fix(telegram): deliver content instead of throwing when tag overhead fills chunk
When HTML tag overhead (open + close tags) exceeds the chunk limit,
appendText threw an error causing complete message delivery failure.
Instead, force the text into the chunk so the message is still delivered
even if the chunk slightly exceeds the limit.
Closes #102910
* fix(telegram): strip rich formatting when tag overhead fills chunk
When HTML tag overhead fills an empty chunk with no room for text, strip
rich formatting and retry as plain text instead of delivering an oversized
chunk or throwing. Orphan close tags from the stripped formatting are
skipped to keep the output well-formed and within the chunk limit.
This preserves the existing plain-text fallback paths in send.ts and
rich-message.ts.
Closes #102910
* fix(telegram): preserve delivery when HTML tag overhead overflows
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-10 01:05:51 +01:00
NickNMorty
59097783e2
fix(markdown-core): CJK-friendly emphasis flanking so **标签:**正文 renders bold ( #101120 ) ( #101230 )
...
* test(telegram): reproduce CJK emphasis flanking bug
* fix(markdown-core): support CJK emphasis flanking
* fix(markdown-core): type CJK delimiter state (#101120 )
* fix(markdown-core): mirror markdown-it Unicode whitespace in CJK delimiter override
Preserves markdown-it isWhiteSpace classification (U+3000, U+00A0, U+2000-200A, etc.) before forcing CJK-adjacent delimiter flags, and adds U+3000/U+2009 regressions. Addresses clawsweeper P1 finding on #101230 .
* refactor(markdown): use maintained CJK flanking plugin
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-07 05:43:42 +01:00
Ayaan Zaidi
5c83b74235
fix(telegram): normalize outbound rich html
2026-07-03 23:57:08 -07:00
llagy009
46434f0c71
fix(telegram): reject surrogate/out-of-range numeric HTML entities
2026-06-28 18:54:24 -07:00
Ayaan Zaidi
52eb5946c7
fix(telegram): preserve literal reasoning tags
2026-06-28 15:49:03 -07:00
张贵萍0668001030
77eb0fdbaa
fix(telegram): preserve rich table styling
2026-06-24 06:41:38 -07:00
Alex Knight
9dbc21d283
fix(telegram): materialize rich message line breaks as <br>
...
Bot API 10.1 rich messages parse structured HTML, so bare newlines
collapse as insignificant whitespace and flatten multi-paragraph replies
and bullet runs into a single line. Materialize logical line breaks as
<br> in prepareTelegramRichHtml -- the shared rich send/edit/draft
chokepoint covering both the Markdown and explicit-HTML text modes --
while keeping newlines literal inside code/pre/math and where they only
separate structural tags (block elements plus table/figure/details
container children, so pretty-printed rich HTML keeps valid markup).
Refs #95409
2026-06-21 21:22:33 +10:00
clawsweeper[bot]
d1bb2d5a12
fix(telegram): normalize all HTML tables before entity-escaping in rich messages ( #94856 )
...
Summary:
- The PR changes Telegram legacy HTML rendering so raw HTML table tags are converted to `<pre><code>` pipe-tab ... ks before unsupported-tag escaping, while preserving pre/code literals and rich-message table sanitization.
- PR surface: Source +38, Tests +31. Total +69 across 2 files.
- Reproducibility: yes. Source inspection shows current main's legacy HTML renderer sends raw tables directly ... the linked issue describes that same escaped output; I did not run tests because this review was read-only.
Automerge notes:
- No ClawSweeper repair was needed after automerge opt-in.
Validation:
- ClawSweeper review passed for head 5944f8e4d2 .
- Required merge gates passed before the squash merge.
Prepared head SHA: 5944f8e4d2
Review: https://github.com/openclaw/openclaw/pull/94856#issuecomment-4749452707
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: zhangqueping <3436352+zhangqueping@users.noreply.github.com >
2026-06-19 10:04:22 +00:00
Daniil Karpenko
0922ee9955
[codex] Fix Telegram rich local Markdown link hrefs ( #94118 )
...
Merged via squash.
Prepared head SHA: 42c738978f
Co-authored-by: dankarization <26330178+dankarization@users.noreply.github.com >
Co-authored-by: obviyus <22031114+obviyus@users.noreply.github.com >
Reviewed-by: @obviyus
2026-06-18 22:45:39 +05:30
nas
df87b40bec
fix(telegram): guard UTF-16 surrogate pairs in outbound chunkers ( #93938 )
...
Merged via squash.
Prepared head SHA: 583b22354d
Co-authored-by: Nas01010101 <156536069+Nas01010101@users.noreply.github.com >
Co-authored-by: vincentkoc <25068+vincentkoc@users.noreply.github.com >
Reviewed-by: @vincentkoc
2026-06-17 18:56:25 +08:00
Ayaan Zaidi
da92615816
feat(telegram): send rich messages as rich html ( #93286 )
...
* feat(telegram): render rich messages through rich html
* docs(telegram): teach agents rich formatting
* fix(telegram): bound rich draft payloads (#93286 )
* fix(telegram): narrow rich draft payload type (#93286 )
* fix(telegram): preserve rich table cell formatting (#93286 )
* fix(telegram): honor rich table mode config (#93286 )
* fix(telegram): default rich markdown tables (#93286 )
* fix(telegram): gate rich table block mode (#93286 )
* fix(telegram): normalize raw rich html limits (#93286 )
* fix(telegram): preserve link preview suppression (#93286 )
* fix(telegram): preserve rich markdown headings (#93286 )
* fix(telegram): reject unsupported rich media sources (#93286 )
* fix(telegram): honor link preview off in rich chunks (#93286 )
* fix(telegram): avoid double escaping markdown media (#93286 )
* fix(telegram): render markdown media via placeholders (#93286 )
* fix(telegram): preserve table text in prompt context (#93286 )
2026-06-15 20:38:41 +05:30
Shakker
e338037034
test: cover telegram expandable blockquotes
2026-06-13 01:29:27 +01:00
Peter Steinberger
efd1a9ace6
docs: document messaging extension sources
2026-06-04 22:03:15 -04:00
Josh Lehman
62b51a6295
fix(telegram): serialize topic dispatch replies ( #85709 )
...
* fix(telegram): serialize topic dispatch replies (clawdbot-b19)
* fix(telegram): normalize dispatch topic context
* fix(telegram): satisfy dispatch race CI checks
* fix(telegram): normalize raw code language tags
* refactor(reply): centralize turn admission
* fix(telegram): persist recovered topic routes
* fix(reply): preserve queue policy admission
* fix(reply): retain active abort owner
* fix(reply): split active abort ownership
* fix(reply): defer busy followup drains
* fix(reply): wire hook abort ownership
* fix(reply): preserve deferred queue summaries
* fix(reply): type queued summary retry
* fix(reply): abort embedded and core runs
* test(reply): keep final abort operation active
* test(reply): stabilize abort normalization test
* fix(reply): keep non-visible admission skips silent
* test(reply): avoid dispatch shard mock bleed
* fix(reply): merge deferred queue summaries
* fix(reply): abort active-lane resolver runs
* fix(reply): compose borrowed lane abort signals
* fix(reply): keep interrupt turns caller-owned
* fix(telegram): keep recovered topic history scoped
* fix(reply): retry deferred summary queues
* fix(reply): document deferred summary restore
* fix(telegram): rebuild recovered topic prompt body
* fix(reply): run admitted session ids
* fix(telegram): recover topic chat actions
* fix(reply): honor pre-dispatch aborts for handled replies
* fix(reply): guard local handled final aborts
* fix(reply): refresh admitted session files
* fix(telegram): trust final current-message marker
* fix(telegram): migrate recovered room history
* fix(telegram): scope recovered topics to current chat
* fix(reply): wait for visible reply lane ownership
* fix(telegram): pass recovered topic body to agent
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-05-24 11:49:48 +01:00
吴杨帆
a80476fbe9
fix(telegram): preserve fenced code languages ( #85209 )
...
Co-authored-by: wuyangfan <yangfan.wu@succaiss.com >
2026-05-22 09:59:06 +01:00
alexph-dev
d471540ceb
fix: harden telegram html fallback text ( #81764 )
...
Harden Telegram HTML parse fallback so plain-text retries render readable labels and links instead of raw anchors.
Co-authored-by: Sam (OpenClaw) <sam.kpg5stars@gmail.com >
2026-05-15 06:40:17 +01:00
Ayaan Zaidi
b480b29dc7
fix(telegram): preserve supported html replies
2026-05-12 15:54:01 +05:30
Ayaan Zaidi
4774aeda27
fix(telegram): handle list spacing code blocks
2026-05-10 18:03:05 +05:30
evgyur
d2649e0410
fix(telegram): preserve spacing before numbered sections
2026-05-10 18:03:05 +05:30
Peter Steinberger
849f499e38
test: avoid telegram filter allocation assertions
2026-05-08 21:41:59 +01:00
Peter Steinberger
7dc6a79905
test: clarify telegram command assertions
2026-05-08 11:57:22 +01:00
scoootscooob
e5bca0832f
refactor: move Telegram channel implementation to extensions/ ( #45635 )
...
* refactor: move Telegram channel implementation to extensions/telegram/src/
Move all Telegram channel code (123 files + 10 bot/ files + 8 channel plugin
files) from src/telegram/ and src/channels/plugins/*/telegram.ts to
extensions/telegram/src/. Leave thin re-export shims at original locations so
cross-cutting src/ imports continue to resolve.
- Fix all relative import paths in moved files (../X/ -> ../../../src/X/)
- Fix vi.mock paths in 60 test files
- Fix inline typeof import() expressions
- Update tsconfig.plugin-sdk.dts.json rootDir to "." for cross-directory DTS
- Update write-plugin-sdk-entry-dts.ts for new rootDir structure
- Move channel plugin files with correct path remapping
* fix: support keyed telegram send deps
* fix: sync telegram extension copies with latest main
* fix: correct import paths and remove misplaced files in telegram extension
* fix: sync outbound-adapter with main (add sendTelegramPayloadMessages) and fix delivery.test import path
2026-03-14 02:50:17 -07:00