Commit Graph

25735 Commits

Author SHA1 Message Date
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 d01cb5ecc6
docs: expand model fallback guide 2026-04-04 09:13:43 +09: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 411282c36d docs(changelog): note Telegram picker fix (#60384) (thanks @sfuminya) 2026-04-04 08:58:50 +09:00
fumin 43272d27f8 fix(telegram): compare full provider/model in models picker 2026-04-04 08:58:50 +09:00
Vincent Koc bb4e54ccf7 fix(ci): restore plugin sdk boundary seams 2026-04-04 08:51:57 +09:00
Vincent Koc df83374a54 docs(changelog): summarize provider transport rollout 2026-04-04 08:34:23 +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
Ted Li ff62705206
fix(whatsapp): reset watchdog timeout after reconnect (#60007)
Merged via squash.

Prepared head SHA: 64223e5dd4
Co-authored-by: MonkeyLeeT <6754057+MonkeyLeeT@users.noreply.github.com>
Co-authored-by: mcaxtr <7562095+mcaxtr@users.noreply.github.com>
Reviewed-by: @mcaxtr
2026-04-03 20:23:36 -03:00
Peter Steinberger 306fe841f5
fix(cli): add local logs fallback 2026-04-04 08:17:11 +09:00
Peter Steinberger de2eaccfce
fix: restore discord startup logging and boundary bootstrap 2026-04-04 00:16:10 +01: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
Tak Hoffman c19321ed9e
docs: trim PR template root-cause boilerplate 2026-04-03 18:08:55 -05: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
Peter Steinberger 4540effd6c
test(ci): make mattermost client retry deterministic 2026-04-03 23:55:39 +01:00
Efe Büken 5fc9918a20
fix(matrix): surface user-visible 'too large' marker when Matrix media exceeds size limit (#60289)
Merged via squash.

Prepared head SHA: f33dd49946
Co-authored-by: efe-arv <259833796+efe-arv@users.noreply.github.com>
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Reviewed-by: @gumadeiras
2026-04-03 18:53:51 -04:00
Peter Steinberger 94fee8486f
test: make mattermost reconnect tests deterministic 2026-04-03 23:46:19 +01: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 1322aa2ba2
test(ci): make mattermost reconnect deterministic 2026-04-03 23:30:33 +01:00
Peter Steinberger 2af05ac558
test: restore leaked timer spies in mattermost reconnect tests 2026-04-03 23:27:29 +01: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
Peter Steinberger ccf16a25d2
test: tolerate plain baileys exports in whatsapp hooks 2026-04-03 23:06:43 +01: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
Tak Hoffman 393d8c7606
fix: honor approve default account 2026-04-03 17:01:58 -05:00
Tak Hoffman 5f1f43af4d
fix: honor config write default account 2026-04-03 16:59:58 -05:00
Tak Hoffman 4d60d61dec
fix: honor reset notice default account 2026-04-03 16:57:15 -05:00
Tak Hoffman da68fa4079
fix: honor followup default account 2026-04-03 16:53:38 -05:00
Tak Hoffman 6ddc86a3d1
fix: honor session default delivery account 2026-04-03 16:51:34 -05:00
Peter Steinberger 30fd4c6cdb
test: add default channel account stubs in subagent focus tests 2026-04-03 22:51:17 +01:00
Tak Hoffman 01534d9bd5
fix: honor acp projector default account 2026-04-03 16:49:16 -05:00
Peter Steinberger 381a865822
test: force real timers in mattermost reconnect tests 2026-04-03 22:47:19 +01:00
Tak Hoffman 2b54ce30ae
fix: honor acp delivery default account 2026-04-03 16:46:25 -05:00
Tak Hoffman bb649de1ad
fix: honor subagent default account 2026-04-03 16:43:26 -05:00
Tak Hoffman 4518b9ea7a
fix: honor acp reset default account 2026-04-03 16:39:50 -05:00
Peter Steinberger 32f9a7c7bc
test(ci): stabilize discord model picker timers 2026-04-03 22:35:42 +01:00
Tak Hoffman 10062e8111
fix: honor plugin binding default account 2026-04-03 16:31:24 -05:00
Peter Steinberger 4fb0837220
test: relax qr dashboard cli exit assertion 2026-04-03 22:30:46 +01:00
Agustin Rivera e8e7d1fab3
Keep non-interactive auth choices on trusted plugins (#59120)
* fix(onboard): ignore untrusted workspace auth choices

* fix(onboard): scope auth-choice inference to trusted plugins (#59120) (thanks @eleqtrizit)
2026-04-03 14:28:01 -07:00
Tak Hoffman 037da3ce34
fix: honor acp dispatch default account 2026-04-03 16:26:41 -05:00
Peter Steinberger ee45a59b4e
test: normalize owning npm path assertions 2026-04-03 22:25:34 +01:00