ziy
6f42fb105f
fix(cli): nodes list uses node.list as primary source to fix k8s pairing store inconsistency
...
`nodes list` called node.pair.list as the primary data source, which
returns an empty result in environments where the pairing store (file/DB)
is not shared between the gateway and the node host (e.g. k8s volumes,
Docker). This caused `nodes list` to show 'Paired: 0' while
`nodes status` (which calls node.list) correctly showed the paired node.
Fix: make `nodes list` use node.list as the authoritative source and
node.pair.list as a secondary enrichment source. This aligns both
commands to show consistent results regardless of pairing store availability.
Fixes : #50847
2026-03-20 22:26:09 +08:00
ziy
002011527c
fix(agents): Ollama provider always returns synthetic auth when no config exists
...
When a user sets models.primary = "ollama/..." without running the
provider setup wizard, the provider config entry does not exist in
models.providers. The previous resolveSyntheticLocalProviderAuth()
returned null early because providerConfig was undefined, causing the
auth resolver to throw "No API key found for provider ollama".
This regression (v2026.3.13) made it impossible to use Ollama local
models via direct config without interactive setup.
Fix: check for known local providers (ollama) at the top of the
function, before resolving providerConfig. For ollama, return synthetic
auth regardless of config state.
Fixes : #50759
2026-03-20 20:52:04 +08:00
caesargattuso
57f1cf66ad
fix(gateway): skip seq-gap broadcast for stale post-lifecycle events ( #43751 )
...
* fix: stop stale gateway seq-gap errors (#43751 ) (thanks @caesargattuso)
* fix: keep agent.request run ids session-scoped
---------
Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-03-20 14:56:54 +05:30
Vincent Koc
0fae764f10
test(plugins): use sync jiti regression path
2026-03-20 01:12:05 -07:00
Vincent Koc
95f890a8b2
test(plugins): relax jiti error string assertions
2026-03-20 01:07:29 -07:00
Vincent Koc
f0a0a6a5b4
test(plugins): isolate git path alias regression
2026-03-20 00:57:25 -07:00
Vincent Koc
68a274c7b3
fix(ci): isolate loader git-path regression env roots
2026-03-20 00:43:03 -07:00
Vincent Koc
d25f6f1833
fix(ci): restore full loader regression coverage
2026-03-20 00:38:11 -07:00
Vincent Koc
f1e012e0fc
fix(telegram): serialize thread binding persists
2026-03-20 00:30:11 -07:00
Vincent Koc
9f8af3604d
fix(ci): split slow plugin loader regression test
2026-03-20 00:28:04 -07:00
Vincent Koc
faa8e27291
fix(ci): share compat matrix and restore skill python gating
2026-03-20 00:27:50 -07:00
Vincent Koc
dfc157e1a2
test(plugins): trim loader regression harness churn
2026-03-20 00:06:12 -07:00
Vincent Koc
3a72d2d6de
fix(config): split config doc baseline coverage
2026-03-20 00:06:12 -07:00
Vincent Koc
e56dde815e
fix(web-search): split runtime provider resolution
2026-03-20 00:06:12 -07:00
Vincent Koc
397b0d85f5
fix(tui): split assistant error formatting seam
2026-03-20 00:06:12 -07:00
Vincent Koc
a562fb5550
refactor(web-search): share scoped provider config plumbing
2026-03-19 23:52:53 -07:00
Vincent Koc
96f21c37b4
fix(tools): persist remaining doctor compatibility aliases
2026-03-19 23:42:53 -07:00
Vincent Koc
6c7526f8a0
fix(web-search): share unsupported filter handling
2026-03-19 23:41:02 -07:00
Vincent Koc
9af42c6590
fix(config): persist doctor compatibility migrations
2026-03-19 23:28:11 -07:00
Shakker
5036ed2699
fix(secrets): cover tavily in runtime coverage tests
2026-03-20 06:13:27 +00:00
Ayaan Zaidi
2afd65741c
fix: preserve talk provider and speaking state
2026-03-20 11:08:21 +05:30
Ayaan Zaidi
47e412bd0b
fix(review): preserve talk directive overrides
2026-03-20 11:01:24 +05:30
Ayaan Zaidi
4a0341ed03
fix(review): address talk cleanup feedback
2026-03-20 11:01:24 +05:30
Ayaan Zaidi
4ac355babb
feat(gateway): add talk speak rpc
2026-03-20 11:01:24 +05:30
Ayaan Zaidi
84ee6fbb76
feat(tts): add in-memory speech synthesis
2026-03-20 11:01:24 +05:30
Lakshya Agarwal
b36e456b09
feat: add Tavily as a bundled web search plugin with search and extract tools ( #49200 )
...
Merged via squash.
Prepared head SHA: ece9226e886004f1e0536dd5de3ddc2946fc118c
Co-authored-by: lakshyaag-tavily <266572148+lakshyaag-tavily@users.noreply.github.com>
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Reviewed-by: @gumadeiras
2026-03-20 01:06:26 -04:00
Shakker
03c86b3dee
fix(secrets): mock bundled web search providers in runtime tests
2026-03-20 03:48:13 +00:00
Shakker
218f8d74b6
fix(secrets): use bundled web search fast path during reload
2026-03-20 03:28:08 +00:00
Shakker
2d24f35016
fix(plugins): add bundled web search provider metadata
2026-03-20 03:28:08 +00:00
Gustavo Madeira Santana
f62be0ddcf
Matrix: guard private-network homeserver access
2026-03-19 23:24:50 -04:00
Gustavo Madeira Santana
ab97cc3f11
Matrix: add allowBots bot-to-bot policy
2026-03-19 23:24:50 -04:00
Josh Avant
de9f2dc227
Gateway: harden OpenResponses file-context escaping ( #50782 )
2026-03-19 22:02:13 -05:00
Jinhao Dong
4f00b3b534
feat(xiaomi): add MiMo V2 Pro and MiMo V2 Omni models, switch to OpenAI completions API ( #49214 )
...
Merged via squash.
Prepared head SHA: 6b672f36cf0bd4296d3bb2d1b2e6e50d1bb601f1
Co-authored-by: DJjjjhao <50042705+DJjjjhao@users.noreply.github.com>
Co-authored-by: grp06 <1573959+grp06@users.noreply.github.com>
Reviewed-by: @grp06
2026-03-19 19:26:47 -07:00
Harold Hunt
65594f972c
Gateway: unify plugin interactive callback state ( #50722 )
...
Merged via squash.
Prepared head SHA: 7a2740b18a336bc3a58c23cff08953a5c06a6078
Co-authored-by: huntharo <5617868+huntharo@users.noreply.github.com>
Co-authored-by: huntharo <5617868+huntharo@users.noreply.github.com>
Reviewed-by: @huntharo
2026-03-19 22:09:38 -04:00
Shakker
a19f058145
fix(test): mock zalouser runtime in outbound payload contract
2026-03-20 01:45:20 +00:00
Shakker
55e12bd236
fix(plugins): stabilize bundle MCP path assertions
2026-03-20 01:11:58 +00:00
Shakker
c95d1c101b
fix(cron): avoid async context token warmup in isolated runs
2026-03-20 01:11:58 +00:00
joshavant
6309b1da6c
Gateway: preserve interactive pairing visibility on supersede
2026-03-19 19:57:45 -05:00
Vincent Koc
d518260bb8
fix(status): slim json startup path
2026-03-19 16:55:13 -07:00
Harold Hunt
41628770f5
Tests: trim command secret gateway imports ( #50663 )
...
Merged via squash.
Prepared head SHA: 7f64fd3ee17c3a7e5b7f26e618816497e94c5243
Co-authored-by: huntharo <5617868+huntharo@users.noreply.github.com>
Co-authored-by: huntharo <5617868+huntharo@users.noreply.github.com>
Reviewed-by: @huntharo
2026-03-19 19:53:02 -04:00
Vincent Koc
0f69b5c11a
fix(status): keep startup paths free of plugin warmup
2026-03-19 16:26:58 -07:00
Josh Avant
8e132aed6e
Hardening: refresh stale device pairing requests and pending metadata ( #50695 )
...
* Docs: clarify device pairing supersede behavior
* Device pairing: supersede pending requests on auth changes
2026-03-19 18:26:06 -05:00
Vincent Koc
9486f6e379
fix(build): suppress singleton smoke deprecation noise
2026-03-19 16:07:53 -07:00
Vincent Koc
f3971571fe
fix(plugins): fail strict bootstrap on plugin load errors
2026-03-19 16:07:53 -07:00
Vincent Koc
009f494cd9
fix(plugin-sdk): stop library import warmup side effects
2026-03-19 16:07:53 -07:00
Tak Hoffman
192151610f
fix(status): skip plugin compatibility scan on empty json path
2026-03-19 18:06:03 -05:00
Vincent Koc
d80b83e8e3
fix(plugins): scope sdk aliases to loaded module paths
2026-03-19 15:25:54 -07:00
Josh Lehman
35bc00c55b
test: reduce low-memory Vitest pressure ( #50652 )
...
* test: reduce low-memory Vitest pressure
Reuse the bundled config baseline inside doc-baseline tests, keep that hotspot out of the shared unit-fast lane, and make OPENCLAW_TEST_PROFILE=low default to process forks instead of vmForks.
* test: keep low-profile vmForks in CI
Scope the low-profile forks fallback to local runs so the existing CI contracts lane keeps its current pool behavior.
2026-03-19 15:02:48 -07:00
Vincent Koc
5841e3b493
fix(ci): split redact snapshot schema coverage
2026-03-19 14:49:01 -07:00
Vincent Koc
aeb2adf240
fix(ci): split redact snapshot restore coverage
2026-03-19 14:49:01 -07:00