Migration and Upgrade Guide¶
How to Upgrade¶
# 1. Pre-upgrade check
dot doctor
# 2. Pull latest changes
cd ~/.dotfiles && git pull
# 3. Apply with diagnostics
dot apply
# 4. Post-upgrade verification
dot doctor
Version History¶
v0.2.501 (Current)¶
- Wallpaper-driven theme engine — themes auto-generated from wallpapers via K-Means in CIELAB color space (no hand-crafted themes)
- Dynamic HEIC support — custom wallpapers ship as Apple-compatible single-file dynamic HEIC; macOS auto-switches dark/light
- System wallpaper discovery — pulls themes from
/System/Library/Desktop Pictures/(macOS) and/usr/share/backgrounds/(Linux) dot theme rebuild— parallel K-Means generation (4 jobs), mtime-based caching, orphan cleanup- WCAG AAA enforcement — all generated themes pass 7:1 contrast for fg/bg, accent_text/accent, c15/bg
- macOS accent from wallpaper hue —
dot-theme-syncreadsmacos_accentfrom themes.toml and forces UI refresh - HEIC → PNG auto-conversion on Linux for non-HEIC-aware desktops
- Build artifact redirection — Cargo, Go, pip, uv, Zig caches →
/tmp/builds/(cleared on reboot) - CI dedup —
ci-enforced.ymlreusesreusable-shell-lint.ymlandreusable-test-suite.yml
v0.2.500¶
- Added AI CLIs: Autohand Code, Mistral Vibe, Qwen Code, ZAI
- Removed Cline CLI (broken upstream dependency)
- Interactive mise installer for missing AI providers
- Mise-first provisioning for all AI tools
- User extension points: rc.d.local, modules.d, custom dot commands
- SSH config hardening template
- Ghostty and WezTerm terminal configs
- Modern CLI tools: delta, fd, dust, bottom, lazygit, lazydocker, tldr
- Auto-prewarm after dot apply
- Expanded Atuin history filters
v0.2.497¶
- Theme system with Catppuccin integration
- Linux desktop parity (Niri, Waybar, Fuzzel)
- AI tooling expansion (Kiro, OpenCode)
- Coverage contracts and QA docs
v0.2.496¶
- Verified chezmoi installer
- Shell startup optimization
- Property-based tests
Breaking Changes¶
If you are upgrading from v0.2.501 or earlier, note these changes:
themes.tomlis now generated — do not hand-edit. Rundot theme rebuildto regenerate from wallpapers- Theme names changed — old hand-crafted names (e.g.
catppuccin-mocha,macos-tahoe-darkwith hardcoded palettes) are replaced by wallpaper-derived names. The picker only shows paired wallpaper themes. - Wallpaper format — custom wallpapers should be dynamic HEIC (single file, both appearances). Use
bash scripts/theme/merge-wallpaper.shto merge separate dark/light pairs. - Build caches relocated — Cargo/Go/pip/uv/Zig now write to
/tmp/builds/. Restart your shell after upgrade somise [env]picks up the new paths.
If you are upgrading from v0.2.501 or earlier:
- Cline CLI removed — if you used
dot cline, switch to a different AI CLI - AI tools now install through mise — run
mise installto set up AI providers - SSH config hardening — check
~/.ssh/configafter apply, as it may change your current settings
Rollback¶
If something goes wrong after an upgrade:
# Quick rollback to previous state
dot rollback
# Rollback to specific backup
dot rollback status # List available backups
dot rollback rollback-to 3 # Restore backup #3
# Git-based rollback
cd ~/.dotfiles
git log --oneline -10 # Find last good commit
git reset --hard HEAD~1 # Reset to previous commit
dot apply # Re-apply
Before You Upgrade¶
- [ ] Run
dot doctor— make sure everything is healthy - [ ] Run
dot diff— review any pending changes - [ ] Back up custom configs:
dot rollback backup - [ ] Read CHANGELOG.md for breaking changes
After You Upgrade¶
- [ ] Run
dot doctor— make sure the upgrade worked - [ ] Run
dot prewarm— rebuild shell caches - [ ] Restart your shell:
exec zsh - [ ] Test AI tools:
dot ai