@sebastienrousseau/dotfiles 0.2.500 → 0.2.501

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 (204) hide show
  1. package/CHANGELOG.md +77 -0
  2. package/README.md +82 -44
  3. package/docs/.vitepress/reports/localization-readability-audit.md +4 -0
  4. package/docs/AI.md +8 -2
  5. package/docs/CNAME +1 -0
  6. package/docs/COPYRIGHT +1 -1
  7. package/docs/NAMING_CONVENTIONS.md +7 -0
  8. package/docs/README.md +4 -0
  9. package/docs/_config.yml +59 -0
  10. package/docs/adr/ADR-001-ci-cd-pipeline.md +17 -0
  11. package/docs/adr/ADR-002-shell-performance.md +9 -0
  12. package/docs/adr/ADR-003-security-first.md +18 -0
  13. package/docs/adr/ADR-004-cli-architecture.md +14 -0
  14. package/docs/adr/ADR-005-chezmoi-choice.md +10 -0
  15. package/docs/adr/ADR-006-shell-selection.md +9 -0
  16. package/docs/adr/ADR-007-multi-shell-parity.md +10 -1
  17. package/docs/adr/ADR-008-alias-system-architecture.md +10 -0
  18. package/docs/adr/ADR-009-wallpaper-driven-theming.md +131 -0
  19. package/docs/adr/ADR-010-starship-transient-prompt.md +144 -0
  20. package/docs/adr/ADR-011-nushell-tier3-keep.md +144 -0
  21. package/docs/adr/README.md +7 -0
  22. package/docs/architecture/ARCHITECTURE.md +4 -0
  23. package/docs/architecture/INTEROP.md +8 -0
  24. package/docs/architecture/REPO_LAYOUT.md +5 -1
  25. package/docs/architecture/WALKTHROUGH.md +4 -0
  26. package/docs/architecture/fleet-deployment.md +4 -0
  27. package/docs/archive/EUXIS_2026_REVIEW.md +11 -3
  28. package/docs/archive/LEGACY_ROADMAP.md +45 -27
  29. package/docs/archive/MILESTONE_v0.2.493.md +4 -0
  30. package/docs/archive/PLAN.md +46 -8
  31. package/docs/archive/REPO_AUDIT.md +8 -0
  32. package/docs/guides/INSTALL.md +4 -0
  33. package/docs/guides/NEOVIM_IDE_GUIDE.md +9 -0
  34. package/docs/guides/THEMING.md +8 -0
  35. package/docs/guides/TROUBLESHOOTING.md +28 -0
  36. package/docs/guides/WSL2_NIX_TROUBLESHOOTING.md +70 -1
  37. package/docs/index.md +6 -2
  38. package/docs/interop/A2A.md +7 -0
  39. package/docs/interop/POWERSHELL.md +102 -0
  40. package/docs/manual/00-introduction.md +5 -1
  41. package/docs/manual/01-concepts/01-architecture.md +4 -0
  42. package/docs/manual/01-concepts/02-trust-model.md +6 -2
  43. package/docs/manual/01-concepts/03-theme-engine.md +4 -0
  44. package/docs/manual/01-concepts/04-fleet.md +7 -1
  45. package/docs/manual/01-concepts/05-self-healing.md +8 -1
  46. package/docs/manual/02-tutorials/01-first-install.md +5 -0
  47. package/docs/manual/02-tutorials/02-add-wallpaper.md +5 -0
  48. package/docs/manual/02-tutorials/03-create-profile.md +6 -0
  49. package/docs/manual/02-tutorials/04-encrypt-secret.md +6 -0
  50. package/docs/manual/02-tutorials/05-deploy-fleet.md +5 -1
  51. package/docs/manual/03-reference/01-dot-cli.md +4 -0
  52. package/docs/manual/03-reference/02-config-files.md +8 -2
  53. package/docs/manual/03-reference/03-environment.md +4 -0
  54. package/docs/manual/03-reference/04-templates.md +7 -1
  55. package/docs/manual/03-reference/05-feature-flags.md +10 -0
  56. package/docs/manual/04-cookbook/01-recipes.md +4 -0
  57. package/docs/manual/04-cookbook/02-troubleshooting.md +32 -0
  58. package/docs/manual/04-cookbook/03-faq.md +8 -0
  59. package/docs/manual/05-appendices/A-platform-matrix.md +4 -0
  60. package/docs/manual/05-appendices/B-security-checklist.md +6 -0
  61. package/docs/manual/05-appendices/C-glossary.md +4 -0
  62. package/docs/manual/05-appendices/D-bibliography.md +5 -1
  63. package/docs/manual/05-appendices/E-license.md +4 -0
  64. package/docs/manual/_toc.yml +1 -1
  65. package/docs/manual/command-index.md +4 -0
  66. package/docs/manual/concept-index.md +4 -0
  67. package/docs/operations/ATTESTATION.md +5 -0
  68. package/docs/operations/CI_CADENCE.md +107 -0
  69. package/docs/operations/CI_COMPOSITES.md +156 -0
  70. package/docs/operations/COMPLETIONS.md +123 -0
  71. package/docs/operations/COVERAGE.md +148 -0
  72. package/docs/operations/DRIFT.md +107 -0
  73. package/docs/operations/MAINTENANCE.md +5 -1
  74. package/docs/operations/MIGRATION.md +14 -6
  75. package/docs/operations/OPERATIONS.md +24 -0
  76. package/docs/operations/PERFORMANCE.md +133 -0
  77. package/docs/operations/RELIABILITY.md +6 -0
  78. package/docs/operations/ROADMAP.md +36 -18
  79. package/docs/operations/TESTING.md +4 -0
  80. package/docs/operations/TRACEABILITY.md +4 -0
  81. package/docs/operations/TRUSTED_AGENT_WORKSTATION.md +4 -0
  82. package/docs/operations/VERSION_SYNC.md +54 -5
  83. package/docs/reference/ALIASES.md +7 -0
  84. package/docs/reference/ALIASES_CHEATSHEET.md +5 -1
  85. package/docs/reference/ALIASES_DEPRECATIONS.md +5 -1
  86. package/docs/reference/FEATURES.md +4 -0
  87. package/docs/reference/FONTS.md +4 -0
  88. package/docs/reference/PROFILES.md +4 -0
  89. package/docs/reference/SCREENSHOTS.md +4 -0
  90. package/docs/reference/SCRIPTS.md +4 -0
  91. package/docs/reference/SUPPORT_MATRIX.md +10 -4
  92. package/docs/reference/THEMES.md +4 -0
  93. package/docs/reference/TOOLS.md +4 -0
  94. package/docs/reference/UTILS.md +16 -12
  95. package/docs/security/AI_ACT_COMPLIANCE.md +4 -0
  96. package/docs/security/AUDIT_BYPASS.md +103 -0
  97. package/docs/security/AUTOMATION_SECRETS.md +4 -0
  98. package/docs/security/CI_EGRESS_ALLOWLIST.md +127 -0
  99. package/docs/security/COMPLIANCE.md +5 -0
  100. package/docs/security/DEPS_DEV_EXCEPTIONS.md +86 -0
  101. package/docs/security/ENCRYPTION.md +5 -0
  102. package/docs/security/FMEA.md +4 -0
  103. package/docs/security/HISTORY_FILTERING.md +132 -0
  104. package/docs/security/INCIDENT_RESPONSE.md +4 -0
  105. package/docs/security/INSTALL_VERIFICATION.md +122 -0
  106. package/docs/security/KEYS.md +4 -0
  107. package/docs/security/KEY_ROTATION.md +4 -0
  108. package/docs/security/MCP_POLICY.md +9 -0
  109. package/docs/security/POLICY_RELEASES.md +4 -0
  110. package/docs/security/README.md +4 -0
  111. package/docs/security/SCORECARD.md +80 -0
  112. package/docs/security/SECRETS.md +12 -0
  113. package/docs/security/SECURITY.md +4 -0
  114. package/docs/security/SECURITY_CHECKLIST.md +11 -0
  115. package/docs/security/SHELL_EXEMPTIONS.md +145 -0
  116. package/docs/security/SOUP_REGISTER.md +4 -0
  117. package/docs/security/THREAT_MODEL.md +10 -0
  118. package/docs/security/VERIFICATION_VALIDATION.md +5 -1
  119. package/docs/themes/README.md +4 -0
  120. package/docs/themes/VISUAL_INTEGRITY_REPORT.md +4 -0
  121. package/dot_config/ai/identity.md +3 -0
  122. package/dot_config/ai/patterns/architect.md +2 -0
  123. package/dot_config/ai/patterns/hardener.md +2 -0
  124. package/dot_config/ai/patterns/refactor.md +2 -0
  125. package/dot_config/alacritty/alacritty.toml.tmpl +3 -3
  126. package/dot_config/atuin/config.toml.tmpl +47 -0
  127. package/dot_config/dotfiles/agent-card.json +1 -1
  128. package/dot_config/dotfiles/boot/README.md +2 -0
  129. package/dot_config/dotfiles/grub/README.md +2 -0
  130. package/dot_config/dotfiles/lock/README.md +2 -0
  131. package/dot_config/fish/conf.d/init.fish.tmpl +21 -0
  132. package/dot_config/fish/functions/_cached_eval.fish +84 -11
  133. package/dot_config/fish/functions/_cached_eval_clear.fish +17 -0
  134. package/dot_config/foot/foot.ini.tmpl +3 -3
  135. package/dot_config/fuzzel/fuzzel.ini.tmpl +2 -2
  136. package/dot_config/ghostty/config.tmpl +3 -3
  137. package/dot_config/git/hooks/executable_commit-msg +146 -0
  138. package/dot_config/goose/config.yaml +2 -2
  139. package/dot_config/gtk-3.0/gtk.css.tmpl +2 -2
  140. package/dot_config/gtk-3.0/settings.ini.tmpl +2 -2
  141. package/dot_config/gtk-4.0/gtk.css.tmpl +2 -2
  142. package/dot_config/gtk-4.0/settings.ini.tmpl +2 -2
  143. package/dot_config/kitty/kitty.conf.tmpl +3 -3
  144. package/dot_config/mise/config.toml +1 -1
  145. package/dot_config/niri/config.kdl.tmpl +2 -2
  146. package/dot_config/nushell/cached_eval.nu +80 -0
  147. package/dot_config/nushell/env.nu.tmpl +21 -13
  148. package/dot_config/shell/00-core-paths.sh.tmpl +1 -0
  149. package/dot_config/shell/05-core-safety.sh +1 -0
  150. package/dot_config/shell/10-secrets.sh +1 -0
  151. package/dot_config/shell/40-fzf-defaults.sh.tmpl +1 -0
  152. package/dot_config/shell/40-ls-colors.sh +1 -0
  153. package/dot_config/shell/50-logic-functions-core.sh.tmpl +1 -0
  154. package/dot_config/shell/50-logic-functions.sh.tmpl +1 -0
  155. package/dot_config/shell/51-logic-functions-extra.sh.tmpl +1 -0
  156. package/dot_config/shell/90-ux-aliases.sh.tmpl +1 -0
  157. package/dot_config/shell/91-ux-aliases-lazy.sh.tmpl +1 -0
  158. package/dot_config/shell/README.md +25 -8
  159. package/dot_config/starship.toml.tmpl +2 -2
  160. package/dot_config/tmux/tmux.conf.tmpl +3 -3
  161. package/dot_config/user-dirs.dirs +1 -0
  162. package/dot_config/vscode/settings.json.tmpl +2 -2
  163. package/dot_config/waybar/config.jsonc.tmpl +2 -2
  164. package/dot_config/waybar/style.css.tmpl +2 -2
  165. package/dot_config/wezterm/wezterm.lua.tmpl +3 -3
  166. package/dot_config/zsh/dot_zshrc.tmpl +154 -17
  167. package/dot_config/zsh/rc.d/00-alias-shims.zsh +28 -6
  168. package/dot_config/zsh/rc.d/30-options.zsh.tmpl +26 -6
  169. package/dot_local/bin/executable_bm +2 -0
  170. package/dot_local/bin/executable_dot +9 -2
  171. package/dot_local/bin/executable_dot-load-benchmark +1 -1
  172. package/dot_local/bin/executable_notify +2 -0
  173. package/dot_local/bin/executable_open +2 -0
  174. package/dot_local/bin/executable_tour +4 -2
  175. package/dot_local/bin/executable_up +3 -1
  176. package/install.sh +12 -4
  177. package/package.json +1 -1
  178. package/scripts/ci/check-dangerous-chmod.sh +19 -0
  179. package/scripts/ci/check-deps-dev.sh +236 -0
  180. package/scripts/ci/check-insecure-tls.sh +61 -0
  181. package/scripts/ci/check-regression-traceability.sh +67 -0
  182. package/scripts/ci/check-shell-preamble.sh +106 -0
  183. package/scripts/ci/run-coverage.sh +362 -0
  184. package/scripts/ci/validate-chezmoidata.sh +25 -0
  185. package/scripts/diagnostics/doctor.sh +173 -5
  186. package/scripts/diagnostics/drift-dashboard.sh +177 -13
  187. package/scripts/diagnostics/health.sh +21 -4
  188. package/scripts/diagnostics/perf.sh +304 -77
  189. package/scripts/diagnostics/workstation-attestation.sh +6 -1
  190. package/scripts/dot/commands/agent.sh +14 -5
  191. package/scripts/dot/commands/ai.sh +75 -10
  192. package/scripts/dot/lib/bento.sh +2 -1
  193. package/scripts/dot/lib/log.sh +6 -0
  194. package/scripts/dot/lib/platform.sh +1 -0
  195. package/scripts/dot/lib/ui.sh +11 -0
  196. package/scripts/dot/lib/utils.sh +5 -0
  197. package/scripts/git-hooks/pre-commit-audit.sh +1 -1
  198. package/scripts/git-hooks/pre-push +66 -3
  199. package/scripts/ops/heal-chezmoi.sh +41 -6
  200. package/scripts/qa/powershell-contract.ps1 +95 -0
  201. package/scripts/theme/merge-wallpaper.sh +4 -0
  202. package/scripts/theme/switch.sh +20 -10
  203. package/dot_config/atuin/config.toml +0 -40
  204. package/dot_local/bin/__pycache__/executable_dot-load-benchmark-ptycpython-312.pyc +0 -0
