Peter Steinberger
a7d6e44719
perf(test): reduce test startup overhead
2026-02-13 14:48:45 +00:00
Peter Steinberger
3bcde8df32
fix: finalize vLLM onboarding integration ( #12577 ) (thanks @gejifeng)
2026-02-13 15:48:37 +01:00
gejifeng
03c502ef31
lint: fix unused imports and onboarding preferred provider
2026-02-13 15:48:37 +01:00
gejifeng
94d5411f11
fix: remove duplicate TOGETHER_BASE_URL
2026-02-13 15:48:37 +01:00
gejifeng
3e7956b008
fix code review
2026-02-13 15:48:37 +01:00
gejifeng
0472dd68f0
fix code review
2026-02-13 15:48:37 +01:00
gejifeng
e73d881c50
Onboarding: add vLLM provider support
2026-02-13 15:48:37 +01:00
Yaxuan42
54bf5d0f41
feat(web-fetch): support Cloudflare Markdown for Agents ( #15376 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: d0528dc429
Co-authored-by: Yaxuan42 <184813557+Yaxuan42@users.noreply.github.com>
Co-authored-by: steipete <58493+steipete@users.noreply.github.com>
Reviewed-by: @steipete
2026-02-13 15:46:20 +01:00
Peter Steinberger
9131b22a28
test: migrate suites to e2e coverage layout
2026-02-13 14:28:22 +00:00
Peter Steinberger
990413534a
fix: land multi-agent session path fix + regressions ( #15103 ) ( #15448 )
...
Co-authored-by: Josh Lehman <josh@martian.engineering>
2026-02-13 14:17:24 +01:00
JINNYEONG KIM
94763cd87d
Fix OpenAI/Codex tool call id sanitization for transcript policy ( #15279 )
2026-02-13 11:39:51 +00:00
loiie45e
07faab6ac3
openai-codex: bridge OAuth profiles into pi auth.json for model discovery ( #15184 )
2026-02-13 11:39:37 +00:00
Lucky
e3cb2564d7
Agents: allow gpt-5.3-codex-spark in fallback and thinking ( #14990 )
...
* Agents: allow gpt-5.3-codex-spark in fallback and thinking
* Fix: model picker issue for openai-codex/gpt-5.3-codex-spark
Fixed an issue in the model picker.
2026-02-13 11:39:22 +00:00
青雲
fd076eb43a
fix: /status shows incorrect context percentage — totalTokens clamped to contextTokens ( #15114 ) ( #15133 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: a489669fc7
Co-authored-by: echoVic <16428813+echoVic@users.noreply.github.com>
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Reviewed-by: @gumadeiras
2026-02-12 23:52:19 -05:00
Gustavo Madeira Santana
ac41176532
Auto-reply: fix non-default agent session transcript path resolution ( #15154 )
...
* Auto-reply: fix non-default agent transcript path resolution
* Auto-reply: harden non-default agent transcript lookups
* Auto-reply: harden session path resolution across agent stores
2026-02-12 23:23:12 -05:00
seheepeak
23e4183608
fix(sandbox): force network bridge for browser container ( #6961 )
2026-02-13 05:17:17 +01:00
George Pickett
a067565db5
fix: pass sandbox docker env into containers ( #15138 ) (thanks @stevebot-alive)
2026-02-12 19:39:22 -08:00
Steve (OpenClaw)
92567765e6
fix(sandbox): pass docker.env into sandbox container
2026-02-12 19:39:22 -08:00
Tak Hoffman
89bfe0c944
fix: add adapter-path after_tool_call coverage (follow-up to #15012 ) ( #15105 )
2026-02-12 19:39:23 -06:00
Peter Steinberger
85409e401b
fix: preserve inter-session input provenance (thanks @anbecker)
2026-02-13 02:02:01 +01:00
Patrick Barletta
d34138dfee
fix: dispatch before_tool_call and after_tool_call hooks from both tool execution paths (openclaw#15012) thanks @Patrick-Barletta
...
Verified:
- pnpm check
Co-authored-by: Patrick-Barletta <67929313+Patrick-Barletta@users.noreply.github.com>
2026-02-12 18:48:11 -06:00
Peter Steinberger
4199f9889f
fix: harden session transcript path resolution
2026-02-13 01:28:17 +01:00
Peter Steinberger
3eb6a31b6f
fix: confine sandbox skill sync destinations
2026-02-13 01:24:51 +01:00
Kyle Tse
2655041f69
fix: wire 9 unwired plugin hooks to core code (openclaw#14882) thanks @shtse8
...
Verified:
- GitHub CI checks green (non-skipped)
Co-authored-by: shtse8 <8020099+shtse8@users.noreply.github.com>
2026-02-12 18:14:14 -06:00
Vladimir Peshekhonov
957b883082
fix(agents): stabilize overflow compaction retries and session context accounting (openclaw#14102) thanks @vpesh
...
Verified:
- CI checks for commit 86a7ecb45e
- Rebase conflict resolution for compatibility with latest main
Co-authored-by: vpesh <9496634+vpesh@users.noreply.github.com>
2026-02-12 17:53:13 -06:00
Peter Steinberger
da55d70fb0
fix(security): harden untrusted web tool transcripts
2026-02-13 00:46:56 +01:00
Kyle Tse
a10f228a5b
fix: update totalTokens after compaction using last-call usage ( #15018 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 9214291bf7
Co-authored-by: shtse8 <8020099+shtse8@users.noreply.github.com>
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Reviewed-by: @gumadeiras
2026-02-12 18:02:30 -05:00
Shadow
149db5b2c2
Discord: handle thread edit params
2026-02-12 16:31:06 -06:00
Skyler Miao
cb0350230c
feat(minimax): update models from M2.1 to M2.5 ( #14865 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 1d58bc5760
Co-authored-by: adao-max <153898832+adao-max@users.noreply.github.com>
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Reviewed-by: @gumadeiras
2026-02-12 16:48:46 -05:00
0xRain
d8d8109711
fix(agents): guard against undefined path in context file entries ( #14903 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 25856b863d
Co-authored-by: 0xRaini <190923101+0xRaini@users.noreply.github.com>
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Reviewed-by: @gumadeiras
2026-02-12 15:27:56 -05:00
fagemx
bdd0c12329
fix(providers): include provider name in billing error messages ( #14697 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 774e0b6605
Co-authored-by: fagemx <117356295+fagemx@users.noreply.github.com>
Co-authored-by: shakkernerd <165377636+shakkernerd@users.noreply.github.com>
Reviewed-by: @shakkernerd
2026-02-12 18:23:27 +00:00
Peter Steinberger
5e7842a41d
feat(zai): auto-detect endpoint + default glm-5 ( #14786 )
...
* feat(zai): auto-detect endpoint + default glm-5
* test: fix Z.AI default endpoint expectation (#14786 )
* test: bump embedded runner beforeAll timeout
* chore: update changelog for Z.AI GLM-5 autodetect (#14786 )
* chore: resolve changelog merge conflict with main (#14786 )
* chore: append changelog note for #14786 without merge conflict
* chore: sync changelog with main to resolve merge conflict
2026-02-12 19:16:04 +01:00
Yi Liu
d3aee84499
fix(security): add --ignore-scripts to skills install commands ( #14659 )
...
Skills install runs package manager install commands (npm, pnpm, yarn,
bun) without --ignore-scripts, allowing malicious npm packages to
execute arbitrary code via postinstall/preinstall lifecycle scripts
during global installation.
This is inconsistent with the security fix in commit 92702af7a which
added --ignore-scripts to both plugin installs (src/plugins/install.ts)
and hook installs (src/hooks/install.ts). Skills install was overlooked
in that change.
Global install (-g) is particularly dangerous as scripts execute with
the user's full permissions and can modify globally-accessible binaries.
2026-02-13 02:56:35 +09:00
Peter Steinberger
d25e96637c
test(agents): make grok api key test hermetic
2026-02-12 17:17:02 +00:00
Sebastian
d31caa81ef
fix(runtime): guard cleanup and preserve skipped cron jobs
2026-02-12 09:28:47 -05:00
0xRain
4f329f923c
fix(agents): narrow billing error 402 regex to avoid false positives on issue IDs ( #13827 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: b0501bbab7
Co-authored-by: 0xRaini <190923101+0xRaini@users.noreply.github.com>
Co-authored-by: sebslight <19554889+sebslight@users.noreply.github.com>
Reviewed-by: @sebslight
2026-02-12 09:18:06 -05:00
Akari
455bc1ebba
fix: use last API call's cache tokens for context-size display ( #13698 ) ( #13805 )
...
The UsageAccumulator sums cacheRead/cacheWrite across all API calls
within a single turn. With Anthropic prompt caching, each call reports
cacheRead ≈ current_context_size, so after N tool-call round-trips the
accumulated total becomes N × actual_context, which gets clamped to
contextWindow (200k) by deriveSessionTotalTokens().
Fix: track the most recent API call's cache fields separately and use
them in toNormalizedUsage() for context-size reporting. This makes
/status Context display accurate while preserving accumulated output
token counts.
Fixes #13698
Fixes #13782
Co-authored-by: akari-musubi <259925157+akari-musubi@users.noreply.github.com>
2026-02-12 08:01:36 -06:00
Kyle Chen
4c350bc4c8
Fix: Prevent file descriptor leaks in child process cleanup ( #13565 )
...
* fix: prevent FD leaks in child process cleanup
- Destroy stdio streams (stdin/stdout/stderr) after process exit
- Remove event listeners to prevent memory leaks
- Clean up child process reference in moveToFinished()
- Also fixes model override handling in agent.ts
Fixes EBADF errors caused by accumulating file descriptors
from sub-agent spawns.
* Fix: allow stdin destroy in process registry cleanup
---------
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>
2026-02-12 08:01:33 -06:00
jg-noncelogic
6f74786384
fix(antigravity): opus 4.6 forward-compat model + thinking signature sanitization bypass ( #14218 )
...
Two fixes for Google Antigravity (Cloud Code Assist) reliability:
1. Forward-compat model fallback: pi-ai's model registry doesn't include
claude-opus-4-6-thinking. Add resolveAntigravityOpus46ForwardCompatModel()
that clones the opus-4-5 template so the correct api ("google-gemini-cli")
and baseUrl are preserved. Fixes #13765 .
2. Fix thinking.signature rejection: The API returns Claude thinking blocks
without signatures, then rejects them on replay. The existing sanitizer
strips unsigned blocks, but the orphaned-user-message path in attempt.ts
bypassed it by reading directly from disk. Now applies
sanitizeAntigravityThinkingBlocks at that code path.
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 08:01:28 -06:00
Taras Lukavyi
d85150357f
feat: support .agents/skills/ directory for cross-agent skill discovery ( #9966 )
...
Adds loading from two .agents/skills/ locations:
- ~/.agents/skills/ (personal/user-level, source "agents-skills-personal")
- {workspace}/.agents/skills/ (project-level, source "agents-skills-project")
Precedence: extra < bundled < managed < personal .agents/skills < project .agents/skills < workspace.
Closes #8822
2026-02-12 07:56:19 -06:00
taw0002
dcb921944a
fix: prevent double compaction caused by cache-ttl entry bypassing guard ( #13514 )
...
Move appendCacheTtlTimestamp() to after prompt + compaction retry
completes instead of before. The previous placement inserted a custom
entry (openclaw.cache-ttl) between compaction and the next prompt,
which broke pi-coding-agent's prepareCompaction() guard — the guard
only checks if the last entry is type 'compaction', and the cache-ttl
custom entry made it type 'custom', allowing an immediate second
compaction at very low token counts (e.g. 5,545 tokens) that nuked
all preserved context.
Fixes #9282
Relates to #12170
2026-02-12 07:55:32 -06:00
Tomsun28
540996f10f
feat(provider): Z.AI endpoints + model catalog ( #13456 ) (thanks @tomsun28) ( #13456 )
...
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>
2026-02-12 07:01:48 -06:00
0xRain
4b86c9e555
fix(telegram): surface REACTION_INVALID as non-fatal warning ( #14340 )
...
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>
2026-02-12 00:28:47 -06:00
Rodrigo Uroz
b912d3992d
(fix): handle Cloudflare 521 and transient 5xx errors gracefully ( #13500 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: a8347e95c5
Co-authored-by: rodrigouroz <384037+rodrigouroz@users.noreply.github.com>
Co-authored-by: Takhoffman <781889+Takhoffman@users.noreply.github.com>
Reviewed-by: @Takhoffman
2026-02-11 21:42:33 -06:00
Jake
631102e714
fix(agents): scope process/exec tools to sessionKey for isolation ( #4887 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 5d30672e75
Co-authored-by: mcinteerj <3613653+mcinteerj@users.noreply.github.com>
Co-authored-by: Takhoffman <781889+Takhoffman@users.noreply.github.com>
Reviewed-by: @Takhoffman
2026-02-11 19:55:12 -06:00
0xRain
1d2c5783fd
fix(agents): enable tool call ID sanitization for Anthropic provider ( #13830 )
...
Co-authored-by: 0xRaini <0xRaini@users.noreply.github.com>
2026-02-12 08:42:24 +09:00
0xRain
43818e1583
fix(agents): re-run tool_use pairing repair after history truncation ( #13926 )
...
Co-authored-by: 0xRaini <0xRaini@users.noreply.github.com>
2026-02-12 08:42:05 +09:00
0xRain
729181bd06
fix(agents): exclude rate limit errors from context overflow classification ( #13747 )
...
Co-authored-by: 0xRaini <rain@0xRaini.dev>
2026-02-12 08:40:09 +09:00
Dario Zhang
e85bbe01f2
fix: report subagent timeout as 'timed out' instead of 'completed successfully' ( #13996 )
...
* fix: report subagent timeout as 'timed out' instead of 'completed successfully'
* fix: propagate subagent timeout status across agent.wait (#13996 ) (thanks @dario-github)
---------
Co-authored-by: Sebastian <19554889+sebslight@users.noreply.github.com>
2026-02-11 12:55:30 -05:00
Kyle Tse
50a60b8be6
fix: use configured base URL for Ollama model discovery ( #14131 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 2292d2de6d
Co-authored-by: shtse8 <8020099+shtse8@users.noreply.github.com>
Reviewed-by: @gumadeiras
2026-02-11 10:51:59 -05:00