Commit Graph

16295 Commits

Author SHA1 Message Date
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