@@ -1,6 +1,11 @@
1
+ ---
2
+ render_with_liquid: false
3
+ ---
4
+
1
5
  # WSL2 & Nix Integration Troubleshooting Guide
2
6
 
3
7
  ### Metadata
8
+
4
9
  - **Type:** How-To Guide / Reference
5
10
  - **Audience:** Intermediate / Advanced
6
11
  - **Prerequisites:** Basic familiarity with command line, WSL2, and Nix package manager
@@ -25,6 +30,7 @@ A comprehensive troubleshooting guide for WSL2 edge cases, Nix integration issue
25
30
  ### Filesystem Issues
26
31
 
27
32
  #### Problem: Symlinks fail to work between Windows and WSL2
33
+
28
34
  ```bash
29
35
  # Check if symlinks are enabled
30
36
  ls -la ~/.dotfiles/
@@ -34,13 +40,16 @@ ls -la ~/.dotfiles/
34
40
  **Root Cause:** Windows filesystem doesn't support Unix symlinks by default.
35
41
 
36
42
  **Solutions:**
43
+
37
44
  1. **Enable Developer Mode** (Windows 10/11):
45
+
38
46
  ```powershell
39
47
  # Run in PowerShell as Administrator
40
48
  dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
41
49
  ```
42
50
 
43
51
  2. **Use WSL2 native filesystem**:
52
+
44
53
  ```bash
