Harold Hunt
aa1454d1a8
Plugins: broaden plugin surface for Codex App Server ( #45318 )
...
* Plugins: add inbound claim and Telegram interaction seams
* Plugins: add Discord interaction surface
* Chore: fix formatting after plugin rebase
* fix(hooks): preserve observers after inbound claim
* test(hooks): cover claimed inbound observer delivery
* fix(plugins): harden typing lease refreshes
* fix(discord): pass real auth to plugin interactions
* fix(plugins): remove raw session binding runtime exposure
* fix(plugins): tighten interactive callback handling
* Plugins: gate conversation binding with approvals
* Plugins: migrate legacy plugin binding records
* Plugins/phone-control: update test command context
* Plugins: migrate legacy binding ids
* Plugins: migrate legacy codex session bindings
* Discord: fix plugin interaction handling
* Discord: support direct plugin conversation binds
* Plugins: preserve Discord command bind targets
* Tests: fix plugin binding and interactive fallout
* Discord: stabilize directory lookup tests
* Discord: route bound DMs to plugins
* Discord: restore plugin bindings after restart
* Telegram: persist detached plugin bindings
* Plugins: limit binding APIs to Telegram and Discord
* Plugins: harden bound conversation routing
* Plugins: fix extension target imports
* Plugins: fix Telegram runtime extension imports
* Plugins: format rebased binding handlers
* Discord: bind group DM interactions by channel
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-03-15 16:06:11 -07:00
Peter Steinberger
4eee827dce
Channels: use owned helper imports
2026-03-15 15:59:12 -07:00
Peter Steinberger
8b001d6e4d
Channels: move onboarding adapters into extensions
2026-03-15 15:59:12 -07:00
Vincent Koc
132e459009
fix(ci): config drift found and documented
2026-03-15 10:43:03 -07:00
Ayaan Zaidi
c4265a5f16
fix: preserve Telegram word boundaries when rechunking HTML ( #47274 )
...
* fix: preserve Telegram chunk word boundaries
* fix: address Telegram chunking review feedback
* fix: preserve Telegram retry separators
* fix: preserve Telegram chunking boundaries (#47274 )
2026-03-15 18:10:49 +05:30
Frank Yang
4bb8a65edd
fix: forward forceDocument through sendPayload path (follow-up to #45111 ) ( #47119 )
...
Merged via squash.
Prepared head SHA: d791190f83
Co-authored-by: thepagent <262003297+thepagent@users.noreply.github.com >
Reviewed-by: @frankekn
2026-03-15 17:23:53 +08:00
scoootscooob
ac29edf6c3
fix(ci): update vitest configs after channel move to extensions/ (openclaw#46066)
...
Verified:
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: scoootscooob <167050519+scoootscooob@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-03-14 13:23:25 -05:00
scoootscooob
d9c285e930
Fix configure startup stalls from outbound send-deps imports ( #46301 )
...
* fix: avoid configure startup plugin stalls
* fix: credit configure startup changelog entry
2026-03-14 09:58:03 -07:00
Nimrod Gutman
9aac55d306
Add /btw side questions ( #45444 )
...
* feat(agent): add /btw side questions
* fix(agent): gate and log /btw reviews
* feat(btw): isolate side-question delivery
* test(reply): update route reply runtime mocks
* fix(btw): complete side-result delivery across clients
* fix(gateway): handle streamed btw side results
* fix(telegram): unblock btw side questions
* fix(reply): make external btw replies explicit
* fix(chat): keep btw side results ephemeral in internal history
* fix(btw): address remaining review feedback
* fix(chat): preserve btw history on mobile refresh
* fix(acp): keep btw replies out of prompt history
* refactor(btw): narrow side questions to live channels
* fix(btw): preserve channel typing indicators
* fix(btw): keep side questions isolated in chat
* fix(outbound): restore typed channel send deps
* fix(btw): avoid blocking replies on transcript persistence
* fix(btw): keep side questions fast
* docs(commands): document btw slash command
* docs(changelog): add btw side questions entry
* test(outbound): align session transcript mocks
2026-03-14 17:27:54 +02:00
thepagent
0ee11d3321
feat: add --force-document to message.send for Telegram (bypass sendPhoto + image optimizer) ( #45111 )
...
* feat: add --force-document to message.send for Telegram
Adds --force-document CLI flag to bypass sendPhoto and use sendDocument
instead, avoiding Telegram image compression for PNG/image files.
- TelegramSendOpts: add forceDocument field
- send.ts: skip sendPhoto when forceDocument=true (mediaSender pattern)
- ChannelOutboundContext: add forceDocument field
- telegramOutbound.sendMedia: pass forceDocument to sendMessageTelegram
- ChannelHandlerParams / DeliverOutboundPayloadsCoreParams: add forceDocument
- createChannelOutboundContextBase: propagate forceDocument
- outbound-send-service.ts: add forceDocument to executeSendAction params
- message-action-runner.ts: read forceDocument from params
- message.ts: add forceDocument to MessageSendParams
- register.send.ts: add --force-document CLI option
* fix: pass forceDocument through telegram action dispatch path
The actual send path goes through dispatchChannelMessageAction ->
telegramMessageActions.handleAction -> handleTelegramAction, not
deliverOutboundPayloads. forceDocument was not being read in
readTelegramSendParams or passed to sendMessageTelegram.
* fix: apply forceDocument to GIF branch to avoid sendAnimation
* fix: add disable_content_type_detection=true to sendDocument for --force-document
* fix: add forceDocument to buildSendSchema for agent discoverability
* fix: scope telegram force-document detection
* test: fix heartbeat target helper typing
* fix: skip image optimization when forceDocument is set
* fix: persist forceDocument in WAL queue for crash-recovery replay
* test: tighten heartbeat target test entry typing
---------
Co-authored-by: thepagent <thepagent@users.noreply.github.com >
Co-authored-by: Frank Yang <frank.ekn@gmail.com >
2026-03-14 19:43:49 +08:00
scoootscooob
439c21e078
refactor: remove channel shim directories, point all imports to extensions ( #45967 )
...
* refactor: remove channel shim directories, point all imports to extensions
Delete the 6 backward-compat shim directories (src/telegram, src/discord,
src/slack, src/signal, src/imessage, src/web) that were re-exporting from
extensions. Update all 112+ source files to import directly from
extensions/{channel}/src/ instead of through the shims.
Also:
- Move src/channels/telegram/ (allow-from, api) to extensions/telegram/src/
- Fix outbound adapters to use resolveOutboundSendDep (fixes 5 pre-existing TS errors)
- Update cross-extension imports (src/web/media.js → extensions/whatsapp/src/media.js)
- Update vitest, tsdown, knip, labeler, and script configs for new paths
- Update guard test allowlists for extension paths
After this, src/ has zero channel-specific implementation code — only the
generic plugin framework remains.
* fix: update raw-fetch guard allowlist line numbers after shim removal
* refactor: document direct extension channel imports
* test: mock transcript module in delivery helpers
2026-03-14 03:43:07 -07: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
scoootscooob
7764f717e9
refactor: make OutboundSendDeps dynamic with channel-ID keys ( #45517 )
...
* refactor: make OutboundSendDeps dynamic with channel-ID keys
Replace hardcoded per-channel send fields (sendTelegram, sendDiscord,
etc.) with a dynamic index-signature type keyed by channel ID. This
unblocks moving channel implementations to extensions without breaking
the outbound dispatch contract.
- OutboundSendDeps and CliDeps are now { [channelId: string]: unknown }
- Each outbound adapter resolves its send fn via bracket access with cast
- Lazy-loading preserved via createLazySender with module cache
- Delete 6 deps-send-*.runtime.ts one-liner re-export files
- Harden guardrail scan against deleted-but-tracked files
* fix: preserve outbound send-deps compatibility
* style: fix formatting issues (import order, extra bracket, trailing whitespace)
* fix: resolve type errors from dynamic OutboundSendDeps in tests and extension
* fix: remove unused OutboundSendDeps import from deliver.test-helpers
2026-03-14 02:42:21 -07:00
Peter Steinberger
49a2ff7d01
build: sync plugins for 2026.3.14
2026-03-14 06:05:39 +00:00
Val Alexander
0e8672af87
fix(ui): stop dashboard chat history reload storm ( #45541 )
...
* UI: stop dashboard chat history reload storm
* Changelog: add PR number for chat reload fix
* fix: resolve branch typecheck regressions
2026-03-13 19:19:53 -05:00
Peter Steinberger
a57c590a71
refactor: share telegram outbound send options
2026-03-13 23:35:26 +00:00
Peter Steinberger
9ecd1898d0
refactor: share telegram channel test harnesses
2026-03-13 21:40:53 +00:00
Peter Steinberger
16ececf0a6
chore: bump version to 2026.3.13
2026-03-13 04:38:32 +00:00
Peter Steinberger
c25e46a433
chore: prepare 2026.3.12 release
2026-03-13 01:38:20 +00:00
Peter Steinberger
ce5dd742f8
build: sync versions to 2026.3.11
2026-03-12 04:01:57 +00:00
Peter Steinberger
0e397e62b7
chore: bump version to 2026.3.10
2026-03-11 23:29:53 +00:00
Peter Steinberger
bc1cc2e50f
refactor: share telegram payload send flow
2026-03-10 22:18:04 +00:00
Peter Steinberger
4a8e039a5f
refactor: share channel config security scaffolding
2026-03-10 22:18:04 +00:00
Eugene
45b74fb56c
fix(telegram): move network fallback to resolver-scoped dispatchers ( #40740 )
...
Merged via squash.
Prepared head SHA: a4456d48b4
Co-authored-by: sircrumpet <4436535+sircrumpet@users.noreply.github.com >
Co-authored-by: obviyus <22031114+obviyus@users.noreply.github.com >
Reviewed-by: @obviyus
2026-03-10 11:28:51 +05:30
Harold Hunt
de49a8b72c
Telegram: exec approvals for OpenCode/Codex ( #37233 )
...
Merged via squash.
Prepared head SHA: f243379094
Co-authored-by: huntharo <5617868+huntharo@users.noreply.github.com >
Co-authored-by: huntharo <5617868+huntharo@users.noreply.github.com >
Reviewed-by: @huntharo
2026-03-09 23:04:35 -04:00
Peter Steinberger
f6d0712f50
build: sync plugin versions for 2026.3.9
2026-03-09 08:39:52 +00:00
Peter Steinberger
5fca4c0de0
chore: prepare 2026.3.8-beta.1 release
2026-03-09 07:09:37 +00:00
Peter Steinberger
141738f717
refactor: harden browser runtime profile handling
2026-03-09 00:25:43 +00:00
Peter Steinberger
936ac22ec2
refactor: share channel config adapter base
2026-03-08 23:38:24 +00:00
Peter Steinberger
8d7778d1d6
refactor: dedupe plugin runtime stores
2026-03-08 23:38:24 +00:00
Peter Steinberger
05217845a7
build: bump version to 2026.3.8
2026-03-08 05:59:04 +00:00
Peter Steinberger
9d7d961db8
fix: restore Telegram webhook-mode health after restarts
...
Landed from contributor PR #39313 by @fellanH.
Co-authored-by: Felix Hellström <30758862+fellanH@users.noreply.github.com >
2026-03-08 02:27:18 +00:00
Vincent Koc
e9cf3506fd
Telegram: use scoped plugin SDK imports
2026-03-07 16:27:00 -08:00
Vincent Koc
d15a3d3454
Telegram: coerce route allowlist warning flag
2026-03-07 16:08:38 -08:00
Peter Steinberger
cc03c097c5
refactor: share provider group-policy warning collectors
2026-03-08 00:05:24 +00:00
Peter Steinberger
846ec320e2
refactor: share account-scoped config adapter accessors
2026-03-08 00:05:24 +00:00
Peter Steinberger
556aa8a702
refactor: share config adapter allowFrom and defaultTo helpers
2026-03-07 23:27:51 +00:00
Peter Steinberger
feac26c3b7
refactor: share allowFrom formatter scaffolding
2026-03-07 23:27:51 +00:00
Peter Steinberger
b7d03ea1f5
refactor: centralize open group-policy warning flow collectors
2026-03-07 23:27:51 +00:00
Peter Steinberger
b456649974
refactor: unify account-scoped dm security policy resolver
2026-03-07 23:27:51 +00:00
Peter Steinberger
8e0e76697a
refactor: unify channel open-group-policy warning builders
2026-03-07 23:27:51 +00:00
Vincent Koc
e4d80ed556
CI: restore main detect-secrets scan ( #38438 )
...
* Tests: stabilize detect-secrets fixtures
* Tests: fix rebased detect-secrets false positives
* Docs: keep snippets valid under detect-secrets
* Tests: finalize detect-secrets false-positive fixes
* Tests: reduce detect-secrets false positives
* Tests: keep detect-secrets pragmas inline
* Tests: remediate next detect-secrets batch
* Tests: tighten detect-secrets allowlists
* Tests: stabilize detect-secrets formatter drift
2026-03-07 10:06:35 -08:00
Peter Steinberger
1aa77e4603
refactor(extensions): reuse shared helper primitives
2026-03-07 10:41:05 +00:00
Peter Steinberger
997a9f5b9e
chore: bump version to 2026.3.7
2026-03-07 10:09:02 +00:00
Ayaan Zaidi
4ed5febc38
chore(extensions): sync plugin versions
2026-03-06 22:26:15 +05:30
Josh Avant
0e4245063f
CLI: make read-only SecretRef status flows degrade safely ( #37023 )
...
* CLI: add read-only SecretRef inspection
* CLI: fix read-only SecretRef status regressions
* CLI: preserve read-only SecretRef status fallbacks
* Docs: document read-only channel inspection hook
* CLI: preserve audit coverage for read-only SecretRefs
* CLI: fix read-only status account selection
* CLI: fix targeted gateway fallback analysis
* CLI: fix Slack HTTP read-only inspection
* CLI: align audit credential status checks
* CLI: restore Telegram read-only fallback semantics
2026-03-05 23:07:13 -06:00
Gustavo Madeira Santana
7a9754c927
Extensions: migrate telegram plugin-sdk imports
2026-03-04 01:21:30 -05:00
Josh Avant
646817dd80
fix(outbound): unify resolved cfg threading across send paths ( #33987 )
2026-03-04 00:20:44 -06:00
Igal Tabachnik
a4850b1b8f
fix(plugins): lazily initialize runtime and split plugin-sdk startup imports ( #28620 )
...
Merged via squash.
Prepared head SHA: 8bd7d6c13b
Co-authored-by: hmemcpy <601206+hmemcpy@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-03-03 19:58:48 -05:00
Peter Steinberger
d52e5e1d85
fix: add regression tests for telegram token guard ( #31973 ) (thanks @ningding97)
2026-03-02 18:33:49 +00:00