taw0002
3c57bf4c85
fix: treat HTTP 502/503/504 as failover-eligible (timeout reason) ( #21017 )
...
* fix: treat HTTP 502/503/504 as failover-eligible (timeout reason)
When a model API returns 502 Bad Gateway, 503 Service Unavailable, or
504 Gateway Timeout, the error object carries the status code directly.
resolveFailoverReasonFromError() only checked 402/429/401/403/408/400,
so 5xx server errors fell through to message-based classification which
requires the status code to appear at the start of the error message.
Many API SDKs (Google, Anthropic) set err.status = 503 without prefixing
the message with '503', so the message classifier never matched and
failover never triggered — the run retried the same broken model.
Add 502/503/504 to the status-code branch, returning 'timeout' (matching
the existing behavior of isTransientHttpError in the message classifier).
Fixes #20999
* Changelog: add failover 502/503/504 note with credits
* Failover: classify HTTP 504 as transient in message parser
* Changelog: credit taw0002 and vincentkoc for failover fix
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-02-23 03:01:57 -05:00
Vincent Koc
0e28e50b45
fix(security): detect obfuscated commands that bypass allowlist filters ( #24287 )
...
* security(exec): add obfuscated command detector
* test(exec): cover obfuscation detector patterns
* security(exec): enforce obfuscation approval on gateway host
* security(exec): enforce obfuscation approval on node host
* test(exec): prevent obfuscation timeout bypass
* chore(changelog): credit obfuscation security fix
2026-02-23 02:50:06 -05:00
Misha Kolesnik
ec1bc41cf2
fix(openrouter): remove conflicting reasoning_effort from payload ( #24120 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: cc8ef4bb05a71626152109ca0d70f3c17cb0100c
Co-authored-by: tenequm <22403766+tenequm@users.noreply.github.com>
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Reviewed-by: @gumadeiras
2026-02-23 01:41:29 -05:00
Ayaan Zaidi
03122e5933
fix(cron): preserve telegram announce target + delivery truth
2026-02-23 11:45:18 +05:30
Tak Hoffman
9e1a13bf4c
Gateway/UI: data-driven agents tools catalog with provenance (openclaw#24199) thanks @Takhoffman
...
Verified:
- pnpm install --frozen-lockfile
- pnpm build
- gh pr checks 24199 --watch --fail-fast
Co-authored-by: Takhoffman <781889+Takhoffman@users.noreply.github.com>
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>
2026-02-22 23:55:59 -06:00
Peter Steinberger
1c753ea786
test: dedupe fixtures and test harness setup
2026-02-23 05:45:54 +00:00
Peter Steinberger
8af19ddc5b
refactor: extract shared dedupe helpers for runtime paths
2026-02-23 05:43:43 +00:00
Peter Steinberger
23598e0e3a
test: prune redundant abort case and speed stream cap test
2026-02-23 05:06:34 +00:00
Peter Steinberger
610863e733
test: speed up long-running async suites
2026-02-23 05:03:15 +00:00
Peter Steinberger
48f327c206
test: consolidate redundant suites and speed attachment tests
2026-02-23 04:55:43 +00:00
Peter Steinberger
86a8b65e9d
test: consolidate redundant suites and speed up timers
2026-02-23 04:44:42 +00:00
Peter Steinberger
382fe8009a
refactor!: remove google-antigravity provider support
2026-02-23 05:20:14 +01:00
Tak Hoffman
457835b104
Compaction: count only completed auto-compactions ( #24056 )
...
* Compaction: count only completed auto-compactions
* Compaction: count only non-retry completions
* Changelog: note completed-only compaction counting
* Agents/Compaction: guard optional compaction increment
2026-02-22 20:16:45 -06:00
Tak Hoffman
05691be511
Compaction: ignore tool result details in oversized checks ( #24057 )
...
* Compaction: ignore tool result details in oversized checks
* Tests/Compaction: type estimateTokens message callback
2026-02-22 20:13:59 -06:00
Tak Hoffman
50c5f75904
Compaction: sanitize token split accounting ( #24058 )
...
* Compaction: sanitize token split accounting
* Tests/Compaction: type sanitize token estimate callback
2026-02-22 20:13:21 -06:00
Peter Steinberger
45febecf2a
fix(exec): keep implicit sandbox default and restore no-alert baseline
2026-02-23 02:17:43 +01:00
Peter Steinberger
278331c49c
fix(exec): restore sandbox as implicit host default
2026-02-23 01:48:24 +01:00
Peter Steinberger
60c494c024
test: tighten mistral media and onboarding coverage
2026-02-23 00:19:05 +00:00
Phineas1500
320b62265d
fix(models): synthesize antigravity Gemini 3.1 pro high/low models ( #22899 )
...
* Models: add antigravity Gemini 3.1 forward-compat
* models: propagate availability to Gemini 3.1 dot IDs
* test(models): format Gemini 3.1 forward-compat test
* test(models): type Gemini 3.1 forward-compat fixtures
* models: add changelog note for antigravity gemini 3.1 forward-compat
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-02-22 19:11:39 -05:00
Vignesh Natarajan
5c7c37a02a
Agents: infer auth-profile unavailable failover reason
2026-02-22 16:10:32 -08:00
Vincent Koc
d92ba4f8aa
feat: Provider/Mistral full support for Mistral on OpenClaw 🇫🇷 ( #23845 )
...
* Onboard: add Mistral auth choice and CLI flags
* Onboard/Auth: add Mistral provider config defaults
* Auth choice: wire Mistral API-key flow
* Onboard non-interactive: support --mistral-api-key
* Media understanding: add Mistral Voxtral audio provider
* Changelog: note Mistral onboarding and media support
* Docs: add Mistral provider and onboarding/media references
* Tests: cover Mistral media registry/defaults and auth mapping
* Memory: add Mistral embeddings provider support
* Onboarding: refresh Mistral model metadata
* Docs: document Mistral embeddings and endpoints
* Memory: persist Mistral embedding client state in managers
* Memory: add regressions for mistral provider wiring
* Gateway: add live tool probe retry helper
* Gateway: cover live tool probe retry helper
* Gateway: retry malformed live tool-read probe responses
* Memory: support plain-text batch error bodies
* Tests: add Mistral Voxtral live transcription smoke
* Docs: add Mistral live audio test command
* Revert: remove Mistral live voice test and docs entry
* Onboard: re-export Mistral default model ref from models
* Changelog: credit joeVenner for Mistral work
* fix: include Mistral in auto audio key fallback
* Update CHANGELOG.md
* Update CHANGELOG.md
---------
Co-authored-by: Shakker <shakkerdroid@gmail.com>
2026-02-23 00:03:56 +00:00
yinghaosang
a66b98a9da
fix(plugins): hook systemPrompt gets collected then thrown away ( #14583 ) ( #14602 )
...
* fix(plugins): apply before_agent_start hook systemPrompt to session (#14583 )
* fix(plugins): apply legacy systemPrompt override and add changelog credit
---------
Co-authored-by: yinghaosang <yinghaosang@users.noreply.github.com>
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-02-22 18:58:21 -05:00
Peter Steinberger
f79e3d5f03
fix(agents): remove synthetic done fallback reply
2026-02-23 00:50:00 +01:00
Aether AI
d306fc8ef1
fix(security): OC-07 redact session history credentials and enforce webhook secret ( #16928 )
...
* Security: refresh sessions history redaction patch
* tests: align sessions_history redaction-only truncation expectation
* Changelog: credit sessions history security hardening
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-02-22 18:29:40 -05:00
Robin Waslander
44727dc3a1
security(web_fetch): strip hidden content to prevent indirect prompt injection ( #21074 )
...
* security(web_fetch): strip hidden content to prevent indirect prompt injection
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* security(web_fetch): address review feedback and credit author
* chore(changelog): credit reporter for web_fetch security fix
---------
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-02-22 18:10:26 -05:00
Peter Steinberger
84e5ab598a
fix: make windows CI path handling deterministic
2026-02-22 22:34:49 +00:00
Peter Steinberger
a30f9c8673
fix(sandbox): fallback docker user to workspace owner uid/gid
...
Co-authored-by: LucasAIBuilder <LucasAIBuilder@users.noreply.github.com>
2026-02-22 23:33:15 +01:00
Peter Steinberger
394a1af70f
fix(exec): apply per-agent exec defaults for opaque session keys
...
Co-authored-by: brin-tapcart <brin-tapcart@users.noreply.github.com>
2026-02-22 23:33:14 +01:00
Peter Steinberger
a5917e4ad8
test(exec): resolve rebase artifact in bash-tools test
2026-02-22 22:25:47 +00:00
Peter Steinberger
84303f6a78
test: make exec timeout coverage deterministic
2026-02-22 22:14:01 +00:00
Peter Steinberger
7b229decdd
test(perf): dedupe fixtures and reduce flaky waits
2026-02-22 22:06:01 +00:00
Peter Steinberger
c677be9d5f
fix(exec): skip default timeout for background sessions
2026-02-22 23:03:44 +01:00
Peter Steinberger
4b0fddc075
fix(test): prevent env leak causing models.json CI flake
2026-02-22 22:00:44 +00:00
Peter Steinberger
1e582dcc6f
fix: harden windows path handling in CI tests
2026-02-22 21:52:10 +00:00
Tak Hoffman
556af3f08b
fix(cron): cancel timed-out runs before side effects (openclaw#22411) thanks @Takhoffman
...
Verified:
- pnpm check
- pnpm vitest run src/memory/qmd-manager.test.ts src/cron/service.issue-regressions.test.ts src/cron/isolated-agent.delivers-response-has-heartbeat-ok-but-includes.test.ts --maxWorkers=1
Co-authored-by: Takhoffman <781889+Takhoffman@users.noreply.github.com>
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>
2026-02-22 15:45:27 -06:00
Peter Steinberger
64b273a71c
fix(exec): harden safe-bin trust and add explicit trusted dirs
2026-02-22 22:43:18 +01:00
Vignesh Natarajan
08fb38f729
Fix: resolve pnpm check type regressions
2026-02-22 13:40:51 -08:00
Peter Steinberger
e16f93af0c
fix: stabilize ci test typings and mocks
2026-02-22 21:38:47 +00:00
Peter Steinberger
7c109f5737
fix: resolve ci type errors and reconnect test flake
2026-02-22 21:35:20 +00:00
Vignesh Natarajan
d75b594e07
Agents/Replies: scope done fallback to direct sessions
2026-02-22 13:30:30 -08:00
Peter Steinberger
73fab7e445
fix(agents): map container workdir paths in workspace guard
...
Co-authored-by: Explorer1092 <32663226+Explorer1092@users.noreply.github.com>
2026-02-22 22:24:27 +01:00
Peter Steinberger
7bbd597383
fix(media): enforce agent media roots in plugin send actions
...
Co-authored-by: Oliver Drobnik <333270+odrobnik@users.noreply.github.com>
Co-authored-by: thisischappy <257418353+thisischappy@users.noreply.github.com>
2026-02-22 22:24:27 +01:00
Peter Steinberger
2081b3a3c4
refactor(channels): dedupe hook and monitor execution paths
2026-02-22 21:19:09 +00:00
Peter Steinberger
06bdd53658
refactor(agents): dedupe workspace and session tool flows
2026-02-22 21:19:09 +00:00
Peter Steinberger
320cf8eb3e
fix(subagents): restore configurable announce timeout
...
Co-authored-by: Valadon <20071960+Valadon@users.noreply.github.com>
2026-02-22 22:11:52 +01:00
Peter Steinberger
13541864e5
refactor: extract telegram lane delivery and e2e harness
2026-02-22 21:33:20 +01:00
Peter Steinberger
3c75bc0e41
refactor(test): dedupe agent and discord test fixtures
2026-02-22 20:04:51 +00:00
Peter Steinberger
5547a2275c
fix(security): harden toolsBySender sender-key matching
2026-02-22 21:04:37 +01:00
Peter Steinberger
6f895eb831
fix(sandbox): honor explicit bind mounts over workspace defaults
...
Co-authored-by: tasaankaeris <tasaankaeris@users.noreply.github.com>
2026-02-22 20:37:22 +01:00
Peter Steinberger
eefbf3dc5a
fix(sandbox): normalize /workspace media paths to host sandbox root
...
Co-authored-by: echo931 <echo931@users.noreply.github.com>
2026-02-22 20:37:21 +01:00