45
54
  # Move dotfiles to WSL2 filesystem
46
55
  cd ~
@@ -48,12 +57,14 @@ ls -la ~/.dotfiles/
48
57
  ```
49
58
 
50
59
  3. **Configure Git for WSL2**:
60
+
51
61
  ```bash
52
62
  git config --global core.symlinks true
53
63
  git config --global core.autocrlf false
54
64
  ```
55
65
 
56
66
  #### Problem: Slow filesystem performance on Windows drives
67
+
57
68
  ```bash
58
69
  # Test filesystem performance
59
70
  time ls -la /mnt/c/Users/
@@ -63,12 +74,14 @@ time ls -la ~/
63
74
  **Solution:** Always work within WSL2 filesystem (`~/`) for performance-critical operations.
64
75
 
65
76
  #### Problem: Permission denied errors on mounted Windows drives
77
+
66
78
  ```bash
67
79
  # Check mount options
68
80
  mount | grep drvfs
69
81
  ```
70
82
 
71
83
  **Solution:** Remount with proper permissions:
84
+
72
85
  ```bash
73
86
  # Create /etc/wsl.conf
74
87
  sudo tee /etc/wsl.conf > /dev/null <<EOF
@@ -86,6 +99,7 @@ wsl --shutdown
86
99
  ### Networking Issues
87
100
 
88
101
  #### Problem: DNS resolution fails in WSL2
102
+
89
103
  ```bash
