Commit Graph

53098 Commits

Author SHA1 Message Date
rendrag-git
e153eceea5 fix(vllm): wire configured thinking params
Move vLLM Qwen thinking control onto configured model compat metadata and carry it through catalog/model-selection/runtime thinking contexts.

Also migrate legacy provider/default request params in doctor and keep Pi/runtime model rows buildable with explicit reasoning defaults.

Thanks @rendrag-git.

Co-authored-by: rendrag-git <253747599+rendrag-git@users.noreply.github.com>
2026-05-27 13:32:18 +01:00
Mason Huang
75221e0550 fix(agents): separate heartbeat runtime template (#85416)
Summary:
- The PR moves the runtime `HEARTBEAT.md` bootstrap template into `src/agents/templates`, keeps docs templates ... or other workspace files, adds a legacy heartbeat-template doctor repair, and updates package guards/tests.
- PR surface: Source +281, Tests +283, Docs +11, Config +1, Other 0. Total +576 across 15 files.
- Reproducibility: yes. from source inspection: current main loads `HEARTBEAT.md` from the docs template, and  ... pty heartbeat file non-empty to the runtime. I did not run a live heartbeat repro in this read-only review.

Automerge notes:
- PR branch already contained follow-up commit before automerge: fix(doctor): recognize heartbeat docs boilerplate
- PR branch already contained follow-up commit before automerge: fix(agents): update heartbeat workspace test
- PR branch already contained follow-up commit before automerge: fix(doctor): tighten heartbeat template repair

Validation:
- ClawSweeper review passed for head e34e85864c.
- Required merge gates passed before the squash merge.

Prepared head SHA: e34e85864c
Review: https://github.com/openclaw/openclaw/pull/85416#issuecomment-4519851630

Co-authored-by: Mason Huang <masonxhuang@tencent.com>
Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
Approved-by: hxy91819
Co-authored-by: hxy91819 <8814856+hxy91819@users.noreply.github.com>
2026-05-27 12:30:22 +00:00
Peter Steinberger
3e351b718e fix(agents): honor OpenAI-compatible cache retention
Carry over #82973 and fix #81281 by preserving explicit cacheRetention for OpenAI-compatible completions providers that opt into prompt-cache-key support.

The change keeps explicit cacheRetention suppressed for OpenAI-compatible providers without compat.supportsPromptCacheKey, adds regression coverage for both paths, and updates prompt-caching docs for prompt_cache_key / prompt_cache_retention behavior.

Fixes #81281.
Supersedes #82973.

Co-authored-by: lonexreb <reach2shubhankar@gmail.com>
2026-05-27 13:21:23 +01:00
Peter Steinberger
517ce3df75 fix: require admin for node device approvals 2026-05-27 13:18:50 +01:00
Vincent Koc
983759b9b8 fix(qa): create Matrix mention progress target 2026-05-27 14:14:17 +02:00
Vincent Koc
d09eb437f2 fix(dev): bound Claude usage debug fetches 2026-05-27 14:10:15 +02:00
Peter Steinberger
5fdaf6b49b fix(cli): validate message numeric options 2026-05-27 08:05:03 -04:00
Peter Steinberger
7efbaf7dba perf(gateway): cache current plugin metadata fingerprints 2026-05-27 12:59:23 +01:00
Vincent Koc
e2cebe88ca fix(dev): bound realtime smoke HTTP waits 2026-05-27 13:46:42 +02:00
Vincent Koc
a275ce8611 fix(qa): accept Matrix tool error final races 2026-05-27 13:43:17 +02:00
Vincent Koc
099b0f816a fix(qa): cap Matrix readiness polling 2026-05-27 13:39:14 +02:00
Peter Steinberger
513a223c15 fix(cli): validate directory limits before resolution 2026-05-27 07:35:02 -04:00
Peter Steinberger
0889106cb2 fix(cli): reject loose webhook and directory numeric options 2026-05-27 07:35:02 -04:00
Syu
0503853c29 fix(agents): keep runtime context before active user turns
Fix runtime context placement so hidden runtime context is model-visible before the active user turn without persisting as a visible/session message.

Verification:
- git diff --check origin/main...origin/pr/86995-merge
- gh pr checks 86995 --repo openclaw/openclaw --watch=false
- gh run rerun 26493979156 --repo openclaw/openclaw --failed
- gh run watch 26493979156 --repo openclaw/openclaw --exit-status
- CodeQL run 26493979156 attempt 2, Security High (mcp-process-tool-boundary) job 78066719467 passed
2026-05-27 12:31:56 +01:00
Vincent Koc
f4b9d24621 fix(qa): stop Matrix phases after run timeout 2026-05-27 13:22:18 +02:00
Andy Ye
66965f5008 fix(agents): strip stale Anthropic thinking
Preserve replayability for direct Anthropic sessions whose stored assistant thinking blocks have empty or blank signatures after a newer user turn. Older invalid thinking-only assistant turns are replaced with the existing omitted-reasoning placeholder so the turn shape survives provider replay.

Also keep active tool-use continuations safe: when an assistant tool call is followed by tool results, preserve the latest assistant thinking block so signed-thinking providers can replay the current tool turn unchanged.

Proof:
- node scripts/run-vitest.mjs src/agents/pi-embedded-runner.sanitize-session-history.test.ts src/agents/pi-embedded-runner/thinking.test.ts test/scripts/openclaw-e2e-instance.test.ts
- pnpm check:changed via Blacksmith Testbox through Crabbox, tbx_01ksmfypqet50et92vdm5mmv5v, run https://github.com/openclaw/openclaw/actions/runs/26505947008
- Live Anthropic Messages replay accepted the OpenClaw-sanitized active tool-turn history with a real thinking signature.
- PR CI on 37c2e72d82 completed successfully for relevant checks.

Fixes #86886.

Co-authored-by: Andy Ye <35905412+TurboTheTurtle@users.noreply.github.com>
2026-05-27 12:20:27 +01:00
Vincent Koc
a02fe525f1 fix(doctor): validate bundled MCP tool schemas 2026-05-27 13:15:15 +02:00
Vincent Koc
b8fc2f6587 fix(qa): kill timed out Matrix CLI runs 2026-05-27 13:01:36 +02:00
Vincent Koc
545ad7f256 fix(dev): bound discord smoke waits 2026-05-27 12:56:39 +02:00
Vincent Koc
53662094c3 chore(pixverse): publish as external plugin 2026-05-27 12:41:10 +02:00
Vincent Koc
b3083de4f2 feat(pixverse): add api region selection 2026-05-27 12:41:10 +02:00
Vincent Koc
c18370574e feat(pixverse): add video generation provider 2026-05-27 12:41:10 +02:00
Vincent Koc
a46e839f7c fix(qa): tolerate fast Matrix tool replies 2026-05-27 12:41:04 +02:00
Peter Steinberger
6c3740255f refactor: remove channel turn runtime aliases 2026-05-27 11:37:23 +01:00
Vincent Koc
83ab0ba99f fix(test): bound qa otel receiver bodies 2026-05-27 12:26:49 +02:00
Peter Steinberger
fd648edfa9 fix(lint): clean manifest registry installed checks 2026-05-27 06:26:15 -04:00
Vincent Koc
7a7d9dedc1 fix(scripts): resolve npm package candidates through npm runner 2026-05-27 12:12:32 +02:00
Vincent Koc
42f3550f7e fix(qa): hide Matrix tool progress marker in workspace 2026-05-27 12:09:35 +02:00
caz0075
12e5876903 fix(usage): forward cached token usage in chat completions (#82062)
Forward cache-read token counts through the OpenAI-compatible chat-completions usage shape as prompt_tokens_details.cached_tokens so clients can price cached turns correctly.

Align internal gateway usage typing with the expanded wire shape.

Thanks @caz0075.
2026-05-27 11:07:37 +01:00
Peter Steinberger
42387aff59 test(codex): align provider claim expectation 2026-05-27 11:03:50 +01:00
Peter Steinberger
2babe03bf5 perf(gateway): cache stable plugin index fingerprints 2026-05-27 11:03:50 +01:00
Vincent Koc
1d4537add3 fix(test): scan kitchen rpc readiness logs incrementally 2026-05-27 11:51:03 +02:00
Vincent Koc
8c6da93fdf fix(test): fail startup bench on bad samples 2026-05-27 11:46:02 +02:00
Yuval Dinodia
bbdff39b6a fix(onboard): preserve agents.list and bindings on rerun
Preserve existing `agents.list` and top-level `bindings` during ordinary onboarding reruns so rerunning `openclaw onboard` cannot silently wipe configured agents or routing bindings.

Keep config size-drop allowances scoped to explicit reset/import/plugin-install migration flows, validate binding agent ids with normalized agent ids, and add doctor repair coverage for dangling bindings that is still best-effort around malformed agent lists.

Closes #84692.

Co-authored-by: yetval <yetvald@gmail.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-05-27 10:45:14 +01:00
Andy Ye
aa0a29099f fix: send bare direct Anthropic model ids
Closes #87181.

Direct Anthropic Messages requests now send bare Claude model ids even when OpenClaw stores them with the `anthropic/` provider prefix. Anthropic-compatible proxy and custom endpoint routes keep slash-bearing model ids unchanged so configured proxy models do not regress.

Also preserves the original parse error as `cause` in the JSONL request tail helper to keep the current CI lint gate green.

Co-authored-by: Andy Ye <35905412+TurboTheTurtle@users.noreply.github.com>
2026-05-27 10:44:20 +01:00
Georgi Atsev
9e7c2b356b fix(deepinfra): load all DeepInfra models when user wants to browse t… (#84549)
* fix(deepinfra): load all DeepInfra models when user wants to browse them during onboarding

* docs(deepinfra): align TTS default

* fix(deepinfra): refresh video fallbacks

* fix(deepinfra): share credential-aware catalog discovery

* test(deepinfra): narrow catalog regression types

* test(deepinfra): keep catalog narrowing across callback

* fix(deepinfra): preserve default model in live catalog

* fix(deepinfra): align default model pricing

* fix(deepinfra): keep pixverse as video default

* docs(deepinfra): match video fallback default

* fix(deepinfra): honor config api keys for live catalog

* test(e2e): wait for watchdog stdio close

* test(media): align live harness provider expectation

* fix(deepinfra): always augment custom catalogs

* test(e2e): resolve watchdog commands before spawning

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-05-27 10:43:37 +01:00
Vincent Koc
32b3fb698d fix(qa): harden Matrix tool progress scenario 2026-05-27 11:37:55 +02:00
Vincent Koc
f4bcd61c9b fix(package): match npm globstar exclusions 2026-05-27 11:37:55 +02:00
Vincent Koc
296fbde279 fix(package): honor dist package exclusions in inventory 2026-05-27 11:37:55 +02:00
Peter Steinberger
c89298f9f8 fix: preserve channel runResolved mock compatibility 2026-05-27 10:36:33 +01:00
Vincent Koc
329dad23f5 fix(test): bound config reload log polling 2026-05-27 11:23:50 +02:00
Peter Steinberger
d6949d5951 fix(lint): preserve JSONL parse cause 2026-05-27 05:18:46 -04:00
Peter Steinberger
5eba76531b test(e2e): preserve macos smoke entrypoint path 2026-05-27 10:07:36 +01:00
Vincent Koc
109ba23083 fix(test): await mcp timeout cleanup 2026-05-27 11:04:09 +02:00
Vincent Koc
a4a75a8694 fix(test): harden mcp channel ws timeout 2026-05-27 11:01:52 +02:00
Vincent Koc
e50b20fe7b fix(test): harden gateway network ws timeout 2026-05-27 10:59:50 +02:00
Cathryn Lavery
730ac1a68d fix(agents/harness): validate forced plugin harness support before pinning (#74341)
Validates forced plugin harness support for the requested provider/model before pinning Codex or any other plugin harness. This prevents an explicitly forced Codex runtime from accepting unsupported OpenAI-like providers through a hardcoded bypass while preserving implicit PI fallback and CLI runtime alias passthrough.

Regression coverage covers forced Codex rejection for unsupported openai/openai-codex support, Codex provider support declarations, CLI attempt routing, pi-embedded auth/profile forwarding fakes, Testbox scenario probes, and live Docker Codex plugin E2E.

Thanks @cathrynlavery.
2026-05-27 09:59:04 +01:00
Vincent Koc
40a2600544 fix(test): bound codex media path log polling 2026-05-27 10:55:00 +02:00
Peter Steinberger
98c0ad8b42 test: align extension inbound context assertions 2026-05-27 04:52:02 -04:00
Sebastien Tardif
527b7c2eed fix(install): skip Homebrew until macOS packages need it
Keep macOS Homebrew setup lazy so users with supported Node and Git can install without admin/Homebrew, while still installing Homebrew before macOS Node or Git package installs.

Updates installer docs and adds focused install.sh coverage for the lazy Git path. Also aligns the live-media provider expectation with current main so built-artifact checks stay green.

Fixes #83232

Co-authored-by: Sebastien Tardif <sebtardif@ncf.ca>
2026-05-27 09:48:04 +01:00