mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-22 10:25:20 -06:00
69e4fbbeb5
When two config writes raced, the loser printed a bare "config changed since last load" and exited 1 — no statement that its write was abandoned and no hint that re-running works. The gateway sibling already says "re-run config.get and retry". Format ConfigMutationConflictError at handleConfigMutationError, the single CLI boundary, so the low-level throw sites keep serving gateway and programmatic callers unchanged. Dry-run JSON now reports kind "conflict" instead of mislabelling a concurrency conflict as a schema error. Concurrency control itself is unchanged: baseHash pinning and the retry loop stay exactly as they were.