claude-nomad 0.58.1 → 0.59.0

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 CHANGED
@@ -1,5 +1,36 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.59.0](https://github.com/funkadelic/claude-nomad/compare/v0.58.1...v0.59.0) (2026-07-14)
4
+
5
+
6
+ ### Added
7
+
8
+ * native Windows support via win32 copy-sync modality ([#399](https://github.com/funkadelic/claude-nomad/issues/399)) ([524bce8](https://github.com/funkadelic/claude-nomad/commit/524bce8a3a4a1d900fb28778ed25ba7dd28ffb5d))
9
+
10
+
11
+ ### Changed
12
+
13
+ * add pinned actionlint job and single-source node version via .nvmrc ([#413](https://github.com/funkadelic/claude-nomad/issues/413)) ([e9fde67](https://github.com/funkadelic/claude-nomad/commit/e9fde67b50cbe0f0244a242a8dc9b9a8c7079079))
14
+ * drop the windows node 22 test leg ([#402](https://github.com/funkadelic/claude-nomad/issues/402)) ([1973b89](https://github.com/funkadelic/claude-nomad/commit/1973b89439b0d32db72c3046aca6d96b43d2a86c))
15
+ * **pages:** deploy docs on release publish instead of every main push ([#411](https://github.com/funkadelic/claude-nomad/issues/411)) ([c0f2658](https://github.com/funkadelic/claude-nomad/commit/c0f2658a8ed0369ef7216d08c7df07bb0635b9d1))
16
+ * platform stub helper and extras-sync collision-guard split ([#401](https://github.com/funkadelic/claude-nomad/issues/401)) ([5b3f906](https://github.com/funkadelic/claude-nomad/commit/5b3f906943004be5f3cf3411b6d0a250ce61ff04))
17
+ * **sonar:** fix doctor check smells and suppress S5976 for tests ([#409](https://github.com/funkadelic/claude-nomad/issues/409)) ([52e506e](https://github.com/funkadelic/claude-nomad/commit/52e506ebaa9a55b29d7946b408fd2db4b623cdc4))
18
+ * **tests:** declare shell pwsh on windows gitleaks step, drop lint ignore ([#414](https://github.com/funkadelic/claude-nomad/issues/414)) ([21a620f](https://github.com/funkadelic/claude-nomad/commit/21a620fb841fe7eb2432044f5ee69f8c0d11736b))
19
+ * **tests:** speed up windows leg via Defender scanning exclusion ([#412](https://github.com/funkadelic/claude-nomad/issues/412)) ([a7409bc](https://github.com/funkadelic/claude-nomad/commit/a7409bcf6e5ee4372a0e86c01ddde6653d531e40))
20
+
21
+
22
+ ### Testing
23
+
24
+ * isolate subprocess-heavy tests into a bounded vitest project ([#403](https://github.com/funkadelic/claude-nomad/issues/403)) ([579de5b](https://github.com/funkadelic/claude-nomad/commit/579de5b3583a4968e109fd8987ac25f8b7a9cc54))
25
+
26
+
27
+ ### Dependencies
28
+
29
+ * bump actions/labeler from 6.1.0 to 6.2.0 ([#405](https://github.com/funkadelic/claude-nomad/issues/405)) ([e582f9d](https://github.com/funkadelic/claude-nomad/commit/e582f9df0897614472a10b6ebbe30e2d94f3c9e9))
30
+ * bump astro in /docs-site in the prod-dependencies group ([#408](https://github.com/funkadelic/claude-nomad/issues/408)) ([7726450](https://github.com/funkadelic/claude-nomad/commit/7726450933cb54e320e60aa2903ca091c8e6206c))
31
+ * bump the codeql-action group across 1 directory with 2 updates ([#404](https://github.com/funkadelic/claude-nomad/issues/404)) ([ddd61c3](https://github.com/funkadelic/claude-nomad/commit/ddd61c34185d2702681d3a8af63ece19dbcfb4c1))
32
+ * bump the dev-dependencies group across 1 directory with 5 updates ([#410](https://github.com/funkadelic/claude-nomad/issues/410)) ([e9e98f8](https://github.com/funkadelic/claude-nomad/commit/e9e98f819cf80feeff59627678369cd63dd4b9df))
33
+
3
34
  ## [0.58.1](https://github.com/funkadelic/claude-nomad/compare/v0.58.0...v0.58.1) (2026-07-11)
4
35
 
5
36
 
package/README.md CHANGED
@@ -114,6 +114,57 @@ export NOMAD_HOST=<your-host-label> # add to ~/.zshrc or ~/.bashrc
114
114
  $ nomad pull
115
115
  ```
116
116
 
117
+ ### Windows
118
+
119
+ claude-nomad also runs natively on Windows, no WSL required (WSL2 still works fine too, if you
120
+ prefer it). The steps are the same as above with a couple of PowerShell-specific swaps:
121
+
122
+ ```powershell
123
+ # 1. Install the CLI.
124
+ > npm i -g claude-nomad
125
+
126
+ # 2. Create your private sync repo and scaffold it.
127
+ > nomad init
128
+
129
+ # 3. Add a stable host label. PowerShell has no ~/.bashrc equivalent, so set it
130
+ # as a persistent user environment variable instead, then restart your
131
+ # terminal so the new value is picked up.
132
+ > [System.Environment]::SetEnvironmentVariable('NOMAD_HOST', '<your-host-label>', 'User')
133
+ # Using cmd instead of PowerShell? The equivalent one-liner is:
134
+ # setx NOMAD_HOST <your-host-label>
135
+
136
+ # 4. Publish the scaffold to your private repo.
137
+ > nomad push
138
+ ```
139
+
140
+ A few Windows-specific things worth knowing:
141
+
142
+ - **Installing gh:** `winget install GitHub.cli` (or `scoop install gh`), then `gh auth login`.
143
+ Needed before `nomad init` on the first host; later hosts only clone with it.
144
+ - **Installing gitleaks:** `winget install gitleaks.gitleaks` (or `scoop install gitleaks` if you
145
+ use Scoop). `nomad doctor` prints the same hint whenever gitleaks is missing from PATH.
146
+ - **Shared config is copied, not symlinked.** On macOS and Linux, files like `CLAUDE.md` and your
147
+ skills live in the sync repo and are symlinked into `~/.claude/`, so there is one source of truth
148
+ on disk. Creating a symlink on Windows needs Developer Mode or admin rights, so on Windows these
149
+ are real copies instead. What this means for you: after editing a shared file on Windows, run
150
+ `nomad push` before your next `nomad pull` or `nomad sync`. `nomad sync` always pulls first, and
151
+ the pull half overlays the repo's copy onto yours (the prior content is snapshotted to the backup
152
+ dir first, so it is recoverable, but it is still reverted in place); pushing first is what
153
+ actually captures your edit. This is the same behavior claude-nomad's `skills/` sync already has
154
+ on every platform.
155
+ - **A `.gitleaksignore` allow entry may not travel across hosts.** gitleaks fingerprints each
156
+ finding using the file path exactly as it saw it: backslashes on Windows, forward slashes on
157
+ macOS/Linux. If you allow a finding with `nomad push --allow` (or `nomad allow`) on Windows, the
158
+ identical finding can reappear as "new" the first time it is scanned from a macOS/Linux host, and
159
+ the same happens in reverse. This is a known gitleaks limitation, not a claude-nomad bug; just
160
+ allow it again from the other host.
161
+ - **Line endings stay put.** A fresh `nomad init` writes a `.gitattributes` with `* -text`, so Git
162
+ never converts line endings between hosts. If you are joining a sync repo created before this file
163
+ existed, add that one line from any host (or watch for the `nomad doctor` warning that nudges
164
+ you), otherwise a Windows checkout with the common `core.autocrlf=true` Git default would rewrite
165
+ every text file's line endings, and every host would then see the whole tree as permanently
166
+ changed.
167
+
117
168
  Everyday loop on any host:
118
169
 
119
170
  ```bash
@@ -235,6 +286,10 @@ independently from the CLI, but requires nomad `>= 0.35.0` because it calls rece
235
286
  - [`gitleaks`](https://github.com/gitleaks/gitleaks) (required for `nomad push`)
236
287
  - `gh` ([GitHub CLI](https://cli.github.com/)), required by `nomad init`
237
288
 
289
+ Works on macOS, Linux (including WSL2), and native Windows (PowerShell or cmd). See
290
+ [Windows](#windows) above for the Windows equivalents of the install and host-label steps, the
291
+ copy-sync trade-off, and the `.gitleaksignore` cross-host caveat.
292
+
238
293
  **Optional:** [curl](https://curl.se/) or [wget](https://www.gnu.org/software/wget/) for the
239
294
  version-staleness check and `nomad doctor --check-schema`. The CLI works without them. The opt-in
240
295
  `nomad doctor --check-remote` flag reads the locally-cached `origin/main` remote-tracking ref (no