mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-27 21:07:01 -06:00
ce4a680544
* feat: make model persistence scope explicit * fix: keep unauthorized model directives as plain text An unauthorized sender's inline directives are cleared to plain text before they are acted on, but the persistent write target was derived from the directives as they arrived. An unauthorized `/model <provider/model> -a` or `-g` therefore reached the owner-authority error return instead of the plain-text path every other directive takes. Derive the target, the authority flag, and the persist flag after the clearing. Authorized senders skip the clearing, so their behavior is unchanged; the only closure that captures the target is invoked well after the new declaration site. Covers both persistent flags with a regression test that fails on the prior head with "Agent and global model defaults require owner authority or operator.admin scope." and passes here. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * feat(models): make model selection scope configurable Preserve current model-selection defaults when the optional scope preference is unset. Add explicit session, agent, and global overrides without broadening config-write authority. Co-authored-by: Marvinthebored <peter@lindsey.jp> * test(models): simplify scope expectation fixtures --------- Co-authored-by: Marvinthebored <peter@lindsey.jp> Co-authored-by: Claude Opus 5 <noreply@anthropic.com> Co-authored-by: Peter Steinberger <steipete@gmail.com>