@sebastienrousseau/dotfiles 0.2.481 → 0.2.499

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.
Files changed (317) hide show
  1. package/docs/ARCHITECTURE.md +29 -196
  2. package/docs/COMPLIANCE.md +10 -10
  3. package/docs/COPYRIGHT +3 -4
  4. package/docs/OPERATIONS.md +38 -65
  5. package/docs/PLAN.md +3 -3
  6. package/docs/PR_DESCRIPTION.md +85 -84
  7. package/docs/ROADMAP.md +11 -11
  8. package/docs/ROADMAP_legacy.md +556 -0
  9. package/docs/SECURITY_CHECKLIST.md +1 -1
  10. package/docs/TASK.md +4 -4
  11. package/docs/WALKTHROUGH.md +33 -152
  12. package/package.json +17 -5
  13. package/scripts/backup.sh +142 -0
  14. package/scripts/banner.sh +20 -0
  15. package/scripts/benchmark.sh +20 -0
  16. package/scripts/build.sh +41 -0
  17. package/scripts/clean.sh +31 -0
  18. package/scripts/compile.sh +54 -0
  19. package/scripts/copy.sh +108 -0
  20. package/scripts/{tools/detect-collisions.py → detect-collisions.py} +1 -1
  21. package/scripts/doctor.sh +79 -0
  22. package/scripts/dotfiles.sh +63 -0
  23. package/scripts/download.sh +35 -0
  24. package/scripts/help.sh +57 -0
  25. package/scripts/lock-configs.sh +57 -0
  26. package/scripts/package.sh +46 -0
  27. package/scripts/ssh.sh +55 -0
  28. package/scripts/teleport.sh +23 -0
  29. package/scripts/{tests/test-aliases.sh → test-aliases.sh} +3 -3
  30. package/scripts/test_smoke.sh +88 -0
  31. package/scripts/unpack.sh +28 -0
  32. package/scripts/{diagnostics/verify_state.sh → verify_state.sh} +21 -21
  33. package/templates/projects/go/README.md +0 -4
  34. package/templates/projects/node/README.md +0 -4
  35. package/templates/projects/python/README.md +0 -4
  36. package/templates/projects/python/pyproject.toml +0 -15
  37. package/CHANGELOG.md +0 -285
  38. package/LICENSE +0 -1283
  39. package/README.md +0 -315
  40. package/docs/ALIASES.md +0 -128
  41. package/docs/FEATURES.md +0 -166
  42. package/docs/FONTS.md +0 -147
  43. package/docs/INSTALL.md +0 -119
  44. package/docs/KEYS.md +0 -40
  45. package/docs/KEY_ROTATION.md +0 -219
  46. package/docs/LEGACY_ROADMAP.md +0 -142
  47. package/docs/NEOVIM_IDE_GUIDE.md +0 -52
  48. package/docs/README.md +0 -269
  49. package/docs/REPO_AUDIT.md +0 -23
  50. package/docs/SCREENSHOTS.md +0 -116
  51. package/docs/SECRETS.md +0 -76
  52. package/docs/SECURITY.md +0 -30
  53. package/docs/TESTING.md +0 -190
  54. package/docs/TOOLS.md +0 -146
  55. package/docs/TROUBLESHOOTING.md +0 -112
  56. package/docs/UTILS.md +0 -105
  57. package/docs/WSL2_NIX_TROUBLESHOOTING.md +0 -723
  58. package/docs/adr/ADR-001-ci-cd-pipeline.md +0 -101
  59. package/docs/adr/ADR-002-shell-performance.md +0 -121
  60. package/docs/adr/ADR-003-security-first.md +0 -140
  61. package/docs/adr/ADR-004-cli-architecture.md +0 -157
  62. package/docs/adr/ADR-005-chezmoi-choice.md +0 -89
  63. package/docs/adr/ADR-006-shell-selection.md +0 -115
  64. package/docs/adr/README.md +0 -33
  65. package/docs/themes/README.md +0 -20
  66. package/dot_config/aider/aider.conf.yml +0 -32
  67. package/dot_config/alacritty/alacritty.toml.tmpl +0 -483
  68. package/dot_config/ansible/ansible.cfg.tmpl +0 -11
  69. package/dot_config/atuin/config.toml +0 -23
  70. package/dot_config/bat/config +0 -8
  71. package/dot_config/brave-flags.conf.tmpl +0 -7
  72. package/dot_config/btop/btop.conf +0 -16
  73. package/dot_config/btop/themes/tokyonight.theme +0 -34
  74. package/dot_config/bun/bunfig.toml.tmpl +0 -33
  75. package/dot_config/claude/mcp_servers.json +0 -49
  76. package/dot_config/clippy.toml +0 -55
  77. package/dot_config/containers/containers.conf +0 -14
  78. package/dot_config/curl/dot_curlrc +0 -18
  79. package/dot_config/dlv/config.yml +0 -39
  80. package/dot_config/docker/config.json.tmpl +0 -15
  81. package/dot_config/dotfiles/boot/README.md +0 -11
  82. package/dot_config/dotfiles/grub/README.md +0 -11
  83. package/dot_config/dotfiles/lock/README.md +0 -11
  84. package/dot_config/dotfiles/versions.env.tmpl +0 -19
  85. package/dot_config/duf/duf.conf +0 -6
  86. package/dot_config/duti/defaults.duti +0 -5
  87. package/dot_config/emoji/emoji.txt +0 -34
  88. package/dot_config/fastfetch/config.jsonc +0 -28
  89. package/dot_config/firefox/user.js +0 -8
  90. package/dot_config/flatpak/flatpak.list +0 -4
  91. package/dot_config/fontconfig/fonts.conf.tmpl +0 -44
  92. package/dot_config/gem/gemrc +0 -9
  93. package/dot_config/gh/config.yml +0 -12
  94. package/dot_config/ghostty/config.tmpl +0 -661
  95. package/dot_config/git/attributes +0 -12
  96. package/dot_config/git/config.tmpl +0 -77
  97. package/dot_config/git/ignore +0 -27
  98. package/dot_config/gnupg/gpg-agent.conf.tmpl +0 -11
  99. package/dot_config/go/aliases.sh +0 -61
  100. package/dot_config/go/env.sh +0 -24
  101. package/dot_config/go/golangci.yml +0 -118
  102. package/dot_config/go/gopls.json +0 -30
  103. package/dot_config/goose/config.yaml +0 -29
  104. package/dot_config/gtk-3.0/gtk.css.tmpl +0 -305
  105. package/dot_config/gtk-3.0/settings.ini.tmpl +0 -66
  106. package/dot_config/gtk-4.0/gtk.css.tmpl +0 -309
  107. package/dot_config/gtk-4.0/settings.ini.tmpl +0 -21
  108. package/dot_config/htop/htoprc +0 -20
  109. package/dot_config/ice/README.md +0 -13
  110. package/dot_config/inputrc +0 -2
  111. package/dot_config/ipython/profile_default/ipython_config.py.tmpl +0 -5
  112. package/dot_config/just/justfile +0 -104
  113. package/dot_config/k9s/config.yaml.tmpl +0 -65
  114. package/dot_config/k9s/skins/catppuccin-mocha.yaml +0 -116
  115. package/dot_config/karabiner/karabiner.json +0 -14
  116. package/dot_config/kitty/kitty.conf.tmpl +0 -517
  117. package/dot_config/lazydocker/config.yml +0 -186
  118. package/dot_config/lazygit/config.yml +0 -23
  119. package/dot_config/lsd/config.yaml +0 -19
  120. package/dot_config/mas/masapps.txt +0 -5
  121. package/dot_config/minikube/config.json +0 -13
  122. package/dot_config/mise/config.toml +0 -41
  123. package/dot_config/mongosh/mongoshrc.js +0 -67
  124. package/dot_config/mycli/myclirc +0 -67
  125. package/dot_config/nano/nanorc +0 -28
  126. package/dot_config/ncdu/config +0 -12
  127. package/dot_config/nvim/init.lua +0 -4
  128. package/dot_config/nvim/lazy-lock.json +0 -27
  129. package/dot_config/nvim/lua/config/autocmds.lua +0 -63
  130. package/dot_config/nvim/lua/config/keymaps.lua +0 -87
  131. package/dot_config/nvim/lua/config/lazy.lua +0 -34
  132. package/dot_config/nvim/lua/config/options.lua +0 -48
  133. package/dot_config/nvim/lua/plugins/coding.lua +0 -234
  134. package/dot_config/nvim/lua/plugins/dap.lua +0 -201
  135. package/dot_config/nvim/lua/plugins/editor.lua +0 -59
  136. package/dot_config/nvim/lua/plugins/git.lua +0 -9
  137. package/dot_config/nvim/lua/plugins/lsp.lua +0 -221
  138. package/dot_config/nvim/lua/plugins/markdown.lua +0 -17
  139. package/dot_config/nvim/lua/plugins/rust.lua +0 -33
  140. package/dot_config/nvim/lua/plugins/sessions.lua +0 -32
  141. package/dot_config/nvim/lua/plugins/ui.lua +0 -537
  142. package/dot_config/nvim/snippets/all.lua +0 -9
  143. package/dot_config/nvim/snippets/python.lua +0 -16
  144. package/dot_config/pip/pip.conf.tmpl +0 -32
  145. package/dot_config/pypoetry/config.toml.tmpl +0 -6
  146. package/dot_config/pyrightconfig.json.tmpl +0 -5
  147. package/dot_config/raycast/README.md +0 -13
  148. package/dot_config/redis/redisclirc +0 -41
  149. package/dot_config/shell/00-container-detect.sh +0 -53
  150. package/dot_config/shell/00-core-paths.sh.tmpl +0 -95
  151. package/dot_config/shell/05-core-safety.sh.tmpl +0 -13
  152. package/dot_config/shell/40-ls-colors.sh.tmpl +0 -31
  153. package/dot_config/shell/50-logic-functions.sh.tmpl +0 -10
  154. package/dot_config/shell/90-theme-switch.sh +0 -70
  155. package/dot_config/shell/90-ux-aliases.sh.tmpl +0 -35
  156. package/dot_config/shell/91-ux-aliases-lazy.sh.tmpl +0 -23
  157. package/dot_config/shell/Brewfile +0 -207
  158. package/dot_config/shell/Brewfile.cask +0 -92
  159. package/dot_config/shell/Brewfile.cli +0 -119
  160. package/dot_config/shell/README.md +0 -267
  161. package/dot_config/shell/custom/context_suggest.zsh +0 -68
  162. package/dot_config/shell/custom/error_analysis.zsh +0 -45
  163. package/dot_config/sops/dot_sops.yaml +0 -23
  164. package/dot_config/starship.toml.tmpl +0 -124
  165. package/dot_config/task/Taskfile.yml +0 -86
  166. package/dot_config/tflint/tflint.hcl.tmpl +0 -9
  167. package/dot_config/tmux/tmux.conf.tmpl +0 -181
  168. package/dot_config/topgrade/topgrade.toml.tmpl +0 -42
  169. package/dot_config/vscode/extensions.txt +0 -11
  170. package/dot_config/vscode/settings.json.tmpl +0 -123
  171. package/dot_config/waybar/style.css +0 -8
  172. package/dot_config/wezterm/wezterm.lua.tmpl +0 -236
  173. package/dot_config/wget/wgetrc +0 -12
  174. package/dot_config/yarn/yarnrc.yml.tmpl +0 -36
  175. package/dot_config/yazi/yazi.toml +0 -40
  176. package/dot_config/zellij/config.kdl +0 -79
  177. package/dot_config/zsh/dot_zprofile +0 -13
  178. package/dot_config/zsh/dot_zshenv +0 -6
  179. package/dot_config/zsh/dot_zshrc.tmpl +0 -199
  180. package/dot_config/zsh/rc.d/05-ssh-agent.zsh +0 -5
  181. package/dot_config/zsh/rc.d/10-env.zsh.tmpl +0 -28
  182. package/dot_config/zsh/rc.d/20-zinit.zsh.tmpl +0 -22
  183. package/dot_config/zsh/rc.d/30-options.zsh.tmpl +0 -123
  184. package/dot_config/zsh/rc.d/40-bell.zsh.tmpl +0 -20
  185. package/dot_config/zsh/rc.d/50-login-fortune.zsh.tmpl +0 -9
  186. package/dot_local/bin/executable_ai_core +0 -130
  187. package/dot_local/bin/executable_b64 +0 -59
  188. package/dot_local/bin/executable_dot +0 -178
  189. package/dot_local/bin/executable_dot_completion +0 -55
  190. package/dot_local/bin/executable_epoch +0 -62
  191. package/dot_local/bin/executable_extract +0 -108
  192. package/dot_local/bin/executable_git-ai-commit +0 -160
  193. package/dot_local/bin/executable_git-ai-diff +0 -154
  194. package/dot_local/bin/executable_hash +0 -123
  195. package/dot_local/bin/executable_hex +0 -79
  196. package/dot_local/bin/executable_ip +0 -37
  197. package/dot_local/bin/executable_jsonv +0 -54
  198. package/dot_local/bin/executable_jwt +0 -78
  199. package/dot_local/bin/executable_kill-port +0 -59
  200. package/dot_local/bin/executable_lorem +0 -103
  201. package/dot_local/bin/executable_regex +0 -96
  202. package/dot_local/bin/executable_tmux-sessionizer +0 -187
  203. package/dot_local/bin/executable_tour +0 -137
  204. package/dot_local/bin/executable_update +0 -108
  205. package/dot_local/bin/executable_uuid +0 -57
  206. package/dot_local/bin/executable_yamlv +0 -39
  207. package/dot_local/bin/executable_zig-install +0 -89
  208. package/dot_local/bin/voice_ops +0 -7
  209. package/dot_local/share/bash-completion/completions/dot +0 -54
  210. package/dot_local/share/zsh/completions/.keep +0 -0
  211. package/install.sh +0 -255
  212. package/scripts/ci/validate-ci-config.sh +0 -222
  213. package/scripts/demo/record.sh +0 -41
  214. package/scripts/diagnostics/benchmark.sh +0 -201
  215. package/scripts/diagnostics/doctor.sh +0 -115
  216. package/scripts/diagnostics/drift-dashboard.sh +0 -26
  217. package/scripts/diagnostics/health.sh +0 -356
  218. package/scripts/diagnostics/history-analysis.sh +0 -77
  219. package/scripts/diagnostics/security-score.sh +0 -392
  220. package/scripts/dot/commands/appearance.sh +0 -63
  221. package/scripts/dot/commands/core.sh +0 -130
  222. package/scripts/dot/commands/diagnostics.sh +0 -100
  223. package/scripts/dot/commands/meta.sh +0 -117
  224. package/scripts/dot/commands/restore.sh +0 -209
  225. package/scripts/dot/commands/secrets.sh +0 -81
  226. package/scripts/dot/commands/security.sh +0 -73
  227. package/scripts/dot/commands/tools.sh +0 -228
  228. package/scripts/dot/lib/utils.sh +0 -72
  229. package/scripts/fonts/install-nerd-fonts.sh +0 -59
  230. package/scripts/fonts/patch-fonts.sh +0 -34
  231. package/scripts/ops/chezmoi-apply.sh +0 -42
  232. package/scripts/ops/chezmoi-diff.sh +0 -14
  233. package/scripts/ops/chezmoi-remove.sh +0 -43
  234. package/scripts/ops/chezmoi-update.sh +0 -16
  235. package/scripts/ops/heal.sh +0 -466
  236. package/scripts/ops/health-check.sh +0 -380
  237. package/scripts/ops/rollback.sh +0 -531
  238. package/scripts/ops/teleport.sh +0 -32
  239. package/scripts/secrets/age-init.sh +0 -69
  240. package/scripts/secrets/create-secrets-file.sh +0 -44
  241. package/scripts/secrets/encrypt-ssh-key.sh +0 -42
  242. package/scripts/security/backup.sh +0 -17
  243. package/scripts/security/dns-doh.sh +0 -29
  244. package/scripts/security/encryption-check.sh +0 -39
  245. package/scripts/security/enforce-policies.sh +0 -339
  246. package/scripts/security/firewall.sh +0 -34
  247. package/scripts/security/lock-configs.sh +0 -57
  248. package/scripts/security/lock-screen.sh +0 -33
  249. package/scripts/security/manage-secrets.sh +0 -415
  250. package/scripts/security/telemetry-kill.sh +0 -28
  251. package/scripts/security/usb-safety.sh +0 -29
  252. package/scripts/tests/README.md +0 -241
  253. package/scripts/tests/benchmark.sh +0 -91
  254. package/scripts/tests/framework/assertions.sh +0 -283
  255. package/scripts/tests/framework/mocks.sh +0 -201
  256. package/scripts/tests/framework/test_runner.sh +0 -189
  257. package/scripts/tests/integration/test_install.sh +0 -237
  258. package/scripts/tests/performance/benchmark_runner.sh +0 -156
  259. package/scripts/tests/performance/regression_check.sh +0 -73
  260. package/scripts/tests/performance/stress_test.sh +0 -65
  261. package/scripts/tests/test-docker.sh +0 -48
  262. package/scripts/tests/unit/test_ai_aliases.sh +0 -158
  263. package/scripts/tests/unit/test_ai_cli_checks.sh +0 -47
  264. package/scripts/tests/unit/test_backup.sh +0 -227
  265. package/scripts/tests/unit/test_case_functions.sh +0 -238
  266. package/scripts/tests/unit/test_cd_aliases.sh +0 -367
  267. package/scripts/tests/unit/test_dot_cli.sh +0 -217
  268. package/scripts/tests/unit/test_encode64.sh +0 -67
  269. package/scripts/tests/unit/test_environment.sh +0 -78
  270. package/scripts/tests/unit/test_extract.sh +0 -163
  271. package/scripts/tests/unit/test_framework_edge_cases.sh +0 -113
  272. package/scripts/tests/unit/test_genpass.sh +0 -298
  273. package/scripts/tests/unit/test_install_edge_cases.sh +0 -167
  274. package/scripts/tests/unit/test_installers.sh +0 -172
  275. package/scripts/tests/unit/test_keygen.sh +0 -68
  276. package/scripts/tests/unit/test_logging.sh +0 -96
  277. package/scripts/tests/unit/test_os_detection_comprehensive.sh +0 -388
  278. package/scripts/tests/unit/test_package_managers_comprehensive.sh +0 -321
  279. package/scripts/tests/unit/test_prependpath.sh +0 -66
  280. package/scripts/tests/unit/test_prependpath_refactored.sh +0 -89
  281. package/scripts/tests/unit/test_rd.sh +0 -230
  282. package/scripts/tests/unit/test_security_fixes.sh +0 -130
  283. package/scripts/tests/unit/test_security_scripts.sh +0 -87
  284. package/scripts/tests/unit/test_template_validation.sh +0 -238
  285. package/scripts/tests/unit/test_utility_functions.sh +0 -144
  286. package/scripts/tests/unit/test_wave1_alias_split.sh +0 -132
  287. package/scripts/tests/unit/test_wave1_ci_pinning.sh +0 -61
  288. package/scripts/tests/unit/test_wave1_gitleaks_config.sh +0 -52
  289. package/scripts/tests/unit/test_wave1_heal_fixes.sh +0 -97
  290. package/scripts/tests/unit/test_wave1_install_gpg.sh +0 -35
  291. package/scripts/tests/unit/test_wave1_zshenv_path.sh +0 -89
  292. package/scripts/tests/unit/test_wave1_zshrc_lazy_hook.sh +0 -115
  293. package/scripts/tests/unit/test_wave2_dot_new_guard.sh +0 -75
  294. package/scripts/tests/unit/test_zipf.sh +0 -76
  295. package/scripts/theme/apply-gnome-theme.sh +0 -297
  296. package/scripts/theme/install-boot-logo.sh +0 -61
  297. package/scripts/theme/install-catppuccin-themes.sh +0 -346
  298. package/scripts/theme/install-cursors.sh +0 -24
  299. package/scripts/theme/install-file-icons.sh +0 -25
  300. package/scripts/theme/install-grub-theme.sh +0 -51
  301. package/scripts/theme/install-lock-icon.sh +0 -29
  302. package/scripts/theme/switch.sh +0 -250
  303. package/scripts/theme/wallpaper-rotate.sh +0 -82
  304. package/scripts/theme/wallpaper-sync.sh +0 -42
  305. package/scripts/tools/cmatrix.sh +0 -20
  306. package/scripts/tools/emoji-picker.sh +0 -45
  307. package/scripts/tools/figlet-banner.sh +0 -17
  308. package/scripts/tools/log-rotate.sh +0 -29
  309. package/scripts/tools/lolcat-wrap.sh +0 -18
  310. package/scripts/tools/pipes.sh +0 -47
  311. package/scripts/tuning/linux.sh +0 -175
  312. package/scripts/tuning/macos.sh +0 -46
  313. package/templates/projects/molecule/README.md +0 -7
  314. package/templates/projects/molecule/converge.yml +0 -7
  315. package/templates/projects/molecule/molecule.yml +0 -16
  316. package/templates/projects/packer/README.md +0 -15
  317. package/templates/projects/packer/main.pkr.hcl +0 -15
