Ayaan Zaidi
5cfb12fa5d
fix(telegram): migrate account topic cache sidecars
2026-05-24 18:58:02 +05:30
Ayaan Zaidi
eb9b882dae
fix(telegram): migrate legacy cache sidecars
2026-05-24 18:58:02 +05:30
Ayaan Zaidi
996d07ee46
fix(telegram): store topic cache in plugin state
2026-05-24 17:38:27 +05:30
Ayaan Zaidi
2ed52969c5
fix(telegram): store bot info cache in plugin state
2026-05-24 17:38:27 +05:30
Peter Steinberger
e8643f0c15
test(telegram): keep startup limiter coverage focused
2026-05-24 12:36:45 +01:00
Peter Steinberger
04d86e0f47
test(telegram): isolate startup probe limiter timing
2026-05-24 12:23:32 +01:00
Peter Steinberger
578e73f667
test(release): harden plugin prerelease checks
2026-05-24 12:02:29 +01: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
Peter Steinberger
3679151c2c
test(release): stabilize plugin prerelease checks
2026-05-24 11:40:48 +01:00
Peter Steinberger
0a8af67c11
test(telegram): wait for startup probe slots
2026-05-24 11:21:15 +01:00
Peter Steinberger
56eb23dda4
test(release): align plugin prerelease checks
2026-05-24 06:47:42 +01:00
Peter Steinberger
32631eb9d4
fix(telegram): normalize legacy action targets
2026-05-24 05:38:59 +01:00
Gio Della-Libera
617335250e
fix(telegram): honor explicit default account warning ( #85752 )
2026-05-23 20:41:35 -07:00
Peter Steinberger
12f82270cf
perf: cache stable gateway metadata
2026-05-24 02:54:28 +01:00
狼哥
f05f243824
fix(telegram): normalize durable group retry targets ( #85656 )
...
Summary:
- The PR normalizes legacy Telegram `group:<numeric>` durable retry targets before text/media/payload/poll sends and delivered-message pinning, with regression tests and a changelog entry.
- Reproducibility: yes. Source inspection shows recovery passes `entry.to` unchanged into the Telegram outbound path, and current send resolution rejects bare `group:-100...` as a non-numeric Telegram chat ID.
Automerge notes:
- PR branch already contained follow-up commit before automerge: fix(telegram): normalize durable retry pin targets
- PR branch already contained follow-up commit before automerge: fix(telegram): normalize durable group retry targets
- PR branch already contained follow-up commit before automerge: fix(clawsweeper): address review for automerge-openclaw-openclaw-8565…
Validation:
- ClawSweeper review passed for head 272bc225dd .
- Required merge gates passed before the squash merge.
Prepared head SHA: 272bc225dd
Review: https://github.com/openclaw/openclaw/pull/85656#issuecomment-4524463510
Co-authored-by: luoyanglang <hanwanlonga@gmail.com >
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
Approved-by: takhoffman
Co-authored-by: takhoffman <781889+takhoffman@users.noreply.github.com >
2026-05-24 00:30:11 +00:00
Peter Steinberger
3cf806d172
fix(telegram): cache outbound replies for context
...
Co-authored-by: Keshav's Bot <keshavbotagent@gmail.com >
2026-05-24 00:04:16 +01:00
Peter Steinberger
c4f0da00a9
refactor: use channel target resolution APIs ( #85814 )
...
* refactor: use channel target resolution apis
* refactor: satisfy delivery lint
* refactor: remove unused target parsing shim
* fix: preserve routed cron topic targets
2026-05-23 21:26:55 +01:00
Peter Steinberger
a04566da11
test: isolate Telegram spooled timeout from stall watchdog
2026-05-23 17:08:00 +01:00
Peter Steinberger
054002529d
refactor(telegram): simplify action media sends
2026-05-23 16:43:23 +01:00
Keshav's Bot
fdf01db62b
fix(telegram): send attachment paths as media
2026-05-23 16:43:23 +01:00
Peter Steinberger
2c536a8626
docs: absorb documentation PR sweep
2026-05-23 10:23:34 +01:00
Josh Avant
b7450820a9
Fix Telegram missing harness spool poison ( #85605 )
...
* fix telegram spool missing harness poison
* docs changelog telegram spool poison
2026-05-22 20:45:44 -07:00
狼哥
f2d4f9328c
fix(telegram): honor outbound media max bytes ( #83478 )
2026-05-22 15:38:54 -07:00
Peter Steinberger
9fae5f7697
test(telegram): await watchdog registration event
2026-05-22 20:15:53 +01:00
Peter Steinberger
7c9127c94d
test(telegram): wait for polling watchdog deterministically
2026-05-22 19:50:51 +01:00
Peter Steinberger
7fc691a426
fix(telegram): honor table mode in outbound chunks ( #85455 )
2026-05-22 18:26:04 +01:00
Peter Steinberger
04ebdc6da5
test(release): align prerelease validation baselines
2026-05-22 14:15:46 +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
Josh Avant
b010852dc6
fix(telegram): dedupe replayed message dispatches ( #85208 )
...
* Fix Telegram dispatch replay dedupe
* Add changelog for Telegram dispatch dedupe
* Persist Telegram replay dedupe at dispatch start
2026-05-21 22:14:16 -07:00
Josh Avant
40db92f609
Fix Telegram isolated polling stall watchdog ( #84861 )
...
* fix(telegram): watch isolated polling stalls
* docs(changelog): note telegram polling watchdog fix
2026-05-21 00:19:10 -07:00
Dallin Romney
4d47f9a4c0
test(secret-file): cover NickServ + account-level symlinks, narrow inspect catch ( #84713 )
...
Followup nits from the #84711 review:
- Narrow the inspectTokenFile catch in
extensions/telegram/src/account-inspect.ts to FsSafeError so only
fs-safe validation throws map to configured_unavailable; any other
throw (programmer error, unexpected I/O) is rethrown.
- Add a regression test for the IRC NickServ password file symlink
rejection path (extensions/irc/src/accounts.ts:118), paralleling the
existing top-level passwordFile test.
- Add a regression test for the Telegram account-level tokenFile
symlink rejection path (extensions/telegram/src/token.ts:149),
paralleling the existing channel-level tokenFile test.
Behavior was already correct after #84711 ; this just locks coverage and
tightens the catch.
2026-05-20 15:35:52 -07:00
Dallin Romney
90fd26b602
fix(infra): restore symlink rejection in tryReadSecretFileSync ( #84711 )
...
* fix(infra): restore symlink rejection in tryReadSecretFileSync
The local wrapper added in 9e4eca00ff swallowed all errors from
@openclaw/fs-safe@0.2.7's tryReadSecretFileSync via a bare try/catch,
silently downgrading every rejectSymlink: true caller (Telegram, LINE,
Zalo, IRC, Nextcloud Talk credential files) to accept symlinked
credential files. It also broke the infra-state CI shard's symlink
expectation that #84595 had just realigned with the new fail-closed
upstream contract.
Restore the direct re-export so the upstream contract surfaces:
undefined for blank/missing/not-found, FsSafeError for symlink,
oversize, non-regular file, and hardlink validation failures.
* test(plugins): align stale symlink tests with fail-closed contract
5 token/account resolver tests still asserted the pre-fs-safe-0.2.7
"silent skip" behavior (token: "", source: "none") on rejected symlinks;
they passed only because the swallow-all wrapper in secret-file.ts hid
the throw. Restoring the upstream fail-closed contract surfaces the
throw, so update the tests to expect FsSafeError.
inspectTelegramAccount reports credential status (its return type has an
explicit configured_unavailable state for "configured but unreadable"),
so its callsite is the right boundary to catch the FsSafeError and map
it to configured_unavailable rather than letting the throw bubble.
Affected:
- extensions/zalo/src/token.test.ts
- extensions/line/src/accounts.test.ts
- extensions/telegram/src/token.test.ts
- extensions/irc/src/accounts.test.ts
- extensions/nextcloud-talk/src/setup.test.ts
- extensions/telegram/src/account-inspect.ts (catch + report status)
2026-05-20 15:21:13 -07:00
clawsweeper[bot]
7811e313b3
fix(channels): suppress verbose failed-tool dumps ( #84354 )
...
Summary:
- The branch suppresses regular verbose failed-tool raw output after final replies across shared dispatch, Codex, Telegram, and Discord paths, keeps raw detail under `/verbose full`, and updates tests, docs, and changelog.
- Reproducibility: yes. The current-main source path and supplied before screenshot show failed text-only tool ... ping after a final reply; I did not rerun a live Telegram or Discord reproduction in this read-only review.
Automerge notes:
- PR branch already contained follow-up commit before automerge: fix message-tool delivery gating
- PR branch already contained follow-up commit before automerge: fix(channels): keep verbose tool failures compact
- PR branch already contained follow-up commit before automerge: fix(channels): suppress in-flight final progress
- PR branch already contained follow-up commit before automerge: fix(replies): suppress failed tool dumps in message-only mode
- PR branch already contained follow-up commit before automerge: fix(replies): avoid duplicate exec failure warnings
- PR branch already contained follow-up commit before automerge: Revert "fix(replies): avoid duplicate exec failure warnings"
Validation:
- ClawSweeper review passed for head d15ae6951b .
- Required merge gates passed before the squash merge.
Prepared head SHA: d15ae6951b
Review: https://github.com/openclaw/openclaw/pull/84354#issuecomment-4493007024
Co-authored-by: VACInc <3279061+VACInc@users.noreply.github.com >
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
Approved-by: takhoffman
Co-authored-by: takhoffman <781889+takhoffman@users.noreply.github.com >
2026-05-20 05:09:38 +00:00
Patrick Erichsen
d60ab48511
Add Telegram progress preview flows ( #83847 )
...
* feat(telegram): add progress preview flow tooling
* docs: add channel flow preview skill
* test(telegram): exercise native draft flow fixture
* fix(telegram): remove progress label ellipsis animation
* fix(telegram): address progress preview review
2026-05-18 21:23:55 -07:00
VACInc
f526d96c98
Fix Telegram forum topic parallel flow ( #83829 )
...
Summary:
- The branch fixes Telegram forum-topic session routing, per-topic text/media buffering, media-group scoping, and outbound group send fairness, with focused Telegram regression tests and a changelog entry.
- Reproducibility: yes. source inspection of current main plus the PR body's before-proof give a high-confiden ... s_forum can collapse to the base group route, and global text/media buffer chains serialize sibling topics.
Automerge notes:
- PR branch already contained follow-up commit before automerge: Fix Telegram forum topic parallel flow
Validation:
- ClawSweeper review passed for head b0f78fa275 .
- Required merge gates passed before the squash merge.
Prepared head SHA: b0f78fa275
Review: https://github.com/openclaw/openclaw/pull/83829#issuecomment-4483486851
Co-authored-by: VACInc <3279061+VACInc@users.noreply.github.com >
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
Approved-by: takhoffman
Co-authored-by: takhoffman <781889+takhoffman@users.noreply.github.com >
2026-05-19 01:48:56 +00:00
Gio Della-Libera
19065e4a2f
Improve Telegram groups config shape diagnostics ( #83260 )
...
* Improve Telegram groups config diagnostics
Add targeted guidance when channels.telegram.groups uses a non-object shape so startup/config validation and doctor explain the required group-id object map and topic nesting.
* fix(config): keep channel validation hints generic
2026-05-18 18:47:28 -07:00
Ayaan Zaidi
890139f998
refactor(telegram): simplify native draft progress path
2026-05-18 22:14:30 +05:30
Alexander Krimm
0802a10273
fix(config): scope native telegram preview config
2026-05-18 22:14:30 +05:30
Alexander Krimm
a433cef05f
fix(telegram): gate native tool progress drafts
2026-05-18 22:14:30 +05:30
Alexander Krimm
7cc4258dd5
feat(telegram): use native DM drafts for tool progress
2026-05-18 22:14:30 +05:30
Tyler Bea
03c303d953
fix(telegram): avoid progress transcript mirrors
2026-05-18 20:46:58 +05:30
Peter Steinberger
4f4d108639
chore(lint): remove underscore-dangle allow list ( #83542 )
...
* chore(lint): reduce underscore-dangle exceptions
* chore(lint): reduce more underscore exceptions
* chore(lint): remove underscore-dangle allow list
* fix(lint): repair underscore cleanup regressions
* test(lint): track version define suppression
2026-05-18 14:56:06 +01:00
Peter Steinberger
a2d67959d7
fix(telegram): avoid reply fence spread allocation
2026-05-18 12:41:42 +01:00
Peter Steinberger
83b525bc1f
fix(telegram): keep diagnostics on turn lane
2026-05-18 12:41:42 +01:00
Peter Steinberger
25aa72edbd
fix(telegram): stop noninterrupting reply fences
2026-05-18 12:41:42 +01:00
Peter Steinberger
1ba9f5ded3
fix(telegram): isolate noninterrupting reply fences
2026-05-18 12:41:42 +01:00
Peter Steinberger
3bf518e518
fix(telegram): keep trajectory exports on turn lane
2026-05-18 12:41:42 +01:00
Peter Steinberger
e3d802a10b
fix(telegram): harden spool timeout recovery
2026-05-18 12:41:42 +01:00
Josh Avant
b7735f88fa
fix(telegram): recover stalled isolated spool handlers ( #83505 )
...
* fix(telegram): recover stalled isolated spool handlers
* chore(changelog): note telegram spool recovery fix
* test(telegram): satisfy spool timeout lint
2026-05-18 03:03:12 -05:00
Galin Iliev
74949eda2f
fix(telegram): redact raw update logs ( #82945 )
...
* fix: redact telegram raw update logs
* fix telegram raw update log redaction
* add changelog for telegram raw update redaction
---------
Co-authored-by: joshavant <830519+joshavant@users.noreply.github.com >
2026-05-18 00:46:49 -05:00