Shakker
a48ffda7f7
chore: trace plugin lifecycle phases
2026-04-28 18:03:01 +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
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
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
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
343c69d7a1
fix: auto-enable media provider plugins
2026-04-28 12:05:30 +01:00
Peter Steinberger
af10be59d8
fix(approvals): stop stale approval resume loops
2026-04-28 11:53:22 +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
Peter Steinberger
dc541662f8
docs(changelog): finalize 2026.4.27 notes
2026-04-28 11:41:29 +01:00
Peter Steinberger
adf166936a
docs(changelog): document pairing and approval fixes
2026-04-28 11:38:18 +01:00
Vincent Koc
aa1834a3ff
fix(gateway): warn on legacy env vars
...
Fixes #53482 .
Supersedes #53667 .
2026-04-28 03:37:57 -07:00
Peter Steinberger
5a1ff1347d
fix(slack): bound inbound media downloads
2026-04-28 11:35:26 +01:00
James Reagan
a722da3ed0
fix(gateway): align session thinking defaults ( #63418 )
...
Aligns Gateway history and session list thinking-default resolution so backend session state matches the Control UI default label:
- `chat.history` now falls back through the shared Gateway session thinking-default resolver.
- Explicit session overrides still win, then owning `agents.list[].thinkingDefault`, then global/model/catalog defaults.
- `sessions.list` catalog-aware thinking defaults are covered by focused regressions.
PR by @jpreagan.
Validated in Blacksmith Testbox `tbx_01kq9t1aeqrz1mj598vvqv9dpg`:
- `pnpm test:serial src/gateway/session-utils.test.ts src/gateway/server.sessions.gateway-server-sessions-a.test.ts src/gateway/server.chat.gateway-server-chat.test.ts` (141 passed)
- `OPENCLAW_TESTBOX=1 pnpm check:changed`
2026-04-28 03:34:58 -07:00
Vincent Koc
d70191f8af
feat(sandbox): add Docker GPU passthrough
...
Add opt-in `sandbox.docker.gpus` config plumbing for Docker sandbox containers.
- thread the optional GPU passthrough field through config types, schema, resolution, and Docker create args
- reject empty config values and emit `--gpus` as a separate Docker argv pair
- document the Docker-only behavior and credit the original contributor in the changelog
Fixes #57976 .
Carries forward #58124 from @cyan-ember.
Co-authored-by: cyan-ember <5855097+cyan-ember@users.noreply.github.com >
2026-04-28 03:33:28 -07:00
Peter Steinberger
35bc13f9ef
fix: prefer OpenAI media for Codex defaults
2026-04-28 11:30:17 +01:00
Shakker
92016b82ae
fix: refresh plugin runtime mirrors in place
2026-04-28 11:25:09 +01:00
Shakker
7727e102a5
fix: scope plugin inspect runtime loading
2026-04-28 11:25:09 +01:00
Shakker
1bd4b7ac4d
fix: keep plugin uninstall on metadata path
2026-04-28 11:25:09 +01:00
Vincent Koc
7950a18025
fix(whatsapp): recover stale listener after auth conflict churn ( #72621 )
...
* fix(whatsapp): recover stale listener after auth conflict churn
* fix(whatsapp): block symlink auth cleanup escapes
* fix(whatsapp): refuse external auth cleanup
2026-04-28 03:24:57 -07:00
Vincent Koc
e2f3044b8f
fix(memory-wiki): route bridge CLI through gateway
...
Route Memory Wiki bridge-mode status, doctor, and bridge import CLI paths through Gateway RPC when bridge artifact reads are active, while preserving local/offline fallbacks.
Harden Gateway CLI rendering and imported-source writes: validate RPC response shapes, bound response strings before rendering/JSON serialization, sanitize/escape terminal-controlled output, avoid redundant JSON forwarding, and replace imported source pages through a temp-file rename path with symlink and hardlink regressions.
Fixes #65722
Fixes #65976
Fixes #66082
Fixes #67979
Fixes #68371
Fixes #68828
Fixes #69019
Fixes #70181
Fixes #70242
Fixes #70842
Thanks @moorsecopers99, @vincentkoc, and @prasad-yashdeep.
2026-04-28 03:22:12 -07:00
Vincent Koc
f12dedb5c8
fix(tasks): keep media tool runs live
2026-04-28 03:21:00 -07:00
Peter Steinberger
1b13f53047
fix(ollama): reject garbled Kimi symbol output
2026-04-28 11:20:15 +01:00
Peter Steinberger
6cc6996a1c
fix(slack): tune socket mode pong timeout
2026-04-28 11:13:03 +01:00
Peter Steinberger
ade9aaae89
fix(cli): classify scope-limited status probes as reachable
2026-04-28 11:09:42 +01:00
Peter Steinberger
1fcf0a422f
fix(agents): keep media generation tasks fresh
2026-04-28 10:59:42 +01:00
Gabriel Kripalani
17ef9ef895
feat(openrouter): add video generation provider ( #72700 )
...
Adds OpenRouter video generation via video_generate, with hardened async polling/download handling, docs, and regression coverage.
Validation:
- pnpm test src/plugins/plugin-lookup-table.test.ts src/secrets/target-registry.fast-path.test.ts src/gateway/server-startup-post-attach.test.ts extensions/openrouter/video-generation-provider.test.ts src/video-generation/live-test-helpers.test.ts src/media-generation/provider-capabilities.contract.test.ts src/agents/pi-embedded-helpers/failover-matches.test.ts src/plugins/manifest-metadata-scan.test.ts src/agents/openai-transport-stream.test.ts src/media-understanding/openai-compatible-audio.test.ts src/agents/schema-normalization-runtime-contract.test.ts src/agents/provider-request-config.test.ts src/plugin-sdk/provider-stream.test.ts src/agents/pi-embedded-runner/run/attempt.spawn-workspace.websocket.test.ts -- --reporter=verbose
- OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_TEST_QUIET=0 OPENCLAW_LIVE_VIDEO_GENERATION_MODELS=openrouter/google/veo-3.1-fast pnpm test:live src/video-generation/video-generation.live.test.ts -- --runInBand
Co-authored-by: notamicrodose <gabrielkripalani@me.com >
2026-04-28 10:57:31 +01:00
Peter Steinberger
6f8792f3f1
fix(cli): wire image describe prompt options
2026-04-28 10:53:53 +01:00
Vincent Koc
ae63f76bbd
fix(cron): infer session agentId when omitted ( #72326 )
...
* fix(cron): infer session agentId when omitted
* fix(clownfish): address review for ghcrawl-165998-agentic-merge (1)
2026-04-28 02:47:20 -07:00
Peter Steinberger
c5cd7aabcf
fix(auto-reply): bound pending tool result drain
2026-04-28 10:46:06 +01:00
Vincent Koc
210cccb0fe
fix(tasks): index async media tasks by agent
2026-04-28 02:43:17 -07:00
Vincent Koc
058b57867e
fix(qwen): allow explicit qwen3.6-plus on Coding Plan ( #72664 )
2026-04-28 02:38:47 -07:00
Peter Steinberger
b4ffef5c5f
fix(plugins): prune inactive bundled runtime deps
2026-04-28 10:34:24 +01:00
Peter Steinberger
1346a31861
fix(plugins): keep manifestless bundles indexed
2026-04-28 10:34:01 +01:00