Vincent Koc
2988203a5e
feat(context-engine): add memory prompt helper
2026-04-07 08:56:41 +01:00
Vincent Koc
6a559f0293
feat(memory-wiki): gate compiled digest prompts
2026-04-07 08:56:25 +01:00
Vincent Koc
0d3cd4ac42
feat(memory-wiki): use digests for retrieval
2026-04-07 08:56:25 +01:00
Vincent Koc
44fd8b0d6e
feat(memory-wiki): add claim health reports
2026-04-07 08:56:24 +01:00
Vincent Koc
947a43dae3
feat(memory-wiki): add belief-layer digests and compat migration
2026-04-07 08:56:24 +01:00
Ayaan Zaidi
e811d04db4
fix: openai tts groq wav ( #62233 ) (thanks @neeravmakwana)
2026-04-07 12:56:22 +05:30
Neerav Makwana
68bfc6fcf5
Mistral: enable reasoning_effort for mistral-small-latest
...
Made-with: Cursor
2026-04-07 12:52:47 +05:30
Neerav Makwana
de2182877a
fix: classify HTTP 404 errors for model fallback chain ( #62244 ) (thanks @neeravmakwana)
...
* Fix: classify HTTP 404 errors for model fallback chain
* Address PR review: preserve context overflow on HTTP 404, fix changelog order
* fix: add changelog attribution for HTTP 404 fallback fix (#62244 ) (thanks @neeravmakwana)
---------
Co-authored-by: Ayaan Zaidi <hi@obviy.us >
2026-04-07 12:47:54 +05:30
Neerav Makwana
9a9dc1dbec
fix: allowlist compat for capability provider fallback ( #62234 ) (thanks @neeravmakwana)
...
* Plugins: allowlist compat for capability provider fallback (#62205 )
* test: cover all capability fallback keys
---------
Co-authored-by: Ayaan Zaidi <hi@obviy.us >
2026-04-07 12:45:56 +05:30
Neerav Makwana
242b2e66f2
fix: normalize cron jobId load path ( #62251 ) (thanks @neeravmakwana)
...
* Cron: normalize jobId to id when loading jobs.json
* Cron: address review — changelog order, warn on legacy jobId
2026-04-07 12:42:59 +05:30
Gustavo Madeira Santana
7155aa9c15
fix(docker): use built bundled plugins in runtime images ( #62316 )
...
Merged via squash.
Prepared head SHA: c2bbfef188
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-07 02:18:24 -04:00
Chunyue Wang
e8fb140642
fix: preserve Slack guarded media transport ( #62239 ) (thanks @openperf)
...
* fix(slack ): prevent undici dispatcher leak to globalThis.fetch causing media download failure
* fix(slack): preserve guarded media transport
* fix: preserve Slack guarded media transport (#62239 ) (thanks @openperf)
---------
Co-authored-by: Ayaan Zaidi <hi@obviy.us >
2026-04-07 11:15:53 +05:30
Sam Padilla
f1b7dd6c0a
fix: honor lightContext in spawned subagents ( #62264 ) (thanks @theSamPadilla)
...
* Add lightContext support for spawned subagents
* Clarify and guard lightContext usage in sessions_spawn
* test: guard sessions_spawn lightContext acp misuse
* fix: honor lightContext in spawned subagents (#62264 ) (thanks @theSamPadilla)
---------
Co-authored-by: Jaz <jaz@bycrux.com >
Co-authored-by: Ayaan Zaidi <hi@obviy.us >
2026-04-07 11:05:45 +05:30
Ayaan Zaidi
47e6c57a7a
fix: preserve telegram default auth promotion
2026-04-07 09:28:05 +05:30
Ayaan Zaidi
44f3539c4f
fix: preserve telegram doctor allowlist fallback ( #62263 )
...
* test: cover telegram doctor multi-account fallback
* fix: skip telegram default-account doctor seeding
* fix: preserve telegram doctor allowlist fallback (#62263 )
* fix: keep doctor promotion keys plugin-owned (#62263 )
2026-04-07 09:11:11 +05:30
Gustavo Madeira Santana
9fd47a5aed
Matrix: prompt invite auto-join during onboarding ( #62168 )
...
Merged via squash.
Prepared head SHA: aec7a2249a
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-06 23:22:01 -04:00
Vignesh Natarajan
338c7b8d66
changelog: note dreaming session corpus ( #62227 ) (thanks @vignesh07)
2026-04-06 19:14:42 -07:00
Val Alexander
f0ba7b95da
ui: fix light scrollbar selector
2026-04-06 21:10:00 -05:00
Bruce MacDonald
ac3f55504c
feat(ollama): detect vision capability from /api/show and set image i… ( #62193 )
...
Merged via squash.
Prepared head SHA: 85f85d1036
Co-authored-by: BruceMacD <5853428+BruceMacD@users.noreply.github.com >
Co-authored-by: BruceMacD <5853428+BruceMacD@users.noreply.github.com >
Reviewed-by: @BruceMacD
2026-04-06 17:29:40 -07:00
scoootscooob
f4fcaa09a3
feat(gateway): add compaction checkpoints ( #62146 )
...
Merged via squash.
Prepared head SHA: e37542554a
Co-authored-by: scoootscooob <167050519+scoootscooob@users.noreply.github.com >
Co-authored-by: scoootscooob <167050519+scoootscooob@users.noreply.github.com >
Reviewed-by: @scoootscooob
2026-04-06 17:27:43 -07:00
Praktika Engineer
b8c8139138
feat(slack): add thread.requireExplicitMention config option ( #58276 )
...
* feat(slack): add thread.requireExplicitMention config option
When requireMention is true in a Slack channel, replying inside a thread
where the bot previously participated currently bypasses mention gating
via implicit mention detection. This makes the bot respond to every
thread message even without an explicit @mention.
Add channels.slack.thread.requireExplicitMention (default: false) which,
when set to true, suppresses implicit thread mentions. Only explicit
@bot mentions will trigger replies inside threads.
Closes #34389
Closes #49972
* slack: refresh changelog and generated config artifacts
* slack: restore bundled channel metadata generation
---------
Co-authored-by: praktika-devops <devops@praktika.ai >
Co-authored-by: George Pickett <gpickett00@gmail.com >
2026-04-06 17:05:11 -07:00
Peter Steinberger
425592cf9c
refactor: share media normalization across runtimes
2026-04-06 23:50:27 +01:00
Peter Steinberger
096e6462c7
docs(changelog): reorder unreleased notes
2026-04-06 23:33:26 +01:00
Peter Steinberger
a463a33eee
feat: preserve media intent across provider fallback
2026-04-06 23:23:06 +01:00
Vincent Koc
d88eb0e031
fix(exa): show Exa in setup pickers
2026-04-06 23:09:46 +01:00
Devin Robison
e420468ebd
fix: openclaw allows normal reply text to carry media ( #345 ) ( #62136 )
...
* fix: openclaw allows normal reply text to carry media (#345 )
2026-04-06 16:08:33 -06:00
Onur
08296e9645
chore: bump bundled acpx to 0.5.1 ( #62148 )
...
* chore: bump bundled acpx to 0.5.1
* chore: note acpx 0.5.1 pin bump (#62148 ) (thanks @onutc)
2026-04-06 23:54:26 +02:00
Peter Steinberger
9d7459f182
fix(auth): recover Codex OAuth refresh after store reload
...
Co-authored-by: Owen <oh.whenever@gmail.com >
2026-04-06 22:45:04 +01:00
Devin Robison
48a3511233
fix: lower trust background runtime output is injecte ( #327 ) ( #62111 )
...
* fix: lower trust background runtime output is injecte (#327 )
* fix: lower trust background runtime output is injecte (#327 )
---------
Co-authored-by: OpenClaw Dummy Agent <octriage-dummy@example.invalid >
2026-04-06 15:14:52 -06:00
Agustin Rivera
5b6e552b51
fix(hooks): mark wake hook events untrusted ( #62003 )
...
* fix(hooks): mark wake hook events untrusted
* docs(changelog): add wake-hook trust entry
---------
Co-authored-by: Devin Robison <drobison@nvidia.com >
2026-04-06 14:17:48 -06:00
Devin Robison
37d7c716f4
fix: the bundled qq bot extension extensions qqbot pe ( #329 ) ( #62082 )
2026-04-06 13:50:33 -06:00
Devin Robison
681931345b
fix: this is a real approval boundary bypass that tur ( #323 ) ( #62078 )
2026-04-06 13:13:35 -06:00
Devin Robison
7306cf3707
fix: multiple dangerous build tool environment variab ( #317 ) ( #62079 )
2026-04-06 13:10:38 -06:00
Peter Steinberger
1b7e16668e
fix: finalize arcee provider landing ( #62068 ) (thanks @arthurbr11)
2026-04-06 19:53:27 +01:00
arthurbr11
95106be59b
feat: enhance Arcee AI provider with OpenRouter support and update onboarding instructions
2026-04-06 19:53:27 +01:00
arthurbr11
5ac2f58c57
feat: add Arcee AI provider plugin
...
Add a bundled Arcee AI provider plugin with ARCEEAI_API_KEY onboarding,
Trinity model catalog (mini, large-preview, large-thinking), and
OpenAI-compatible API support.
- Trinity Large Thinking: 256K context, reasoning enabled
- Trinity Large Preview: 128K context, general-purpose
- Trinity Mini 26B: 128K context, fast and cost-efficient
2026-04-06 19:53:27 +01:00
Peter Steinberger
a211f09259
docs: note discord voice recovery fix ( #41536 ) (thanks @wit-oc)
2026-04-06 18:44:19 +01:00
Peter Steinberger
dfa14001a4
fix: harden discord voice receive recovery ( #41536 ) (thanks @wit-oc)
2026-04-06 18:44:19 +01:00
Peter Steinberger
725cbcc362
fix(plugins): narrow provider hook reentry guard
2026-04-06 17:57:49 +01:00
EVA
594ea6e1b9
fix(agents): backfill missing sessionKey in embedded PI runner — prevents undefined key in model selection and live-switch ( #60555 )
...
Merged via squash.
Prepared head SHA: 8081345f1c
Co-authored-by: 100yenadmin <239388517+100yenadmin@users.noreply.github.com >
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com >
Reviewed-by: @jalehman
2026-04-06 09:51:05 -07:00
Vincent Koc
e7fe087677
fix(openai): normalize prompt overlay personality config
2026-04-06 17:24:51 +01:00
Peter Steinberger
220d10cad3
docs(changelog): add unreleased entries for 2026.4.6
2026-04-06 17:05:30 +01:00
Yossi Eliaz
0f5919a4ba
fix(ssrf): disable HTTP/2 for pinned SSRF-guard dispatchers (undici 8.0 compat)
...
Undici 8.0 defaults HTTPS clients to negotiate HTTP/2 via ALPN, which is
incompatible with the custom `connect.lookup` callback used for SSRF DNS
pinning. This caused `TypeError: fetch failed` in web_fetch/web_search.
Explicitly set `allowH2: false` on all dispatcher creation paths (Agent,
EnvHttpProxyAgent, ProxyAgent) to restore HTTP/1.1 behavior and keep the
pinned DNS lookup working reliably.
Closes #61738
2026-04-06 17:02:10 +01:00
Peter Steinberger
0b36423f97
docs: reorder unreleased changelog entries
2026-04-06 16:58:28 +01:00
Peter Steinberger
21f59a0ad5
fix: suppress commentary history leaks ( #61747 ) (thanks @afurm)
2026-04-06 16:54:34 +01:00
Peter Steinberger
aa6f6135db
fix: tighten TUI phase handling and heartbeat session guards ( #61463 ) (thanks @100yenadmin)
2026-04-06 16:35:22 +01:00
Peter Steinberger
0b9993df95
fix(agents): keep phaseless OpenAI WS text buffered until phase resolves ( #61968 )
...
* fix(agents): gate WS text delta emission on valid phase value, not map key existence
When output_item.added arrives without phase metadata, outputItemPhaseById
stores undefined. The previous .has() check returned true for undefined
values, bypassing the buffering gate and leaking commentary as unphased
visible content.
Fix: change .has() to .get() !== undefined on both delta and done handlers.
Fixes #61477
* docs: note WS phase buffering fix (#61954 ) (thanks @100yenadmin)
* test(agents): cover phaseless WS output_text.done buffering (#61954 )
* test(commands): fix session-store import path for tsgo (#61968 )
---------
Co-authored-by: Eva <eva@100yen.org >
2026-04-06 16:35:16 +01:00
Peter Steinberger
7785dc21e6
fix(discord): drop generated thread title temperature
2026-04-06 16:29:43 +01:00
Peter Steinberger
16d0f0567e
fix: preserve legacy replay phase boundaries ( #61529 ) (thanks @100yenadmin)
2026-04-06 23:09:29 +08:00
Peter Steinberger
baf4119ae3
fix: harden local TLS gateway probes ( #61935 ) (thanks @ThanhNguyxn07)
2026-04-06 15:44:30 +01:00