@sebastienrousseau/dotfiles 0.2.499 → 0.2.500
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +375 -0
- package/LICENSE +1283 -0
- package/README.md +284 -0
- package/docs/.vitepress/reports/localization-readability-audit.md +69 -0
- package/docs/AI.md +102 -0
- package/docs/COPYRIGHT +4 -3
- package/docs/NAMING_CONVENTIONS.md +95 -0
- package/docs/README.md +78 -0
- package/docs/adr/ADR-001-ci-cd-pipeline.md +101 -0
- package/docs/adr/ADR-002-shell-performance.md +121 -0
- package/docs/adr/ADR-003-security-first.md +140 -0
- package/docs/adr/ADR-004-cli-architecture.md +157 -0
- package/docs/adr/ADR-005-chezmoi-choice.md +89 -0
- package/docs/adr/ADR-006-shell-selection.md +115 -0
- package/docs/adr/ADR-007-multi-shell-parity.md +53 -0
- package/docs/adr/ADR-008-alias-system-architecture.md +85 -0
- package/docs/adr/README.md +32 -0
- package/docs/architecture/ARCHITECTURE.md +113 -0
- package/docs/architecture/INTEROP.md +36 -0
- package/docs/architecture/REPO_LAYOUT.md +237 -0
- package/docs/architecture/WALKTHROUGH.md +82 -0
- package/docs/architecture/fleet-deployment.md +73 -0
- package/docs/archive/EUXIS_2026_REVIEW.md +119 -0
- package/docs/archive/LEGACY_ROADMAP.md +142 -0
- package/docs/archive/MILESTONE_v0.2.493.md +43 -0
- package/docs/{PLAN.md → archive/PLAN.md} +4 -4
- package/docs/archive/REPO_AUDIT.md +23 -0
- package/docs/guides/INSTALL.md +140 -0
- package/docs/guides/NEOVIM_IDE_GUIDE.md +52 -0
- package/docs/guides/THEMING.md +222 -0
- package/docs/guides/TROUBLESHOOTING.md +148 -0
- package/docs/guides/WSL2_NIX_TROUBLESHOOTING.md +723 -0
- package/docs/index.md +39 -0
- package/docs/interop/A2A.md +32 -0
- package/docs/manual/00-introduction.md +85 -0
- package/docs/manual/01-concepts/01-architecture.md +134 -0
- package/docs/manual/01-concepts/02-trust-model.md +178 -0
- package/docs/manual/01-concepts/03-theme-engine.md +182 -0
- package/docs/manual/01-concepts/04-fleet.md +142 -0
- package/docs/manual/01-concepts/05-self-healing.md +197 -0
- package/docs/manual/02-tutorials/01-first-install.md +192 -0
- package/docs/manual/02-tutorials/02-add-wallpaper.md +211 -0
- package/docs/manual/02-tutorials/03-create-profile.md +238 -0
- package/docs/manual/02-tutorials/04-encrypt-secret.md +275 -0
- package/docs/manual/02-tutorials/05-deploy-fleet.md +279 -0
- package/docs/manual/03-reference/01-dot-cli.md +413 -0
- package/docs/manual/03-reference/02-config-files.md +259 -0
- package/docs/manual/03-reference/03-environment.md +120 -0
- package/docs/manual/03-reference/04-templates.md +184 -0
- package/docs/manual/03-reference/05-feature-flags.md +118 -0
- package/docs/manual/04-cookbook/01-recipes.md +281 -0
- package/docs/manual/04-cookbook/02-troubleshooting.md +319 -0
- package/docs/manual/04-cookbook/03-faq.md +167 -0
- package/docs/manual/05-appendices/A-platform-matrix.md +97 -0
- package/docs/manual/05-appendices/B-security-checklist.md +78 -0
- package/docs/manual/05-appendices/C-glossary.md +36 -0
- package/docs/manual/05-appendices/D-bibliography.md +54 -0
- package/docs/manual/05-appendices/E-license.md +34 -0
- package/docs/manual/_toc.yml +58 -0
- package/docs/manual/command-index.md +58 -0
- package/docs/manual/concept-index.md +164 -0
- package/docs/operations/ATTESTATION.md +39 -0
- package/docs/operations/MAINTENANCE.md +59 -0
- package/docs/operations/MIGRATION.md +101 -0
- package/docs/operations/OPERATIONS.md +164 -0
- package/docs/operations/RELIABILITY.md +116 -0
- package/docs/{ROADMAP.md → operations/ROADMAP.md} +22 -22
- package/docs/operations/TESTING.md +195 -0
- package/docs/operations/TRACEABILITY.md +31 -0
- package/docs/operations/TRUSTED_AGENT_WORKSTATION.md +61 -0
- package/docs/operations/VERSION_SYNC.md +344 -0
- package/docs/reference/ALIASES.md +124 -0
- package/docs/reference/ALIASES_CHEATSHEET.md +28 -0
- package/docs/reference/ALIASES_DEPRECATIONS.md +9 -0
- package/docs/reference/FEATURES.md +62 -0
- package/docs/reference/FONTS.md +108 -0
- package/docs/reference/PROFILES.md +65 -0
- package/docs/reference/SCREENSHOTS.md +117 -0
- package/docs/reference/SCRIPTS.md +67 -0
- package/docs/reference/SUPPORT_MATRIX.md +74 -0
- package/docs/reference/THEMES.md +113 -0
- package/docs/reference/TOOLS.md +105 -0
- package/docs/reference/UTILS.md +151 -0
- package/docs/security/AI_ACT_COMPLIANCE.md +90 -0
- package/docs/security/AUTOMATION_SECRETS.md +22 -0
- package/docs/security/COMPLIANCE.md +453 -0
- package/docs/security/ENCRYPTION.md +52 -0
- package/docs/security/FMEA.md +155 -0
- package/docs/security/INCIDENT_RESPONSE.md +575 -0
- package/docs/security/KEYS.md +45 -0
- package/docs/security/KEY_ROTATION.md +219 -0
- package/docs/security/MCP_POLICY.md +69 -0
- package/docs/security/POLICY_RELEASES.md +33 -0
- package/docs/security/README.md +24 -0
- package/docs/security/SECRETS.md +146 -0
- package/docs/security/SECURITY.md +41 -0
- package/docs/security/SECURITY_CHECKLIST.md +44 -0
- package/docs/security/SOUP_REGISTER.md +32 -0
- package/docs/security/THREAT_MODEL.md +120 -0
- package/docs/security/VERIFICATION_VALIDATION.md +224 -0
- package/docs/themes/README.md +6 -0
- package/docs/themes/VISUAL_INTEGRITY_REPORT.md +26 -0
- package/docs/themes/hero-shot.svg +78 -0
- package/dot_config/.module-manifest.json +69 -0
- package/dot_config/ai/identity.md +20 -0
- package/dot_config/ai/patterns/architect.md +14 -0
- package/dot_config/ai/patterns/hardener.md +13 -0
- package/dot_config/ai/patterns/refactor.md +13 -0
- package/dot_config/aider/aider.conf.yml +32 -0
- package/dot_config/alacritty/alacritty.toml.tmpl +55 -0
- package/dot_config/ansible/ansible.cfg +11 -0
- package/dot_config/atuin/config.toml +40 -0
- package/dot_config/bat/config +23 -0
- package/dot_config/brave-flags.conf.tmpl +7 -0
- package/dot_config/btop/btop.conf +16 -0
- package/dot_config/btop/themes/tokyonight.theme +34 -0
- package/dot_config/bun/bunfig.toml.tmpl +33 -0
- package/dot_config/claude/mcp_servers.json +20 -0
- package/dot_config/containers/containers.conf +14 -0
- package/dot_config/curl/dot_curlrc +18 -0
- package/dot_config/dlv/config.yml +39 -0
- package/dot_config/docker/config.json +15 -0
- package/dot_config/dotfiles/agent-card.json +29 -0
- package/dot_config/dotfiles/agent-profiles.json +92 -0
- package/dot_config/dotfiles/boot/README.md +11 -0
- package/dot_config/dotfiles/grub/README.md +11 -0
- package/dot_config/dotfiles/lock/README.md +11 -0
- package/dot_config/dotfiles/mcp-lock.json +33 -0
- package/dot_config/dotfiles/mcp-policy.json +52 -0
- package/dot_config/dotfiles/mcp-registry.json +47 -0
- package/dot_config/dotfiles/model-registry.json +20 -0
- package/dot_config/dotfiles/policy-bundles.json +38 -0
- package/dot_config/dotfiles/prompt-registry.json +16 -0
- package/dot_config/dotfiles/versions.env +18 -0
- package/dot_config/duf/duf.conf +6 -0
- package/dot_config/duti/defaults.duti +5 -0
- package/dot_config/emoji/emoji.txt +34 -0
- package/dot_config/environment.d/50-ssh-agent.conf +2 -0
- package/dot_config/environment.d/90-wayland.conf +19 -0
- package/dot_config/fastfetch/config.jsonc +28 -0
- package/dot_config/firefox/user.js.tmpl +58 -0
- package/dot_config/fish/completions/dot-theme-sync.fish.tmpl +9 -0
- package/dot_config/fish/completions/dot.fish.tmpl +115 -0
- package/dot_config/fish/conf.d/000-perf-cache.fish +56 -0
- package/dot_config/fish/conf.d/aliases.fish.tmpl +77 -0
- package/dot_config/fish/conf.d/env.fish.tmpl +48 -0
- package/dot_config/fish/conf.d/functions.fish.tmpl +22 -0
- package/dot_config/fish/conf.d/init.fish.tmpl +151 -0
- package/dot_config/fish/config.fish.tmpl +44 -0
- package/dot_config/fish/fish_plugins +1 -0
- package/dot_config/fish/functions/_.fish +3 -0
- package/dot_config/fish/functions/_cached_eval.fish +58 -0
- package/dot_config/fish/functions/als.fish +46 -0
- package/dot_config/fish/functions/bg-upgrade.fish +7 -0
- package/dot_config/fish/functions/c.fish +3 -0
- package/dot_config/fish/functions/cat.fish +9 -0
- package/dot_config/fish/functions/d.fish +7 -0
- package/dot_config/fish/functions/dot.fish +34 -0
- package/dot_config/fish/functions/h.fish +3 -0
- package/dot_config/fish/functions/l.fish +7 -0
- package/dot_config/fish/functions/la.fish +7 -0
- package/dot_config/fish/functions/ll.fish +7 -0
- package/dot_config/fish/functions/log_error.fish +13 -0
- package/dot_config/fish/functions/log_info.fish +13 -0
- package/dot_config/fish/functions/lr.fish +7 -0
- package/dot_config/fish/functions/lra.fish +7 -0
- package/dot_config/fish/functions/ls.fish +7 -0
- package/dot_config/fish/functions/lt.fish +7 -0
- package/dot_config/fish/functions/lta.fish +7 -0
- package/dot_config/fish/functions/notify-run.fish +11 -0
- package/dot_config/fish/functions/q.fish +3 -0
- package/dot_config/fish/functions/silent-run.fish +7 -0
- package/dot_config/fish/functions/yy.fish +8 -0
- package/dot_config/flatpak/flatpak.list +4 -0
- package/dot_config/fontconfig/fonts.conf.tmpl +57 -0
- package/dot_config/foot/foot.ini.tmpl +33 -0
- package/dot_config/fuzzel/fuzzel.ini.tmpl +18 -0
- package/dot_config/fzf/fzf.zsh +48 -0
- package/dot_config/gem/gemrc +9 -0
- package/dot_config/gh/config.yml +12 -0
- package/dot_config/ghostty/config.tmpl +165 -0
- package/dot_config/git/allowed_signers.tmpl +18 -0
- package/dot_config/git/attributes +12 -0
- package/dot_config/git/commit-template +10 -0
- package/dot_config/git/ignore +27 -0
- package/dot_config/gnupg/gpg-agent.conf +11 -0
- package/dot_config/go/golangci.yml +118 -0
- package/dot_config/go/gopls.json +30 -0
- package/dot_config/goose/config.yaml +29 -0
- package/dot_config/gtk-3.0/gtk.css.tmpl +184 -0
- package/dot_config/gtk-3.0/settings.ini.tmpl +27 -0
- package/dot_config/gtk-4.0/gtk.css.tmpl +252 -0
- package/dot_config/gtk-4.0/settings.ini.tmpl +18 -0
- package/dot_config/htop/htoprc +20 -0
- package/dot_config/inputrc +2 -0
- package/dot_config/ipython/profile_default/ipython_config.py +19 -0
- package/dot_config/just/justfile +122 -0
- package/dot_config/k9s/config.yaml +65 -0
- package/dot_config/k9s/skins/catppuccin-mocha.yaml +116 -0
- package/dot_config/kanshi/config.tmpl +22 -0
- package/dot_config/karabiner/karabiner.json +14 -0
- package/dot_config/kitty/kitty.conf.tmpl +53 -0
- package/dot_config/lazydocker/config.yml +186 -0
- package/dot_config/lazygit/config.yml +35 -0
- package/dot_config/mako/config +47 -0
- package/dot_config/mas/masapps.txt +5 -0
- package/dot_config/micro/settings.json +3 -0
- package/dot_config/mimeapps.list +77 -0
- package/dot_config/minikube/config.json +13 -0
- package/dot_config/mise/config.toml +99 -0
- package/dot_config/mongosh/mongoshrc.js +68 -0
- package/dot_config/mpv/input.conf +47 -0
- package/dot_config/mpv/mpv.conf +47 -0
- package/dot_config/mycli/myclirc +67 -0
- package/dot_config/nano/nanorc +28 -0
- package/dot_config/ncdu/config +12 -0
- package/dot_config/niri/config.kdl.tmpl +327 -0
- package/dot_config/nushell/aliases.nu +18 -0
- package/dot_config/nushell/completions.nu.tmpl +52 -0
- package/dot_config/nushell/config.nu.tmpl +86 -0
- package/dot_config/nushell/env.nu.tmpl +94 -0
- package/dot_config/nushell/functions.nu.tmpl +17 -0
- package/dot_config/nvim/init.lua +18 -0
- package/dot_config/nvim/lazy-lock.json +58 -0
- package/dot_config/nvim/lua/config/autocmds.lua +107 -0
- package/dot_config/nvim/lua/config/keymaps.lua +92 -0
- package/dot_config/nvim/lua/config/lazy.lua +44 -0
- package/dot_config/nvim/lua/config/options.lua +49 -0
- package/dot_config/nvim/lua/plugins/ai.lua +75 -0
- package/dot_config/nvim/lua/plugins/coding.lua +216 -0
- package/dot_config/nvim/lua/plugins/completion.lua +60 -0
- package/dot_config/nvim/lua/plugins/dap.lua +412 -0
- package/dot_config/nvim/lua/plugins/editor.lua +55 -0
- package/dot_config/nvim/lua/plugins/git.lua +10 -0
- package/dot_config/nvim/lua/plugins/lsp.lua +156 -0
- package/dot_config/nvim/lua/plugins/markdown.lua +18 -0
- package/dot_config/nvim/lua/plugins/rust.lua +34 -0
- package/dot_config/nvim/lua/plugins/sessions.lua +33 -0
- package/dot_config/nvim/lua/plugins/ui.lua +509 -0
- package/dot_config/paru/paru.conf +10 -0
- package/dot_config/pip/pip.conf.tmpl +32 -0
- package/dot_config/powershell/Microsoft.PowerShell_profile.ps1.tmpl +81 -0
- package/dot_config/pueue/pueue.yml +34 -0
- package/dot_config/pypoetry/config.toml +6 -0
- package/dot_config/pyrightconfig.json +5 -0
- package/dot_config/raycast/README.md +13 -0
- package/dot_config/redis/redisclirc +41 -0
- package/dot_config/ripgrep/ripgreprc +21 -0
- package/dot_config/shell/00-core-paths.sh.tmpl +133 -0
- package/dot_config/shell/05-core-safety.sh +47 -0
- package/dot_config/shell/10-secrets.sh +40 -0
- package/dot_config/shell/40-fzf-defaults.sh.tmpl +16 -0
- package/dot_config/shell/40-ls-colors.sh +48 -0
- package/dot_config/shell/50-logic-functions-core.sh.tmpl +10 -0
- package/dot_config/shell/50-logic-functions.sh.tmpl +10 -0
- package/dot_config/shell/51-logic-functions-extra.sh.tmpl +64 -0
- package/dot_config/shell/90-ux-aliases.sh.tmpl +120 -0
- package/dot_config/shell/91-ux-aliases-lazy.sh.tmpl +54 -0
- package/dot_config/shell/Brewfile +207 -0
- package/dot_config/shell/Brewfile.cask +92 -0
- package/dot_config/shell/Brewfile.cli +127 -0
- package/dot_config/shell/README.md +267 -0
- package/dot_config/shell/als_data.txt.tmpl +65 -0
- package/dot_config/shell/custom/auto_ls.zsh +20 -0
- package/dot_config/shell/custom/context_suggest.zsh +68 -0
- package/dot_config/shell/custom/error_analysis.zsh +45 -0
- package/dot_config/sops/dot_sops.yaml +23 -0
- package/dot_config/starship.toml.tmpl +202 -0
- package/dot_config/swaylock/config +43 -0
- package/dot_config/systemd/user/dotfiles-maintenance.service +8 -0
- package/dot_config/systemd/user/dotfiles-maintenance.timer +11 -0
- package/dot_config/systemd/user/pueued.service +12 -0
- package/dot_config/systemd/user/ssh-agent.service +12 -0
- package/dot_config/task/Taskfile.yml +86 -0
- package/dot_config/tflint/tflint.hcl +9 -0
- package/dot_config/tmux/tmux.conf.tmpl +223 -0
- package/dot_config/topgrade.toml.tmpl +54 -0
- package/dot_config/user-dirs.dirs +9 -0
- package/dot_config/vscode/extensions.txt +11 -0
- package/dot_config/vscode/settings.json.tmpl +82 -0
- package/dot_config/waybar/config.jsonc.tmpl +90 -0
- package/dot_config/waybar/style.css.tmpl +211 -0
- package/dot_config/wezterm/wezterm.lua.tmpl +64 -0
- package/dot_config/wget/wgetrc +12 -0
- package/dot_config/xdg-desktop-portal/niri-portals.conf +5 -0
- package/dot_config/yarn/yarnrc.yml +36 -0
- package/dot_config/yazi/keymap.toml +67 -0
- package/dot_config/yazi/theme.toml +102 -0
- package/dot_config/yazi/yazi.toml +40 -0
- package/dot_config/zathura/zathurarc +52 -0
- package/dot_config/zellij/config.kdl.tmpl +79 -0
- package/dot_config/zsh/dot_zprofile +7 -0
- package/dot_config/zsh/dot_zshenv +5 -0
- package/dot_config/zsh/dot_zshrc.tmpl +498 -0
- package/dot_config/zsh/rc.d/00-alias-shims.zsh +77 -0
- package/dot_config/zsh/rc.d/05-ssh-agent.zsh +18 -0
- package/dot_config/zsh/rc.d/10-env.zsh.tmpl +28 -0
- package/dot_config/zsh/rc.d/20-zinit.zsh +65 -0
- package/dot_config/zsh/rc.d/30-options.zsh.tmpl +194 -0
- package/dot_config/zsh/rc.d/40-bell.zsh +20 -0
- package/dot_config/zsh/rc.d/50-login-fortune.zsh +9 -0
- package/dot_config/zsh/rc.d/99-alias-wrapper.zsh +32 -0
- package/dot_local/bin/__pycache__/executable_dot-load-benchmark-ptycpython-312.pyc +0 -0
- package/dot_local/bin/executable_ai-update +195 -0
- package/dot_local/bin/executable_ai_core +152 -0
- package/dot_local/bin/executable_antigravity +11 -0
- package/dot_local/bin/executable_b64 +84 -0
- package/dot_local/bin/executable_bm +77 -0
- package/dot_local/bin/executable_cb +39 -0
- package/dot_local/bin/executable_dot +589 -0
- package/dot_local/bin/executable_dot-ai +36 -0
- package/dot_local/bin/executable_dot-bootstrap +77 -0
- package/dot_local/bin/executable_dot-launch-or-focus +52 -0
- package/dot_local/bin/executable_dot-load-benchmark +31 -0
- package/dot_local/bin/executable_dot-load-benchmark-pty +77 -0
- package/dot_local/bin/executable_dot-theme-sync +952 -0
- package/dot_local/bin/executable_dot_completion +57 -0
- package/dot_local/bin/executable_dtags +28 -0
- package/dot_local/bin/executable_epoch +67 -0
- package/dot_local/bin/executable_extract +41 -0
- package/dot_local/bin/executable_gbd +52 -0
- package/dot_local/bin/executable_gd +42 -0
- package/dot_local/bin/executable_git-ai-commit +175 -0
- package/dot_local/bin/executable_git-ai-diff +169 -0
- package/dot_local/bin/executable_gl +101 -0
- package/dot_local/bin/executable_hash +161 -0
- package/dot_local/bin/executable_hashsum +160 -0
- package/dot_local/bin/executable_hex +115 -0
- package/dot_local/bin/executable_jsonv +78 -0
- package/dot_local/bin/executable_jwt +94 -0
- package/dot_local/bin/executable_kill-port +75 -0
- package/dot_local/bin/executable_lorem +118 -0
- package/dot_local/bin/executable_mkscript +35 -0
- package/dot_local/bin/executable_monitor +56 -0
- package/dot_local/bin/executable_myip +51 -0
- package/dot_local/bin/executable_notify +22 -0
- package/dot_local/bin/executable_open +36 -0
- package/dot_local/bin/executable_pw +27 -0
- package/dot_local/bin/executable_rec-start +46 -0
- package/dot_local/bin/executable_rec-stop +35 -0
- package/dot_local/bin/executable_regex +132 -0
- package/dot_local/bin/executable_start-niri +8 -0
- package/dot_local/bin/executable_tmux-sessionizer +314 -0
- package/dot_local/bin/executable_tour +175 -0
- package/dot_local/bin/executable_up +21 -0
- package/dot_local/bin/executable_update +142 -0
- package/dot_local/bin/executable_uuid +87 -0
- package/dot_local/bin/executable_win +32 -0
- package/dot_local/bin/executable_yamlv +57 -0
- package/dot_local/share/bash-completion/completions/dot +72 -0
- package/dot_local/share/icons/hicolor/128x128/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/16x16/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/24x24/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/256x256/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/32x32/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/48x48/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/512x512/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/64x64/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/96x96/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/scalable/apps/rousseau.png +0 -0
- package/dot_local/share/man/man1/dot.1 +149 -0
- package/dot_local/share/mise/plugins/kiro-cli/bin/executable_download +64 -0
- package/dot_local/share/mise/plugins/kiro-cli/bin/executable_install +18 -0
- package/dot_local/share/mise/plugins/kiro-cli/bin/executable_list-all +13 -0
- package/dot_local/share/wayland-sessions/niri.desktop.tmpl +6 -0
- package/dot_local/share/zsh/completions/.keep +0 -0
- package/dot_local/share/zsh/completions/_dot +283 -0
- package/install.sh +342 -0
- package/package.json +1 -1
- package/scripts/ci/check-copyright-headers.sh +96 -0
- package/scripts/ci/guard-gitleaks-checkout.sh +57 -0
- package/scripts/ci/install-chezmoi-verified.sh +64 -0
- package/scripts/ci/validate-ci-config.sh +224 -0
- package/scripts/demo/record.sh +42 -0
- package/scripts/diagnostics/a2a-conformance.sh +162 -0
- package/scripts/diagnostics/alias-governance.sh +137 -0
- package/scripts/diagnostics/aliases-cheatsheet.sh +73 -0
- package/scripts/diagnostics/aliases-manifest.sh +31 -0
- package/scripts/diagnostics/benchmark.sh +381 -0
- package/scripts/diagnostics/conflicts.sh +72 -0
- package/scripts/diagnostics/doctor-unified.sh +38 -0
- package/scripts/diagnostics/doctor.sh +541 -0
- package/scripts/diagnostics/drift-dashboard.sh +37 -0
- package/scripts/diagnostics/health.sh +597 -0
- package/scripts/diagnostics/history-analysis.sh +85 -0
- package/scripts/diagnostics/mcp-doctor.sh +575 -0
- package/scripts/diagnostics/perf.sh +225 -0
- package/scripts/diagnostics/scorecard.sh +118 -0
- package/scripts/diagnostics/secret-governance.sh +58 -0
- package/scripts/diagnostics/security-score.sh +438 -0
- package/scripts/diagnostics/smoke-test.sh +87 -0
- package/scripts/diagnostics/snapshot.sh +89 -0
- package/scripts/diagnostics/verify.sh +107 -0
- package/scripts/{verify_state.sh → diagnostics/verify_state.sh} +22 -22
- package/scripts/diagnostics/version-locks.sh +79 -0
- package/scripts/diagnostics/workstation-attestation.sh +181 -0
- package/scripts/docs/build-manual.sh +883 -0
- package/scripts/docs/check-manual.sh +213 -0
- package/scripts/dot/commands/agent.sh +465 -0
- package/scripts/dot/commands/ai.sh +416 -0
- package/scripts/dot/commands/aliases.sh +250 -0
- package/scripts/dot/commands/appearance.sh +80 -0
- package/scripts/dot/commands/core.sh +185 -0
- package/scripts/dot/commands/diagnostics.sh +229 -0
- package/scripts/dot/commands/fleet.sh +399 -0
- package/scripts/dot/commands/lint.sh +177 -0
- package/scripts/dot/commands/manual.sh +168 -0
- package/scripts/dot/commands/meta.sh +248 -0
- package/scripts/dot/commands/patterns.sh +54 -0
- package/scripts/dot/commands/restore.sh +231 -0
- package/scripts/dot/commands/secrets.sh +223 -0
- package/scripts/dot/commands/security.sh +76 -0
- package/scripts/dot/commands/tools.sh +469 -0
- package/scripts/dot/data/alias-deprecations.tsv +2 -0
- package/scripts/dot/lib/bento.sh +49 -0
- package/scripts/dot/lib/log.sh +194 -0
- package/scripts/dot/lib/platform.sh +98 -0
- package/scripts/dot/lib/ui.sh +507 -0
- package/scripts/dot/lib/utils.sh +372 -0
- package/scripts/fonts/install-nerd-fonts.sh +68 -0
- package/scripts/fonts/patch-fonts.sh +35 -0
- package/scripts/git-hooks/install.sh +11 -0
- package/scripts/git-hooks/pre-commit +12 -0
- package/scripts/git-hooks/pre-commit-audit.sh +145 -0
- package/scripts/git-hooks/pre-push +29 -0
- package/scripts/git-hooks/prepare-commit-msg +29 -0
- package/scripts/lib/secrets_provider.sh +158 -0
- package/scripts/maintenance/check-updates.sh +131 -0
- package/scripts/ops/ai-setup.sh +55 -0
- package/scripts/ops/bundle.sh +77 -0
- package/scripts/ops/chaos.sh +49 -0
- package/scripts/ops/chezmoi-apply.sh +270 -0
- package/scripts/ops/chezmoi-diff.sh +15 -0
- package/scripts/ops/chezmoi-remove.sh +45 -0
- package/scripts/ops/chezmoi-update.sh +48 -0
- package/scripts/ops/heal-chezmoi.sh +51 -0
- package/scripts/ops/heal-system.sh +128 -0
- package/scripts/ops/heal-tools.sh +340 -0
- package/scripts/ops/heal.sh +222 -0
- package/scripts/ops/post-apply-repair.sh +106 -0
- package/scripts/ops/prewarm.sh +127 -0
- package/scripts/ops/release.sh +252 -0
- package/scripts/ops/rollback.sh +589 -0
- package/scripts/ops/setup.sh +137 -0
- package/scripts/ops/teleport.sh +33 -0
- package/scripts/qa/coverage-baseline.sh +60 -0
- package/scripts/qa/docs-coverage.sh +111 -0
- package/scripts/qa/reliability-audit.sh +138 -0
- package/scripts/qa/traceability-coverage.sh +116 -0
- package/scripts/qa/validate-examples.sh +26 -0
- package/scripts/qa/wsl-contract.sh +11 -0
- package/scripts/release/package-policy-bundles.sh +125 -0
- package/scripts/secrets/age-init.sh +70 -0
- package/scripts/secrets/create-secrets-file.sh +45 -0
- package/scripts/secrets/encrypt-ssh-key.sh +43 -0
- package/scripts/security/backup.sh +57 -0
- package/scripts/security/dns-doh.sh +51 -0
- package/scripts/security/encryption-check.sh +54 -0
- package/scripts/security/enforce-policies.sh +334 -0
- package/scripts/security/firewall.sh +90 -0
- package/scripts/security/lock-configs.sh +57 -0
- package/scripts/security/lock-screen.sh +55 -0
- package/scripts/security/manage-secrets.sh +428 -0
- package/scripts/security/ssh-cert.sh +203 -0
- package/scripts/security/telemetry-kill.sh +50 -0
- package/scripts/security/usb-safety.sh +51 -0
- package/scripts/theme/apply-gnome-theme.sh +328 -0
- package/scripts/theme/extract-theme.py +677 -0
- package/scripts/theme/install-boot-logo.sh +62 -0
- package/scripts/theme/install-catppuccin-themes.sh +370 -0
- package/scripts/theme/install-cursors.sh +25 -0
- package/scripts/theme/install-file-icons.sh +26 -0
- package/scripts/theme/install-grub-theme.sh +61 -0
- package/scripts/theme/install-lock-icon.sh +30 -0
- package/scripts/theme/merge-wallpaper.sh +141 -0
- package/scripts/theme/rebuild-themes.sh +309 -0
- package/scripts/theme/switch.sh +421 -0
- package/scripts/theme/wallpaper-rotate.sh +136 -0
- package/scripts/theme/wallpaper-sync.sh +397 -0
- package/scripts/tools/cmatrix.sh +21 -0
- package/scripts/{detect-collisions.py → tools/detect-collisions.py} +2 -2
- package/scripts/tools/emoji-picker.sh +48 -0
- package/scripts/tools/figlet-banner.sh +18 -0
- package/scripts/tools/log-rotate.sh +30 -0
- package/scripts/tools/lolcat-wrap.sh +19 -0
- package/scripts/tools/pipes.sh +48 -0
- package/scripts/tuning/linux.sh +185 -0
- package/scripts/tuning/macos.sh +55 -0
- package/scripts/uninstall.sh +85 -0
- package/scripts/version-sync.sh +487 -0
- package/templates/chezmoi-data/geekom-a9.toml.example +21 -0
- package/templates/chezmoi-data/mac-m1.toml.example +16 -0
- package/templates/chezmoi-data/mac-t2-linux.toml.example +21 -0
- package/templates/chezmoi-data/surface-pro-7p.toml.example +21 -0
- package/templates/projects/go/.github/workflows/ci.yml +31 -0
- package/templates/projects/go/README.md +4 -0
- package/templates/projects/go/cmd/__PROJECT_NAME__/main.go +1 -0
- package/templates/projects/go/go.sum +0 -0
- package/templates/projects/molecule/README.md +7 -0
- package/templates/projects/molecule/converge.yml +7 -0
- package/templates/projects/molecule/molecule.yml +16 -0
- package/templates/projects/node/.github/workflows/ci.yml +30 -0
- package/templates/projects/node/README.md +4 -0
- package/templates/projects/node/package-lock.json +12 -0
- package/templates/projects/node/src/index.js +1 -0
- package/templates/projects/packer/README.md +15 -0
- package/templates/projects/packer/main.pkr.hcl +15 -0
- package/templates/projects/python/.github/workflows/ci.yml +34 -0
- package/templates/projects/python/README.md +4 -0
- package/templates/projects/python/pyproject.toml +15 -0
- package/templates/projects/python/src/__PROJECT_NAME__/__init__.py +1 -0
- package/templates/projects/python/tests/test_basic.py +1 -0
- package/docs/ARCHITECTURE.md +0 -62
- package/docs/COMPLIANCE.md +0 -47
- package/docs/OPERATIONS.md +0 -103
- package/docs/PR_DESCRIPTION.md +0 -150
- package/docs/ROADMAP_legacy.md +0 -556
- package/docs/SECURITY_CHECKLIST.md +0 -25
- package/docs/TASK.md +0 -99
- package/docs/WALKTHROUGH.md +0 -46
- package/scripts/backup.sh +0 -142
- package/scripts/banner.sh +0 -20
- package/scripts/benchmark.sh +0 -20
- package/scripts/build.sh +0 -41
- package/scripts/clean.sh +0 -31
- package/scripts/compile.sh +0 -54
- package/scripts/copy.sh +0 -108
- package/scripts/doctor.sh +0 -79
- package/scripts/dotfiles.sh +0 -63
- package/scripts/download.sh +0 -35
- package/scripts/help.sh +0 -57
- package/scripts/lock-configs.sh +0 -57
- package/scripts/package.sh +0 -46
- package/scripts/ssh.sh +0 -55
- package/scripts/teleport.sh +0 -23
- package/scripts/test-aliases.sh +0 -25
- package/scripts/test_smoke.sh +0 -88
- package/scripts/unpack.sh +0 -28
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
# Concept Index
|
|
2
|
+
|
|
3
|
+
Alphabetical list of concepts covered in the manual.
|
|
4
|
+
|
|
5
|
+
- Accessibility
|
|
6
|
+
- Adding a New Flag
|
|
7
|
+
- Agent Policy Enforcement
|
|
8
|
+
- AI & Agents
|
|
9
|
+
- Algorithms
|
|
10
|
+
- Apply / Sync
|
|
11
|
+
- Attestation
|
|
12
|
+
- Author
|
|
13
|
+
- Auto-Populated
|
|
14
|
+
- Bibliography
|
|
15
|
+
- Build Artifacts
|
|
16
|
+
- Built-in Chezmoi Functions
|
|
17
|
+
- Built-in Chezmoi Variables
|
|
18
|
+
- Cache Files
|
|
19
|
+
- Caching
|
|
20
|
+
- Changing Presets on an Existing Host
|
|
21
|
+
- Checking Active Flags
|
|
22
|
+
- CI
|
|
23
|
+
- CI-Level Gates
|
|
24
|
+
- CI-Specific
|
|
25
|
+
- Color Science
|
|
26
|
+
- Configuration
|
|
27
|
+
- Contributions
|
|
28
|
+
- Cross-Host Trust
|
|
29
|
+
- Cryptography
|
|
30
|
+
- Daily Use
|
|
31
|
+
- Data Flow
|
|
32
|
+
- Design Principles
|
|
33
|
+
- Development
|
|
34
|
+
- Diagnostics
|
|
35
|
+
- Documentation Systems
|
|
36
|
+
- Drift Detection
|
|
37
|
+
- Dynamic HEIC (Apple Appearance Metadata)
|
|
38
|
+
- Environment Variables
|
|
39
|
+
- Example: Font Size by Preset
|
|
40
|
+
- Example: Platform × Preset
|
|
41
|
+
- Example: Using Theme in Ghostty Config
|
|
42
|
+
- Exit Codes
|
|
43
|
+
- Feature Matrix
|
|
44
|
+
- Flag Catalogue
|
|
45
|
+
- Flag Deprecation
|
|
46
|
+
- Fleet
|
|
47
|
+
- Fleet Attestation
|
|
48
|
+
- Fleet Deployment Workflow
|
|
49
|
+
- Fleet Operational Commands
|
|
50
|
+
- Fleet Trust Propagation
|
|
51
|
+
- From `.chezmoidata.toml`
|
|
52
|
+
- From `.chezmoidata/hardware.toml`
|
|
53
|
+
- From `.chezmoidata/themes.toml`
|
|
54
|
+
- From Feature Flags
|
|
55
|
+
- Gates Enforced by CI
|
|
56
|
+
- General
|
|
57
|
+
- Getting More Help
|
|
58
|
+
- Global Flags
|
|
59
|
+
- Global Flags (`.chezmoidata.toml`)
|
|
60
|
+
- Hardware Presets
|
|
61
|
+
- Helper Templates (in `.chezmoitemplates/`)
|
|
62
|
+
- Identity and Signing
|
|
63
|
+
- Incident Response
|
|
64
|
+
- Inspect & Repair
|
|
65
|
+
- Installation
|
|
66
|
+
- Installation & Update
|
|
67
|
+
- Invocation
|
|
68
|
+
- Limitations
|
|
69
|
+
- Listing Known Presets
|
|
70
|
+
- Log Files
|
|
71
|
+
- Machine-Scoped Secrets
|
|
72
|
+
- Manual
|
|
73
|
+
- MIT License
|
|
74
|
+
- Next
|
|
75
|
+
- Observability
|
|
76
|
+
- Ongoing (monthly)
|
|
77
|
+
- Ongoing (quarterly)
|
|
78
|
+
- Operational Rules
|
|
79
|
+
- Option A: Drop a Static Image
|
|
80
|
+
- Option B: Dynamic HEIC (Recommended)
|
|
81
|
+
- Option C: Golden Ratio Brightness (Advanced)
|
|
82
|
+
- Option D: Install System Wallpapers (Already-Available)
|
|
83
|
+
- Optional Binaries (installed by Mise on first apply)
|
|
84
|
+
- Per-Machine Profiles
|
|
85
|
+
- Per-Preset Overrides (`.chezmoidata/hardware.toml`)
|
|
86
|
+
- Performance
|
|
87
|
+
- Philosophy
|
|
88
|
+
- Post-Install
|
|
89
|
+
- Pre-Install
|
|
90
|
+
- Prerequisites
|
|
91
|
+
- Principles
|
|
92
|
+
- Protocols
|
|
93
|
+
- Read by Tools
|
|
94
|
+
- Recovery
|
|
95
|
+
- Reference
|
|
96
|
+
- Required Binaries
|
|
97
|
+
- Scenario
|
|
98
|
+
- Secret-Related
|
|
99
|
+
- Secrets
|
|
100
|
+
- See Also
|
|
101
|
+
- Shell Performance
|
|
102
|
+
- Single Source, Many Hosts
|
|
103
|
+
- Source Repository
|
|
104
|
+
- Start Here
|
|
105
|
+
- Startup Order
|
|
106
|
+
- Startup Performance Model
|
|
107
|
+
- Step 1: Choose or Create a Preset
|
|
108
|
+
- Step 1: Generate an Age Key (First Time Only)
|
|
109
|
+
- Step 1: Per-Host Install
|
|
110
|
+
- Step 1: Run the Installer
|
|
111
|
+
- Step 2: Choose Encryption Method
|
|
112
|
+
- Step 2: Exchange Signing Keys
|
|
113
|
+
- Step 2: Select the Preset for This Host
|
|
114
|
+
- Step 2: Verify
|
|
115
|
+
- Step 3: Reference the Preset in Templates
|
|
116
|
+
- Step 3: Share the Age Key (for Shared Secrets)
|
|
117
|
+
- Step 3: Take the Tour
|
|
118
|
+
- Step 3A: Chezmoi-Encrypted File
|
|
119
|
+
- Step 3B: SOPS-Encrypted YAML
|
|
120
|
+
- Step 4: Add a New Preset
|
|
121
|
+
- Step 4: Customize
|
|
122
|
+
- Step 4: Reference the Secret in a Template
|
|
123
|
+
- Step 4: Verify Fleet Alignment
|
|
124
|
+
- Step 5: Add Your Identity
|
|
125
|
+
- Step 5: Commit and Verify
|
|
126
|
+
- Step 5: Per-Host Customization
|
|
127
|
+
- Step 5: Per-Preset Feature Flags
|
|
128
|
+
- Step 6: First Theme Switch
|
|
129
|
+
- Step 6: Fleet-Wide Updates
|
|
130
|
+
- Step 6: Multi-Recipient (Fleet)
|
|
131
|
+
- Step 7: Rotate a Compromised Key
|
|
132
|
+
- Step 7: Secrets Rotation
|
|
133
|
+
- Step 8: Decommission a Host
|
|
134
|
+
- Summary
|
|
135
|
+
- Supported Architectures
|
|
136
|
+
- Supported Platforms
|
|
137
|
+
- Supported Shells
|
|
138
|
+
- Template Testing
|
|
139
|
+
- Tested CI Environments
|
|
140
|
+
- The Four Subsystems
|
|
141
|
+
- The Pipeline
|
|
142
|
+
- The Self-Healing Loop
|
|
143
|
+
- The Threat Model
|
|
144
|
+
- The Why
|
|
145
|
+
- Theme
|
|
146
|
+
- Theme Application
|
|
147
|
+
- Themes
|
|
148
|
+
- Third-Party Licenses
|
|
149
|
+
- Threat Model Summary
|
|
150
|
+
- Tools & Systems
|
|
151
|
+
- Troubleshooting
|
|
152
|
+
- Troubleshooting Community
|
|
153
|
+
- Trust Boundaries
|
|
154
|
+
- Unsetting
|
|
155
|
+
- User-Owned Configuration
|
|
156
|
+
- User-Settable
|
|
157
|
+
- Using a Flag in a Template
|
|
158
|
+
- Validation in CI
|
|
159
|
+
- Verified Files
|
|
160
|
+
- Verifying No Plaintext Leaks
|
|
161
|
+
- Verifying the Result
|
|
162
|
+
- Wallpaper Discovery
|
|
163
|
+
- What Got Installed
|
|
164
|
+
- When to Use a Profile
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Workstation Attestation
|
|
2
|
+
|
|
3
|
+
`dot attest` exports a machine-readable record of the current workstation state.
|
|
4
|
+
|
|
5
|
+
It captures:
|
|
6
|
+
- dotfiles version
|
|
7
|
+
- platform and architecture
|
|
8
|
+
- Git signing settings
|
|
9
|
+
- active agent profile
|
|
10
|
+
- MCP strict-mode audit status
|
|
11
|
+
- tracked agent card, profile, and registry data
|
|
12
|
+
- policy bundles
|
|
13
|
+
- model and prompt registries
|
|
14
|
+
|
|
15
|
+
Run:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
dot attest
|
|
19
|
+
dot attest --json
|
|
20
|
+
dot attest -j
|
|
21
|
+
dot attest --write ~/.local/state/dotfiles/attestations/workstation.json
|
|
22
|
+
dot attest -w ~/.local/state/dotfiles/attestations/workstation.json
|
|
23
|
+
dot attest --fleet-store /srv/dotfiles-fleet
|
|
24
|
+
dot attest -F /srv/dotfiles-fleet -I engineering
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
The default output path is `~/.local/state/dotfiles/attestations/workstation-attestation.json`.
|
|
28
|
+
|
|
29
|
+
Fleet export writes:
|
|
30
|
+
|
|
31
|
+
- `<fleet-store>/<fleet-id>/<hostname>/workstation-attestation.json`
|
|
32
|
+
- timestamped copies for retention
|
|
33
|
+
|
|
34
|
+
Governance evidence is embedded directly in the JSON output. That includes:
|
|
35
|
+
|
|
36
|
+
- policy bundle definitions
|
|
37
|
+
- model registry metadata
|
|
38
|
+
- prompt registry metadata
|
|
39
|
+
- tracked MCP policy and registry artifacts
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# Dotfiles Maintenance Runbook
|
|
2
|
+
|
|
3
|
+
This runbook captures recovery and release maintenance operations for this repository.
|
|
4
|
+
|
|
5
|
+
## Signed History Recovery (February 19, 2026)
|
|
6
|
+
|
|
7
|
+
**Purpose:** Recover from strict signature enforcement failures caused by legacy/non-compliant commit history.
|
|
8
|
+
|
|
9
|
+
**When to use:**
|
|
10
|
+
|
|
11
|
+
- Pushes are blocked by signature policy on historical commits.
|
|
12
|
+
- Merge ancestry contains commits that can't be validated by the current principal/key policy.
|
|
13
|
+
|
|
14
|
+
**Procedure:**
|
|
15
|
+
|
|
16
|
+
1. Create a backup ref for current `master`.
|
|
17
|
+
2. Build a rewritten signed baseline commit from the current tree.
|
|
18
|
+
3. Push the rewritten branch to remote.
|
|
19
|
+
4. Temporarily allow force-push on `master` protections/rulesets.
|
|
20
|
+
5. Force-update `master` to the rewritten signed baseline.
|
|
21
|
+
6. Disable force-push again immediately.
|
|
22
|
+
7. Re-run CI and verify required checks are green.
|
|
23
|
+
8. Repoint the release tag/target as needed.
|
|
24
|
+
|
|
25
|
+
**Verification commands:**
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
git verify-commit HEAD
|
|
29
|
+
gh run list --workflow ci.yml --branch master --limit 1
|
|
30
|
+
gh release view v0.2.500 --json tagName,targetCommitish,url
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Release Closeout Checklist
|
|
34
|
+
|
|
35
|
+
For every release update:
|
|
36
|
+
|
|
37
|
+
1. `master` branch is clean and synced.
|
|
38
|
+
2. CI is green on the release commit.
|
|
39
|
+
3. Annotated release tag points to the intended commit.
|
|
40
|
+
4. GitHub release target is correct (`master` or explicit commit).
|
|
41
|
+
5. Branch protections/rulesets are restored to strict state.
|
|
42
|
+
6. Local apply has completed:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
CHEZMOI_SOURCE_DIR="$HOME/.dotfiles" ./dot_local/bin/executable_dot apply
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Security Scan Guardrails
|
|
49
|
+
|
|
50
|
+
We prevent gitleaks historical-scan regressions with:
|
|
51
|
+
|
|
52
|
+
- Shallow checkout (`fetch-depth: 1`, `fetch-tags: false`) in gitleaks jobs.
|
|
53
|
+
- A workflow-dispatch guard script: `scripts/ci/guard-gitleaks-checkout.sh`.
|
|
54
|
+
|
|
55
|
+
**Manual verification:**
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
bash scripts/ci/guard-gitleaks-checkout.sh
|
|
59
|
+
```
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# Migration and Upgrade Guide
|
|
2
|
+
|
|
3
|
+
## How to Upgrade
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
# 1. Pre-upgrade check
|
|
7
|
+
dot doctor
|
|
8
|
+
|
|
9
|
+
# 2. Pull latest changes
|
|
10
|
+
cd ~/.dotfiles && git pull
|
|
11
|
+
|
|
12
|
+
# 3. Apply with diagnostics
|
|
13
|
+
dot apply
|
|
14
|
+
|
|
15
|
+
# 4. Post-upgrade verification
|
|
16
|
+
dot doctor
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Version History
|
|
20
|
+
|
|
21
|
+
### v0.2.500 (Current)
|
|
22
|
+
- **Wallpaper-driven theme engine** — themes auto-generated from wallpapers via K-Means in CIELAB color space (no hand-crafted themes)
|
|
23
|
+
- **Dynamic HEIC support** — custom wallpapers ship as Apple-compatible single-file dynamic HEIC; macOS auto-switches dark/light
|
|
24
|
+
- **System wallpaper discovery** — pulls themes from `/System/Library/Desktop Pictures/` (macOS) and `/usr/share/backgrounds/` (Linux)
|
|
25
|
+
- **`dot theme rebuild`** — parallel K-Means generation (4 jobs), mtime-based caching, orphan cleanup
|
|
26
|
+
- **WCAG AAA enforcement** — all generated themes pass 7:1 contrast for fg/bg, accent_text/accent, c15/bg
|
|
27
|
+
- **macOS accent from wallpaper hue** — `dot-theme-sync` reads `macos_accent` from themes.toml and forces UI refresh
|
|
28
|
+
- **HEIC → PNG auto-conversion** on Linux for non-HEIC-aware desktops
|
|
29
|
+
- **Build artifact redirection** — Cargo, Go, pip, uv, Zig caches → `/tmp/builds/` (cleared on reboot)
|
|
30
|
+
- **CI dedup** — `ci-enforced.yml` reuses `reusable-shell-lint.yml` and `reusable-test-suite.yml`
|
|
31
|
+
|
|
32
|
+
### v0.2.499
|
|
33
|
+
- Added AI CLIs: Autohand Code, Mistral Vibe, Qwen Code, ZAI
|
|
34
|
+
- Removed Cline CLI (broken upstream dependency)
|
|
35
|
+
- Interactive mise installer for missing AI providers
|
|
36
|
+
- Mise-first provisioning for all AI tools
|
|
37
|
+
- User extension points: rc.d.local, modules.d, custom dot commands
|
|
38
|
+
- SSH config hardening template
|
|
39
|
+
- Ghostty and WezTerm terminal configs
|
|
40
|
+
- Modern CLI tools: delta, fd, dust, bottom, lazygit, lazydocker, tldr
|
|
41
|
+
- Auto-prewarm after dot apply
|
|
42
|
+
- Expanded Atuin history filters
|
|
43
|
+
|
|
44
|
+
### v0.2.498
|
|
45
|
+
- Theme system with Catppuccin integration
|
|
46
|
+
- Linux desktop parity (Niri, Waybar, Fuzzel)
|
|
47
|
+
- AI tooling expansion (Kiro, OpenCode)
|
|
48
|
+
- Coverage contracts and QA docs
|
|
49
|
+
|
|
50
|
+
### v0.2.497
|
|
51
|
+
- Verified chezmoi installer
|
|
52
|
+
- Shell startup optimization
|
|
53
|
+
- Property-based tests
|
|
54
|
+
|
|
55
|
+
## Breaking Changes
|
|
56
|
+
|
|
57
|
+
If you are upgrading from v0.2.499 or earlier, note these changes:
|
|
58
|
+
|
|
59
|
+
1. **`themes.toml` is now generated** — do not hand-edit. Run `dot theme rebuild` to regenerate from wallpapers
|
|
60
|
+
2. **Theme names changed** — old hand-crafted names (e.g. `catppuccin-mocha`, `macos-tahoe-dark` with hardcoded palettes) are replaced by wallpaper-derived names. The picker only shows paired wallpaper themes.
|
|
61
|
+
3. **Wallpaper format** — custom wallpapers should be dynamic HEIC (single file, both appearances). Use `bash scripts/theme/merge-wallpaper.sh` to merge separate dark/light pairs.
|
|
62
|
+
4. **Build caches relocated** — Cargo/Go/pip/uv/Zig now write to `/tmp/builds/`. Restart your shell after upgrade so `mise [env]` picks up the new paths.
|
|
63
|
+
|
|
64
|
+
If you are upgrading from v0.2.498 or earlier:
|
|
65
|
+
|
|
66
|
+
1. **Cline CLI removed** — if you used `dot cline`, switch to a different AI CLI
|
|
67
|
+
2. **AI tools now install through mise** — run `mise install` to set up AI providers
|
|
68
|
+
3. **SSH config hardening** — check `~/.ssh/config` after apply, as it may change your current settings
|
|
69
|
+
|
|
70
|
+
## Rollback
|
|
71
|
+
|
|
72
|
+
If something goes wrong after an upgrade:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
# Quick rollback to previous state
|
|
76
|
+
dot rollback
|
|
77
|
+
|
|
78
|
+
# Rollback to specific backup
|
|
79
|
+
dot rollback status # List available backups
|
|
80
|
+
dot rollback rollback-to 3 # Restore backup #3
|
|
81
|
+
|
|
82
|
+
# Git-based rollback
|
|
83
|
+
cd ~/.dotfiles
|
|
84
|
+
git log --oneline -10 # Find last good commit
|
|
85
|
+
git reset --hard HEAD~1 # Reset to previous commit
|
|
86
|
+
dot apply # Re-apply
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## Before You Upgrade
|
|
90
|
+
|
|
91
|
+
- [ ] Run `dot doctor` — make sure everything is healthy
|
|
92
|
+
- [ ] Run `dot diff` — review any pending changes
|
|
93
|
+
- [ ] Back up custom configs: `dot rollback backup`
|
|
94
|
+
- [ ] Read CHANGELOG.md for breaking changes
|
|
95
|
+
|
|
96
|
+
## After You Upgrade
|
|
97
|
+
|
|
98
|
+
- [ ] Run `dot doctor` — make sure the upgrade worked
|
|
99
|
+
- [ ] Run `dot prewarm` — rebuild shell caches
|
|
100
|
+
- [ ] Restart your shell: `exec zsh`
|
|
101
|
+
- [ ] Test AI tools: `dot ai`
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
# Operations
|
|
2
|
+
|
|
3
|
+
Core workflows for keeping your dotfiles running across platforms.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Platforms
|
|
8
|
+
|
|
9
|
+
### macOS
|
|
10
|
+
|
|
11
|
+
**Primary manager**: `Homebrew`
|
|
12
|
+
|
|
13
|
+
- **Update**:
|
|
14
|
+
```bash
|
|
15
|
+
chezmoi update
|
|
16
|
+
```
|
|
17
|
+
This runs `brew bundle install` behind the scenes to reconcile against the declared Brewfiles.
|
|
18
|
+
- **Permission issues**: `sudo chown -R $(whoami) $(brew --prefix)/*`
|
|
19
|
+
- **Drift**: Run `brew bundle cleanup` to remove unmanaged packages.
|
|
20
|
+
|
|
21
|
+
### Linux (Debian, Ubuntu, Kali)
|
|
22
|
+
|
|
23
|
+
**Primary manager**: `apt-get` / `snap`
|
|
24
|
+
|
|
25
|
+
- **Update**:
|
|
26
|
+
```bash
|
|
27
|
+
sudo apt update && sudo apt upgrade -y
|
|
28
|
+
chezmoi update
|
|
29
|
+
```
|
|
30
|
+
On Linux, `chezmoi` focuses on configuration. Package updates work best through the OS package manager to avoid `sudo` conflicts.
|
|
31
|
+
- **Font issues**: If icons are missing, run `./install/provision/run_onchange_50-install-fonts.sh.tmpl` manually via `chezmoi apply` or source directly with `bash`.
|
|
32
|
+
|
|
33
|
+
### Windows (WSL2)
|
|
34
|
+
|
|
35
|
+
**Primary manager**: `apt-get` (inside WSL)
|
|
36
|
+
|
|
37
|
+
- **Update**: Same as Linux.
|
|
38
|
+
- **Clipboard**: Dotfiles configures `win32yank.exe` automatically for clipboard sharing.
|
|
39
|
+
- **Performance**: Keep project files inside the Linux filesystem (`~/projects`), not in `/mnt/c/`, for dramatically better IO.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Workflows
|
|
44
|
+
|
|
45
|
+
### Apply changes
|
|
46
|
+
|
|
47
|
+
After editing any config file:
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
dot apply
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Triggers `dot_zshrc` reload and audit logging.
|
|
54
|
+
|
|
55
|
+
### Upgrade-safe apply (recommended)
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
git pull
|
|
59
|
+
DOTFILES_NONINTERACTIVE=1 dot apply --force
|
|
60
|
+
dot doctor
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
`dot apply` includes post-apply checks that:
|
|
64
|
+
- Remove stale read-only zsh cache files (`~/.config/shell/*.zwc`, `~/.config/zsh/**/*.zwc`)
|
|
65
|
+
- Validate that `dot` resolves to `~/.local/bin/dot` in a fresh login shell
|
|
66
|
+
|
|
67
|
+
Finish by reloading your session (`exec zsh`) or restarting the terminal.
|
|
68
|
+
|
|
69
|
+
### Async updates
|
|
70
|
+
|
|
71
|
+
Run updates in the background; you'll get a status banner on the next shell launch:
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
dot update --async
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Roll back
|
|
78
|
+
|
|
79
|
+
If an update breaks your setup:
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
cd ~/.dotfiles
|
|
83
|
+
git reset --hard HEAD@{1}
|
|
84
|
+
chezmoi apply
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Offline / air-gapped mode
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
# 1. On a connected machine, bundle your setup:
|
|
91
|
+
dot bundle ~/Downloads
|
|
92
|
+
|
|
93
|
+
# 2. Transfer the archive to the offline machine, then:
|
|
94
|
+
tar --zstd -xf dotfiles_offline_bundle_*.tar.zst -P
|
|
95
|
+
cd ~/.dotfiles
|
|
96
|
+
./install.sh --force
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### Pre-warm caches
|
|
100
|
+
|
|
101
|
+
Regenerate all tool caches to eliminate shell startup latency:
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
dot prewarm
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### Debug
|
|
108
|
+
|
|
109
|
+
If something's slow or broken:
|
|
110
|
+
|
|
111
|
+
1. **Check health**:
|
|
112
|
+
```bash
|
|
113
|
+
dot doctor
|
|
114
|
+
dot health --fix
|
|
115
|
+
```
|
|
116
|
+
2. **Smoke test**:
|
|
117
|
+
```bash
|
|
118
|
+
dot smoke-test
|
|
119
|
+
```
|
|
120
|
+
3. **Scorecard**:
|
|
121
|
+
```bash
|
|
122
|
+
dot scorecard
|
|
123
|
+
```
|
|
124
|
+
4. **Chaos testing (self-healing)**:
|
|
125
|
+
```bash
|
|
126
|
+
dot chaos --force
|
|
127
|
+
dot heal --force
|
|
128
|
+
```
|
|
129
|
+
5. **Startup profiling**:
|
|
130
|
+
```bash
|
|
131
|
+
dot perf --profile
|
|
132
|
+
```
|
|
133
|
+
6. **Post-merge verification**:
|
|
134
|
+
```bash
|
|
135
|
+
dot verify
|
|
136
|
+
```
|
|
137
|
+
7. **Inspect alias behavior**:
|
|
138
|
+
```bash
|
|
139
|
+
dot aliases list
|
|
140
|
+
dot aliases why dprune
|
|
141
|
+
DOTFILES_ALIAS_POLICY=strict bash ~/.dotfiles/scripts/diagnostics/alias-governance.sh
|
|
142
|
+
```
|
|
143
|
+
8. **Verbose mode**:
|
|
144
|
+
```bash
|
|
145
|
+
DOTFILES_DEBUG=1 dot apply
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### Safety flags
|
|
149
|
+
|
|
150
|
+
Destructive aliases are disabled by default. Enable only when needed:
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
export DOTFILES_ENABLE_DANGEROUS_ALIASES=1
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### Tiered alias loading
|
|
157
|
+
|
|
158
|
+
Core aliases load eagerly. Ecosystem aliases are lazy-loaded and can be filtered:
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
export DOTFILES_ALIAS_ECOSYSTEMS=python,node
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
Valid ecosystem tags: `python`, `node`, `rust`, `network`, `legacy`.
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
# Reliability
|
|
2
|
+
|
|
3
|
+
## Reliability scorecard
|
|
4
|
+
|
|
5
|
+
- Unit coverage: 100% module mapping target, enforced by `tests/framework/module_coverage.sh`
|
|
6
|
+
- Integration depth: 11 integration test files in `tests/integration/`
|
|
7
|
+
- Regression automation: 436 discovered test files and 2149 named tests in the current baseline
|
|
8
|
+
|
|
9
|
+
## Coverage gap map
|
|
10
|
+
|
|
11
|
+
| Module | Missing path | Risk level | Proposed test case |
|
|
12
|
+
| :--- | :--- | :--- | :--- |
|
|
13
|
+
| `scripts/qa/reliability-audit.sh` | Quick mode and integration mode branch handling | Closed | Covered by `tests/unit/misc/test_qa_reliability_behaviour.sh` |
|
|
14
|
+
| `scripts/git-hooks/pre-push` | Audit command failure path | Closed | Covered by `tests/unit/misc/test_git_hooks_pre_push_behaviour.sh` |
|
|
15
|
+
| `tests/framework/module_coverage.sh` | False-positive module matches | Closed | Covered by `tests/unit/misc/test_module_coverage_behaviour.sh` |
|
|
16
|
+
| `examples/*.sh` | Drift between examples and real commands | Closed | Examples execute in CI through `Examples Contract` and `validate-examples.sh` |
|
|
17
|
+
|
|
18
|
+
## Integration boundaries
|
|
19
|
+
|
|
20
|
+
```mermaid
|
|
21
|
+
flowchart LR
|
|
22
|
+
Dev[Developer] --> Hook[pre-push hook]
|
|
23
|
+
Hook --> Audit[reliability-audit.sh]
|
|
24
|
+
Audit --> Syntax[Shell syntax gate]
|
|
25
|
+
Audit --> Unit[Unit suite]
|
|
26
|
+
Audit --> Coverage[Module coverage]
|
|
27
|
+
Audit --> Examples[Example validation]
|
|
28
|
+
Audit --> WSL[WSL contract]
|
|
29
|
+
Audit --> Integration[Integration suite]
|
|
30
|
+
Integration --> Repo[Dotfiles workflows]
|
|
31
|
+
WSL --> Repo
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
```mermaid
|
|
35
|
+
sequenceDiagram
|
|
36
|
+
participant Dev as Developer
|
|
37
|
+
participant Git as Git client
|
|
38
|
+
participant Hook as pre-push
|
|
39
|
+
participant Audit as reliability-audit.sh
|
|
40
|
+
participant Suite as tests/framework/test_runner.sh
|
|
41
|
+
participant Cov as module_coverage.sh
|
|
42
|
+
participant Ex as validate-examples.sh
|
|
43
|
+
participant WSL as wsl-contract.sh
|
|
44
|
+
|
|
45
|
+
Dev->>Git: git push
|
|
46
|
+
Git->>Hook: invoke pre-push
|
|
47
|
+
Hook->>Hook: verify signed commits
|
|
48
|
+
Hook->>Audit: run quick gate
|
|
49
|
+
Audit->>Suite: run unit suite
|
|
50
|
+
Audit->>Cov: enforce 100% module mapping
|
|
51
|
+
Audit->>Ex: execute examples
|
|
52
|
+
Audit->>WSL: verify WSL parity contract
|
|
53
|
+
Ex-->>Audit: pass
|
|
54
|
+
Cov-->>Audit: pass
|
|
55
|
+
WSL-->>Audit: pass
|
|
56
|
+
Suite-->>Audit: pass
|
|
57
|
+
Audit-->>Hook: pass
|
|
58
|
+
Hook-->>Git: allow push
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## CI gate
|
|
62
|
+
|
|
63
|
+
```yaml
|
|
64
|
+
name: Reliability Gate
|
|
65
|
+
|
|
66
|
+
on:
|
|
67
|
+
pull_request:
|
|
68
|
+
push:
|
|
69
|
+
branches: [master]
|
|
70
|
+
workflow_dispatch:
|
|
71
|
+
|
|
72
|
+
jobs:
|
|
73
|
+
reliability:
|
|
74
|
+
strategy:
|
|
75
|
+
fail-fast: false
|
|
76
|
+
matrix:
|
|
77
|
+
os: [ubuntu-latest, macos-latest]
|
|
78
|
+
runs-on: ${{ matrix.os }}
|
|
79
|
+
steps:
|
|
80
|
+
- uses: actions/checkout@v6
|
|
81
|
+
- name: Reliability audit
|
|
82
|
+
run: bash ./scripts/qa/reliability-audit.sh --with-integration
|
|
83
|
+
|
|
84
|
+
examples-contract:
|
|
85
|
+
runs-on: ubuntu-latest
|
|
86
|
+
steps:
|
|
87
|
+
- uses: actions/checkout@v6
|
|
88
|
+
- name: Validate executable examples
|
|
89
|
+
run: bash ./scripts/qa/validate-examples.sh
|
|
90
|
+
|
|
91
|
+
wsl-contract:
|
|
92
|
+
runs-on: ubuntu-latest
|
|
93
|
+
steps:
|
|
94
|
+
- uses: actions/checkout@v6
|
|
95
|
+
- name: Validate WSL parity contract
|
|
96
|
+
run: bash ./scripts/qa/wsl-contract.sh
|
|
97
|
+
|
|
98
|
+
reliability-summary:
|
|
99
|
+
needs: [reliability, examples-contract, wsl-contract]
|
|
100
|
+
runs-on: ubuntu-latest
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## Functional examples
|
|
104
|
+
|
|
105
|
+
- `examples/example-test-suite.sh`: Runs a focused unit slice.
|
|
106
|
+
- `examples/example-coverage-gate.sh`: Runs the module coverage contract.
|
|
107
|
+
- `examples/example-git-hooks.sh`: Shows the local hook entrypoints.
|
|
108
|
+
- `examples/example-platform-contract.sh`: Shows the platform and host contract across macOS, Linux, and WSL.
|
|
109
|
+
|
|
110
|
+
## Local guardrail
|
|
111
|
+
|
|
112
|
+
`make test` is the canonical reliability command. It runs syntax checks, unit tests, module coverage, executable examples, and integration tests.
|
|
113
|
+
|
|
114
|
+
For a lightweight repository-wide snapshot, run `bash ./scripts/qa/coverage-baseline.sh --with-module-coverage`.
|
|
115
|
+
|
|
116
|
+
Core internal behaviors are traced through `bash ./scripts/qa/traceability-coverage.sh`.
|