- Add orb (192.168.122.183) and sun (192.168.122.184) to inventory
- Create host_vars for orb and sun (fresh install, brew_packages: [])
- Add brew_packages to zap host_vars (gogcli, himalaya, kubernetes-cli, opencode)
- customize.yml: parameterize brew_packages via host_vars, add /mnt/swarm-common
virtiofs+bindfs mount for all VMs, install bindfs, fix Homebrew install
- provision-vm.yml: remove become requirement; use virsh vol commands for all
disk/image operations (no sudo needed)
- roles/vm/tasks/main.yml: rewrite disk provisioning to use virsh vol-create-as
and vol-upload; fix vol name quoting for names with spaces; use qcow2 backing
- domain.xml.j2: always include swarm-common virtiofs share; make main share
conditional on vm_virtiofs_source/tag
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Installs Homebrew as the openclaw user (idempotent via creates guard),
adds it to PATH in .bashrc, then installs the four leaf packages present
on zap: gogcli, himalaya, kubernetes-cli, opencode.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds packages installed on zap that were absent from the playbook:
btop, byobu, fd-find, ffmpeg, gh, mtr-tiny, screen, whois, yt-dlp
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add *.log to .gitignore so litellm-maintenance.log and any future log files
are not tracked. Stage litellm-copilot-tokens/api-key.json — repo is local
access only.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add LiteLLM section to README covering: service startup, credential and
model registration (including FORCE=1 for re-runs), adding new models via
API, maintenance scripts, systemd timer, and a troubleshooting guide for
the 429/cooldown and duplicate-entry failure modes encountered in practice.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
litellm-dedup.sh: removes duplicate model DB entries (idempotent, supports
--dry-run). Root cause of duplicates was litellm-init running multiple times
before the DB was populated, causing all entries to be inserted concurrently.
litellm-health-check.sh: runs every 6 hours via systemd user timer; checks
liveness (auto-restarts container if unresponsive) and duplicate entries
(auto-dedups when DEDUP=1). Logs to litellm-maintenance.log.
Systemd units: litellm-health-check.{service,timer} installed under
~/.config/systemd/user/.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Register gpt-5.4 (OpenAI codex auth), glm-4.7-flash, and glm-5 (ZAI)
- Add early-exit guard to litellm-init-models.sh: skips registration if
gpt-4o already exists in the DB, preventing duplicate entries on re-runs;
set FORCE=1 to bypass and add any missing models
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
e2scrub_all.timer runs Sundays at 03:10. The previous 03:30 reboot
window gave only 20 minutes. 04:00 gives a safe 50-minute buffer
after both the 03:00 config backup and the filesystem scrub.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Enable unattended-upgrades with auto-reboot at 03:30 (after the
03:00 config backup). Includes kernel package cleanup and removal
of unused dependencies.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>