Commit Graph

18398 Commits

Author SHA1 Message Date
Vincent Koc
dfdc281f55 fix(cycles): split small runtime seams 2026-04-10 09:00:19 +01:00
sudie-codes
828ebd43d4 feat(msteams): handle signin/tokenExchange and signin/verifyState for SSO (#60956) (#64089)
* feat(msteams): handle signin/tokenExchange and signin/verifyState for SSO (#60956)

* test(msteams): mock conversationStore.get in thread session fixture

---------

Co-authored-by: Brad Groux <bradgroux@users.noreply.github.com>
2026-04-10 02:38:01 -05:00
Frank Yang
360955a7c8 fix: preserve commands.list metadata (#64147)
Merged via squash.

Reviewed-by: @frankekn
2026-04-10 15:35:05 +08:00
Peter Steinberger
3218f8f4e5 chore: align release metadata for 2026.4.10 2026-04-10 08:19:47 +01:00
Vincent Koc
f654b5a424 test(boundary): remove last direct bundled plugin imports 2026-04-10 08:19:20 +01:00
Vincent Koc
78d2e9e2a8 fix(ci): repair main type drift 2026-04-10 08:13:02 +01:00
Peter Steinberger
7e7a8d6b0f fix(claude-cli): harden gateway auth env 2026-04-10 08:10:46 +01:00
Peter Steinberger
7e2a1db53b fix: recover silent LLM idle timeouts 2026-04-10 08:09:17 +01:00
Vincent Koc
3cea11d3b6 test(boundary): route helper imports through bundled plugin surfaces 2026-04-10 08:05:56 +01:00
samzong
0f0a192ecb [Fix] agents.create RPC: support model param, write identity to config (#61577)
* fix(gateway): support model on agents.create, write identity to config

Signed-off-by: samzong <samzong.lu@gmail.com>

* fix(gateway): sync agent identity file writes

* fix(gateway): preserve richer identity markdown

* fix(gateway): preserve destination identity on workspace moves

* fix(gateway): preserve source identity on workspace moves

---------

Signed-off-by: samzong <samzong.lu@gmail.com>
Co-authored-by: Frank Yang <frank.ekn@gmail.com>
2026-04-10 14:36:22 +08:00
samzong
723dec0432 [Feat] Gateway: add commands.list RPC method (#62656)
Merged via squash.

Co-authored-by: samzong <samzong.lu@gmail.com>
Co-authored-by: Frank Yang <frank.ekn@gmail.com>
Reviewed-by: @frankekn
2026-04-10 14:28:47 +08:00
Tak Hoffman
4bf94aa0d6 feat: add local exec-policy CLI (#64050)
* feat: add local exec-policy CLI

* fix: harden exec-policy CLI output

* fix: harden exec approvals writes

* fix: tighten local exec-policy sync

* docs: document exec-policy CLI

* fix: harden exec-policy rollback and approvals path checks

* fix: reject exec-policy sync when host remains node

* fix: validate approvals path before mkdir

* fix: guard exec-policy rollback against newer approvals writes

* fix: restore exec approvals via hardened rollback path

* fix: guard exec-policy config writes with base hash

* docs: add exec-policy changelog entry

* fix: clarify exec-policy show for node host

* fix: strip stale exec-policy decisions
2026-04-10 01:16:03 -05:00
Pavan Kumar Gondhi
2d126fc623 fix(infra): expand host env security policy denylist [AI] (#63277)
* fix: address issue

* 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 PR review feedback

* fix: address PR review feedback

* fix: close host env inherited sanitization gap

* fix: enforce host env reported baseline coverage

* fix: address PR review feedback

* fix: address PR review feedback

* fix: address PR review feedback

* docs: add changelog entry for PR merge
2026-04-10 11:36:39 +05:30
Qasim Soomro
71617ef2f0 fix: allow private network provider request opt-in (#63671)
* feat(models): allow private network via models.providers.*.request
Add optional request.allowPrivateNetwork for operator-controlled self-hosted
OpenAI-compatible bases (LAN/overlay/split DNS). Plumbs the flag into
resolveProviderRequestPolicyConfig for streaming provider HTTP and OpenAI
responses WebSocket so SSRF policy can allow private-resolved model URLs
when explicitly enabled.
Updates zod schema, config help/labels, and unit tests for sanitize/merge.

* agents thread provider request into websocket stream

* fix(config): scope allowPrivateNetwork to model requests

* fix(agents): refresh websocket manager on request changes

* fix(agents): scope runtime private-network overrides to models

* fix: allow private network provider request opt-in (#63671) (thanks @qas)

---------

Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-04-10 11:11:03 +05:30
Sean
c61be87b0e fix: prevent sandbox browser CDP startup hangs (#62873) (thanks @Syysean)
* refactor(sandbox): remove socat proxy and fix chromium keyring deadlock

* fix(sandbox): address review feedback by reinstating cdp isolation and stability flags

* fix(sandbox): increase entrypoint cdp timeout to 20s to honor autoStartTimeoutMs

* fix(sandbox): align implementation with PR description (keyring bypass, fail-fast, watchdog)

* fix

* fix(sandbox): remove bash CDP watchdog to eliminate dual-timeout race

* fix(sandbox): apply final fail-fast and lifecycle bindings

* fix(sandbox): restore noVNC and CDP port offset

* fix(sandbox): add max-time to curl to prevent HTTP hang

* fix(sandbox): align timeout with host and restore env flags

* fix(sandbox): pass auto-start timeout to container and restore wait -n

* fix(sandbox): update hash input type to include autoStartTimeoutMs

* fix(sandbox): implement production-grade lifecycle and timeout management

- Add strict integer validation for port and timeout environment variables
- Implement robust two-stage trap cleanup (SIGTERM with SIGKILL fallback) to prevent zombie processes
- Refactor CDP readiness probe to use absolute millisecond-precision deadlines
- Add early fail-fast detection if Chromium crashes during the startup phase
- Track all daemon PIDs explicitly for reliable teardown via wait -n

* fix(sandbox): allow renderer process limit to be 0 for chromium default

* fix(sandbox): add autoStartTimeoutMs to SandboxBrowserHashInput type

* test(sandbox): cover browser timeout cleanup

---------

Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-04-10 10:26:38 +05:30
Ayaan Zaidi
c003e982a2 fix(process): drain Windows stdio before exit fallback settle 2026-04-10 10:09:25 +05:30
Ayaan Zaidi
063049c0d4 fix(process): wait for close after Windows exit fallback 2026-04-10 10:09:25 +05:30
Ayaan Zaidi
4b6b1a3ed3 fix(process): settle Windows supervisor waits from exit state 2026-04-10 10:09:25 +05:30
joshavant
393c791466 UI: remove redundant cron refresh wrapper 2026-04-09 22:59:22 -05:00
Marcus Castro
95d467398e fix(whatsapp): drain eligible pending deliveries on reconnect (#63916)
* fix(whatsapp): drain eligible pending deliveries on reconnect

* docs(changelog): note whatsapp reconnect pending drain
2026-04-09 23:41:25 -03:00
Gustavo Madeira Santana
8de63ca268 refactor(gateway): split startup and runtime seams (#63975)
Merged via squash.

Prepared head SHA: c6e47efa12
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-09 21:28:29 -04:00
Josh Avant
33ad806a14 Browser: consolidate duplicate helper surfaces via facade delegation (#63957)
* Plugin SDK: route browser helper surfaces through browser facade

* Browser doctor flow: add facade path regression and export parity guards

* Contracts: dedupe browser facade parity checks without reducing coverage

* Browser tests: restore host-inspection semantics coverage in extension

* fix: add changelog note for browser facade consolidation (#63957) (thanks @joshavant)
2026-04-09 19:49:04 -05:00
SnowSky1
03f2951e63 fix(agents): preserve announce threadId on sessions.list fallback (#63506)
Merged via squash.

Prepared head SHA: a81e85de0c
Co-authored-by: SnowSky1 <126348592+SnowSky1@users.noreply.github.com>
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Reviewed-by: @jalehman
2026-04-09 16:02:56 -07:00
Altay
8cf02e7c47 fix(ci): clear check-additional follow-up regressions (#63934)
* fix(ci): route messaging temp files through openclaw tmp dir

* fix(ci): clear qa-lab follow-up guardrails

* fix(ci): own-check ACP fallback resolvers

* fix(ci): preserve memory-core write error causes

* fix(ci): narrow qa-channel boundary alias

* fix(test): type memory-core dreaming api stubs
2026-04-09 23:47:59 +01:00
Josh Lehman
8e62df661e fix: read packed refs for git commit metadata (#63943)
Regeneration-Prompt: |
  Investigate the unrelated failures in `src/infra/git-commit.test.ts` that started blocking other prep and gate flows. The real-checkout assertions were failing whenever the current branch ref lived only in `.git/packed-refs`, because `resolveCommitHash()` only followed loose ref files under `refs/heads/*` even though worktrees and packed refs are common in this repo. Keep the existing safety checks that reject traversal from crafted HEAD contents, but fall back to reading an exact ref match from `packed-refs` in the common git dir when the loose ref is missing. Add a deterministic regression test that simulates a worktree checkout with `commondir` and only a packed branch ref so the test no longer depends on the local repository state.
2026-04-09 15:39:11 -07:00
Ping
e3f81b151e fix: pass parent delivery context to ACP stream relay for correct thread routing (#57056)
Merged via squash.

Prepared head SHA: 7c34e67336
Co-authored-by: pingren <5123601+pingren@users.noreply.github.com>
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Reviewed-by: @jalehman
2026-04-09 14:43:42 -07:00
Guangchi Yuan
110782a26a fix(gateway): preserve thread routing in delivery context for Slack/Telegram/Mattermost (#54840)
Merged via squash.

Prepared head SHA: 34bedac747
Co-authored-by: yzzymt <6908291+yzzymt@users.noreply.github.com>
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Reviewed-by: @jalehman
2026-04-09 14:26:41 -07:00
welfo-beo
81c7304a18 [codex] fix cron telegram final announce delivery (#63228)
Merged via squash.

Prepared head SHA: f3928f79eb
Co-authored-by: welfo-beo <187608477+welfo-beo@users.noreply.github.com>
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Reviewed-by: @jalehman
2026-04-09 14:24:35 -07:00
Altay
004bab53fa fix(ci): repair protocol drift and audit failures (#63917)
* CI: fix protocol drift and audit failures

* CI: narrow axios release-age exception

* CI: drop ineffective feishu override

* test: fix workspace-root guard mock typing
2026-04-09 22:07:51 +01:00
Roger Deng
1e15bb2638 fix: prevent isolated heartbeat session key :heartbeat suffix accumulation (#59606)
Merged via squash.

Prepared head SHA: c276211a8b
Co-authored-by: rogerdigital <13251150+rogerdigital@users.noreply.github.com>
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Reviewed-by: @jalehman
2026-04-09 14:06:55 -07:00
Mariano
4bd720527b fix(memory-lancedb): accept dreaming config for slot-owned memory (#63874)
Merged via squash.

Prepared head SHA: 9aaf29bd36
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Reviewed-by: @mbelinky
2026-04-09 23:03:53 +02:00
XING
820dc38525 fix(gateway): add TTL cleanup for 3 Maps that grow unbounded causing OOM (#52731)
Merged via squash.

Prepared head SHA: 4816a29de5
Co-authored-by: artwalker <44759507+artwalker@users.noreply.github.com>
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Reviewed-by: @jalehman
2026-04-09 13:58:46 -07:00
Josh Lehman
2d846e1f1a fix: coerce integer plugin config input (#63346)
* Wizard: coerce integer plugin config input

Regeneration-Prompt: |
  Fix the interactive plugin-config wizard so JSON Schema fields declared as type "integer" are coerced from text input the same way type "number" already is. Keep the change narrow in src/wizard/setup.plugin-config.ts rather than refactoring the broader prompt flow. Add a focused regression test in src/wizard/setup.plugin-config.test.ts that exercises setupPluginConfig with an integer-typed schema field, verifies the text response "3" is stored as numeric 3, and run only the relevant wizard test slice before committing.

* Wizard: type select mock in setup plugin config test

Regeneration-Prompt: |
  Fix the CI type failure on PR #63346 in src/wizard/setup.plugin-config.test.ts with the smallest possible change. The new integer-coercion test needs its mocked prompter to satisfy the generic WizardPrompter select signature, matching the surrounding test style without changing production code or test behavior. After the one-line test fix, rerun pnpm tsgo --pretty false and pnpm test src/wizard/setup.plugin-config.test.ts on branch aristotle-3f605963-fix-config-integer-coercion.

* Wizard: coerce integer plugin config input

* Changelog: remove stray conflict marker
2026-04-09 13:57:06 -07:00
Mariano
6af17b39e1 fix(dreaming): require admin for persistent gateway toggle (#63872)
Merged via squash.

Prepared head SHA: 2dfd2ee7a7
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Reviewed-by: @mbelinky
2026-04-09 21:21:01 +02:00
Tak Hoffman
b83726d13e Feat: Add Active Memory recall plugin (#63286)
* Refine plugin debug plumbing

* Tighten plugin debug handling

* Reduce active memory overhead

* Abort active memory sidecar on timeout

* Rename active memory blocking subagent wording

* Fix active memory cache and recall selection

* Preserve active memory session scope

* Sanitize recalled context before retrieval

* Add active memory changelog entry

* Harden active memory debug and transcript handling

* Add active memory policy config

* Raise active memory timeout default

* Keep usage footer on primary reply

* Clear stale active memory status lines

* Match legacy active memory status prefixes

* Preserve numeric active memory bullets

* Reuse canonical session keys for active memory

* Let active memory subagent decide relevance

* Refine active memory plugin summary flow

* Fix active memory main-session DM detection

* Trim active memory summaries at word boundaries

* Add active memory prompt styles

* Fix active memory stale status cleanup

* Rename active memory subagent wording

* Add active memory prompt and thinking overrides

* Remove active memory legacy status compat

* Resolve active memory session id status

* Add active memory session toggle

* Add active memory global toggle

* Fix active memory toggle state handling

* Harden active memory transcript persistence

* Fix active memory chat type gating

* Scope active memory transcripts by agent

* Show plugin debug before replies
2026-04-09 11:27:37 -05:00
Mason
2954c7235b test+ui: fix persistent main CI regressions (#63825) 2026-04-10 00:00:57 +08:00
Pavan Kumar Gondhi
635bb35b68 fix(agents): guard nodes tool outPath against workspace boundary [AI-assisted] (#63551)
* fix: address issue

* fix: address review feedback

* fix: finalize issue changes

* fix: address PR review feedback

* fix: address PR review feedback

* docs: add changelog entry for PR merge
2026-04-09 20:42:49 +05:30
zsx
1fede43b94 fix: exclude workspace shadows from channel setup catalog lookups 2026-04-09 22:46:39 +08:00
Neerav Makwana
2645ed154b fix: provider-qualified session context limits (#62493) (thanks @neeravmakwana)
* fix(sessions): provider-qualified context limits (#62472)

* fix(sessions): honor agent context cap in memory-flush gate

* refactor(sessions): unify context token resolution

* fix: keep followup snapshot freshness on the active provider (#62493) (thanks @neeravmakwana)

---------

Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-04-09 17:25:34 +05:30
Ayaan Zaidi
b8af4d6739 fix: start tailscale exposure before sidecars 2026-04-09 17:21:56 +05:30
Neerav Makwana
7f714609f7 fix: allow CLI task cancel for stuck background tasks (#62506) (thanks @neeravmakwana)
* Tasks: allow openclaw tasks cancel for CLI runtime (#62419)

Made-with: Cursor

* Tasks: address review — changelog order, CLI cancel without session, lock terminal status

Made-with: Cursor

* fix: freeze terminal task listener updates

* fix: clean changelog block for CLI task cancel (#62506) (thanks @neeravmakwana)

---------

Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-04-09 17:16:07 +05:30
Neerav Makwana
5577e2d441 fix: keep gateway RPC up during startup (#63480)
Thanks @neeravmakwana.
2026-04-09 17:09:18 +05:30
Neerav Makwana
12544e24d7 fix: stable auth profile resolution for isolated cron jobs (#62797) (thanks @neeravmakwana)
* Cron: stable auth profile resolution for isolated jobs (#62783)

* Tests: clearer assertion for isolated cron auth profile spy (#62797)
2026-04-09 16:48:05 +05:30
Mulualem Eshetu
4977c4ab82 fix(control-ui): preserve configured model metadata in picker (#61382)
Merged via squash.

Prepared head SHA: c738f6f146
Co-authored-by: Mule-ME <83214007+Mule-ME@users.noreply.github.com>
Co-authored-by: mukhtharcm <56378562+mukhtharcm@users.noreply.github.com>
Reviewed-by: @mukhtharcm
2026-04-09 16:28:43 +05:30
Peter Steinberger
828c64e6b5 style: format web fetch ssrf test 2026-04-09 10:18:32 +01:00
Aftab
fa2fab7060 fix(plugins): prevent schema load from re-activating plugin registry (#54971)
Merged via squash.

Prepared head SHA: dd1ed1d519
Co-authored-by: Aftabbs <112916888+Aftabbs@users.noreply.github.com>
Co-authored-by: altaywtf <9790196+altaywtf@users.noreply.github.com>
Reviewed-by: @altaywtf
2026-04-09 10:17:26 +01:00
Peter Steinberger
7497abc124 test: stabilize gateway background tests 2026-04-09 10:13:20 +01:00
Justin Song
1b24560392 fix(status): show configured fallback models in /status output (#33111)
Merged via squash.

Prepared head SHA: 5e590aa68c
Co-authored-by: AnCoSONG <32268203+AnCoSONG@users.noreply.github.com>
Co-authored-by: altaywtf <9790196+altaywtf@users.noreply.github.com>
Reviewed-by: @altaywtf
2026-04-09 10:13:09 +01:00
WarrenJones
905e56d191 fix: treat zero nextRunAtMs as invalid (#63507) (thanks @WarrenJones)
* fix(cron): repair nextRunAtMs=0 on non-schedule edits

Treat nextRunAtMs <= 0 as invalid during non-schedule updates so editing
a description or other metadata field recomputes the next run time instead
of silently keeping the corrupt value.

Made-with: Cursor

* fix(cron): treat zero nextRunAtMs as invalid

* fix: treat zero nextRunAtMs as invalid (#63507) (thanks @WarrenJones)

---------

Co-authored-by: WarrenJones <8704779+WarrenJones@users.noreply.github.com>
Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-04-09 14:39:53 +05:30
WarrenJones
40c5edb5b1 fix: preserve safe gateway env vars on reinstall (#63136) (thanks @WarrenJones)
* fix(daemon): preserve safe env vars on gateway reinstall

Pass the existing service environment into gateway reinstall planning so safe custom variables survive LaunchAgent rewrites and existing PATH entries are merged instead of being silently dropped.

Made-with: Cursor

* fix(daemon): track managed env keys on reinstall

* fix: preserve safe gateway env vars on reinstall (#63136) (thanks @WarrenJones)

* fix: validate preserved PATH entries on reinstall (#63136) (thanks @WarrenJones)

---------

Co-authored-by: WarrenJones <8704779+WarrenJones@users.noreply.github.com>
Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-04-09 14:29:54 +05:30