Skip to content

fix(controller): preserve model-switch openclaw reasoning across Manager reconcile - #1129

Open
XbaoWu wants to merge 2 commits into
agentscope-ai:mainfrom
XbaoWu:fix/model-switch-push-openclaw-minio
Open

fix(controller): preserve model-switch openclaw reasoning across Manager reconcile#1129
XbaoWu wants to merge 2 commits into
agentscope-ai:mainfrom
XbaoWu:fix/model-switch-push-openclaw-minio

Conversation

@XbaoWu

@XbaoWu XbaoWu commented Aug 2, 2026

Copy link
Copy Markdown

Fixes #1128

Stacked on #1127 (base: fix/copaw-model-switch-no-reasoning). Related write-path fix: #1126 / #1127.

Summary

  • After model-switch (or a direct edit) set openclaw.json model reasoning: false, Controller Manager reconcile regenerated config with default reasoning: true and overwrote the shared live workspace / MinIO agents/manager/openclaw.json within ~1–4s.
  • PutManagerConfig / UpdateManagerGroupAllowFrom now load existing openclaw local-first (live Manager workspace mount), then OSS.
  • New mergeModelReasoning preserves per-model reasoning from the existing config across regenerate (live/hot-update wins over CR / AGENTTEAMS_MODEL_REASONING defaults until the workspace is updated again).
  • model-switch best-effort pushes openclaw.json to MinIO manager/ + agents/manager/ (the latter often 403 for Manager credentials; WARN-only — persistence relies on Controller merge from live workspace).

Test plan

  • Controller unit tests (Docker golang:1.25-bookworm): TestPutManagerConfig_PreservesModelReasoning, TestPutManagerConfig_PrefersLocalReasoningOverStaleOSS, TestUpdateManagerGroupAllowFrom_PrefersLocalConfig (+ existing PutManagerConfig cases)
  • Rebuild / redeploy Controller with this change (script-only Manager update is not enough)

Notes

  • Precedence: live workspace reasoning wins over the next Controller regenerate. To flip via CR/env alone, re-run model-switch (or edit live openclaw) so the workspace matches.
  • Does not grant Manager write ACL on agents/manager/; that remains Controller SoT.

XbaoWu added 2 commits August 2, 2026 21:23
CoPaw ignored --no-reasoning while OpenClaw set reasoning=false. Persist
model-level generate_kwargs on the modern provider store, sync
openclaw.json as bridge SoT, and map reasoning:false in the CoPaw bridge.
Controller PutManagerConfig was regenerating openclaw.json with
reasoning=true and writing it to the shared Manager workspace, undoing
model-switch within seconds. Prefer the live workspace when merging and
preserve per-model reasoning; model-switch best-effort pushes openclaw
to MinIO. Document that live reasoning wins over CR/env regenerate and
that agents/manager push may 403 without Controller ACL.
@gemini-code-assist

Copy link
Copy Markdown

Caution

The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant