Commit graph

85 commits

Author SHA1 Message Date
Peter Steinberger
7f3f108521
refactor(config): migrate plugin config access 2026-04-27 12:35:58 +01:00
Vincent Koc
1fc5b2b703
feat(migrations): add plugin-owned Hermes import
* feat: add migration providers

* feat: offer Hermes migration during onboarding

* feat(hermes): map imported config surfaces

* feat(onboard): require fresh migration imports

* docs(cli): clarify Hermes import coverage

* chore(migrations): rename Hermes importer package

* chore(migrations): rewire Hermes importer id

* fix(migrations): redact migration JSON details

* fix(hermes): use provider runtime for config imports

* test(hermes): cover missing source planning

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-04-27 00:34:29 -07:00
Shakker
8344fae387
fix: preserve provider-scoped model options 2026-04-26 11:36:32 +01:00
Shakker
2f81c5f580
fix: keep onboarding setup paths cold 2026-04-26 11:36:32 +01:00
Shakker
26b203e573
fix: keep onboarding model prompts scoped 2026-04-26 11:36:32 +01:00
Peter Steinberger
0b301e9af4
fix: avoid eager channel setup loading 2026-04-26 10:27:35 +01:00
Ayaan Zaidi
6cc74595e3 refactor(configure): distill fallback selection merge 2026-04-26 11:39:17 +05:30
Ruben Cuevas
1377baee1a fix(configure): clear deselected model fallbacks 2026-04-26 11:39:17 +05:30
Vincent Koc
194818960c
fix(providers): keep setup flow on cold metadata 2026-04-25 22:52:21 -07:00
Peter Steinberger
e918e5f75c
fix: hide runtime context from submitted prompts 2026-04-26 00:57:04 +01:00
Vincent Koc
793b58b3f1
fix(plugins): add doctor registry repair 2026-04-25 12:45:43 -07:00
Vincent Koc
cf858258c7
feat(plugins): surface manifest provider setup choices (#71240) 2026-04-24 13:14:49 -07:00
Sathvik-1007
8d57d745cf fix: wizard no clobber model.primary on re-run
two bugs. both squash user model choice silently.

bug 1: applyDefaultModel() unconditional primary: model overwrite.
wizard calls with setDefaultModel=true, provider returns its default
(e.g. openrouter/auto), bam user primary gone. fix: existingPrimary ?? model.

bug 2: applyModelFallbacksFromSelection() phantom primary injection.
when no primary configured, resolvedKey (hardcoded default) written as
primary via nullish coalescing fallback. fix: conditional spread — only
include primary key when one actually existed.

tests for both. closes #70696
2026-04-24 19:55:20 +01:00
Peter Steinberger
bc0f54bd04
fix(models): separate Codex harness from model choices (#71193)
* fix: separate Codex harness from model choices

* docs: note Codex harness model choice fix
2026-04-24 19:40:23 +01:00
Peter Steinberger
f7a426d516
fix: stage WhatsApp runtime deps before setup login 2026-04-24 17:04:31 +01:00
Peter Steinberger
73288c20bd
fix(channels): defer setup runtime deps until login 2026-04-24 06:40:25 +01:00
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