90
104
  # Test DNS resolution
91
105
  nslookup github.com
@@ -93,15 +107,19 @@ ping github.com
93
107
  ```
94
108
 
95
109
  **Solutions:**
110
+
96
111
  1. **Reset WSL2 DNS**:
112
+
97
113
  ```bash
98
114
  sudo rm /etc/resolv.conf
99
115
  sudo bash -c 'echo "nameserver 8.8.8.8" > /etc/resolv.conf'
100
116
  ```
101
117
 
102
118
  2. **Configure permanent DNS**:
119
+
103
120
  ```bash
104
121
  sudo tee /etc/wsl.conf > /dev/null <<EOF
122
+
105
123
  [network]
106
124
  generateResolvConf = false
107
125
  EOF
@@ -110,6 +128,7 @@ EOF
110
128
  nameserver 1.1.1.1
111
129
  nameserver 8.8.8.8
112
130
  EOF
131
+
113
132
  ```
114
133
 
115
134
  #### Problem: Port forwarding doesn't work
@@ -119,6 +138,7 @@ netstat -tulpn | grep :3000
119
138
  ```
120
139
 
121
140
  **Solution:** Use Windows port proxy:
141
+
122
142
  ```powershell
123
143
  # Run in PowerShell as Administrator
124
144
  netsh interface portproxy add v4tov4 listenport=3000 listenaddress=0.0.0.0 connectport=3000 connectaddress=172.x.x.x
@@ -127,6 +147,7 @@ netsh interface portproxy add v4tov4 listenport=3000 listenaddress=0.0.0.0 conne
127
147
  ### Memory and Resource Issues
128
148
 
129
149
  #### Problem: WSL2 consumes excessive memory
150
+
130
151
  ```bash
131
152
  # Check WSL2 memory usage
132
153
  cat /proc/meminfo | grep MemTotal
@@ -134,6 +155,7 @@ free -h
134
155
  ```
135
156
 
136
157
  **Solution:** Limit WSL2 memory usage:
158
+
137
159
  ```ini
138
160
  # Create %UserProfile%\.wslconfig
139
161
  [wsl2]
@@ -143,7 +165,9 @@ swap=2GB
143
165
  ```
144
166
 
145
167
  #### Problem: WSL2 doesn't release memory back to Windows
168
+
146
169
  **Solution:** Compact WSL2 virtual disk:
170
+
147
171
  ```powershell
148
172
  # Run in PowerShell as Administrator
149
173
  wsl --shutdown
@@ -162,6 +186,7 @@ diskpart
162
186
  ### Installation Problems
163
187
 
164
188
  #### Problem: Nix installation fails on WSL2
189
+
165
190
  ```bash
166
191
  # Check if installation attempted
167
192
  ls -la /nix/
@@ -169,23 +194,29 @@ which nix
169
194
  ```
170
195
 
171
196
  **Solutions:**
197
+
172
198
  1. **Use deterministic installer**:
199
+
173
200
  ```bash
174
201
  curl -L https://nixos.org/nix/install | sh -s -- --daemon
175
202
  ```
176
203
 
177
204
  2. **Fix permissions after installation**:
205
+
178
206
  ```bash
179
207
  sudo chown -R $(whoami) /nix/var/nix/profiles/per-user/$(whoami)/
180
208
  sudo chmod -R 755 /nix/var/nix/profiles/per-user/$(whoami)/
181
209
  ```
182
210
 
183
211
  3. **Enable systemd for Nix daemon** (WSL2 Ubuntu 22.04+):
212
+
184
213
  ```bash
185
214
  sudo tee /etc/wsl.conf > /dev/null <<EOF
215
+
186
216
  [boot]
187
217
  systemd=true
188
218
  EOF
219
+
189
220
  ```
190
221
 
191
222
  #### Problem: Nix flakes not recognized
@@ -195,6 +226,7 @@ nix flake --help
195
226
  ```
196
227
 
197
228
  **Solution:** Enable experimental features:
229
+
198
230
  ```bash
199
231
  mkdir -p ~/.config/nix/
200
232
  tee ~/.config/nix/nix.conf > /dev/null <<EOF
@@ -210,18 +242,22 @@ EOF
210
242
  ```
211
243
 
212
244
  #### Problem: SSL certificate errors during Nix operations
245
+
213
246
  ```bash
214
247
  # Test Nix store access
215
248
  nix ping-store
216
249
  ```
217
250
 
218
251
  **Solutions:**
252
+
219
253
  1. **Update CA certificates**:
254
+
220
255
  ```bash
221
256
  sudo apt update && sudo apt install ca-certificates
222
257
  ```
223
258
 
224
259
  2. **Configure Nix with custom CA bundle**:
260
+
225
261
  ```bash
