Peter Steinberger
a3a06524f2
fix(ci): restore session and setup fallbacks
2026-04-04 03:52:37 +01:00
Peter Steinberger
3c23126980
fix(ci): tolerate missing contract surface roots
2026-04-04 03:52:37 +01:00
Peter Steinberger
6b3ff0dd4f
feat(openai): add codex gpt-5.4-mini support
2026-04-04 11:51:57 +09:00
Vincent Koc
7df763b04d
refactor(providers): share xai compat helper
2026-04-04 11:45:13 +09:00
Vincent Koc
e273753d45
refactor(providers): share anthropic tool payload helper
2026-04-04 11:30:30 +09:00
George Zhang
87885b948a
fix: handle sensitive, number-clear, and array-clear edge cases in plugin config TUI ( #60640 ) ( #60640 )
...
- Skip sensitive fields with a note directing users to openclaw config set
or the Web UI (WizardPrompter has no masked input)
- Clear number fields to undefined when input is empty instead of storing 0
- Allow clearing array fields to undefined via empty input
2026-04-03 19:27:26 -07:00
Vincent Koc
761bd3bbd0
refactor(providers): share passthrough replay helpers
2026-04-04 11:22:41 +09:00
joelnishanth
7a16e14301
fix(cron): resume interrupted recurring jobs on first restart ( #60495 )
2026-04-04 07:51:04 +05:30
Vincent Koc
9e389cff3d
fix(config): migrate legacy group allow aliases ( #60597 )
...
* fix(config): migrate legacy group allow aliases
* fix(config): inline legacy streaming migration helpers
* refactor(config): rename legacy account matcher helper
* chore(agents): codify config contract boundaries
* fix(config): keep legacy allow aliases writable
* Update AGENTS.md
2026-04-04 11:15:32 +09:00
Vincent Koc
30479b4ee0
refactor(providers): compose provider stream wrappers
2026-04-04 11:03:28 +09:00
Vincent Koc
858bf405f4
refactor(providers): share replay and tool compat helpers ( #60637 )
...
* refactor(providers): share replay and tool compat helpers
* chore(plugin-sdk): refresh api baseline
2026-04-04 10:55:36 +09:00
Vincent Koc
dd31ee1139
fix(cli): log pending control ui build
2026-04-04 10:47:38 +09:00
Peter Steinberger
b76ed0fadf
fix: harden OpenAI websocket transport
2026-04-04 02:38:36 +01:00
Peter Steinberger
1e6e685347
fix: unblock cli startup metadata
2026-04-04 02:35:36 +01:00
Peter Steinberger
143d377c5a
fix(cli): keep status json startup lean
2026-04-04 02:16:56 +01:00
Gustavo Madeira Santana
3713b0e506
vertex: read ADC files without exists preflight ( #60592 )
...
Merged via squash.
Prepared head SHA: 72f7372e97
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Reviewed-by: @gumadeiras
2026-04-03 21:13:34 -04:00
Peter Steinberger
34cd49faa6
perf: route browser and line extension tests
2026-04-04 02:08:45 +01:00
Peter Steinberger
1e90b3afcd
perf: split extension channel vitest lane
2026-04-04 02:08:45 +01:00
Peter Steinberger
e941d425ac
perf: split acp and ui vitest lanes
2026-04-04 02:08:45 +01:00
Peter Steinberger
fb0ff6896a
perf: route contract test targets
2026-04-04 02:08:45 +01:00
Peter Steinberger
ac11e02518
perf: route bundled and extension helper tests
2026-04-04 02:08:44 +01:00
Peter Steinberger
269771a4b6
perf: route targeted tests to scoped vitest configs
2026-04-04 02:08:44 +01:00
Peter Steinberger
37ee19521f
fix(status): keep empty status path lightweight
2026-04-04 10:02:42 +09:00
Peter Steinberger
f8a3840a42
fix(ci): restore contextTokens runtime typing
2026-04-04 02:00:19 +01:00
Gustavo Madeira Santana
931ddd96f0
fix(cache): preserve full 3-turn history image cache window ( #60603 )
...
Merged via squash.
Prepared head SHA: 58d06ea372
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Reviewed-by: @gumadeiras
2026-04-03 20:48:56 -04:00
Peter Steinberger
58d2b9dd46
fix: add runtime model contextTokens caps
2026-04-04 09:36:53 +09:00
Peter Steinberger
b2fb1210e1
fix: normalize openai websocket errors
2026-04-04 01:31:49 +01:00
Peter Steinberger
a38cb20177
feat(openai): add default prompt overlay
2026-04-04 09:27:07 +09:00
Boris Cherny
af81c437fa
fix(cache): delay history image pruning to preserve prompt cache prefix ( #58038 )
...
pruneProcessedHistoryImages was stripping image blocks from every
already-answered user turn on each run. Turn N sends image bytes → provider
caches the prefix. Turn N+1 replaces image with text marker → bytes diverge
at that message → cache miss from there onward.
Now only prune images older than 3 assistant turns. Recent history stays
byte-identical so the cached prefix survives, while legacy sessions with
persisted image payloads still get cleaned up.
2026-04-03 17:22:58 -07:00
Gustavo Madeira Santana
300fb36879
infra: atomically replace sync JSON writes ( #60589 )
...
Merged via squash.
Prepared head SHA: cb8ed77049
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Reviewed-by: @gumadeiras
2026-04-03 20:21:44 -04:00
Peter Steinberger
628c71103e
fix: align native openai transport defaults
2026-04-04 01:20:34 +01:00
Boris Cherny
bc16b9dccf
fix(cache): sort MCP tools deterministically to stabilize prompt cache ( #58037 )
...
Co-authored-by: George Zhang <georgezhangtj97@gmail.com>
2026-04-03 17:19:53 -07:00
George Zhang
881f7dc82f
Plugin SDK: add plugin config TUI prompts to onboard and configure wizards ( #60590 ) ( #60590 )
...
Wire uiHints from plugin manifests into the TUI wizard so sandbox/tool
plugins get interactive config prompts during openclaw onboard (manual
flow) and openclaw configure --section plugins.
- Add setup.plugin-config.ts: discovers plugins with non-advanced uiHints,
generates type-aware prompts (enum→select, boolean→confirm, array→csv,
string/number→text) from jsonSchema + uiHints metadata.
- Onboard: new step after Skills, before Hooks (skipped in QuickStart).
Only shows plugins with unconfigured fields.
- Configure: new 'plugins' section in the section menu. Shows all
configurable plugins with configured/total field counts.
Closes #60030
2026-04-03 17:19:19 -07:00
Boris Cherny
f6380ae4b7
fix(cache): compact newest tool results first to preserve prompt cache prefix ( #58036 )
...
* fix(cache): compact newest tool results first to preserve prompt cache prefix
compactExistingToolResultsInPlace iterated front-to-back, replacing the
oldest tool results with placeholders when context exceeded 75%. This
rewrote messages[k] for small k, invalidating the provider prompt cache
from that point onward on every subsequent turn.
Reverse the loop to compact newest-first. The cached prefix stays intact;
the tradeoff is the model loses recent tool output instead of old, which
is acceptable since this guard only fires as an emergency measure past
the 75% threshold.
* fix(cache): compact newest tool results first to preserve prompt cache prefix (#58036 ) Thanks @bcherny
---------
Co-authored-by: George Zhang <georgezhangtj97@gmail.com>
2026-04-03 17:19:15 -07:00
Peter Steinberger
5bea93fd63
fix: restore gateway watch boot path
2026-04-04 01:10:49 +01:00
Peter Steinberger
fe72474153
fix: persist fallback overrides safely
2026-04-04 09:00:16 +09:00
Peter Steinberger
236a9003b6
test(ci): fix logs cli gateway mock typing
2026-04-04 00:28:25 +01:00
Peter Steinberger
3a3fdf1920
fix(ci): restore plugin contract surfaces
2026-04-04 00:24:57 +01:00
Peter Steinberger
306fe841f5
fix(cli): add local logs fallback
2026-04-04 08:17:11 +09:00
Peter Steinberger
0f18e44538
test: trim onboarding helper partial mock
2026-04-04 00:13:45 +01:00
Peter Steinberger
d02fc365b4
test(plugins): drop stale core test files
2026-04-04 00:11:54 +01:00
Peter Steinberger
ab318de8b7
test(plugins): finish moving contract coverage
2026-04-04 00:11:39 +01:00
Peter Steinberger
e4b5027c5e
refactor(plugins): move extension seams into extensions
2026-04-04 00:10:16 +01:00
Agustin Rivera
ff607adc69
fix(sandbox): block home credential binds ( #59157 )
...
* fix(sandbox): block home credential binds
* fix(sandbox): harden blocked credential bind checks
2026-04-03 16:06:22 -07:00
pgondhi987
e19dce0aed
fix(hooks): harden before_tool_call hook runner to fail-closed on error [AI] ( #59822 )
...
* fix: address issue
* fix: address PR review feedback
* docs: add changelog entry for PR merge
* docs: normalize changelog entry placement
---------
Co-authored-by: Devin Robison <drobison@nvidia.com>
2026-04-03 16:44:35 -06:00
Peter Steinberger
3d2734185b
test: stabilize rebased auto-reply command checks
2026-04-03 23:11:34 +01:00
Gustavo Madeira Santana
9004ef65df
Plugins: add install --force overwrite flag ( #60544 )
...
Merged via squash.
Prepared head SHA: 28ae50b615
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Reviewed-by: @gumadeiras
2026-04-03 18:09:14 -04:00
Tak Hoffman
3fd29e549d
fix: honor tools default account
2026-04-03 17:06:50 -05:00
Tak Hoffman
cc0987f7b1
fix: honor allowlist default account
2026-04-03 17:04:11 -05:00
Agustin Rivera
42ffdf882f
fix(fetch): normalize guarded redirect handling ( #59121 )
...
* fix(fetch): align guarded redirect rewrites
* fix(fetch): tighten redirect coverage
* fix(fetch): add changelog entry
2026-04-03 15:03:18 -07:00