package/CHANGELOG.md DELETED
@@ -1,285 +0,0 @@
1
- # Changelog
2
-
3
- This file documents all notable changes to this project.
4
-
5
- ## v0.2.480
6
-
7
- ### Added
8
-
9
- - **Catppuccin theme support** — Added all four Catppuccin flavours (latte, frappe, macchiato, mocha) with comprehensive theming across VS Code, Neovim, GTK 3/4, GNOME Shell, and Nix home-manager integration.
10
- - **AI pair programming** — Added `aider-chat` CLI tool for AI-powered code editing and pair programming sessions.
11
- - **Enhanced Python AI tools** — Added `shell-gpt` and `posting` to Python tools provisioning for improved CLI AI assistance.
12
- - **Git workflow improvements** — Added `git-absorb` for automatic fixup commits and intelligent commit history management.
13
- - **Template helper functions** — Added comprehensive chezmoi template helpers for feature flags, git variables, OS detection, and path utilities.
14
-
15
- ### Changed
16
-
17
- - **Syntax highlighting performance** — Switched from `zsh-syntax-highlighting` to `fast-syntax-highlighting` for improved shell responsiveness.
18
- - **Technical debt reduction** — Achieved 10/10 technical debt score through modular installer refactoring with dedicated libraries for backup, chezmoi, OS detection, and package management.
19
- - **Documentation architecture** — Comprehensive documentation overhaul with centralized docs/README.md, helper function documentation, and improved template organization.
20
- - **Theme switching enhancement** — Enhanced `switch.sh` with family toggling between Tokyo Night and Catppuccin theme families.
21
-
22
- ### Fixed
23
-
24
- - **Template processing** — Fixed undefined `$name` variable in README.md template that was causing `chezmoi apply` failures.
25
- - **Code quality** — Resolved all remaining Codacy static analysis warnings for improved code maintainability.
26
- - **CI optimization** — Optimized GitHub Actions workflows to reduce usage and cost.
27
-
28
- ### Documentation
29
-
30
- - **ADR documentation** — Added comprehensive Architecture Decision Records (ADR-005 for chezmoi choice, ADR-006 for shell selection).
31
- - **Template validation** — Added comprehensive unit tests for template validation and processing.
32
- - **Theme documentation** — Added documentation for Catppuccin installation, GNOME theme application, and cross-platform theme switching.
33
-
34
- ## v0.2.479
35
-
36
- ### Added
37
-
38
- - **Cross-platform Brewfile** — Unified Brewfile with OS.mac?/OS.linux? platform detection for seamless package management across macOS, Linux, and WSL.
39
- - **Enhanced WSL detection** — Added DOTFILES_OS variable in zprofile for improved Windows Subsystem for Linux compatibility.
40
- - **AI shell tooling** — Added generic ollama aliases (ol, olr, oll, olp, ollama-status, ollama-show) for cross-platform AI model interaction.
41
- - **Homebrew optimization** — Added performance settings disabling analytics and auto-update for faster package operations.
42
- - **Language-specific PATH setup** — Enhanced PATH configuration for Go, Rust, .NET, and Python development environments.
43
-
44
- ### Changed
45
-
46
- - **Platform-agnostic aliases** — Removed personal model-specific ollama functions, keeping only generic cross-platform aliases that work on any Ollama installation.
47
- - **Brewfile organization** — Reorganized Brewfile sections for clarity and removed platform-specific packages from cross-platform sections.
48
- - **Feature flags documentation** — Expanded FEATURES.md with comprehensive feature flag table, template processing examples, and troubleshooting guide.
49
-
50
- ### Fixed
51
-
52
- - **Test framework reliability** — Resolved shellcheck warnings and mock export issues in unit test framework.
53
- - **CI compatibility** — Fixed alias tests to use proper `alias` command instead of `type`, enabled `shopt -s expand_aliases` in test subshells.
54
- - **PATH isolation** — Fixed unavailable command tests by using isolated PATH to ensure system commands aren't found during testing.
55
-
56
- ### Documentation
57
-
58
- - **AI aliases documentation** — Updated documentation for ollama aliases and cross-platform AI tooling.
59
- - **Architecture notes** — Enhanced feature flag documentation with template processing explanation and runtime access patterns.
60
-
61
- ## v0.2.478
62
-
63
- ### Added
64
-
65
- - **Lazy alias loading** — Tool-specific aliases (~137KB across 35+ categories) now load after the first prompt via a `precmd` hook, keeping shell startup fast while retaining full alias coverage.
66
- - **GPG signature verification** in `install.sh` — Verifies chezmoi release checksums against the upstream GPG signature with graceful degradation when `gpg` is unavailable.
67
- - **Unit tests for all refactored scripts** — 100 new tests across 7 test files covering alias split, lazy hooks, FNM fix, PATH entries, GPG verification, CI pinning, gitleaks config, heal.sh fixes, and `dot new` Python guard.
68
-
69
- ### Changed
70
-
71
- - **Alias split architecture** — Separated monolithic alias template into eager (`90-ux-aliases.sh`, 14 core categories) and lazy (`91-ux-aliases-lazy.sh`, 35+ tool categories).
72
- - **FNM triple initialization fixed** — Removed eager `eval "$(fnm env)"` from `.zshrc` and duplicate lazy-load block from `30-options.zsh`; single lazy-load via wrapper functions remains.
73
- - **CI chezmoi version pinned** to v2.47.1 with correct `-t` tag flag (was `-v`, which is invalid for `get.chezmoi.io`).
74
- - **`dot_zshenv` PATH entries** — Added idempotent `~/.local/bin` and `/opt/homebrew/bin` PATH guards so tools are available before `.zshrc` loads.
75
- - **`dot new` Python guard** — Moved Python pre-flight check before filesystem operations to avoid creating empty directories on failure.
76
- - Updated all version references to v0.2.478.
77
-
78
- ### Fixed
79
-
80
- - **`heal.sh` SC2015** — Replaced `A && B || C` pattern with proper `if/then` to satisfy shellcheck.
81
- - **`heal.sh` shfmt formatting** — Fixed case branch spacing and pipe operator alignment.
82
- - **Gitleaks false positive** — Allowlisted chezmoi GPG public key fingerprint via inline annotation and commit SHA.
83
-
84
- ### Documentation
85
-
86
- - Added shell startup flow (16 phases) to `ARCHITECTURE.md` with rc.d and shell/ load order tables.
87
- - Added alias system documentation covering eager/lazy split, glob ordering, and manifest convention.
88
- - Added startup flow diagram to `README.md`.
89
-
90
- ## v0.2.477
91
-
92
- ### Added
93
-
94
- - **Topgrade provisioning parity** across macOS, Linux, and WSL
95
- - Added `topgrade`, `mise`, `rustup`, `tmux`, `pipx`, `ruby`, `yazi` to Brewfile.cli
96
- - Added Linux binary installs for topgrade, mise, yazi with SHA256 verification
97
- - Added rustup via official installer with `--no-modify-path`
98
- - Added `cargo-install-update` for topgrade's cargo step
99
- - Added `gh` (GitHub CLI) to Linux package managers
100
- - Added `tmux`, `pipx`, `ruby` to Linux system packages
101
- - Created `run_onchange_12-tmux-plugins.sh.tmpl` for tpm provisioning
102
- - Added chezmoi-managed `topgrade.toml.tmpl` with platform-specific disable lists
103
- - Moved stylua and delta installs after rustup so cargo is available
104
- - Replaced yazi hint-only block with actual binary download
105
-
106
- - **Security and GPG**
107
- - Added `gnupg` to Brewfile.cli and Linux package lists (#381)
108
- - Updated GPG agent cache TTL to 1 day (86400 seconds) (#392)
109
-
110
- - **Node.js tooling**
111
- - Added `.npmrc` config with scoped registries support (#439)
112
- - Added `.yarnrc.yml` for Yarn Berry configuration (#440)
113
- - Added `.noderc` for Node REPL configuration (#271)
114
- - Added `eslint_d` global install for fast linting (#441, #267)
115
- - Added `prettier_d` global install for fast formatting (#442, #268)
116
- - Added `typescript` and `typescript-language-server` global installs
117
-
118
- - **Bun**
119
- - Added `bunfig.toml` configuration (#447, #273)
120
- - Added Bun paths to core-paths
121
-
122
- - **Kubernetes**
123
- - Added KUBECONFIG merge logic for `~/.kube/config.d/*` (#487, #313)
124
- - Added `hm` alias for `helm` (#489, #315)
125
- - Added K9s configuration with Catppuccin Mocha skin (#314)
126
- - Added `kube-linter` to Brewfile.cli (#319)
127
- - Added `kubesec` to Brewfile.cli (#318)
128
-
129
- - **Neovim**
130
- - Added `ts_ls` (TypeScript) to mason-lspconfig ensure_installed (#269)
131
- - Added DAP configuration with `js-debug-adapter` support (#270)
132
-
133
- - **macOS**
134
- - Added Finder List View as default view mode (#511)
135
- - Added Finder path bar, status bar, and folders-first sorting
136
-
137
- - **Dot CLI**
138
- - Added `dot packages` command to list installed packages (#375)
139
-
140
- - **Testing**
141
- - Added 14 security validation tests in `test_security_fixes.sh`
142
- - Added unit tests for TOCTOU prevention, input validation, and safe parsing
143
-
144
- ### Changed
145
-
146
- - Updated all version references to v0.2.477
147
- - **CI/CD consolidation**
148
- - Consolidated 5 workflow files into 3 (`ci.yml`, `codeql.yml`, `security-release.yml`)
149
- - Implemented 5-stage pipeline: LINT → SECURITY → TEST → QUALITY → BENCHMARK
150
- - Added consistent naming convention: `Category / Specifics`
151
- - Added concurrency groups for faster PR feedback
152
- - Merged Docker tests and benchmarks into main CI workflow
153
-
154
- ### Fixed
155
-
156
- - **Security hardening (OWASP)**
157
- - `mount_read_only.sh`: Input validation and secure temp file with `mktemp`
158
- - `chezmoi-apply.sh`/`chezmoi-update.sh`: Safe flag parsing with `read -ra`
159
- - `tmux-sessionizer`: Session name sanitization to prevent injection
160
- - `install.sh`: Escaped sed metacharacters for safe pattern matching
161
- - `teleport.sh`: Added tar safety flags (`--no-absolute-names`)
162
- - `permission.aliases.sh`: Added warnings for overly permissive modes (666/777)
163
- - `genpass.sh`: Numeric input validation
164
- - `backup.sh`: Enhanced error handling for tar operations
165
- - `age-init.sh`: Safe JSON output with `json.dumps`
166
-
167
- - **Cross-platform compatibility**
168
- - `99-custom.paths.sh`: Added macOS guards and path existence checks
169
- - `00-default.paths.sh`: Added darwin guard for Homebrew, Linuxbrew support
170
- - `view-source.sh`: Plain curl command for portability
171
- - `configuration.aliases.sh`: File existence checks before sourcing
172
- - `install_neovim.sh`: Linux-only guard, user-local fallback when no sudo
173
- - `upgrade_neovim_nightly.sh`: Platform guard, sudo fallback
174
- - `run_before_00-audit.sh`: Container-safe hostname detection
175
- - Removed hardcoded `/usr/bin` paths in `last.sh`, `hexdump.sh`, `httpdebug.sh`, `caffeine.sh`
176
-
177
- ## v0.2.476
178
-
179
- ### Added
180
-
181
- - **AI CLI Tools (NPM-based)**
182
- - Added `claude` (@anthropic-ai/claude-code) - Anthropic Claude CLI for AI-powered coding
183
- - Added `gemini` (@google/gemini-cli) - Google Gemini CLI for terminal AI assistance
184
- - Added `codex` (@openai/codex) - OpenAI Codex CLI for code generation and understanding
185
- - Added `opencode` (opencode-ai) - OpenCode AI assistant with TUI
186
- - Added `droid` (@factory/cli) - Factory AI Droid for intelligent code orchestration
187
- - All tools installed globally via npm/fnm
188
- - Auto-install fnm and Node.js LTS if not present
189
-
190
- ### Changed
191
-
192
- - Updated all version references to v0.2.476
193
-
194
- ## v0.2.474
195
-
196
-
197
- ### Added
198
-
199
- - **Shell configuration**
200
- - Added `.profile` with POSIX-compatible login shell configuration
201
- - Added `.bashrc` fallback for non-Zsh environments
202
- - Added `.inputrc` with enhanced Readline configuration
203
- - Added `.vimrc` legacy support for environments without Neovim
204
- - Added `.Xresources` with X11 configuration and Catppuccin theme
205
-
206
- - **Database CLI configuration**
207
- - Added `.psqlrc` with enhanced PostgreSQL CLI configuration
208
- - Added `.sqliterc` with SQLite CLI settings
209
- - Added `mycli` configuration for MySQL CLI
210
- - Added `redis-cli` configuration
211
- - Added `mongosh` configuration for MongoDB Shell
212
-
213
- - **Kubernetes tooling**
214
- - Added `kubectx` and `kubens` aliases for context/namespace switching
215
- - Added `stern` aliases for multi-pod log tailing
216
- - Added `kube-linter` aliases for manifest linting
217
- - Added `kubesec` aliases for security scanning
218
- - Added `minikube` configuration and aliases
219
- - Enhanced Kubernetes aliases with comprehensive kubectl shortcuts
220
-
221
- - **Nix integration**
222
- - Added `packages` output to Nix flake
223
- - Added `dot-utils` meta-package derivation
224
- - Added `tmux`, `eza`, `yq`, `age`, `gnupg` to package list
225
- - Added install hook script for `nix profile install`
226
-
227
- - **Dot CLI**
228
- - Added `dot --version` to display version information
229
- - Added `dot add` to add files to chezmoi source
230
- - Added `dot status` to show configuration drift
231
- - Added `dot cd` to print source directory path
232
- - Enhanced `dot tools` with `install` subcommand for Nix shell
233
-
234
- - **Docker tooling**
235
- - Added comprehensive Docker aliases (`dco`, `dprune`, `dlogsf`, `dexec`)
236
- - Added Docker Compose aliases (`dco` for `docker compose`)
237
- - Added Docker Buildx aliases for multi-platform builds
238
- - Added Lazydocker configuration (`config.yml`)
239
- - Added support for Dive and Hadolint
240
-
241
- - **Tmux enhancements**
242
- - Added vim-style copy bindings (`v` for selection, `y` for yank)
243
- - Added tmux-sessionizer script for fuzzy session switching
244
- - Updated clipboard integration for macOS and Linux
245
-
246
- - **CI/CD**
247
- - Added Luacheck CI for Lua linting
248
- - Added shfmt format checking for shell scripts
249
- - Added Gitleaks secrets scanner
250
- - Added link rot checker for documentation
251
- - Added idempotency double-run test
252
- - Expanded test matrix to include macOS-13, macOS-14, and multiple Ubuntu versions
253
-
254
- - **Completions**
255
- - Added Bash completion for the `dot` CLI
256
- - Enhanced Zsh completion with command descriptions
257
-
258
- - **Documentation**
259
- - Enhanced installation guide with Nix instructions
260
- - Enhanced troubleshooting guide with more common issues
261
- - Added comprehensive tools list with tables
262
- - Added aliases reference documentation
263
- - Added feature flags documentation
264
- - Enhanced architecture documentation with diagrams
265
- - Enhanced CODEOWNERS with detailed ownership rules
266
- - Enhanced contributing guide with PR guidelines
267
-
268
- ### Changed
269
-
270
- - Updated all version references to v0.2.474
271
- - Made shebangs portable (`#!/usr/bin/env bash`)
272
- - Improved documentation with Apple-style clarity
273
- - Updated Brewfile.cli with Kubernetes tools
274
-
275
- ### Fixed
276
-
277
- - Fixed duplicate alias conflicts in Docker aliases
278
-
279
- ## v0.2.474
280
-
281
- - See the release notes and commit history for detailed changes.
282
-
283
- ## v0.2.472
284
-
285
- - See the release notes and commit history for detailed changes.