Vincent Koc
6d323ee736
docs(channels/groups): note native command bypass of visibleReplies
...
For 195f704c74 : docs/channels/groups.md "Visible replies" section now
records that native slash commands (Discord, Telegram, and other surfaces
with native command support) reply visibly even when
`messages.groupChat.visibleReplies` is `"message_tool"`, so the channel-
native command UI gets the response it expects. Text-typed `/...` commands
and ordinary chat turns still follow the configured group default.
2026-04-28 10:24:14 -07:00
Vincent Koc
7d2d8732d0
docs(plugins/hooks): document per-hook timeoutMs registration option
...
For 891c7d9f1c : docs/plugins/hooks.md "Quick start" now lists the `priority`
and new `timeoutMs` opts that `api.on(...)` accepts, explaining that the
per-hook budget aborts a slow handler instead of letting plugin setup or
recall work consume the caller's configured model timeout. The change is
traceable to the new `OpenClawPluginApi.on` `{ priority?; timeoutMs? }`
signature and `PluginHookRegistration.timeoutMs` field added in the same
SHA.
2026-04-28 10:12:44 -07:00
Shakker
c0ec58f4b6
fix: preserve runtime kind install fallback
2026-04-28 18:04:54 +01:00
Shakker
a48ffda7f7
chore: trace plugin lifecycle phases
2026-04-28 18:03:01 +01:00
Shakker
3d89b0f2ec
fix: use plugin metadata for install slots
2026-04-28 18:02:40 +01:00
Neerav Makwana
3de5476f51
fix(auto-reply): preserve DM continuity across silent session rotations ( #70898 )
...
Merged via squash.
Prepared head SHA: 13bd2cef86
Co-authored-by: neeravmakwana <261249544+neeravmakwana@users.noreply.github.com >
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com >
Reviewed-by: @jalehman
2026-04-28 10:01:15 -07:00
Ayaan Zaidi
7120f5b254
docs(changelog): note native command group reply fix
2026-04-28 22:11:27 +05:30
Ayaan Zaidi
8af50b5b4c
fix(commands): preserve owner allowlists for native auth
2026-04-28 22:11:27 +05:30
Ayaan Zaidi
195f704c74
fix(reply): keep native command replies visible
2026-04-28 22:11:27 +05:30
Ayaan Zaidi
7b91f06384
fix(commands): honor channel-native command auth
2026-04-28 22:11:27 +05:30
Pavan Kumar Gondhi
bdfb408ce6
fix(plugins): restrict bundled plugin dir resolution to trusted package roots ( #73275 )
...
* fix: address issue
* fix: address review feedback
* fix: address PR review feedback
* fix: address PR review feedback
* fix: address PR review feedback
* fix: address PR review feedback
* fix: address PR review feedback
* fix: address PR review feedback
* fix: address codex review feedback
* fix: address codex review feedback
* fix: address codex review feedback
* fix: address PR review feedback
* fix: address review feedback
* fix: address PR review feedback
* fix: address PR review feedback
* fix: address review feedback
* fix: address PR review feedback
* fix: address PR review feedback
* fix: address review feedback
* docs: add changelog entry for PR merge
2026-04-28 21:35:32 +05:30
Pavan Kumar Gondhi
230f7122dd
fix(security): prevent workspace PATH injection via service env and trash helpers ( #73264 )
...
* fix: address issue
* fix: address PR review feedback
* fix: address review-pr skill feedback
* fix: address PR review feedback
* fix: address PR review feedback
* fix: address build feedback
* fix: address PR review feedback
* docs: add changelog entry for PR merge
2026-04-28 21:30:51 +05:30
Ayaan Zaidi
b79e617ad1
fix: persist Telegram native command metadata ( #57548 ) (thanks @GaosCode)
2026-04-28 21:18:58 +05:30
Ayaan Zaidi
c57960b8d1
fix(telegram): distill native metadata session key
2026-04-28 21:18:58 +05:30
MrBrain
c4f741e534
fix(telegram): persist native command metadata to target sessions
2026-04-28 21:18:58 +05:30
Harry Xie
891c7d9f1c
fix(active-memory): align recall timeout with hook runner
...
Fixes #72606 .
2026-04-28 10:15:01 -05:00
Tak Hoffman
f256eeba43
fix(active-memory): use bundled recall tool
...
Fixes #73502 .
Active Memory now allows its hidden recall sub-agent to use both bundled memory tool contracts: memory_recall for memory-lancedb and memory_search/memory_get for memory-core. The prompt prefers memory_recall when available and falls back to the legacy tool pair when that is the active backend surface.
Also updates Active Memory docs, QA mock fixtures, and debug parsing compatibility for the two recall paths.
2026-04-28 09:03:47 -05:00
Radek Sienkiewicz
dd643c82b5
fix(whatsapp): expose Baileys socket timing ( #73580 )
...
Merged via squash.
Prepared head SHA: d34755262f
Co-authored-by: velvet-shark <126378+velvet-shark@users.noreply.github.com >
Co-authored-by: velvet-shark <126378+velvet-shark@users.noreply.github.com >
Reviewed-by: @velvet-shark
2026-04-28 15:46:47 +02:00
Joseph Krug
16906780fd
feat(active-memory): return partial transcript on timeout (openclaw#73219)
...
Verified:
- pnpm test extensions/active-memory/index.test.ts
- pnpm exec oxfmt --check --threads=1 extensions/active-memory/index.ts extensions/active-memory/index.test.ts CHANGELOG.md
- git diff --check
Co-authored-by: joeykrug <5925937+joeykrug@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-04-28 08:44:46 -05:00
Lidang Jiang
6d539db011
fix: support explicit active-memory chat types (openclaw#66285)
...
Verified:
- pnpm install --frozen-lockfile
- pnpm test extensions/active-memory/config.test.ts extensions/active-memory/index.test.ts
- pnpm exec oxfmt --check --threads=1 CHANGELOG.md extensions/active-memory/index.ts extensions/active-memory/index.test.ts extensions/active-memory/config.test.ts extensions/active-memory/openclaw.plugin.json
- git diff --check
Co-authored-by: Lidang-Jiang <119769478+Lidang-Jiang@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-04-28 08:43:06 -05:00
Peter
ba17b8b728
docs(active-memory): document cacheTtlMs bounds ( #65708 ) (openclaw#65737)
...
Verified:
- pnpm install --frozen-lockfile
- pnpm build
- pnpm check
- pnpm test (local full suite failed in unrelated plugin/logging shards; PR-specific docs/changelog checks and GitHub checks passed)
- GitHub status checks for c2c5a94df8 completed without failure
Co-authored-by: WuKongAI-CMU <210765158+WuKongAI-CMU@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-04-28 08:42:16 -05:00
quengh
373e7fc242
feat(active-memory): add allowedChatIds/deniedChatIds per-conversation filters (openclaw#67977)
...
Verified:
- pnpm install --frozen-lockfile
- git diff --check
- pnpm exec oxfmt --check --threads=1 extensions/active-memory/index.ts extensions/active-memory/index.test.ts docs/concepts/active-memory.md CHANGELOG.md
- OPENCLAW_TEST_HEAVY_CHECK_LOCK_HELD=1 OPENCLAW_VITEST_FS_MODULE_CACHE_PATH=.vitest-cache-pr67977 pnpm test extensions/active-memory/index.test.ts extensions/active-memory/config.test.ts
- gh pr checks 67977 --repo openclaw/openclaw --required
Co-authored-by: quengh <3940773+quengh@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-04-28 08:37:55 -05:00
Spolen23
12aaef9035
Fix infer CLI reliability gaps (openclaw#63263)
...
Verified:
- pnpm install --frozen-lockfile
- git diff --check
- pnpm test src/media-understanding/defaults.test.ts src/media-understanding/runner.vision-skip.test.ts src/media-understanding/runner.cli-audio.test.ts src/web-search/runtime.test.ts
- pnpm tsgo:test:src
Co-authored-by: Spolen23 <215900770+Spolen23@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-04-28 08:36:41 -05:00
SimbaKingjoe
bdb75bd8c7
fix(active-memory): skip payload-less memory_search toolResults in tr… (openclaw#68773)
...
Verified:
- pnpm install --frozen-lockfile
- pnpm test extensions/active-memory/index.test.ts
- pnpm exec oxfmt --check --threads=1 extensions/active-memory/index.ts extensions/active-memory/index.test.ts CHANGELOG.md
- git diff --check origin/main..HEAD
- gh pr checks 68773 --repo openclaw/openclaw --required
Co-authored-by: SimbaKingjoe <126222269+SimbaKingjoe@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-04-28 08:20:13 -05:00
Pavan Kumar Gondhi
189c91eae6
fix(device-pairing): validate callerScopes against resolved token scopes on repair [AI] ( #72925 )
...
* fix: address issue
* docs: add changelog entry for PR merge
2026-04-28 18:31:05 +05:30
Pavan Kumar Gondhi
037f197684
fix(agents): canonicalize provider aliases in byProvider tool policy lookup [AI] ( #72917 )
...
* fix: address issue
* fix: address PR review feedback
* fix: address PR review feedback
* fix: address PR review feedback
* fix: address PR review feedback
* docs: add changelog entry for PR merge
2026-04-28 18:14:59 +05:30
Pavan Kumar Gondhi
ccb3af556f
fix(security): block npm_execpath injection from workspace .env [AI-assisted] ( #73262 )
...
* fix: address issue
* fix: finalize issue changes
* fix: address PR review feedback
* fix: address PR review feedback
* fix: address PR review feedback
* docs: add changelog entry for PR merge
2026-04-28 18:11:16 +05:30
Alex Knight
7a23c18830
fix(acpx): validate runtime session mode at wrapper boundary ( #73071 ) ( #73548 )
2026-04-28 22:35:25 +10:00
Alex Knight
7a23b2d945
fix: decode web fetch legacy charsets ( #73513 )
...
* fix: decode web fetch legacy charsets
2026-04-28 22:09:06 +10:00
Alex Knight
e4ff7c1620
fix: Discord read/search timeout, session-key fallback, and gateway execution mode ( #73521 )
...
* fix: Discord read/search timeout, session-key fallback, and gateway execution mode
- Add 15s timeout to readMessagesDiscord and searchMessagesDiscord so they
fail fast instead of hanging indefinitely (#73431 )
- Fall back to CommandTargetSessionKey in dispatchReplyFromConfig when
SessionKey is empty, so Discord inbound message:received hooks fire
reliably (#73431 , refs #33038 )
- Add resolveExecutionMode to Discord channel actions routing read/search
through gateway timeout path, matching Telegram's pattern (#73431 )
* fix: move timeout to fetch layer, drop send.messages wrapper
Inject AbortSignal.timeout into the Discord proxy-request-client fetch
wrapper so every Discord REST call gets a 15s timeout at the HTTP level.
This replaces the Promise.race wrapper in send.messages.ts — cleaner,
covers all calls, and actually aborts the TCP connection.
* fix: remove unused callerController variable in proxy-request-client test
* fix: remove unnecessary mergeAbortSignal helper
2026-04-28 21:46:05 +10:00
Vincent Koc
c478aeca5a
docs: cover cron_changed plugin hook and legacy env-var deprecation
...
- docs/plugins/hooks.md: add `cron_changed` to the Lifecycle hook catalog and
a Gateway lifecycle paragraph describing its typed event payload, run
status, delivery status, and removed-event job snapshot, so plugin authors
picking up f155a5f955 (#72773 ) have a canonical reference beyond the
sdk-overview bullet that already shipped in the same SHA.
- docs/help/environment.md: add a "Legacy environment variables" section for
aa1834a3ff so users see that `CLAWDBOT_*` and `MOLTBOT_*` prefixes are now
ignored and trigger an `OPENCLAW_LEGACY_ENV_VARS` deprecation warning,
with a rename example to `OPENCLAW_*`.
2026-04-28 04:40:38 -07:00
Alex Knight
f155a5f955
Add cron changed plugin hook ( #72773 )
...
* feat: add cron changed plugin hook
* fix: improve cron_changed hook correctness and code quality
- Fix PluginHookGatewayCronDeliveryStatus: replace 'error' with 'unknown'
to match internal CronDeliveryStatus enum
- Add job snapshot to CronEvent so removed events carry the deleted job
- Extract pickDefined helper, replace 14-field verbose spread mapping
- Add toPluginCronJob mapper for explicit internal→public type boundary
- Fix schedule union: use literal-only kind discriminants for TS narrowing
- Use loadConfig() (runtime) instead of params.cfg (startup) in hook ctx
- Use formatErrorMessage instead of String(err) for stack preservation
- Fix pre-existing getCron TS2322 with explicit cast (matches gateway_start)
- Re-export supporting types from hooks.ts for plugin consumers
- Add tests: removed events with job, finished with full fields, runtime cfg
2026-04-28 21:34:42 +10:00
Alex Knight
e84ebeafbd
fix(memory-core): retry dreaming cron startup reconciliation ( #73493 )
...
Co-authored-by: Alex Knight <15041791+amknight@users.noreply.github.com >
2026-04-28 21:15:23 +10:00
Peter Steinberger
2ccdbc7dd9
fix(plugin-sdk): keep memory host wildcard shims
2026-04-28 12:08:13 +01:00
Peter Steinberger
343c69d7a1
fix: auto-enable media provider plugins
2026-04-28 12:05:30 +01:00
Peter Steinberger
3eb2a9d371
fix(plugin-sdk): drop unavailable memory host exports
2026-04-28 12:01:43 +01:00
Vincent Koc
e10f493160
ci: shard config codeql quality
...
Split config quality CodeQL results into a separate category while keeping the default quality bucket narrow.
2026-04-28 04:00:14 -07:00
Vincent Koc
75ba8398f9
fix(gateway): expose event loop health in readiness
2026-04-28 03:56:58 -07:00
Peter Steinberger
9f7932fbcc
test: update gateway client callsite guard
2026-04-28 11:54:43 +01:00
Peter Steinberger
9e5aa10e97
fix(memory-host): preserve core resolver exports in sdk shims
2026-04-28 11:54:12 +01:00
Peter Steinberger
af10be59d8
fix(approvals): stop stale approval resume loops
2026-04-28 11:53:22 +01:00
Peter Steinberger
2a0af6754e
ci: narrow ClawSweeper dispatch cancellation
2026-04-28 11:53:06 +01:00
Peter Steinberger
ba722fd126
test: speed up channel mcp tests
2026-04-28 11:49:18 +01:00
Peter Steinberger
8260b64f7a
fix(memory-host): keep sdk shim exports complete
2026-04-28 11:48:59 +01:00
loongfay
7b07a0ab8f
feat(channel) add yuanbao docs entrance ( #73443 )
...
* feat(channel) add yuanbao docs entrance
* feat(channel): add yuanbao docs entrance (#73443 ) (thanks @loongfay)
---------
Co-authored-by: loongzhao <loongzhao@tencent.com >
Co-authored-by: sliverp <870080352@qq.com >
2026-04-28 18:47:09 +08:00
Vincent Koc
d55c7ea997
fix(plugins): bound prompt memory recall latency
2026-04-28 03:46:18 -07:00
Peter Steinberger
5de284c2e3
fix(release): restore main release checks
2026-04-28 11:44:44 +01:00
Peter Steinberger
dc541662f8
docs(changelog): finalize 2026.4.27 notes
2026-04-28 11:41:29 +01:00
Vincent Koc
3c0eac31f1
docs(providers/qwen): note explicit qwen3.6-plus opt-in on Coding Plan
...
For 058b57867e : docs/providers/qwen.md "Qwen 3.6 Plus availability"
accordion now records that the bundled catalog still does not advertise
`qwen3.6-plus` on Coding Plan endpoints, but explicitly configured
`models.providers.qwen.models` entries for that model are honored on
Coding Plan baseUrls so subscribers whose plan enables it can opt in. The
upstream API still decides whether the call succeeds.
2026-04-28 03:40:39 -07:00
Peter Steinberger
adf166936a
docs(changelog): document pairing and approval fixes
2026-04-28 11:38:18 +01:00