Vincent Koc
1dcef7b644
Infra: block GIT_EXEC_PATH in host env sanitizer ( #43685 )
...
* Infra: block GIT_EXEC_PATH in host env sanitizer
* Changelog: note host env hardening
2026-03-12 01:16:03 -04:00
Vincent Koc
18f15850e6
fix(browser): restore proxy attachment media size cap ( #43684 )
...
* browser: honor shared proxy file size cap
* test(browser): cover proxy file size cap
* docs(changelog): note browser proxy size cap fix
2026-03-12 01:04:31 -04:00
Peter Steinberger
29dc65403f
build: prepare 2026.3.11 release
v2026.3.11
2026-03-12 05:01:07 +00:00
Neerav Makwana
c65390cbde
docs: update Raspberry Pi dashboard access instructions ( #43584 )
...
* docs(pi): update dashboard access instructions
* docs(i18n): refresh raspberry pi source hash
* docs: clarify Raspberry Pi dashboard access
* fix: clarify Raspberry Pi dashboard access (#43584 ) (thanks @neeravmakwana)
---------
Co-authored-by: Neerav Makwana <261249544+neeravmakwana@users.noreply.github.com >
Co-authored-by: Ayaan Zaidi <zaidi@uplause.io >
2026-03-12 10:04:44 +05:30
Peter Steinberger
b125c3ba06
build: bump openclaw to 2026.3.11-beta.1
v2026.3.11-beta.1
2026-03-12 04:08:19 +00:00
Ayaan Zaidi
fbc1bd6f8e
fix: clear telegram polling cleanup timers
2026-03-12 09:36:04 +05:30
Huang X
70abee69e9
fix(telegram): avoid polling restart hang after stall detection
2026-03-12 09:36:04 +05:30
Peter Steinberger
ce5dd742f8
build: sync versions to 2026.3.11
2026-03-12 04:01:57 +00:00
Peter Steinberger
96485701a7
docs: update 2026.3.11 release examples
2026-03-12 04:01:56 +00:00
Toven
ade748176f
OpenRouter: surface free Hunter and Healer stealth models for the next week ( #43642 )
...
* Models: add temporary Hunter and Healer alpha to OpenRouter catalog
* Add temporary OpenRouter stealth catalog entries
---------
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-03-11 22:58:48 -05:00
Peter Steinberger
1fcee52a5c
docs: reorder unreleased changelog by user impact
2026-03-12 03:42:39 +00:00
David Rudduck
f01c41b27a
fix(context-engine): guard compact() throw + fire hooks for ownsCompaction engines ( #41361 )
...
Merged via squash.
Prepared head SHA: 0957b32dc6
Co-authored-by: davidrudduck <47308254+davidrudduck@users.noreply.github.com >
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com >
Reviewed-by: @jalehman
2026-03-11 20:19:20 -07:00
Frank Yang
5231277163
fix(acp): rehydrate restarted main ACP sessions ( #43285 )
...
Merged via squash.
Prepared head SHA: f06318e58f
Co-authored-by: frankekn <4488090+frankekn@users.noreply.github.com >
Co-authored-by: frankekn <4488090+frankekn@users.noreply.github.com >
Reviewed-by: @frankekn
2026-03-12 11:05:09 +08:00
Peter Steinberger
5ca780fa78
feat: expose runtime version in gateway status
2026-03-12 02:55:31 +00:00
Robin Waslander
e95f2dcd6e
fix(sandbox): anchor fs-bridge writeFile commit to canonical parent path
...
Refs: GHSA-xvx8-77m6-gwg6
2026-03-12 03:52:24 +01:00
Peter Steinberger
43a10677ed
fix: isolate plugin discovery env from global state
2026-03-12 02:46:29 +00:00
Peter Steinberger
17fd46ab66
test: fix websocket tool shape coverage
2026-03-12 02:16:56 +00:00
Robin Waslander
487a3ba8ce
fix(discord): enforce users/roles allowlist in reaction ingress
...
References GHSA-9vvh-2768-c8vp.
2026-03-12 03:13:46 +01:00
Peter Steinberger
980619b9be
fix: harden openai websocket replay
2026-03-12 02:13:06 +00:00
Peter Steinberger
607c158a75
test(cli): update daemon coverage restart contract
2026-03-12 01:43:27 +00:00
Peter Steinberger
b31836317a
fix(cli): handle scheduled gateway restarts consistently
2026-03-12 01:38:39 +00:00
Robin Waslander
841ee24340
fix(daemon): address clanker review findings for kickstart restart
...
Bug 1 (high): replace fixed sleep 1 with caller-PID polling in both
kickstart and start-after-exit handoff modes. The helper now waits until
kill -0 $caller_pid fails before issuing launchctl kickstart -k.
Bug 2 (medium): gate enable+bootstrap fallback on isLaunchctlNotLoaded().
Only attempt re-registration when kickstart -k fails because the job is
absent; all other kickstart failures now re-throw the original error.
Follows up on 3c0fd3dffe .
Fixes #43311 , #43406 , #43035 , #43049
2026-03-12 02:16:24 +01:00
Robin Waslander
b7a37c2023
fix(node-host): extend script-runner set and add fail-closed guard for mutable-file approval
...
tsx, jiti, ts-node, ts-node-esm, vite-node, and esno were not recognized
as interpreter-style script runners in invoke-system-run-plan.ts. These
runners produced mutableFileOperand: null, causing invoke-system-run.ts
to skip revalidation entirely. A mutated script payload would execute
without the approval binding check that node ./run.js already enforced.
Two-part fix:
- Add tsx, jiti, and related TypeScript/ESM loaders to the known script
runner set so they produce a valid mutableFileOperand from the planner
- Add a fail-closed runtime guard in invoke-system-run.ts that denies
execution when a script run should have a mutable-file binding but the
approval plan is missing it, preventing unknown future runners from
silently bypassing revalidation
Fixes GHSA-qc36-x95h-7j53
2026-03-12 01:34:35 +01:00
Luke
a5ceb62d44
fix(whatsapp): trim leading whitespace in direct outbound sends ( #43539 )
...
Trim leading whitespace from direct WhatsApp text and media caption sends.
Also guard empty text-only web sends after trimming.
2026-03-12 11:32:04 +11:00
Peter Steinberger
7e3787517f
fix: harden state dir permissions during onboard
2026-03-12 00:26:36 +00:00
Robin Waslander
ebed3bbde1
fix(gateway): enforce browser origin check regardless of proxy headers
...
In trusted-proxy mode, enforceOriginCheckForAnyClient was set to false
whenever proxy headers were present. This allowed browser-originated
WebSocket connections from untrusted origins to bypass origin validation
entirely, as the check only ran for control-ui and webchat client types.
An attacker serving a page from an untrusted origin could connect through
a trusted reverse proxy, inherit proxy-injected identity, and obtain
operator.admin access via the sharedAuthOk / roleCanSkipDeviceIdentity
path without any origin restriction.
Remove the hasProxyHeaders exemption so origin validation runs for all
browser-originated connections regardless of how the request arrived.
Fixes GHSA-5wcw-8jjv-m286
2026-03-12 01:16:52 +01:00
Robin Waslander
3c0fd3dffe
fix(daemon): replace bootout with kickstart -k for launchd restarts on macOS
...
On macOS, launchctl bootout permanently unloads the LaunchAgent plist.
Even with KeepAlive: true, launchd cannot respawn a service whose plist
has been removed from its registry. This left users with a dead gateway
requiring manual 'openclaw gateway install' to recover.
Affected trigger paths:
- openclaw gateway restart from an agent session (#43311 )
- SIGTERM on config reload (#43406 )
- Gateway self-restart via SIGTERM (#43035 )
- Hot reload on channel config change (#43049 )
Switch restartLaunchAgent() to launchctl kickstart -k, which force-kills
and restarts the service without unloading the plist. When the restart
originates from inside the launchd-managed process tree, delegate to a
new detached handoff helper (launchd-restart-handoff.ts) to avoid the
caller being killed mid-command. Self-restart paths in process-respawn.ts
now schedule the detached start-after-exit handoff before exiting instead
of relying on exit/KeepAlive timing.
Fixes #43311 , #43406 , #43035 , #43049
2026-03-12 01:16:49 +01:00
Peter Steinberger
e11be576fb
fix: repair bundled plugin dirs after npm install
2026-03-11 23:53:50 +00:00
Vincent Koc
b6d83749c8
fix(terminal): sanitize skills JSON and fallback on legacy Windows ( #43520 )
...
* Terminal: use ASCII borders on legacy Windows consoles
* Skills: sanitize JSON output for control bytes
* Changelog: credit terminal follow-up fixes
* Update CHANGELOG.md
* Update CHANGELOG.md
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
* Skills: strip remaining escape sequences from JSON output
---------
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-03-11 19:53:07 -04:00
Peter Steinberger
0e397e62b7
chore: bump version to 2026.3.10
2026-03-11 23:29:53 +00:00
Brian Yu
cced1e0f76
preserve openai phase param
2026-03-11 23:15:52 +00:00
Gustavo Madeira Santana
da6f97a3f6
Memory: revalidate multimodal files before indexing
2026-03-11 22:51:34 +00:00
zhoulf1006
453c8d7c1b
fix(hooks): add missing trigger and channelId to agent_end, llm_input, and llm_output hook contexts ( #42362 )
...
Merged via squash.
Prepared head SHA: e6d7b7e31a
Co-authored-by: zhoulf1006 <35586967+zhoulf1006@users.noreply.github.com >
Co-authored-by: hydro13 <6640526+hydro13@users.noreply.github.com >
Reviewed-by: @hydro13
2026-03-11 23:40:13 +01:00
Gustavo Madeira Santana
d79ca52960
Memory: add multimodal image and audio indexing ( #43460 )
...
Merged via squash.
Prepared head SHA: a994c07190
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-11 22:28:34 +00:00
Harold Hunt
20d097ac2f
Gateway/Dashboard: surface config validation issues ( #42664 )
...
Merged via squash.
Prepared head SHA: 43f66cdcf0
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-11 17:32:41 -04:00
Altay
4eccea9f7f
test(gateway): widen before tool hook mock typing ( #43476 )
...
* test(gateway): widen before tool hook mock typing
* chore: update pnpm.lock
2026-03-12 00:17:03 +03:00
Peter Steinberger
8cc0c9baf2
fix(gateway): run before_tool_call for HTTP tools
2026-03-11 20:18:24 +00:00
Peter Steinberger
c8dd06cba2
fix(ws): preserve payload overrides
2026-03-11 20:11:51 +00:00
Peter Steinberger
bdd9ed238a
test: align pi-ai oauth mocks
2026-03-11 20:11:51 +00:00
Peter Steinberger
5e324cf785
docs(ollama): align onboarding guidance with code
2026-03-11 20:11:51 +00:00
Peter Steinberger
e65011dc29
fix(onboard): default custom Ollama URL to native API
2026-03-11 20:11:51 +00:00
Peter Steinberger
620bae4ec7
fix(ollama): share model context discovery
2026-03-11 20:11:51 +00:00
Peter Steinberger
9329a0ab24
test(agents): cover openai responses phase replay
2026-03-11 20:10:55 +00:00
Peter Steinberger
9c81c31232
chore: refresh dependencies except carbon
2026-03-11 20:10:33 +00:00
Tak Hoffman
4133edb395
fix: restore web tools to coding profile ( #43436 )
...
* fix: restore web tools to coding profile
* fix: tighten tool catalog regression assertion
2026-03-11 15:07:17 -05:00
Squabble9
128e5bc317
fix: recognize Venice 402 billing errors for model fallback ( #43205 )
...
Merged via squash.
Prepared head SHA: 1f6b10b9d9
Co-authored-by: Squabble9 <194720422+Squabble9@users.noreply.github.com >
Co-authored-by: altaywtf <9790196+altaywtf@users.noreply.github.com >
Reviewed-by: @altaywtf
2026-03-11 22:15:32 +03:00
Gustavo Madeira Santana
01ffc5db24
memory: normalize Gemini embeddings ( #43409 )
...
Merged via squash.
Prepared head SHA: 70613e0225
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-11 15:06:21 -04:00
ingyukoh
2a18cbb110
fix(agents): prevent false billing error replacing valid response text ( #40616 )
...
Merged via squash.
Prepared head SHA: 05179362b4
Co-authored-by: ingyukoh <6015960+ingyukoh@users.noreply.github.com >
Co-authored-by: altaywtf <9790196+altaywtf@users.noreply.github.com >
Reviewed-by: @altaywtf
2026-03-11 22:00:11 +03:00
ingyukoh
78b9384aa7
fix(discord): add missing autoThread to DiscordGuildChannelConfig type ( #35608 )
...
Merged via squash.
Prepared head SHA: e62b88bb01
Co-authored-by: ingyukoh <6015960+ingyukoh@users.noreply.github.com >
Co-authored-by: altaywtf <9790196+altaywtf@users.noreply.github.com >
Reviewed-by: @altaywtf
2026-03-11 21:54:49 +03:00
VibhorGautam
4473242b4f
fix: use unknown instead of rate_limit as default cooldown reason ( #42911 )
...
Merged via squash.
Prepared head SHA: bebf6704d7
Co-authored-by: VibhorGautam <55019395+VibhorGautam@users.noreply.github.com >
Co-authored-by: altaywtf <9790196+altaywtf@users.noreply.github.com >
Reviewed-by: @altaywtf
2026-03-11 21:34:14 +03:00