Commit Graph

53011 Commits

Author SHA1 Message Date
clawsweeper[bot]
f4e20f806e fix(agents): avoid duplicate Claude CLI skill prompts
Fix Claude CLI skill prompt handling so native skill plugin materialization is prepared before prompt suppression, with the prompt fallback preserved when plugin args are unavailable. Also keeps direct prepared-run callers covered by an execute-time fallback.

Fixes #87063.

Co-authored-by: uday <udaymanish.thumma@gmail.com>
2026-05-27 08:34:34 +01:00
Peter Steinberger
cf399d65d8 test: harden e2e instance package fixture 2026-05-27 03:30:57 -04:00
Peter Steinberger
e718d471f2 test(codex): mirror raw reasoning event order 2026-05-27 08:29:18 +01:00
Peter Steinberger
4314eadc79 fix(codex): keep raw assistant release path intact 2026-05-27 08:29:18 +01:00
Peter Steinberger
284098d2d8 fix(codex): preserve raw reasoning source-reply guard 2026-05-27 08:29:18 +01:00
Username
4d6bcf9f17 test(codex): verify completion idle watch arms after non-assistant rawResponseItem/completed
Regression test for the binary stall fix: when rawResponseItem/completed
arrives with a non-assistant type (e.g. "reasoning") and all tracked
items have completed, the completion idle watch must stay armed so the
stall is caught in 60s, not 30 minutes.

Refs openclaw/openclaw#87071

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-27 08:29:18 +01:00
Username
a36c82ba8b fix(codex): arm completion idle watch after rawResponseItem/completed with no active items
When the codex binary emits rawResponseItem/completed and all tracked
items have completed (activeTurnItemIds empty, no active requests), the
binary should deliver turn/completed imminently. Previously, a
rawResponseItem/completed that didn't qualify as a post-tool assistant
completion would actively disarm the completion idle watch, leaving only
the 30-minute terminal timeout to catch a stalled binary. This caused
turns to hang for up to 30 minutes when the OpenAI Responses API fails
to deliver response.completed to the binary.

Now, rawResponseItem/completed with no active items arms the 60s
completion idle watch and is excluded from the disarm path, so stalled
binaries are detected in 60s instead of 30 minutes.

Refs openclaw/openclaw#87071

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-27 08:29:18 +01:00
scotthuang
819fd9fbe9 fix(node-host): restart stale node host on version mismatch
Restart stale local node-host processes when they reconnect to a newer gateway with a released-version mismatch, so launchd/systemd can restart them with updated code instead of leaving old dynamic imports alive.

Adds gateway mismatch detail propagation, node-host terminal pause handling, and regression coverage for the GatewayClient reconnect-pause path.

Verification:
- node scripts/run-vitest.mjs run src/gateway/client.test.ts -t 'CLIENT_VERSION_MISMATCH' --reporter=verbose
- node scripts/run-vitest.mjs run src/gateway/server.node-version-mismatch.test.ts src/node-host/runner.credentials.test.ts src/gateway/client.test.ts --reporter=verbose
- /Users/steipete/Projects/agent-skills/skills/autoreview/scripts/autoreview --mode local
- Crabbox AWS run_292dcbfd78d9: focused GatewayClient mismatch regression plus server/node-host mismatch tests passed

