Commit Graph

15480 Commits

Author SHA1 Message Date
Peter Steinberger 913e7d5eba
fix: correct callable plugin sdk facades 2026-03-31 21:00:52 +01:00
Vincent Koc a4f45c55b2 fix(slack): restore callable directory facade exports 2026-04-01 04:51:36 +09:00
Peter Steinberger ffa2143d20
build: refresh slack facade output 2026-03-31 20:40:31 +01:00
Peter Steinberger 0d742c3c1b
test: skip unavailable live model providers 2026-03-31 20:37:42 +01:00
Peter Steinberger 64091caf8f
fix: preserve cli and slack fallback behavior 2026-03-31 20:37:42 +01:00
Vincent Koc 6f5f0c065b fix(slack): restore callable directory facade exports 2026-04-01 04:29:10 +09:00
Peter Steinberger ce58f55fe0
fix: require doctor migration for legacy web search config 2026-04-01 04:22:41 +09:00
Peter Steinberger cc278a76a4
test(tasks): update registry seam allowlist 2026-03-31 20:08:42 +01:00
Peter Steinberger a23b4dd5bc
fix(ci): route task executor through runtime seam 2026-03-31 20:02:10 +01:00
Vincent Koc 2a72a6d507 test(tasks): allow task executor registry seam 2026-04-01 04:01:06 +09:00
Vincent Koc 1816d6a4ed fix(tasks): normalize task create compatibility 2026-04-01 03:54:42 +09:00
Vincent Koc 80ed55332d fix(tasks): restore owner-key task scope 2026-04-01 03:53:12 +09:00
Peter Steinberger 5fdde9b237
fix(tasks): restore session key registry compatibility 2026-03-31 19:48:51 +01:00
Vincent Koc 338d313043 fix(tasks): scope shared run updates by session 2026-04-01 03:41:29 +09:00
Peter Steinberger 6f7629995c
build: refresh beta release generated artifacts 2026-03-31 19:32:55 +01:00
Peter Steinberger 62a39381da fix: land codex native search follow-ups (#46579) (thanks @Evizero) 2026-04-01 03:30:06 +09:00
Christof Salis 13f1190149 CLI: suppress Codex native search summary when web search is off 2026-04-01 03:30:06 +09:00
Christof Salis 0a891543c9 Codex: use model-level API for native search relevance 2026-04-01 03:30:06 +09:00
Christof Salis 797a70fd95 Codex: add native web search for embedded Pi runs 2026-04-01 03:30:06 +09:00
Peter Steinberger b87f33c920
test(ci): deflake windows npm exec coverage 2026-03-31 19:28:11 +01:00
Vincent Koc 66413487c8
fix(tasks): make task-store writes atomic (#58521) 2026-04-01 03:23:06 +09:00
Vincent Koc 7cd0ff2d88
refactor(tasks): add owner-key task access boundaries (#58516)
* refactor(tasks): add owner-key task access boundaries

* test(acp): update task owner-key assertion

* fix(tasks): align owner key checks and migration scope
2026-04-01 03:12:33 +09:00
Nimrod Gutman 69fe999373
fix(pairing): restore qr bootstrap onboarding handoff (#58382) (thanks @ngutman)
* fix(pairing): restore qr bootstrap onboarding handoff

* fix(pairing): tighten bootstrap handoff follow-ups

* fix(pairing): migrate legacy gateway device auth

* fix(pairing): narrow qr bootstrap handoff scope

* fix(pairing): clear ios tls trust on onboarding reset

* fix(pairing): restore qr bootstrap onboarding handoff (#58382) (thanks @ngutman)
2026-03-31 21:11:35 +03:00
Peter Steinberger 693d17c4a2
fix: support edit tool edits[] payloads 2026-03-31 19:05:44 +01:00
Peter Steinberger ae730d9a86 fix: cover Azure disabled reasoning omission (#58208) (thanks @jalehman) 2026-04-01 02:47:29 +09:00
Josh Lehman a1cb2bdc57 OpenAI: omit disabled reasoning payloads
Strip `reasoning.effort: "none"` from OpenAI-compatible payloads so GPT-5 models do not receive the unsupported value when thinking is off. Cover both the shared payload wrapper path and the websocket `response.create` builder with regression tests.

Regeneration-Prompt: |
  Fix the OpenAI request-building bug where thinking set to off still forwards
  a reasoning payload with effort "none". GPT-5 mini rejects that value with a
  400, so disabled reasoning must be represented by omitting the reasoning
  parameter entirely. Keep the change additive: sanitize OpenAI-compatible
  payloads in OpenClaw’s wrapper layer, make the websocket request builder stop
  emitting a reasoning block for "none", and add focused regression tests for
  both code paths.
2026-04-01 02:47:29 +09:00
Peter Steinberger 62e13bbf21
style: format sandbox and helper files 2026-03-31 18:44:39 +01:00
Peter Steinberger b4433a1bfe fix: normalize raw MCP schemas for OpenAI Responses (#58299) (thanks @yelog) 2026-04-01 02:30:45 +09:00
yelog dd3796aef3 fix: normalize MCP tool schemas missing properties field for OpenAI Responses API
Tools with no parameters produce { type: "object" } schemas without a
properties field. The OpenAI Responses API rejects these, silently
crashing entire sessions.

Add properties: {} injection in normalizeToolParameters() and
convertTools() to ensure all object-type schemas include a properties
field.

Closes #58246
2026-04-01 02:30:45 +09:00
Vincent Koc fcb802e826 refactor(plugins): remove before_install hook 2026-04-01 02:28:06 +09:00
Vincent Koc 1a313caff3 refactor(tasks): remove flow registry layer 2026-04-01 02:25:13 +09:00
Peter Steinberger 9e8129907e
test(tasks): fix relative mocks in task runtime tests 2026-03-31 17:42:52 +01:00
Peter Steinberger 8bf8baef87
Revert "refactor: move tasks into bundled plugin"
This reverts commit c75f4695b7.
2026-04-01 01:30:22 +09:00
Peter Steinberger 759d37635d
Revert "refactor: move tasks behind plugin-sdk seam"
This reverts commit da6e9bb76f.
2026-04-01 01:30:22 +09:00
Jacob Tomlinson 6c679e5f04
Gateway: reject mixed trusted-proxy token config (#58371)
* Gateway: reject mixed trusted-proxy token config

Co-authored-by: boy-hack <w8ay@qq.com>

* Gateway: fail closed for loopback trusted-proxy auth

---------

Co-authored-by: boy-hack <w8ay@qq.com>
2026-03-31 17:05:03 +01:00
Peter Steinberger aab7335236
fix(media): restore whatsapp outbound compatibility 2026-04-01 01:00:27 +09:00
Jacob Tomlinson 78e74d4a64
Plugins: preserve prompt build system prompt precedence (#58375) 2026-03-31 16:52:09 +01:00
Peter Steinberger a842e34f15
test: require Claude 4.6 for Anthropic live selection 2026-03-31 16:41:50 +01:00
Peter Steinberger 43ef8a5a86
refactor(media): centralize outbound access plumbing 2026-04-01 00:32:53 +09:00
Peter Steinberger 015ab98591
fix: restore ci status fast path and whatsapp tests 2026-03-31 16:21:55 +01:00
Vincent Koc 2a1db0c0f1
fix(gateway): narrow plugin route runtime scopes (#58167)
* wip(gateway): preserve plugin route scope progress

* test(gateway): cover plugin route runtime scopes

* test(gateway): finish plugin route scope rebase

* fix(gateway): drop scopes from plugin-auth routes
2026-04-01 00:20:49 +09:00
Peter Steinberger 85611f0021
fix: tighten gateway startup plugin loading 2026-04-01 00:20:06 +09:00
Vincent Koc 1ca12ec8bf
fix(hooks): rebind hook agent session keys to the target agent (#58225)
* fix(hooks): rebind hook agent session keys

* fix(hooks): preserve scoped hook session keys

* fix(hooks): validate normalized dispatch keys
2026-04-01 00:16:39 +09:00
Peter Steinberger fc5a2f9293
fix(media): add host media read helper 2026-04-01 00:08:20 +09:00
Peter Steinberger 3bb02d3338
fix(media): align outbound sends with fs read capability 2026-04-01 00:07:50 +09:00
openperf 56b5ba0dcb fix: address security and review feedback
- Fix CWE-209: use static safe message instead of raw provider error text
- Fix CWE-117: sanitize provider/model in logs via sanitizeForLog
- Hide CLI hints from external channels via shouldSurfaceToControlUi
- Move overload cap check before advanceAuthProfile to save setup latency
- Export MAX_LIVE_SWITCH_RETRIES as module-level constant
- Use exact toBe() assertions in tests
- Correct failover decision label to fallback_model
2026-03-31 20:25:09 +05:30
openperf 1fcd179d8c fix(gateway): prevent session death loop on overloaded fallback
- Add MAX_LIVE_SWITCH_RETRIES=2 guard in agent-runner-execution.ts
- Add MAX_OVERLOAD_PROFILE_ROTATIONS=1 cap in run.ts for overloaded errors
- Return kind:final with user-visible error on retry exhaustion
- Escalate to cross-provider fallback instead of exhausting same-provider profiles

Fixes #58348
2026-03-31 20:25:09 +05:30
Peter Steinberger bf96c67fd1
fix: align skill install security gate 2026-03-31 15:53:29 +01:00
Peter Steinberger 192484ed0a
fix: log malformed tool parameters on failure 2026-03-31 15:50:14 +01:00
Peter Steinberger a1e2d2bf42
test: repair stale task and image mocks 2026-03-31 15:48:00 +01:00