226
262
  export NIX_SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt
227
263
  echo 'export NIX_SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt' >> ~/.bashrc
@@ -230,6 +266,7 @@ nix ping-store
230
266
  ### Flake and Profile Issues
231
267
 
232
268
  #### Problem: Flake lock file conflicts
269
+
233
270
  ```bash
234
271
  # Check flake lock status
235
272
  cd ~/.dotfiles/nix/
@@ -237,6 +274,7 @@ nix flake check --impure
237
274
  ```
238
275
 
239
276
  **Solution:** Update and rebuild lock file:
277
+
240
278
  ```bash
241
279
  cd ~/.dotfiles/nix/
242
280
  rm flake.lock
@@ -245,6 +283,7 @@ nix flake check
245
283
  ```
246
284
 
247
285
  #### Problem: Nix profile conflicts with system packages
286
+
248
287
  ```bash
249
288
  # List Nix profiles
250
289
  nix profile list
@@ -253,29 +292,35 @@ which -a git
253
292
  ```
254
293
 
255
294
  **Solutions:**
295
+
256
296
  1. **Remove conflicting profiles**:
297
+
257
298
  ```bash
258
299
  nix profile remove <profile-number>
259
300
  ```
260
301
 
261
302
  2. **Use priority settings**:
303
+
262
304
  ```bash
263
305
  nix profile install nixpkgs#git --priority 10
264
306
  ```
265
307
 
266
308
  3. **Create isolated development environments**:
309
+
267
310
  ```bash
268
311
  cd ~/.dotfiles/nix/
269
312
  nix develop
270
313
  ```
271
314
 
272
315
  #### Problem: Nix store corruption
316
+
273
317
  ```bash
274
318
  # Check store integrity
275
319
  nix-store --verify --check-contents
276
320
  ```
277
321
 
278
322
  **Solution:** Repair corrupted store:
323
+
279
324
  ```bash
280
325
  # Stop Nix daemon
281
326
  sudo systemctl stop nix-daemon
@@ -290,12 +335,14 @@ sudo systemctl start nix-daemon
290
335
  ### Build and Cache Issues
291
336
 
292
337
  #### Problem: Binary cache not working
338
+
293
339
  ```bash
294
340
  # Test cache connectivity
295
341
  nix ping-store --store https://cache.nixos.org
296
342
  ```
297
343
 
298
344
  **Solution:** Configure trusted substituters:
345
+
299
346
  ```bash
300
347
  sudo tee -a /etc/nix/nix.conf > /dev/null <<EOF
301
348
  substituters = https://cache.nixos.org/ https://nix-community.cachix.org
@@ -304,6 +351,7 @@ EOF
304
351
  ```
305
352
 
306
353
  #### Problem: Out of disk space during build
354
+
307
355
  ```bash
308
356
  # Check Nix store size
309
357
  du -sh /nix/store/
@@ -311,6 +359,7 @@ df -h /nix/
311
359
  ```
312
360
 
313
361
  **Solution:** Clean up Nix store:
362
+
314
363
  ```bash
315
364
  # Remove unused packages
316
365
  nix-collect-garbage
@@ -329,6 +378,7 @@ nix-store --optimise
329
378
  ### Complete System Recovery
330
379
 
331
380
  #### Scenario: Dotfiles installation completely broken
381
+
332
382
  ```bash
333
383
  # 1. Backup current state
334
384
  cp ~/.zshrc ~/.zshrc.backup.$(date +%s)
@@ -348,6 +398,7 @@ curl -fsSL https://raw.githubusercontent.com/sebastienrousseau/dotfiles/main/ins
348
398
  ```
349
399
 
350
400
  #### Scenario: WSL2 completely broken
401
+
351
402
  ```powershell
352
403
  # From Windows PowerShell as Administrator
353
404
 
@@ -367,6 +418,7 @@ wsl -d Ubuntu -u root -- curl -fsSL https://raw.githubusercontent.com/sebastienr
367
418
  ### Partial Recovery
368
419
 
369
420
  #### Fix broken Nix installation
421
+
370
422
  ```bash
371
423
  # 1. Remove broken Nix
372
424
  sudo rm -rf /nix/
@@ -387,6 +439,7 @@ which nix
387
439
  ```
388
440
 
389
441
  #### Fix broken shell configuration
442
+
390
443
  ```bash
391
444
  # 1. Use emergency shell config
392
445
  cat > ~/.zshrc.emergency <<'EOF'
@@ -414,6 +467,7 @@ chezmoi apply
414
467
  ### Data Recovery
415
468
 
416
469
  #### Recover encrypted secrets
470
+
417
471
  ```bash
418
472
  # 1. Check if key file exists
419
473
  ls -la ~/.config/chezmoi/key.txt
@@ -430,6 +484,7 @@ chezmoi execute-template --init --force
430
484
  ```
431
485
 
432
486
  #### Recover Git configuration
487
+
433
488
  ```bash
434
489
  # 1. Check current git config
435
490
  git config --list --show-origin
@@ -453,6 +508,7 @@ git config --get core.editor
453
508
  ### WSL2 Performance Tuning
454
509
 
455
510
  #### Optimize filesystem performance
511
+
456
512
  ```bash
457
513
  # 1. Move frequently accessed files to WSL2 filesystem
458
514
  mkdir -p ~/workspace
@@ -469,6 +525,7 @@ export EDITOR="nvim"
469
525
  ```
470
526
 
471
527
  #### Reduce memory usage
528
+
472
529
  ```bash