Co-authored-by: scotthuang <scotthuang@tencent.com>
2026-05-27 08:25:02 +01:00
Vincent Koc
761c802c2a fix(e2e): bound tool search gateway proof 2026-05-27 09:23:57 +02:00
Peter Steinberger
9ed1b02134 fix(discord): harden requester checks for guild actions 2026-05-27 08:22:25 +01:00
Peter Steinberger
482018e536 fix: mark plugin command groups in root help 2026-05-27 08:22:01 +01:00
Peter Steinberger
2bbef6caac fix: route nested root help targets 2026-05-27 08:22:01 +01:00
Peter Steinberger
5f6293a902 fix: route root help targets to command help 2026-05-27 08:22:01 +01:00
Peter Steinberger
b31c9e9810 fix: preserve root options in generated help 2026-05-27 08:22:01 +01:00
Peter Steinberger
ec377dd079 fix: support plugin generated help targets 2026-05-27 08:22:01 +01:00
Peter Steinberger
1de98487cc fix: route generated help targets to subcommands 2026-05-27 08:22:01 +01:00
Peter Steinberger
9015d0c582 fix: normalize generated help self-help 2026-05-27 08:22:01 +01:00
Peter Steinberger
f407e4e498 fix: validate gateway call timeouts 2026-05-27 08:22:01 +01:00
Peter Steinberger
84b11237f2 fix: let skills JSON output flush naturally 2026-05-27 08:22:01 +01:00
Peter Steinberger
ef2ebeef89 fix: keep root help plugin descriptor loading quiet 2026-05-27 08:22:01 +01:00
Super Zheng
6790b0f792 perf(secrets): propagate snapshots and eliminate esm side-effects in auth env vars (#86439)
* perf(secrets): propagate snapshots and eliminate esm side-effects in auth env vars

* perf(secrets): reuse provider auth lookup maps

* test(auth): update provider env var mocks

* test(auth): cover rebased provider env mocks

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-05-27 08:19:07 +01:00
Peter Steinberger
f327df866c test: stabilize main ci lanes 2026-05-27 08:07:13 +01:00
Peter Steinberger
54eca3fb56 perf(gateway): keep agent session working store active-only 2026-05-27 08:00:24 +01:00
Peter Steinberger
e6937f9f01 test(e2e): harden shell helper env assertions 2026-05-27 07:57:27 +01:00
Vincent Koc
497685111b fix(doctor): warn on unsupported active tool schemas 2026-05-27 08:55:49 +02:00
Peter Steinberger
368469688b test: fix main ci expectations 2026-05-27 07:55:01 +01:00
Vincent Koc
9b2860324b fix(e2e): bound Telegram credential setup 2026-05-27 08:49:56 +02:00
Peter Steinberger
3b9fa16862 perf(gateway): borrow agent session lookup safely 2026-05-27 07:44:56 +01:00
Vincent Koc
6afe3e8952 fix(crabbox): prefer Azure for Windows targets (#87186) 2026-05-27 07:37:19 +01:00
Peter Steinberger
b28f9e0df3 test(e2e): isolate shell helper env 2026-05-27 07:36:55 +01:00
Vincent Koc
aa40174f0a fix(e2e): bound MCP channel connect 2026-05-27 08:33:49 +02:00
Peter Steinberger
8c8162f1f7 perf(gateway): borrow read-only session metadata 2026-05-27 07:32:29 +01:00
xin zhuang
152f68d037 fix(gateway): persist model auth profile suffixes
Persist trailing `/model ...@profile` suffixes through the gateway session patch path so documented per-session credential pinning reaches the session entry. Strip the suffix before model resolution so bare allowlisted model IDs still infer their configured provider, and mark same-model profile-only changes as pending live model switches.

Closes #87099.

Verification:
- `npx oxfmt --check src/sessions/model-overrides.ts src/sessions/model-overrides.test.ts src/gateway/sessions-patch.ts src/gateway/sessions-patch.test.ts`
- `node scripts/run-vitest.mjs src/gateway/sessions-patch.test.ts src/sessions/model-overrides.test.ts`
- `npx oxlint src/sessions/model-overrides.ts src/sessions/model-overrides.test.ts src/gateway/sessions-patch.ts src/gateway/sessions-patch.test.ts`
- `/Users/steipete/Projects/agent-scripts/skills/autoreview/scripts/autoreview --mode branch --base origin/main`
- `gh pr checks 87123 --watch --fail-fast`

Co-authored-by: xin zhuang <65798732+1052326311@users.noreply.github.com>
2026-05-27 07:29:02 +01:00
Javier Ailbirt
da822dd28b fix(googlechat): suppress thread sends in DMs
Guard Google Chat DM delivery so direct-space messages that include thread metadata do not request threaded sends. The monitor now derives one group-only reply thread and reuses it for both turn reply context and typing indicator messages.

Adds regression coverage for a DM event carrying `message.thread.name`, proving reply metadata and typing sends omit the thread while the turn still runs.

Verification:
- `node scripts/run-vitest.mjs extensions/googlechat/src/monitor.test.ts`
- `pnpm check:changed` (Blacksmith Testbox `tbx_01ksm18yck1zy35k0adgf66hax`, run https://github.com/openclaw/openclaw/actions/runs/26494371192)
- `/Users/steipete/Projects/agent-scripts/skills/autoreview/scripts/autoreview --mode local`
- PR CI run https://github.com/openclaw/openclaw/actions/runs/26494573295
- Critical Quality run https://github.com/openclaw/openclaw/actions/runs/26494573221
- Real behavior proof override run https://github.com/openclaw/openclaw/actions/runs/26494609491

Co-authored-by: Javier Ailbirt <jailbirt@theeye.io>
2026-05-27 07:28:09 +01:00
Josh Avant
3349fe21bb Fix embedded session file ownership race (#87159)
* fix: serialize embedded session file attempts

* test: update reply runtime mock for session file lookup

* fix: thread session files into diagnostic recovery

* fix: attach causes to session owner abort errors
2026-05-26 23:18:27 -07:00
Peter Steinberger
ebe09be500 ci(ui): refresh raw copy baseline 2026-05-27 07:14:57 +01:00
Sanjay Santhanam
1710dac5eb fix(pi-embedded): route Codex OAuth compaction through OpenAI-Codex
Fix Codex OAuth-backed OpenAI compaction routing by separating the configured provider from the runtime auth provider, preserving same-provider fallback auth, and keeping OpenAI context policy lookup intact. Also preserves the original cause when sessions.send reports A2A fallback failure. Fixes #86373.
2026-05-27 07:14:02 +01:00
Coy Geek
ce64d74e5a fix(commands): enforce /allowlist configWrites origin policy
Summary:
- Enforces /allowlist config and pairing-store writes against the real command origin plus the selected target.
- Adds regressions for disabled Telegram-origin commands targeting an enabled Discord allowlist.

Verification:
- node scripts/run-vitest.mjs src/auto-reply/reply/commands-allowlist.test.ts
- pnpm check:changed via Blacksmith Testbox tbx_01ksm06e82dnpxmnj00hrt6xzd
- autoreview --mode local clean, no accepted/actionable findings
- GitHub PR checks green on 42a38d2b00

Closes #72360.
Thanks @coygeek.

Co-authored-by: Coy Geek <65363919+coygeek@users.noreply.github.com>
Co-authored-by: opencode <opencode@users.noreply.github.com>
2026-05-27 07:10:50 +01:00
Dallin Romney
780bc79147 fix(plugin-sdk): stop exporting vitest test helpers (#87120) 2026-05-26 23:10:41 -07:00
Peter Steinberger
9c2a6a8df5 perf(gateway): borrow session reads on turn hot paths 2026-05-27 07:02:00 +01:00
keshavbotagent
455d5e807c fix(reply): keep visible turn admission unbounded (#87044)
Remove the hidden 15s default from reply-run idle waits so visible user turns do not inherit cleanup-settle behavior while waiting behind an active same-session reply operation.

Keep the 15s timeout explicit for queued follow-up retry/defer paths and interrupt/reset cleanup waits, and add reply-admission regressions for both visible and queued follow-up behavior. Also preserve the original cause on a nearby sessions-send fallback error to keep current lint green after rebasing onto main.

Thanks @keshavbotagent.

Co-authored-by: Keshav's Bot <keshavbotagent@gmail.com>
2026-05-27 07:01:46 +01:00
Vincent Koc
4b40197eae fix(e2e): bound Telegram proof Bot API calls 2026-05-27 07:58:34 +02:00
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