Commit Graph

52969 Commits

Author SHA1 Message Date
Vincent Koc
798691779b fix(agents): preserve sessions fallback errors 2026-05-27 07:54:24 +02:00
Vincent Koc
e7214efbb7 test(core): isolate provider and approval tests 2026-05-27 07:54:24 +02:00
Vincent Koc
8c644ee611 fix(agents): quarantine unsupported tool schemas 2026-05-27 07:54:24 +02:00
Agustin Rivera
2c88547254 fix(prompt): route untrusted group prompts outside system prompt [AI] (#87144)
* fix(prompt): route untrusted group prompts outside system prompt

* fix(prompt): align untrusted group prompt helpers
2026-05-26 22:47:54 -07:00
Pablo Guardiola
0c867eef75 feat: expose plugin approval action metadata
Expose plugin approval action metadata so plugins can describe richer approval actions across gateway, SDK, channel, and UI surfaces.
2026-05-26 22:46:09 -07:00
Peter Steinberger
e74a039035 docs(changelog): refresh 2026.5.26 notes 2026-05-27 06:42:53 +01:00
Peter Steinberger
b9f6abf5e8 fix: bind plugin command llm auth to host agent 2026-05-27 06:38:35 +01:00
Vincent Koc
96bd939995 fix(e2e): bound kitchen sink RPC probes 2026-05-27 07:33:25 +02:00
Peter Steinberger
95c8fc9678 ci: support native Windows Crabbox daemon hydration (#87175)
* ci: support native Windows Crabbox hydration

* ci: use Windows PowerShell for Crabbox hydrate

* ci: reduce Windows pnpm install handle pressure

* ci: narrow native Windows hydrate install scope

* ci: keep Windows hydrate workspace-complete

* ci: persist Windows hydrate tool paths

* ci: split native Windows Crabbox hydration job

* ci: scope native Windows hydrate to daemon proof

* ci: use PowerShell for Windows hydrate fetch

* ci: write Windows hydrate command files as UTF-8

* ci: document Windows hydrate runner mode

* ci: preserve custom Crabbox hydrate markers

* ci: avoid forced copy imports in Windows hydrate
2026-05-27 06:32:09 +01:00
Andy Ye
81e7e8ef24 fix: handle sessions_send active fallback failures (#86638)
Fix run-scoped sessions_send active-run fallback handling.

- surface active queue rejection plus durable fallback admission failures instead of returning accepted too early
- return fallback run/session metadata so normal A2A announcement waits on the fallback run
- retry active steering without transcript-commit waiting when the active runtime does not support it

Thanks @TurboTheTurtle.

Verification:
- node scripts/run-vitest.mjs src/agents/openclaw-tools.sessions.test.ts
- pnpm check:test-types
- git diff --check
- .agents/skills/autoreview/scripts/autoreview --mode branch --base origin/main
2026-05-27 06:30:56 +01:00
Agustin Rivera
ae972fe1fe fix(gateway): enable default auth rate limiting (#87148)
* fix(gateway): enable default auth rate limiting

* fix(gateway): update auth rate limit changelog
2026-05-26 22:29:33 -07:00
Dallin Romney
9772cf202c test(media): isolate generation provider registry mocks (#87173) 2026-05-26 22:27:58 -07:00
Peter Steinberger
0762acae86 perf(gateway): skip lifecycle session cache clone 2026-05-27 06:26:53 +01:00
Vincent Koc
fdf58c1998 fix(e2e): backstop Parallels update jobs 2026-05-27 07:20:19 +02:00
Peter Steinberger
f348284fa9 fix(daemon): avoid workgroup schtasks user prompts 2026-05-27 06:17:27 +01:00
MoerAI
d92a33306e fix(daemon): keep Windows Scheduled Task running on battery power (#59299)
The Windows Gateway daemon crashes (or rather is killed by Task Scheduler) every time the laptop unplugs from AC power. Reporter on Windows 10 22H2 documented a 100% failure rate.

Root cause: `activateScheduledTask` in `src/daemon/schtasks.ts` used `schtasks /Create` with CLI flags (`/SC ONLOGON /RL LIMITED /TR ...`). That CLI surface cannot set `<DisallowStartIfOnBatteries>` or `<StopIfGoingOnBatteries>`, so the task inherits the Task Scheduler defaults (both `true`), which prevent the task from starting on battery and stop it when AC power is lost mid-run.

This change switches `/Create` to `/Create /XML <tempfile>` and emits a Task Scheduler XML payload that mirrors the prior CLI flags (ONLOGON trigger, LeastPrivilege run level, InteractiveToken logon when a `taskUser` is resolved, single-instance policy, no idle restrictions, exec action wired to the existing `gateway.cmd` / `gateway.vbs` launcher) AND sets:

  <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
  <StopIfGoingOnBatteries>false</StopIfGoingOnBatteries>

The XML is written as UTF-16 LE with a BOM, which is what `schtasks /XML` expects on all Windows locales. The temp file is cleaned up in a `finally` block.

The same XML re-apply is also issued from `updateExistingScheduledTask` after the existing `/Change /TR` call, so users upgrading from older versions inherit the new battery flags on the next gateway install/refresh instead of staying broken until a full uninstall+reinstall.

This follows clawsweeper's direction on #59299: "Land a narrow Windows Scheduled Task settings repair that lets the Gateway task start and continue on battery while preserving the current Startup-folder fallback, hidden launcher, quoting, and update behavior."

Preserved unchanged:
- Startup-folder fallback when `/Create` is denied or times out
- Hidden launcher (.vbs) selection via `OPENCLAW_WINDOWS_TASK_HIDDEN_LAUNCHER`
- `quoteSchtasksArg` quoting strategy for the script launch path
- `/Change` update path semantics (still updates `/TR` first)
- All `runScheduledTaskOrThrow` and fallback launch behavior downstream

Verification:
- `node scripts/run-vitest.mjs src/daemon/schtasks.install.test.ts` — 12 passed (incl. 2 new battery-flag regression tests)
- `node scripts/run-vitest.mjs src/daemon/schtasks.test.ts src/daemon/schtasks.startup-fallback.test.ts src/daemon/schtasks.stop.test.ts src/daemon/schtasks-exec.test.ts` — 54 passed (sibling daemon coverage)
- `pnpm tsgo:core` — passed (production typecheck)

Closes #59299
2026-05-27 06:17:27 +01:00
Peter Steinberger
b75f70bc04 perf(gateway): avoid cloning live switch store reads 2026-05-27 06:15:18 +01:00
Vincent Koc
586a6ce03b fix(crabbox): use host-visible local work roots 2026-05-27 07:06:19 +02:00
Peter Steinberger
15c0dfa61b docs(changelog): refresh 2026.5.26 notes 2026-05-27 05:59:20 +01:00
Jesse Merhi
42f0822bfa fix(exec): hide unavailable durable approval actions (#86359)
* fix(macos): align ask always approval actions

* fix(macos): harden approval prompt decisions

* fix(ui): satisfy approval action lint

* fix(infra): settle jsonl sockets on close

* fix(ui): explain unavailable durable approvals

* test(macos): document legacy approval fallback
2026-05-27 14:58:11 +10:00
Alex Knight
2899560a6b fix(reply): derive explicit control command turns
Derive explicit source-reply command turns from authorized control-command bodies when legacy command source metadata is missing.

Preserve native/text structured command semantics, keep unauthorized native commands and structured normal command bodies on plugin-owned fallback paths, and pass bot username normalization through the derived detection.

Co-authored-by: Alex Knight <aknight@atlassian.com>
2026-05-27 05:57:04 +01:00
Vincent Koc
44c1cc8285 fix(e2e): check onboarding systemd noise 2026-05-27 06:48:27 +02:00
Andy Ye
2e3b4b58a1 test(agents): cover cold default model alias resolution
Adds regression coverage for provider-qualified default models with aliasless configured model entries.

Refs #86635

Co-authored-by: Andy Ye <35905412+TurboTheTurtle@users.noreply.github.com>
2026-05-27 05:47:14 +01:00
Peter Steinberger
5371b96af1 fix: prefer trusted argv runtime fallback roots 2026-05-27 05:46:51 +01:00
Peter Steinberger
e71b6f7e57 fix: expand startup argv runtime fallback hints 2026-05-27 05:46:51 +01:00
Peter Steinberger
2b9be22c0b fix: keep plugin runtime fallback on startup root 2026-05-27 05:46:51 +01:00
Peter Steinberger
78b2aeeae4 test: cover plugin runtime diagnostic context 2026-05-27 05:46:51 +01:00
Andy Ye
66a8262028 Fix runtime fallback startup argv default 2026-05-27 05:46:51 +01:00
Andy Ye
41fa603aa8 Fix plugin runtime module resolution diagnostics 2026-05-27 05:46:51 +01:00
Andy Tien
8246e91e92 fix(ui): show config open failure feedback (#87108)
Fixes #87020.

Summary:
- Surface config.openFile failures in the Control UI instead of silently doing nothing.
- Return actionable gateway errors for headless opener failures, including the config path.
- Add gateway and UI controller regression coverage for the failed-open path.

Verification:
- node scripts/run-vitest.mjs run --config test/vitest/vitest.gateway-methods.config.ts src/gateway/server-methods/config.test.ts --reporter=dot
- node scripts/run-vitest.mjs run --config test/vitest/vitest.ui.config.ts ui/src/ui/controllers/config.test.ts --reporter=dot
- pnpm check:changed via Blacksmith Testbox tbx_01ksktydqx6mk3n20yevcbkwtn
- autoreview --mode local

Thanks @Linux2010.

Co-authored-by: Linux2010 <35169750+Linux2010@users.noreply.github.com>
2026-05-27 05:45:45 +01:00
Vincent Koc
59818226a9 fix(e2e): bound Telegram RTT bot API calls 2026-05-27 06:44:14 +02:00
Gio Della-Libera
bf1a5c3303 fix(install): bound finalization probes (#86997)
Bounds nonessential installer finalization probes so npm prefix and daemon-status checks warn and fall back instead of hanging setup.

Thanks @giodl73-repo!
2026-05-27 05:39:05 +01:00
Agustin Rivera
119d2359f3 fix(memory): reject prompt-like memory stores (#87142)
* fix(memory): reject prompt-like memory stores

* fix(changelog): mention memory store rejection
2026-05-26 21:37:29 -07:00
Vincent Koc
6b68d05fdc fix(e2e): bound release user journey fixture probes 2026-05-27 06:33:08 +02:00
Vincent Koc
d88681662b fix(e2e): bound bundled runtime HTTP probes 2026-05-27 06:30:15 +02:00
Peter Steinberger
8fa4fad3a7 perf(gateway): skip duplicate turn session touch 2026-05-27 05:28:10 +01:00
Peter Steinberger
1c8a11265b test: avoid repeated module reloads in unit tests 2026-05-27 05:24:40 +01:00
zhang-guiping
608fa52c80 fix(media): keep explicit workspace roots scoped
Fixes MEDIA delivery for agent workspaces named `workspace-*` by carrying the explicit resolved workspace directory into scoped outbound media local roots. The unscoped default local media boundary remains closed for `workspace-*` sibling directories.

Proof:
- node scripts/run-vitest.mjs src/media/read-capability.test.ts src/media/local-media-access.test.ts
- pnpm exec oxfmt --write --threads=1 src/media/read-capability.ts src/media/read-capability.test.ts src/media/local-media-access.test.ts
- node scripts/run-vitest.mjs src/media/read-capability.test.ts src/media/local-media-access.test.ts src/auto-reply/reply/reply-media-paths.test.ts
- /Users/steipete/Projects/agent-scripts/skills/autoreview/scripts/autoreview --mode branch --base origin/main

Fixes #86879.
2026-05-27 05:24:07 +01:00
Vincent Koc
fca77dcb19 fix(e2e): bound bundled runtime smoke commands 2026-05-27 06:21:17 +02:00
Peter Steinberger
bbfcdea202 test: route more command tests through light suite 2026-05-27 05:20:51 +01:00
Vincent Koc
4b23b36f20 fix(scripts): short-circuit helper help 2026-05-27 06:20:39 +02:00
Peter Steinberger
10056c9346 test: harden docker smoke portability 2026-05-27 00:19:07 -04:00
Sebastien Tardif
4980c32846 fix(agents): recover failed subagent lifecycle completions
Recover failed subagent lifecycle completions through a shared retry/resume recovery path.

Proof:
- node scripts/run-vitest.mjs src/agents/subagent-registry.test.ts src/agents/subagent-registry.lifecycle-retry-grace.e2e.test.ts
- pnpm changed:lanes --json
- pnpm check:changed (Blacksmith Testbox tbx_01ksksytyrfxscxs78e8f3eegk)
- .agents/skills/autoreview/scripts/autoreview --mode local

Co-authored-by: Sebastien Tardif <sebtardif@ncf.ca>
2026-05-27 05:18:58 +01:00
Vincent Koc
dd44a47ba3 fix(e2e): hard kill timed out host commands 2026-05-27 06:16:02 +02:00
Peter Steinberger
2831d697ce test: move lightweight command tests to light suite 2026-05-27 05:13:11 +01:00
Vincent Koc
2cc6871553 fix(scripts): handle helper cli help 2026-05-27 06:11:57 +02:00
Vincent Koc
6d5c15a744 fix(gateway): bound loopback preflight calls 2026-05-27 06:11:19 +02:00
Agustin Rivera
e72621e566 fix(hooks): enforce default hook agent allowlist
Enforce hook allowedAgentIds against the effective default agent when hook payloads omit or blank agentId, while preserving omitted-agent dispatch semantics for default/global routing.

Also updates the affected generated hook config docs from the contributor change and fixes the current-main memory-core test mock after rebasing the PR branch.

Verification:
- pnpm format:check extensions/memory-core/src/dreaming.test.ts src/gateway/hooks.ts src/gateway/hooks.test.ts src/gateway/server/hooks-request-handler.ts src/gateway/server.hooks.test.ts && git diff --check
- node scripts/run-vitest.mjs run --config test/vitest/vitest.gateway-server.config.ts src/gateway/hooks.test.ts src/gateway/server.hooks.test.ts --reporter=dot --pool=forks --no-file-parallelism --testTimeout=120000
- node scripts/run-tsgo.mjs -p test/tsconfig/tsconfig.extensions.test.json --incremental --tsBuildInfoFile .artifacts/tsgo-cache/extensions-test-local-pr87124.tsbuildinfo
- pnpm check:test-types
- .agents/skills/autoreview/scripts/autoreview --mode branch --base origin/main
- GitHub PR merge state CLEAN; CodeQL Critical Quality rerun succeeded after first runner checkout wedged

Co-authored-by: Agustin Rivera <agustin@rivera-web.com>
2026-05-27 05:05:18 +01:00
Vincent Koc
2814ab66fd fix(e2e): handle docker helper cli help 2026-05-27 06:04:53 +02:00
Steady-ai
eb8f9b46da fix(codex): avoid native compaction on budget triggers (#86772)
* fix(codex): avoid native compaction on budget triggers

* fix(codex): require manual trigger for native compaction

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-05-27 05:04:35 +01:00