Commit Graph

29830 Commits

Author SHA1 Message Date
Peter Steinberger
6369bf64cd fix(gateway): trace restart intent reasons 2026-05-16 21:23:06 +01:00
hcl
c421be6c90 fix(docs): use lowercase MCP search tool (#82704)
Fixes #82702.

Summary:
- Use the canonical lowercase docs MCP search tool name.
- Keep docs and changelog aligned for the CLI fix.

Verification:
- node scripts/run-vitest.mjs src/commands/docs.test.ts
- pnpm lint -- src/commands/docs.ts src/commands/docs.test.ts
- pnpm exec oxfmt --check CHANGELOG.md docs/cli/docs.md src/commands/docs.ts src/commands/docs.test.ts
- pnpm docs:list
- git diff --check
- HOME=$(mktemp -d) pnpm openclaw docs "browser existing-session"
- Codex review local + branch: clean
- GitHub CI 25971835163, CodeQL Critical Quality 25971835154, Real behavior proof 25971834239: green

Co-authored-by: hclsys <hclsys@users.noreply.github.com>
2026-05-16 21:21:58 +01:00
Peter Steinberger
6d844c5900 fix(webchat): trust ACP TTS media tails (#82701) (thanks @leno23) 2026-05-16 21:18:13 +01:00
wuyangfan
35e1c7ac41 fix(webchat): keep trustedLocalMedia internal to reply payloads
Restore Omit on public plugin-sdk ReplyPayload; set trustedLocalMedia via
runtime assertion in speech-core and explicitly on dispatch TTS-only finals.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-16 21:18:13 +01:00
wuyangfan
eec18fccb4 fix(webchat): forward trustedLocalMedia on accumulated block TTS tail
Avoid per-block final-mode synthesis (duplicate with dispatch tail). Mark
TTS output as trusted local media and pass the flag through the TTS-only
final payload WebChat consumes after block streaming.

Fixes #82628

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-16 21:18:13 +01:00
wuyangfan
14117c303d fix(webchat): enable auto-TTS for block replies with trusted local media
WebChat streaming uses kind=block for assistant text; final-mode TTS skipped
those payloads. Mark synthesized audio as trustedLocalMedia and export the
full ReplyPayload type so the gateway can serve local TTS files.

Fixes #82628

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-16 21:18:13 +01:00
Peter Steinberger
cc8c0d4ecb fix(config): quiet config write output 2026-05-16 21:08:36 +01:00
Vincent Koc
f345b54d04 test(qa-lab): add runtime parity axis 2026-05-17 03:32:50 +08:00
Peter Steinberger
6e4cc222cb fix(xai): refresh oauth and model catalog 2026-05-16 20:25:07 +01:00
Vincent Koc
7d09ff89ee fix(gateway): honor env token for remote interactive auth 2026-05-17 03:15:54 +08:00
Vincent Koc
ca1fd1b140 test: share spy lifecycle helpers 2026-05-17 03:13:46 +08:00
Peter Steinberger
1a956b6ba1 fix: require message tool for generated media completions 2026-05-16 20:12:42 +01:00
Peter Steinberger
c8782d18eb fix(agents): probe primary after auto fallback pin (#82707) 2026-05-16 20:03:09 +01:00
Vincent Koc
1586085c7f test: share node eval helpers 2026-05-17 02:51:20 +08:00
Vincent Koc
e1061a8b46 test(live): tolerate provider drift in release checks 2026-05-17 02:36:48 +08:00
Vincent Koc
a171600d1d test: isolate broad unit state 2026-05-17 02:32:58 +08:00
Vincent Koc
b6b33ad6d3 test: harden broad qa timing 2026-05-17 02:32:57 +08:00
Vincent Koc
3a13d1e0be test: bind Codex live API key lane through OpenAI 2026-05-17 02:32:57 +08:00
Vincent Koc
11a31e476b test: align Codex bind live model 2026-05-17 02:32:57 +08:00
Vincent Koc
3df6499fb8 test: harden sparse Testbox scans 2026-05-17 02:32:57 +08:00
Vincent Koc
09db0892dd test: tolerate sparse Testbox file scans 2026-05-17 02:32:34 +08:00
Vincent Koc
8330582493 test: repair broad qa surface regressions 2026-05-17 02:32:14 +08:00
Vincent Koc
b5b193076e test: share repo file helpers 2026-05-17 02:29:55 +08:00
Vincent Koc
ec38e96884 test(agents): tolerate Anthropic cache tool drift 2026-05-17 02:15:11 +08:00
Vincent Koc
d5035bad62 fix(google): keep auth fallback logs quiet 2026-05-17 02:10:11 +08:00
Jason O'Neal
b34454f5b3 fix(google): refresh Gemini CLI OAuth tokens 2026-05-17 02:10:11 +08:00
Gio Della-Libera
489cab2738 fix(config): add --dry-run support to unset (#81895)
* Add config unset dry-run

Add --dry-run support to config unset, including JSON output and allow-exec validation parity with config set/patch dry-run handling.

* Refresh checks after proof update

* fix(config): address unset dry-run review

Return structured JSON when config unset dry-run misses a path and validate broad secret provider/default unsets against affected SecretRefs.
2026-05-16 11:09:42 -07:00
Vincent Koc
e06782d5e7 fix(gateway): land linked diagnostics fixes
Fix logs.tail credential-header redaction and JSON-mode gateway transport errors.\n\nFixes #66832.\nFixes #79108.\nSupersedes #67041.\nSupersedes #79233.\n\nCo-authored-by: Mil Wang <mingjwan@microsoft.com>\nCo-authored-by: Andy Ye <35905412+TurboTheTurtle@users.noreply.github.com>
2026-05-17 02:05:02 +08:00
Peter Steinberger
d77c4bbb2d fix(gateway): harden startup restart queue (#82660) (thanks @samzong) 2026-05-16 18:57:58 +01:00
samzong
9b53a95d8e fix(gateway): queue startup restart signals
Signed-off-by: samzong <samzong.lu@gmail.com>
2026-05-16 18:57:58 +01:00
Vincent Koc
cd1846a313 test(agents): fix embedded runner test config types 2026-05-17 01:56:58 +08:00
Vincent Koc
df9f29caef test(agents): stabilize embedded runner release checks 2026-05-17 01:54:36 +08:00
Vincent Koc
05123db93c fix(agents): redact overlapping auth secrets 2026-05-17 01:42:19 +08:00
Vincent Koc
c818a9fb4e fix(agents): redact oauth refresh errors 2026-05-17 01:42:19 +08:00
Vincent Koc
43c53174c5 fix(agents): harden spawn cleanup and patch paths 2026-05-17 01:42:19 +08:00
Vincent Koc
cb313d5378 test: share fs scan assertions 2026-05-17 01:35:39 +08:00
Vincent Koc
c277138959 test(plugins): share archive fixture packing 2026-05-17 01:35:39 +08:00
Gio Della-Libera
4003a955ee fix(telegram): normalize announce group targets (#81229) 2026-05-16 10:32:58 -07:00
Vincent Koc
61ee9755ad fix(update): preserve channel config across package repair
Preserve channel config across package-swap doctor and post-core repair.\n\nFixes #82533.
2026-05-17 01:32:37 +08:00
Vincent Koc
50508b1d0c fix(gateway): redact credential-bearing diagnostics
Redact credential-bearing gateway target URLs and client diagnostics while preserving raw connection URLs for programmatic use.

Verification:
- node scripts/run-vitest.mjs src/gateway/client.test.ts -- --reporter=verbose -t "connect failure logs"
- node scripts/run-vitest.mjs src/gateway/call.test.ts src/gateway/client.test.ts -- --reporter=dot
- git diff --check
- Testbox check:changed tbx_01krrwjvepsj3458ybk6bk1k6j https://github.com/openclaw/openclaw/actions/runs/25968066889
- codex review --base origin/main
2026-05-17 01:30:55 +08:00
Peter Steinberger
97d1f5fd15 fix: bypass npm freshness filters during updates
Bypass npm min-release-age/before quarantine for OpenClaw-managed package installs and update installer scripts/tests/docs.\n\nFixes #82630.
2026-05-16 18:17:18 +01:00
Gio Della-Libera
2640244d35 fix(acp): refresh runtime handles on config changes (#82237)
* fix(acp): refresh runtime handles on config changes
* chore: refresh CI after main repairs
2026-05-16 10:09:36 -07:00
Pavan Kumar Gondhi
6a12c6f799 fix(gateway): scope session data lookups by agent [AI] (#81386)
* fix: scope gateway session lookups by agent

* addressing review-skill

* addressing review-skill

* addressing review-skill

* addressing review-skill

* addressing codex review

* addressing codex review

* addressing codex review

* addressing codex review

* addressing codex review

* addressing review-skill

* addressing review-skill

* addressing review-skill

* addressing review-skill

* addressing codex review

* addressing codex review

* addressing codex review

* addressing codex review

* addressing codex review

* addressing codex review

* addressing codex review

* addressing ci

* addressing ci

* fix: complete root-cause handling

* addressing review-skill

* addressing codex review

* addressing codex review

* addressing codex review

* addressing codex review

* addressing codex review

* Fix Swift protocol optional initializer defaults

* Stabilize node command lookup in approval test

* Fix browser proxy approval test node lookup

* Trim unrelated changes from issue 642 fix

* Remove unrelated formatting churn from issue 642 fix

* Fix Swift protocol generator lint

* docs: add changelog entry for PR merge
2026-05-16 22:31:02 +05:30
Agustin Rivera
5774517fce Fix exec allowlist wildcard target normalization (#75723)
* fix(exec): normalize allowlist wildcard targets

Co-authored-by: zsx <git@zsxsoft.com>

* fix(exec): canonicalize executable path candidates

* docs(changelog): credit exec allowlist dot-segment fix

Adds the user-facing Unreleased Fixes entry for the exec allowlist
wildcard target normalization and absolute executable path
canonicalization landed in this PR.

---------

Co-authored-by: zsx <git@zsxsoft.com>
Co-authored-by: Devin Robison <drobison@nvidia.com>
2026-05-16 09:54:26 -07:00
samzong
92fe2a8f5f fix(gateway): improve restart readiness diagnostics 2026-05-16 17:50:36 +01:00
Peter Steinberger
38cf54593e fix: accept device identity dashboard probes 2026-05-16 17:42:16 +01:00
Vincent Koc
deaf46a07d fix(auth): avoid keychain creation for oauth profile secrets 2026-05-17 00:31:30 +08:00
Peter Steinberger
4526b44778 fix: preserve generated media completion attachments 2026-05-16 17:13:30 +01:00
Feelw00
ea9793b2e1 fix(approvals): release Matrix reaction target on mid-flight cancel
Address the ClawSweeper R2 finding that the pre-bind stopped guard
introduced in this PR drops a delivered entry without any cleanup. The
prior PR comment block was correct only for adapters whose deliverPending
has no in-process side effects; Matrix registers a reaction target in
both an in-memory Map and a persistent store inside deliverPending, so
the entry would leak until the 24h TTL (or process restart) every time
stop() landed between deliverPending and bindPending.

Add an optional cancelDelivered interaction hook on the runtime types,
forward it through both the spec-to-adapter wrapper
(createChannelApprovalNativeRuntimeAdapter) and the lazy adapter wrapper
(createLazyChannelApprovalNativeRuntimeAdapter), and invoke it from the
two stopped guards in deliverTarget: the pre-bind guard always calls it,
and the post-bind guard calls it on the branch where bindPending
returned no handle (so unbindPending cannot run). Matrix implements the
hook by calling unregisterMatrixApprovalReactionTarget on the entry's
roomId + reactionEventId, which is the exact key
registerMatrixApprovalReactionTarget uses inside deliverPending.

The other native runtime adapters (Slack, Discord, Telegram, qqbot)
leave the hook unimplemented because their deliverPending paths only
emit remote messages and keep no in-process state to drop.

Regression coverage:
- invokes cancelDelivered when stop() fires between deliverPending and
  bindPending (Deferred-gated deliverPending, asserts bindPending /
  unbindPending never run and cancelDelivered receives the entry)
- invokes cancelDelivered when stop() fires after bindPending returned
  null (asserts unbindPending stays uncalled while cancelDelivered fires)

AI-assisted: drafted with claude code (claude-opus-4-7).
2026-05-16 16:41:07 +01:00
Feelw00
851b9271a5 fix(infra): skip unbindPending without a binding handle (dts build)
The previous commit invoked unbindPending in the deliverPending→bindPending
race path before any binding existed; nativeRuntime.interactions.unbindPending
requires a binding, so the dts build failed with TS2345. In production the
race window that PROOF-CAND-040 measured is always after bindPending (3/3
trials had bindPending=1), so dropping the pre-bindPending unbindPending
call does not change observed cleanup behavior: that branch now just nulls
out the in-flight delivery. The post-bindPending branch keeps the
unbindPending call (binding handle present) and remains the only path
required to fix the leak.

The regression test is updated to park bindPending (not deliverPending)
before invoking stop(), matching the production race window.

AI-assisted: drafted with claude code (claude-opus-4-7).
2026-05-16 16:41:07 +01:00