473
530
  # 1. Limit shell history
474
531
  echo 'HISTSIZE=1000' >> ~/.zshrc
@@ -485,6 +542,7 @@ echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
485
542
  ### Nix Performance Tuning
486
543
 
487
544
  #### Optimize Nix builds
545
+
488
546
  ```bash
489
547
  # Configure build settings
490
548
  sudo tee -a /etc/nix/nix.conf > /dev/null <<EOF
@@ -497,6 +555,7 @@ EOF
497
555
  ```
498
556
 
499
557
  #### Enable build caching
558
+
500
559
  ```bash
501
560
  # Install and configure cachix
502
561
  nix profile install nixpkgs#cachix
@@ -513,6 +572,7 @@ echo 'eval "$(cachix completion bash)"' >> ~/.bashrc
513
572
  ### Moving from macOS to WSL2
514
573
 
515
574
  #### Environment differences checklist
575
+
516
576
  ```bash
517
577
  # 1. Check path differences
518
578
  echo $PATH | tr ':' '\n' | sort
@@ -528,6 +588,7 @@ which nix 2>/dev/null && echo "Nix found"
528
588
  ```
529
589
 
530
590
  #### Migration procedure
591
+
531
592
  ```bash
532
593
  # 1. Export current configuration
533
594
  cd ~/.dotfiles
@@ -551,6 +612,7 @@ chezmoi apply
551
612
  ### Moving from Linux to WSL2
552
613
 
553
614
  #### Handle systemd differences
615
+
554
616
  ```bash
555
617
  # Check systemd status
556
618
  systemctl is-system-running 2>/dev/null || echo "systemd not available"
@@ -560,6 +622,7 @@ sudo service ssh start # Instead of systemctl start ssh
560
622
  ```
561
623
 
562
624
  #### Network configuration migration
625
+
563
626
  ```bash
564
627
  # 1. Export network settings from source system
565
628
  ip route show > network-config.txt
@@ -576,6 +639,7 @@ cat /etc/resolv.conf >> network-config.txt
576
639
  ### Emergency Shell Access
577
640
 
578
641
  #### If shell is completely broken
642
+
579
643
  ```bash
580
644
  # 1. Access via different shell
581
645
  /bin/bash --noprofile --norc
@@ -591,6 +655,7 @@ alias ll='ls -la'
591
655
  ```
592
656
 
593
657
  #### If WSL2 won't start
658
+
594
659
  ```powershell
595
660
  # From Windows PowerShell as Administrator
596
661
 
@@ -610,6 +675,7 @@ net start LxssManager
610
675
  ### Emergency Contacts and Resources
611
676
 
612
677
  #### Diagnostic commands for support requests
678
+
613
679
  ```bash
614
680
  # System information
615
681
  cat /etc/os-release
@@ -652,6 +718,7 @@ echo "Diagnostic report saved to ~/diagnostic-report.txt"
652
718
  ```
653
719
 
654
720
  #### Support channels
