claude-nomad 0.62.5 → 0.63.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,53 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.63.0](https://github.com/funkadelic/claude-nomad/compare/v0.62.6...v0.63.0) (2026-07-31)
4
+
5
+ ### What's new
6
+
7
+ - **Windows: your own edits to shared config are no longer reverted.** On Windows, editing a synced
8
+ file like `~/.claude/CLAUDE.md` and then running `nomad pull` overwrote it from the repo, and
9
+ `nomad sync` went on to publish the reverted version, silently undoing the change you ran sync to
10
+ publish. Your edit is now carried into the sync repo first, so it survives the pull and gets
11
+ published instead.
12
+ - **The secret prompt on push is readable and asks once per secret.** When a push finds a possible
13
+ secret it used to ask the same question several times over for one secret, and the snippet it
14
+ showed was mostly noise. It now asks once per secret and describes what was actually found, so you
15
+ can tell a real credential from a false positive at a glance.
16
+ - **Three ways that prompt could show you a secret it meant to hide are closed**, along with a case
17
+ where allowing one false positive could quietly let a real secret through beside it on the same
18
+ line.
19
+
20
+
21
+ ### Added
22
+
23
+ * **pull:** stop Windows pulls reverting unpublished shared-config edits ([#476](https://github.com/funkadelic/claude-nomad/issues/476)) ([16fa692](https://github.com/funkadelic/claude-nomad/commit/16fa6925477fb56dd0104c8106cbdaf2ff27539d))
24
+
25
+
26
+ ### Fixed
27
+
28
+ * **push:** rework the leak recovery prompt and close disclosure paths ([#477](https://github.com/funkadelic/claude-nomad/issues/477)) ([a1ccb9a](https://github.com/funkadelic/claude-nomad/commit/a1ccb9af7ac718ee43a5629f9d5ee6ca89c84114))
29
+
30
+
31
+ ### Testing
32
+
33
+ * **push:** close doMock/doUnmock asymmetry in the push cluster ([#475](https://github.com/funkadelic/claude-nomad/issues/475)) ([9c0d5ab](https://github.com/funkadelic/claude-nomad/commit/9c0d5abf32e3478b85550ee18365bffab425f193))
34
+
35
+
36
+ ### Dependencies
37
+
38
+ * bump actions/checkout from 7.0.0 to 7.0.1 ([#470](https://github.com/funkadelic/claude-nomad/issues/470)) ([4b74689](https://github.com/funkadelic/claude-nomad/commit/4b74689b6b857aeddeb040113e50488fdc0ab2fa))
39
+ * bump actions/labeler from 6.2.0 to 7.0.0 ([#469](https://github.com/funkadelic/claude-nomad/issues/469)) ([8a6d413](https://github.com/funkadelic/claude-nomad/commit/8a6d413aa815fa7c2070c29c76d5d5688146ffbd))
40
+ * bump the codeql-action group with 2 updates ([#468](https://github.com/funkadelic/claude-nomad/issues/468)) ([d19e7fd](https://github.com/funkadelic/claude-nomad/commit/d19e7fdad1d24f8917c10c9e398cc8c89db9c289))
41
+ * bump the dev-dependencies group across 1 directory with 6 updates ([#471](https://github.com/funkadelic/claude-nomad/issues/471)) ([971a82f](https://github.com/funkadelic/claude-nomad/commit/971a82f6dac29dacfa0681b15b33e616dbbdef99))
42
+ * bump the prod-dependencies group across 1 directory with 2 updates ([#474](https://github.com/funkadelic/claude-nomad/issues/474)) ([ea259dd](https://github.com/funkadelic/claude-nomad/commit/ea259dd169ce2d7beba9bef83581199ebea5a167))
43
+
44
+ ## [0.62.6](https://github.com/funkadelic/claude-nomad/compare/v0.62.5...v0.62.6) (2026-07-25)
45
+
46
+
47
+ ### Fixed
48
+
49
+ * **nomad:** treat a Ctrl+C prompt abort as a user cancel ([#466](https://github.com/funkadelic/claude-nomad/issues/466)) ([6250627](https://github.com/funkadelic/claude-nomad/commit/62506279155fe02c067675271fa9bc02f341a14b))
50
+
3
51
  ## [0.62.5](https://github.com/funkadelic/claude-nomad/compare/v0.62.4...v0.62.5) (2026-07-24)
4
52
 
5
53
 
package/README.md CHANGED
@@ -119,8 +119,22 @@ $ nomad pull
119
119
 
120
120
  ### Windows
121
121
 
122
- claude-nomad also runs natively on Windows, no WSL required (WSL2 still works fine too, if you
123
- prefer it). The steps are the same as above with a couple of PowerShell-specific swaps:
122
+ claude-nomad runs natively on Windows (PowerShell or cmd), and WSL2 works too. The everyday loop is
123
+ the same either way; the difference is under the hood.
124
+
125
+ On macOS, Linux, and WSL2, claude-nomad symlinks your shared config into `~/.claude/`, so there is
126
+ only ever one file: the one in your sync repo. Native Windows cannot use symlinks, because creating
127
+ one there needs Developer Mode or admin rights, so claude-nomad keeps a real copy there instead.
128
+ That leaves two files to keep in step, and claude-nomad does it for you: `nomad pull` and
129
+ `nomad sync` both copy your edits into the repo before they fetch, so an unpublished edit is never
130
+ overwritten. Enabling Developer Mode does not change this; copies are used on every native Windows
131
+ host either way.
132
+
133
+ Two things are genuinely Windows-only, both covered in the bullets below: a `.gitleaksignore` allow
134
+ entry may not travel to a macOS or Linux host, and deep session paths can hit Windows's
135
+ 260-character path limit.
136
+
137
+ The native Windows steps are the same as above with a couple of PowerShell-specific swaps:
124
138
 
125
139
  ```powershell
126
140
  # 1. Install the CLI.
@@ -148,13 +162,14 @@ A few Windows-specific things worth knowing:
148
162
  use Scoop). `nomad doctor` prints the same hint whenever gitleaks is missing from PATH.
149
163
  - **Shared config is copied, not symlinked.** On macOS and Linux, files like `CLAUDE.md` and your
150
164
  skills live in the sync repo and are symlinked into `~/.claude/`, so there is one source of truth
151
- on disk. Creating a symlink on Windows needs Developer Mode or admin rights, so on Windows these
152
- are real copies instead. What this means for you: after editing a shared file on Windows, run
153
- `nomad push` before your next `nomad pull` or `nomad sync`. `nomad sync` always pulls first, and
154
- the pull half overlays the repo's copy onto yours (the prior content is snapshotted to the backup
155
- dir first, so it is recoverable, but it is still reverted in place); pushing first is what
156
- actually captures your edit. This is the same behavior claude-nomad's `skills/` sync already has
157
- on every platform.
165
+ on disk. Creating a symlink on Windows needs Developer Mode or admin rights, so on native Windows
166
+ these are real copies instead, whether or not you have Developer Mode enabled. WSL2 is unaffected
167
+ and behaves like Linux. What this means for you: nothing extra. On Windows both `nomad pull` and
168
+ `nomad sync` mirror your local copies into the repo before they fetch, so an unpublished edit is
169
+ captured rather than reverted. The one command that deliberately takes the repo's version is
170
+ `nomad pull --force-remote`, which is what that flag is for; the copy it replaces is snapshotted
171
+ to the backup dir first. This is the same behavior claude-nomad's `skills/` sync already has on
172
+ every platform.
158
173
  - **A `.gitleaksignore` allow entry may not travel across hosts.** gitleaks fingerprints each
159
174
  finding using the file path exactly as it saw it: backslashes on Windows, forward slashes on
160
175
  macOS/Linux. If you allow a finding with `nomad push --allow` (or `nomad allow`) on Windows, the
@@ -313,6 +328,7 @@ branch on `$?` without parsing stderr text.
313
328
  | 2 | Usage | Bad argv: an unknown subcommand, an unknown flag, or a malformed flag value. |
314
329
  | 4 | Conflict | The sync repo is wedged (e.g. an unresolved rebase) and needs manual git resolution. |
315
330
  | 5 | Leak blocked | gitleaks confirmed a secret in the staged tree and the push was aborted. |
331
+ | 130 | Interrupted | You pressed Ctrl+C at an interactive prompt, so nomad stopped without finishing. |
316
332
 
317
333
  A run skipped because another nomad process already holds the lock also exits 0: this is an
318
334
  intentional no-op skip, not a failure, so a backgrounded shell-rc or cron invocation never raises a
@@ -323,7 +339,8 @@ false alarm from a concurrent run. Value `3` is reserved for future use.
323
339
  If `nomad` ever hits an unexpected bug, it no longer dumps a raw stack trace at you. Instead it
324
340
  prints a short "this looks like a bug" banner (with a link to the issue tracker) and writes a small
325
341
  report you can attach to a bug report if you choose. The exit code is unchanged: an unexpected crash
326
- exits `1`, and a documented failure still exits with its own code from the table above.
342
+ exits `1`, and a documented failure still exits with its own code from the table above. A prompt you
343
+ cancel yourself is not a crash: it exits `130` and writes no report.
327
344
 
328
345
  What this means for you:
329
346