Gustavo Madeira Santana
ba735d0158
Exec approvals: unify effective policy reporting and actions ( #59283 )
...
Merged via squash.
Prepared head SHA: d579b97a93
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-04-01 22:02:39 -04:00
Vincent Koc
dc66c36b9e
perf(memory): trim telegram monitor test module churn
2026-04-02 10:57:01 +09:00
Vincent Koc
687030cbf2
perf(memory): trim matrix and telegram runtime seams
2026-04-02 10:18:56 +09:00
Gustavo Madeira Santana
c87c8e66bf
Refactor channel approval capability seams ( #58634 )
...
Merged via squash.
Prepared head SHA: c9ad4e4706
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-04-01 17:10:25 -04:00
Josh Lehman
90eb5b073f
fix: pass session identity to plugin commands ( #59044 )
...
Merged via squash.
Prepared head SHA: 0f7a23f139
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com >
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com >
Reviewed-by: @jalehman
2026-04-01 13:07:17 -07:00
Vincent Koc
0b06c4b352
perf(test): narrow telegram draft chunking imports
2026-04-02 00:32:13 +09:00
Vincent Koc
76c4ecd651
perf(test): narrow sdk seams for channel hotspots
2026-04-01 23:14:48 +09:00
Peter Steinberger
8988894ff7
build: prepare 2026.4.1-beta.1 release
2026-04-01 15:09:19 +01:00
Vincent Koc
c5cfc05104
perf(test): trim more sdk and telegram reload churn
2026-04-01 22:40:44 +09:00
Vincent Koc
e1b6c9b29b
perf(test): trim more matrix and telegram reload churn
2026-04-01 22:40:44 +09:00
Vincent Koc
dd5bf6b1d0
perf(test): cut more hotspot reload churn
2026-04-01 22:40:44 +09:00
Peter Steinberger
ab3c646bb1
fix: preserve telegram exec approval topic routing
2026-04-01 13:34:50 +01:00
Chinar Amrutkar
74b9f22a42
fix: add Telegram error suppression controls ( #51914 ) (thanks @chinar-amrutkar)
...
* feat(telegram): add error policy for suppressing repetitive error messages
Introduces per-account error policy configuration that can suppress
repetitive error messages (e.g., 429 rate limit, ECONNRESET) to
prevent noisy error floods in Telegram channels.
Closes #34498
* fix(telegram): track error cooldown per message
* fix(telegram): prune expired error cooldowns
* fix: add Telegram error suppression controls (#51914 ) (thanks @chinar-amrutkar)
---------
Co-authored-by: chinar-amrutkar <chinar-amrutkar@users.noreply.github.com >
Co-authored-by: Ayaan Zaidi <hi@obviy.us >
2026-04-01 17:52:28 +05:30
Chinar Amrutkar
3f67581e50
fix: retry safe wrapped Telegram send failures ( #51895 ) (thanks @chinar-amrutkar)
...
* fix(telegram): traverse error .cause chain in formatErrorMessage and match grammY HttpError
grammY wraps network failures in HttpError with message
'Network request for ... failed!' and the original error in .cause.
formatErrorMessage only checked err.message, so shouldRetry never
fired for the most common transient failure class.
Changes:
- formatErrorMessage now traverses .cause chain, appending nested
error messages (with cycle protection)
- Added 'Network request' to TELEGRAM_RETRY_RE as belt-and-suspenders
- Added tests for .cause traversal, circular references, and grammY
HttpError retry behavior
Fixes #51525
* style: fix oxfmt formatting in retry-policy.ts
* fix: add braces to satisfy oxlint requirement
* fix(telegram): keep send retries strict
* test(telegram): cover wrapped retry paths
* fix(telegram): retry rate-limited sends safely
* fix: retry safe wrapped Telegram send failures (#51895 ) (thanks @chinar-amrutkar)
* fix: preserve wrapped Telegram rate-limit retries (#51895 ) (thanks @chinar-amrutkar)
---------
Co-authored-by: chinar-amrutkar <chinar-amrutkar@users.noreply.github.com >
Co-authored-by: Ayaan Zaidi <hi@obviy.us >
2026-04-01 15:54:29 +05:30
yi-bot
e643ba2f5e
fix: preserve telegram topic routing in announce and delivery context
2026-04-01 16:13:24 +09:00
Peter Steinberger
25eaebb9b6
test: drop duplicate telegram/discord command tests
2026-04-01 07:46:25 +01:00
Jamil Zakirov
69685f99fe
fix: preserve Telegram local Bot API MIME types ( #54603 ) (thanks @jzakirov)
...
* fix(telegram): preserve content type for local Bot API media files
* fix: preserve Telegram local Bot API MIME types (#54603 ) (thanks @jzakirov)
---------
Co-authored-by: Ayaan Zaidi <hi@obviy.us >
2026-04-01 09:08:31 +05:30
Peter Steinberger
5b8f0cf1d5
test: centralize inbound contract suites
2026-04-01 02:04:53 +01:00
Peter Steinberger
2db2b078ca
test: remove extension group policy wrappers
2026-04-01 01:57:18 +01:00
Peter Steinberger
1f97f907b2
test: centralize registry-backed channel contracts
2026-04-01 01:53:23 +01:00
Peter Steinberger
b910cc5869
test: remove extension manifest and core-extension wrappers
2026-04-01 01:44:43 +01:00
Gustavo Madeira Santana
bea53d7a3f
Fix: move bootstrap session grammar into plugin-owned session-key surfaces ( #58400 )
...
Merged via squash.
Prepared head SHA: b062b18b03
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-03-31 19:41:01 -04:00
Josh Lehman
adc329b26b
test: dedupe extension-owned coverage ( #58554 )
...
* test: dedupe extension-owned coverage
* test: remove duplicate coverage files
* test: move helper coverage into extensions
* test: trim duplicate helper assertions
* test: remove cloudflare helper import from agent test
* test: align stale expectations with current main
2026-03-31 15:18:29 -07:00
Peter Steinberger
aa6cf87814
refactor(approvals): share origin target reconciliation
2026-03-31 23:11:53 +01:00
Peter Steinberger
ddce362d34
refactor(approvals): share native delivery runtime
2026-03-31 23:11:53 +01:00
Peter Steinberger
9ea7e06460
build: bump version to 2026.4.1
2026-03-31 22:53:17 +01:00
Vincent Koc
f85aba43a9
fix(approvals): restore native DM approval behavior
2026-04-01 06:02:04 +09:00
Peter Steinberger
2a60e34f2a
build: prepare 2026.3.31 stable release
2026-03-31 21:32:38 +01:00
Peter Steinberger
91be36ca4f
build: prepare 2026.3.31-beta.1 release
2026-03-31 19:32:49 +01:00
Peter Steinberger
3bb02d3338
fix(media): align outbound sends with fs read capability
2026-04-01 00:07:50 +09:00
Peter Steinberger
c425ef3e74
build: bump version to 2026.3.31
2026-03-31 15:48:00 +01:00
Peter Steinberger
ac6f025c43
refactor(approvals): share telegram account binding
2026-03-31 15:39:59 +01:00
Vincent Koc
983891a603
fix(ci): narrow telegram route test seams
2026-03-31 23:37:18 +09:00
Peter Steinberger
461a3a4052
refactor(approvals): share request filter matching
2026-03-31 15:32:49 +01:00
Vincent Koc
7c4bffdecd
fix(ci): rebalance telegram dm thread tests
2026-03-31 23:32:15 +09:00
Peter Steinberger
c75f4695b7
refactor: move tasks into bundled plugin
2026-03-31 15:22:08 +01:00
Vincent Koc
6936033e98
test(telegram): stop overriding message-context session mocks
2026-03-31 23:01:21 +09:00
Vincent Koc
aaf6077f27
test(telegram): skip session persistence in message-context harness
2026-03-31 22:51:25 +09:00
Vincent Koc
3be08454f4
test(telegram): narrow resolve-media retry imports
2026-03-31 22:45:39 +09:00
Vincent Koc
91115cdf61
test(telegram): stub menu sync in command harness
2026-03-31 22:31:12 +09:00
Vincent Koc
2df86cce1c
refactor(telegram): narrow native command reply dispatch seam
2026-03-31 22:28:53 +09:00
Vincent Koc
ff36bc314d
test(telegram): use shared delivery mock in registry test
2026-03-31 22:18:29 +09:00
Vincent Koc
7710579a82
perf(telegram): narrow native command import surface
2026-03-31 21:43:16 +09:00
Vincent Koc
b19e28a85e
fix(telegram): lazy-load sticker vision model lookup
2026-03-31 21:31:05 +09:00
Vincent Koc
e6441760d2
test(telegram): normalize message-context timing inputs
2026-03-31 21:10:43 +09:00
Vincent Koc
334085fbe9
test(channels): inject telegram reply pipeline for dispatch tests
2026-03-31 20:54:30 +09:00
Vincent Koc
1243e2c0b6
fix(telegram): keep test harness CJS-safe
2026-03-31 20:04:21 +09:00
Vincent Koc
cf3ae2612b
fix(ci): reduce slow channel test skew
2026-03-31 19:49:40 +09:00
Vincent Koc
8dfbcaa200
fix(ci): default local low-memory checks
2026-03-31 15:05:04 +09:00
Gabriel M.
f7ced438f7
fix: restore Telegram forum-topic routing ( #56060 ) (thanks @one27001)
...
* feat(telegram): add child thread-binding placement via createForumTopic
Enable ACP subagent spawn on Telegram by adding "child" placement
support to the thread-bindings adapter. When a child binding is
requested, the adapter creates a new forum topic via the Telegram
Bot API and binds the subagent session to it using the canonical
chatId:topic:topicId conversation ID format.
When the ACP spawn context provides only a topic ID (not a full
group chat ID), the adapter resolves the group from the configured
Telegram groups in openclaw.json.
This mirrors the Discord adapter's child placement behavior
(thread creation + session binding) and unblocks the orchestrator
pattern on Telegram forum-enabled groups.
Closes #5737
Ref #23414
* fix(telegram): return null with warning instead of silent group fallback for bare topic IDs in child bind
* telegram: fix ACP child thread spawn with group chat ID from agentGroupId
* telegram: scope agentGroupId substitution to telegram channel only
* Telegram: fix forum topic replies routing to root chat instead of topic thread
* fix: clean up dead guard in child bind + add explicit threadId override test
- Simplify bare-topic-ID guards in thread-bindings.ts: split into
separate !chatId and !chatId.startsWith("-") checks, removing
unreachable second condition
- Add regression test confirming explicit turnSourceThreadId overrides
session lastThreadId on same channel
* fix: guard threadId fallback against shared-session race
Codex review P1: when turnSourceTo differs from the session's stored
to, the session threadId may belong to a different chat/topic. Only
fall back to context.threadId when the destination also matches.
* fix(telegram): enable ACP spawn from forum topics without thread binding
extractExplicitGroupId returned topic-qualified IDs (-100...:topic:1264)
instead of bare group chat IDs, breaking agentGroupId resolution.
agentGroupId was also never wired in the inline actions path.
For Telegram forum topics, skip thread binding entirely — the delivery
plan already routes correctly via requester origin (to + threadId).
Creating new forum topics per child session is unnecessary; output goes
back to the same topic the user asked from.
* fix(acp): bind Telegram forum sessions to current topic
* fix: restore Telegram forum-topic routing (#56060 ) (thanks @one27001)
---------
Co-authored-by: openclaw <mgabrie.dev@gmail.com >
Co-authored-by: Ayaan Zaidi <hi@obviy.us >
2026-03-31 10:18:09 +05:30