The npm-installed Claude Code on spaceship-earth updated itself from the pinned 2.1.304 to 2.1.308 right after its first login, so every play would downgrade it and it would update again. New multica_claude_settings is merged (recursively, not templated, since Claude writes the file too) into ~multica/.claude/settings.json. provision-agent-host.yml sets DISABLE_AUTOUPDATER=1 and mirrors the model mix already live on haunted-mansion: model sonnet, subagents haiku, MAX_THINKING_TOKENS 4000, BASH_MAX_OUTPUT_LENGTH 20000, thinking off. spaceship-earth: back on 2.1.304 and staying there; second run changed=0. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
35 lines
1.2 KiB
YAML
35 lines
1.2 KiB
YAML
---
|
|
- name: Claude settings | Ensure ~/.claude exists
|
|
ansible.builtin.file:
|
|
path: "{{ multica_user_home }}/.claude"
|
|
state: directory
|
|
owner: "{{ multica_user }}"
|
|
group: "{{ multica_group }}"
|
|
mode: "0700"
|
|
become: true
|
|
|
|
- name: Claude settings | Read the current settings
|
|
ansible.builtin.slurp:
|
|
src: "{{ multica_user_home }}/.claude/settings.json"
|
|
register: _multica_claude_settings_raw
|
|
failed_when: false
|
|
become: true
|
|
|
|
- name: Claude settings | Merge the declared keys over them
|
|
ansible.builtin.set_fact:
|
|
_multica_claude_settings_current: >-
|
|
{{ (_multica_claude_settings_raw.content | b64decode | from_json)
|
|
if _multica_claude_settings_raw.content is defined else {} }}
|
|
|
|
- name: Claude settings | Write them back if anything differs
|
|
ansible.builtin.copy:
|
|
dest: "{{ multica_user_home }}/.claude/settings.json"
|
|
content: "{{ _multica_claude_settings_current | combine(multica_claude_settings, recursive=true) | to_nice_json }}\n"
|
|
owner: "{{ multica_user }}"
|
|
group: "{{ multica_group }}"
|
|
mode: "0600"
|
|
become: true
|
|
when: >-
|
|
_multica_claude_settings_current | combine(multica_claude_settings, recursive=true)
|
|
!= _multica_claude_settings_current
|