721
+
655
722
  - GitHub Issues: [Repository Issues](https://github.com/sebastienrousseau/dotfiles/issues)
656
723
  - WSL2 Documentation: [Microsoft WSL Docs](https://docs.microsoft.com/en-us/windows/wsl/)
657
724
  - Nix Documentation: [Nix Manual](https://nixos.org/manual/nix/stable/)
@@ -662,6 +729,7 @@ echo "Diagnostic report saved to ~/diagnostic-report.txt"
662
729
  ## Quick Reference
663
730
 
664
731
  ### Essential Commands
732
+
665
733
  ```bash
666
734
  # System status
667
735
  dot doctor # Run dotfiles health check
@@ -681,6 +749,7 @@ export PATH=/usr/bin:/bin # Minimal PATH
681
749
  ```
682
750
 
683
751
  ### Recovery Commands
752
+
684
753
  ```bash
685
754
  # Nuclear options (use with caution)
686
755
  rm -rf ~/.local/share/chezmoi/ # Reset chezmoi
@@ -720,4 +789,4 @@ time ls ~/.dotfiles >/dev/null
720
789
  free -m 2>/dev/null || vm_stat | head -5
721
790
  ```
722
791
 
723
- Run this checklist and include the output when requesting support.
792
+ Run this checklist and include the output when requesting support.
package/docs/index.md CHANGED
@@ -1,9 +1,13 @@
1
+ ---
2
+ render_with_liquid: false
3
+ ---
4
+
1
5
  # .dotfiles
2
6
 
3
7
  Cross-platform, signed, local-first dotfiles for macOS, Linux, and WSL.
4
8
 
5
9
  [![Build](https://img.shields.io/github/actions/workflow/status/sebastienrousseau/dotfiles/ci.yml?style=for-the-badge&logo=github)](https://github.com/sebastienrousseau/dotfiles/actions)
6
- [![Version](https://img.shields.io/badge/Version-v0.2.500-blue?style=for-the-badge)](https://github.com/sebastienrousseau/dotfiles/releases/tag/v0.2.500)
10
+ [![Version](https://img.shields.io/badge/Version-v0.2.501-blue?style=for-the-badge)](https://github.com/sebastienrousseau/dotfiles/releases/tag/v0.2.501)
7
11
  [![Downloads](https://img.shields.io/github/downloads/sebastienrousseau/dotfiles/total?style=for-the-badge)](https://github.com/sebastienrousseau/dotfiles/releases)
8
12
 
9
13
  This site is published from the `docs/` directory on `master` and tracks the current workstation baseline, operational guidance, and security material for the repository.
@@ -34,6 +38,6 @@ This site is published from the `docs/` directory on `master` and tracks the cur
34
38
 
35
39
  ## Current Release
36
40
 
37
- - Current tagged release: [`v0.2.500`](https://github.com/sebastienrousseau/dotfiles/releases/tag/v0.2.500)
41
+ - Current tagged release: [`v0.2.501`](https://github.com/sebastienrousseau/dotfiles/releases/tag/v0.2.501)
38
42
  - Latest release feed: [GitHub releases](https://github.com/sebastienrousseau/dotfiles/releases/latest)
39
43
  - Source repository: [sebastienrousseau/dotfiles](https://github.com/sebastienrousseau/dotfiles)
@@ -1,12 +1,18 @@
1
+ ---
2
+ render_with_liquid: false
3
+ ---
4
+
1
5
  # Agent Interop
2
6
 
3
7
  The repository now ships an agent card and an A2A-ready discovery document.
4
8
 
5
9
  Artifacts:
10
+
6
11
  - [agent-card.json](/home/seb/.dotfiles/dot_config/dotfiles/agent-card.json)
7
12
  - [agent.json](/home/seb/.dotfiles/.well-known/agent.json)
8
13
 
9
14
  Core properties:
15
+
10
16
  - bounded profiles: `ask`, `plan`, `apply`, `audit`
11
17
  - MCP-governed execution
12
18
  - workstation attestation export
@@ -15,6 +21,7 @@ Core properties:
15
21
  - fleet attestation export
16
22
 
17
23
  Tracked governance artifacts:
24
+
18
25
  - policy bundles
19
26
  - prompt registry
20
27
  - model registry
@@ -0,0 +1,102 @@
1
+ ---
2
+ render_with_liquid: false
3
+ ---
4
+ {% raw %}
5
+
6
+ # PowerShell Parity
7
+
8
+ This page documents how PowerShell 7.5+ support is exercised in CI
9
+ and what specifically is verified. Closes the docs slice of
10
+ [#860](https://github.com/sebastienrousseau/dotfiles/issues/860).
11
+
12
+ ## What ships
13
+
14
+ | File | Role |
15
+ |---|---|
16
+ | [`dot_config/powershell/Microsoft.PowerShell_profile.ps1.tmpl`](../../dot_config/powershell/Microsoft.PowerShell_profile.ps1.tmpl) | The dotfiles PowerShell profile. Deployed to `$PROFILE` (resolves to `~/.config/powershell/Microsoft.PowerShell_profile.ps1` on Linux/macOS; `Documents\PowerShell\Microsoft.PowerShell_profile.ps1` on Windows). |
17
+ | [`scripts/qa/powershell-contract.ps1`](../../scripts/qa/powershell-contract.ps1) | The runtime contract. Renders the template, dot-sources it, asserts required function shims exist, runs PSScriptAnalyzer. |
18
+ | [`tests/unit/install/test_powershell_profile_syntax.sh`](../../tests/unit/install/test_powershell_profile_syntax.sh) | Static-syntax test runnable on Linux/macOS via `pwsh` when present; falls back to brace-balance + textual invariants when not. |
19
+
20
+ ## What's verified
21
+
22
+ ### On every Linux/macOS PR (`tests/unit/install/...`)
23
+
24
+ - Profile file exists at the expected path.
25
+ - Defines the `dot` function shim so PowerShell users invoke the
26
+ same CLI as Unix shells.
27
+ - Sets `XDG_CONFIG_HOME` (matches Unix XDG conventions for
28
+ `~/.config/powershell` discoverability).
29
+ - Brace count balances (`{` vs `}`).
30
+ - If `pwsh` is installed locally, parses the rendered template via
31
+ `System.Management.Automation.Language.Parser` and fails on any
32
+ parse error.
33
+
34
+ ### On `windows-latest` runner via reliability-gate.yml
35
+
36
+ The `powershell-contract` job runs `scripts/qa/powershell-contract.ps1`
37
+ which does:
38
+
39
+ 1. **Renders the template** via `chezmoi execute-template` so any
40
+ chezmoi data references (e.g. `{{ .dotfiles_version }}`) resolve
41
+ to real values before parsing.
42
+ 2. **Dot-sources** the rendered profile and asserts no exception is
43
+ thrown during load.
44
+ 3. **Asserts the required function shims** are defined after load:
45
+ `dot`, `d`, `ll`, `la`, `cat`.
46
+ 4. **Runs PSScriptAnalyzer** at `Error` severity. Warnings surface
47
+ but don't fail the gate (tightenable later).
48
+
49
+ Exit non-zero on any failure. The job is in the `reliability-summary`
50
+ required-checks list so a broken PowerShell profile blocks merge.
51
+
52
+ ## Running locally
53
+
54
+ ### On Linux/macOS
55
+
56
+ ```bash
57
+ # Static test — runs in any context.
58
+ bash tests/unit/install/test_powershell_profile_syntax.sh
59
+
60
+ # Full contract — needs pwsh + chezmoi installed.
61
+ brew install --cask powershell # or apt / package manager equivalent
62
+ pwsh ./scripts/qa/powershell-contract.ps1
63
+ ```
64
+
65
+ ### On Windows
66
+
67
+ ```powershell
68
+ .\scripts\qa\powershell-contract.ps1
69
+ ```
70
+
71
+ ## Known limitations
72
+
73
+ - The contract doesn't currently exercise PowerShell-specific runtime
74
+ semantics (e.g. PSDrive providers, custom completion). Those are a
75
+ follow-up.
76
+ - Function shims are smoke-tested by name only — we check that
77
+ `Get-Command dot` resolves to a function, not that it actually
78
+ invokes the right binary. A richer integration test that creates a
79
+ fake `dot` binary and confirms the shim invokes it correctly is a
80
+ future hardening step.
81
+ - macOS is not in the matrix because `pwsh` isn't pre-installed on
82
+ GitHub macOS runners. The Linux/macOS static test runs on every PR
83
+ via the existing test suite; full pwsh validation is Windows-only
84
+ to keep the matrix small.
85
+
86
+ ## When to update this page
87
+
88
+ - The PowerShell profile gains a new function → add it to the
89
+ `RequiredFunctions` array in `powershell-contract.ps1` AND to the
90
+ list above.
91
+ - A static-test invariant is added → document it in the "What's
92
+ verified on every PR" list.
93
+ - The PSScriptAnalyzer severity is tightened from `Error` to
94
+ `Warning` → update the relevant bullet here.
95
+
96
+ ## References
97
+
98
+ - [PowerShell 7 docs](https://learn.microsoft.com/en-us/powershell/scripting/overview)
99
+ - [PSScriptAnalyzer rule reference](https://github.com/PowerShell/PSScriptAnalyzer/blob/master/docs/Rules/README.md)
100
+ - `.github/workflows/reliability-gate.yml` — Windows job definition.
101
+ - Issue [#860](https://github.com/sebastienrousseau/dotfiles/issues/860).
102
+ {% endraw %}
@@ -1,6 +1,10 @@
1
+ ---
2
+ render_with_liquid: false
3
+ ---
4
+
1
5
  # Introduction
2
6
 
3
- This manual describes `.dotfiles` v0.2.500 — a trusted agent workstation baseline for macOS, Linux, and WSL.
7
+ This manual describes `.dotfiles` v0.2.501 — a trusted agent workstation baseline for macOS, Linux, and WSL.
4
8
 
5
9
  The repository is more than a personal dotfiles collection. It ships as workstation infrastructure: signed, attested, multi-platform, AI-aware, and self-healing. Chezmoi handles templating and platform differences. The `dot` CLI sits on top and coordinates lifecycle operations.
6
10
 
@@ -1,3 +1,7 @@
1
+ ---
2
+ render_with_liquid: false
3
+ ---
4
+
1
5
  # Architecture
2
6
 
3
7
  `.dotfiles` is composed of four loosely coupled subsystems, coordinated by a single command-line interface.
@@ -1,3 +1,7 @@
1
+ ---
2
+ render_with_liquid: false
3
+ ---
4
+
1
5
  # Trust Model
2
6
 
3
7
  The trust model combines cryptographic signing, local-first secrets, policy-gated agent operations, and machine-verifiable attestation.
@@ -6,7 +10,7 @@ The trust model combines cryptographic signing, local-first secrets, policy-gate
6
10
 
7
11
  | Threat | Mitigation |
8
12
  |:---|:---|
9
- | Unauthorized code execution on the workstation | Signed commits, shellcheck gates, no `curl | sh` in install path |
13
+ | Unauthorized code execution on the workstation | Signed commits, shellcheck gates, no `curl \| sh` in install path |
10
14
  | Secret leakage into Git history | Age/SOPS encryption, gitleaks in CI, `detect-secrets` baseline |
11
15
  | Tampered upstream tool | SHA256-pinned chezmoi installer, SBOM + Grype CVE scan |
12
16
  | Malicious agent behavior | MCP policy enforcement, agent profile allowlists, attestation logs |
@@ -94,7 +98,7 @@ Violations are logged to `~/.local/state/dotfiles/mcp-violations.log` and report
94
98
 
95
99
  ```json
96
100
  {
97
- "version": "0.2.500",
101
+ "version": "0.2.501",
98
102
  "timestamp": "2026-04-16T09:00:00Z",
99
103
  "host": {
100
104
  "hostname_sha256": "...",
@@ -1,3 +1,7 @@
1
+ ---
2
+ render_with_liquid: false
3
+ ---
4
+
1
5
  # The Theme Engine
2
6
 
3
7
  `.dotfiles` generates terminal color palettes directly from wallpaper images. There are no hand-crafted themes — dominant colors are extracted via K-Means clustering in CIELAB color space, mapped to ANSI slots, and enforced to WCAG AAA contrast.
@@ -1,3 +1,8 @@
1
+ ---
2
+ render_with_liquid: false
3
+ ---
4
+ {% raw %}
5
+
1
6
  # Fleet Architecture
2
7
 
3
8
  A "fleet" is two or more workstations sharing a single `.dotfiles` source repository. The fleet model handles per-host customization, drift detection, and cross-host trust propagation.
@@ -67,7 +72,7 @@ Drift is normal during development. `dot heal` reconciles the source → local d
67
72
  A typical output:
68
73
 
69
74
  ```
70
- Fleet Attestation — v0.2.500
75
+ Fleet Attestation — v0.2.501
71
76
 
72
77
  Host Git SHA Policy Tools OK Drift Verified
73
78
  -------------- ---------- --------- ---------- ------- --------
@@ -140,3 +145,4 @@ Only the host with the matching Age private key can decrypt. Other hosts see the
140
145
  - [Fleet Deployment Architecture](../../architecture/fleet-deployment.md) — diagrams
141
146
  - [Trust Model](02-trust-model.md)
142
147
  - [Tutorial: Deploy to a Fleet](../02-tutorials/05-deploy-fleet.md)
148
+ {% endraw %}