Vincent Koc
f67e48e6a0
feat(onboarding): auto-install missing provider and channel plugins
...
Squash-merge PR 70012.
2026-04-22 22:05:00 -07:00
Peter Steinberger
819ff0463a
fix(config): protect model config merges
2026-04-22 23:18:05 +01:00
Garming
a43be09dca
fix(doctor): skip token generation for trusted-proxy and none auth modes ( #59055 )
...
runGatewayAuthHealth() only excluded 'password' and 'token' (with existing
token) from its needsToken check. When gateway.auth.mode was set to
'trusted-proxy' or 'none', doctor --fix would incorrectly:
1. Flag the config as 'missing a token'
2. Prompt to generate a gateway token
3. Overwrite auth.mode to 'token' in openclaw.json
This silently broke trusted-proxy deployments (common in SaaS/reverse-proxy
setups) by replacing the delegated auth mode with token auth.
The fix aligns runGatewayAuthHealth() with the existing
hasExplicitGatewayInstallAuthMode() in auth-install-policy.ts, which
already correctly returns false for 'password', 'none', and 'trusted-proxy'.
Co-authored-by: wujiaming88 <wujiaming88@example.com >
2026-04-22 22:38:27 +08:00
Peter Steinberger
e20a5eeddb
refactor: keep legacy web search config in doctor
2026-04-22 06:11:49 +01:00
Peter Steinberger
94f670b893
refactor: use generic web search credential hooks
2026-04-22 06:11:49 +01:00
Peter Steinberger
f9b20c7d17
fix(plugins): repair bundled runtime deps during doctor
2026-04-22 03:40:37 +01:00
Gustavo Madeira Santana
66add9fcd9
perf(cli): lazy-load doctor plugin paths ( #69840 )
...
Merged via squash.
Prepared head SHA: ebf93ad913
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-21 18:17:19 -04:00
Gustavo Madeira Santana
24db09a19b
fix(cli): keep channel status checks off plugin runtimes ( #69479 )
...
Merged via squash.
Prepared head SHA: 63f6e416a9
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-21 13:53:08 -04:00
Patrick Erichsen
4fdd005b88
onboard: plain-prose security disclaimer, searchable pickers for search/plugins/model-provider ( #69760 )
2026-04-21 08:54:00 -07:00
Patrick Erichsen
9fd0f7cd34
wizard: support searchable select, restore hint in search haystack
2026-04-21 06:08:43 +01:00
Patrick Erichsen
7752e3b30f
onboard: clearer security disclaimer, loading spinners, api key placeholder
2026-04-21 06:08:43 +01:00
Peter Steinberger
f48f0957f5
test: share channel setup fixtures
2026-04-20 19:32:19 +01:00
Peter Steinberger
47d42606ac
fix: repair bundled plugin runtime deps on startup
2026-04-20 17:47:55 +01:00
Ayaan Zaidi
451b37ece1
fix(doctor): report device pairing auth drift
2026-04-20 11:36:25 +05:30
Peter Steinberger
8bfa06e992
refactor: enforce plugin-owned channel boundaries
2026-04-18 22:48:27 +01:00
Peter Steinberger
ed463f6de0
chore: remove unused flow and daemon helpers
2026-04-18 21:16:19 +01:00
Peter Steinberger
1f1ff0567a
refactor(lint): reduce map spread patterns
2026-04-18 19:27:43 +01:00
Vincent Koc
5edf876a5e
test(auth): add codex oauth red-blue coverage
2026-04-17 14:14:03 -07:00
Gustavo Madeira Santana
462074c4c2
Fix check type errors
2026-04-17 14:35:36 -04:00
Gustavo Madeira Santana
9bcf8f8243
Configure: defer channel status until selection ( #68007 )
...
Merged via squash.
Prepared head SHA: 24cafcd5fe
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-17 13:34:13 -04:00
Peter Steinberger
48aa076d12
perf: optimize remaining core tests
2026-04-17 16:05:10 +01:00
Peter Steinberger
a861da41b5
test: trim CLI and doctor hotspots
2026-04-17 16:05:09 +01:00
Peter Steinberger
59b98334f6
test: narrow hotspot boundaries
2026-04-17 01:10:48 +01:00
darkamenosa
58a9905976
fix(onboard): normalize channel setup metadata ( #66706 )
...
thanks @darkamenosa
2026-04-14 19:11:52 +01:00
Peter Steinberger
6c45d78e07
fix(channels): await external plugin preload
2026-04-12 16:08:03 +01:00
Vincent Koc
74e7b8d47b
fix(cycles): bulk extract leaf type surfaces
2026-04-11 13:26:50 +01:00
Peter Steinberger
9e0d358695
refactor: simplify runtime conversions
2026-04-11 01:23:34 +01:00
Peter Steinberger
fc50e23262
refactor: remove redundant model picker conversions
2026-04-10 21:57:01 +01:00
Peter Steinberger
04c8026d03
chore: enable no-unnecessary-type-arguments
2026-04-10 20:14:49 +01:00
Peter Steinberger
253982d05f
test: keep command setup hook tests narrow
2026-04-10 17:08:38 +01:00
Peter Steinberger
444cdd055d
fix: stabilize main test gates
2026-04-10 12:14:36 +01:00
Peter Steinberger
feb3c7f823
fix(test): repair rebased gate failures
2026-04-10 10:12:07 +01:00
zsx
1fede43b94
fix: exclude workspace shadows from channel setup catalog lookups
2026-04-09 22:46:39 +08:00
B
5050017543
fix(doctor): warn when stale Codex overrides shadow OAuth ( #40143 )
...
* fix(doctor): warn on stale codex provider overrides
* test(doctor): cover stored codex oauth warning path
* fix: narrow codex override doctor warning (#40143 ) (thanks @bde1)
* test: sync doctor e2e mocks after health-flow move (#40143 ) (thanks @bde1)
---------
Co-authored-by: bde1 <bde1@users.noreply.github.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-04-08 03:07:33 +01:00
Peter Steinberger
8822f779d9
fix: restore ci after trim reader dedupe
2026-04-07 06:42:34 +01:00
Peter Steinberger
1dea64ab99
refactor: dedupe provider reader helpers
2026-04-07 06:42:34 +01:00
Peter Steinberger
8a40cd7ed4
refactor: dedupe core helper error formatting
2026-04-07 02:03:34 +01:00
Peter Steinberger
672fcb187d
refactor(plugins): move provider seams to owning extensions
2026-04-06 16:54:18 +01:00
Peter Steinberger
0c5e6037b0
fix(openai): clarify auth routes in picker and docs
2026-04-06 16:14:51 +01:00
Peter Steinberger
d378a504ac
fix: restore claude cli guidance and doctor behavior
2026-04-06 14:21:11 +01:00
Peter Steinberger
ef923805f5
Revert "refactor(cli): remove custom cli backends"
...
This reverts commit 6243806f7b .
2026-04-06 13:40:42 +01:00
Peter Steinberger
d7f75ee087
refactor: hide qa channels with exposure metadata
2026-04-05 23:21:56 +01:00
Peter Steinberger
6243806f7b
refactor(cli): remove custom cli backends
2026-04-05 18:04:48 +01:00
Vincent Koc
8143b9a23e
fix(doctor): add claude-cli health checks
2026-04-05 15:03:48 +01:00
Peter Steinberger
d655a8bc76
feat: add Fireworks provider and simplify plugin setup loading
2026-04-05 07:43:14 +01:00
Peter Steinberger
f3aad63f4e
style(providers): normalize import and wrap formatting
2026-04-04 12:19:08 +01:00
Mingxuan
c4a903319e
fix(model-picker): fallback to unfiltered list when provider filter yields empty results
2026-04-04 19:27:26 +09:00
Mingxuan
360fdaa4f2
fix(model-picker): use matchesPreferredProvider for plan variant matching
2026-04-04 19:27:26 +09:00
Mingxuan
792558de01
fix(model-picker): use preferredProvider presence for filtering instead of catalog check
...
When auth choice explicitly sets a preferred provider (e.g., volcengine-api-key or byteplus-api-key), the model picker should always filter by that provider. Previously, it relied on providerIds.includes(preferredProvider), which could be false if the catalog hadn't loaded that provider's models yet due to a race condition between auth choice setup and catalog loading.
This ensures that selecting a provider via auth choice consistently filters the model list to only that provider's models, rather than showing all providers.
2026-04-04 19:27:26 +09:00
Vincent Koc
0609bf8581
feat(memory): harden dreaming and multilingual memory promotion ( #60697 )
...
* feat(memory): add recall audit and doctor repair flow
* refactor(memory): rename symbolic scoring and harden dreaming
* feat(memory): add multilingual concept vocabulary
* docs(changelog): note dreaming memory follow-up
* docs(changelog): shorten dreaming follow-up entry
* fix(memory): address review follow-ups
* chore(skills): tighten security triage trust model
* Update CHANGELOG.md
2026-04-04 15:48:13 +09:00