claude-nomad 0.69.1 → 0.69.2
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 +39 -0
- package/README.md +41 -11
- package/dist/nomad.mjs +1591 -1325
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,44 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.69.2](https://github.com/funkadelic/claude-nomad/compare/v0.69.1...v0.69.2) (2026-09-19)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### What's new
|
|
7
|
+
|
|
8
|
+
**On native Windows (PowerShell, cmd, or Git Bash).** WSL2 behaves like Linux, so these do not apply to it.
|
|
9
|
+
|
|
10
|
+
* `nomad allow`, and choosing Allow when `nomad push` finds a possible secret, no longer add a duplicate line to a `.gitleaksignore` saved with Windows line endings.
|
|
11
|
+
* The cleanup commands `nomad eject` prints now use forward slashes, so you can paste them into Git Bash as they are.
|
|
12
|
+
|
|
13
|
+
**On every platform**
|
|
14
|
+
|
|
15
|
+
* `nomad pull` no longer overwrites a setting you changed on this machine but haven't saved to your sync repo. It stops, names each one, and tells you to save it with `nomad capture-settings` or delete it. `nomad sync` and `nomad pull --dry-run` flag the same settings.
|
|
16
|
+
* When a setting is removed from your sync repo, whether you removed it or another machine did, a pull removes it here too, but only if you haven't edited it on this machine. The pull names each setting it removes, `nomad doctor` warns about them beforehand, and the settings file from before the pull is kept in `~/.cache/claude-nomad/backup/`.
|
|
17
|
+
* Settings that can hold a secret, such as `env` or `apiKeyHelper`, are never printed, so a pull can't list them. When it replaces some that your sync repo doesn't track, it now tells you how many. Keep values like these in `~/.claude/settings.local.json`, which nomad never touches.
|
|
18
|
+
* `nomad eject` now also deletes the records nomad keeps about this machine, so setting nomad up here again starts fresh.
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
### Fixed
|
|
22
|
+
|
|
23
|
+
* **eject:** forget this machine's sync records ([#615](https://github.com/funkadelic/claude-nomad/issues/615)) ([899abd8](https://github.com/funkadelic/claude-nomad/commit/899abd82b2ffd1acd3f6faf36d8e1d26402eb6c7))
|
|
24
|
+
* **pull:** keep a setting you changed when the repo drops it ([#614](https://github.com/funkadelic/claude-nomad/issues/614)) ([f60cc98](https://github.com/funkadelic/claude-nomad/commit/f60cc98989296938f560db58cd05950280f335c7))
|
|
25
|
+
* **pull:** name the settings a pull removes ([#613](https://github.com/funkadelic/claude-nomad/issues/613)) ([8266fc9](https://github.com/funkadelic/claude-nomad/commit/8266fc90a19e3119782354751c8e1ee9c225e6b2))
|
|
26
|
+
* **pull:** stop overwriting settings you have not saved to the repo ([#606](https://github.com/funkadelic/claude-nomad/issues/606)) ([160abba](https://github.com/funkadelic/claude-nomad/commit/160abbaa10766786b58f3a73906fd2feb6c6e097))
|
|
27
|
+
* **pull:** stop refusing a setting you removed from the repo ([#612](https://github.com/funkadelic/claude-nomad/issues/612)) ([d7d620c](https://github.com/funkadelic/claude-nomad/commit/d7d620cf25534aa0d4d65afe0fcbd834d35b7c50))
|
|
28
|
+
* **pull:** warn before replacing a credential setting not in the repo ([#610](https://github.com/funkadelic/claude-nomad/issues/610)) ([db739f5](https://github.com/funkadelic/claude-nomad/commit/db739f510ac7a8fde6c7139f0ea00a22cf3c4aec))
|
|
29
|
+
* **redact:** stop adding duplicate lines to a Windows-style .gitleaksignore ([#609](https://github.com/funkadelic/claude-nomad/issues/609)) ([07152de](https://github.com/funkadelic/claude-nomad/commit/07152de8c26b31ee2ce93a45b1c5ef948e83b558))
|
|
30
|
+
* **redact:** stop re-appending a fingerprint to a CRLF .gitleaksignore ([07152de](https://github.com/funkadelic/claude-nomad/commit/07152de8c26b31ee2ce93a45b1c5ef948e83b558))
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
### Changed
|
|
34
|
+
|
|
35
|
+
* split four oversized source files ([#608](https://github.com/funkadelic/claude-nomad/issues/608)) ([8a08ba7](https://github.com/funkadelic/claude-nomad/commit/8a08ba7d27cfb0dab9a7d9c89b69872c13d200c9))
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
### Dependencies
|
|
39
|
+
|
|
40
|
+
* bump devalue from 5.8.1 to 5.9.2 in /docs-site ([#611](https://github.com/funkadelic/claude-nomad/issues/611)) ([ad47cbc](https://github.com/funkadelic/claude-nomad/commit/ad47cbcf98ee7cf85628e741b834487ce806cf37))
|
|
41
|
+
|
|
3
42
|
## [0.69.1](https://github.com/funkadelic/claude-nomad/compare/v0.69.0...v0.69.1) (2026-09-15)
|
|
4
43
|
|
|
5
44
|
|
package/README.md
CHANGED
|
@@ -66,9 +66,10 @@ session history survives different file paths and your secrets never ride along.
|
|
|
66
66
|
warning, not a failure), and settings drift in both directions: keys present in the repo merge but
|
|
67
67
|
absent from your live `settings.json` (behind; the next `nomad pull` will restore them, fix:
|
|
68
68
|
`nomad pull`) and keys present locally but not yet in the repo (ahead; local-only additions, fix:
|
|
69
|
-
`nomad capture-settings`)
|
|
70
|
-
|
|
71
|
-
|
|
69
|
+
`nomad capture-settings`), plus a warning for a local setting the next pull will remove because
|
|
70
|
+
the repo dropped it. Each issue includes a fix hint. By default the report is compact: it shows
|
|
71
|
+
only checks that need action plus a one-line verdict. Add `--verbose` (or `--all` / `-v`) to see
|
|
72
|
+
the full per-check tree, including everything that passed.
|
|
72
73
|
- **Self-healing sync.** Every overwrite is backed up first, and `nomad pull --force-remote`
|
|
73
74
|
recovers two kinds of stuck sync repo: a repo stuck mid-rebase or mid-merge (aborts the operation,
|
|
74
75
|
parks stranded work on a branch, refuses if shared config is at risk), and a repo where the rebase
|
|
@@ -217,6 +218,34 @@ it:
|
|
|
217
218
|
before the next `nomad pull` overwrites them. Add `--host` to land machine-specific values (such
|
|
218
219
|
as absolute paths) in `hosts/<HOST>.json` instead of the shared base.
|
|
219
220
|
|
|
221
|
+
If `nomad pull` finds settings on this machine that your sync repo does not track, it leaves
|
|
222
|
+
`~/.claude/settings.json` as it is, so those settings are not lost. It lists the settings by name
|
|
223
|
+
and suggests two fixes: run `nomad capture-settings` to save them to the repo (add `--host` for
|
|
224
|
+
values that belong to this machine only), or delete them from `~/.claude/settings.json` if you no
|
|
225
|
+
longer want them. Your shared files, skills, sessions, and project extras still update, and the
|
|
226
|
+
command exits with a non-zero status so a scripted or cron-driven pull does not report success. Once
|
|
227
|
+
you have saved or deleted the settings, the next pull proceeds normally.
|
|
228
|
+
|
|
229
|
+
Credential settings are the one exception. Keys that can hold a secret (`env`, `apiKeyHelper`,
|
|
230
|
+
`awsAuthRefresh`, `awsCredentialExport`, `otelHeadersHelper`) are never printed, so pull cannot list
|
|
231
|
+
them and will not stop for them. When it finds some your repo does not track, it writes
|
|
232
|
+
`settings.json` as usual and tells you how many it replaced. Keep values like these in
|
|
233
|
+
`~/.claude/settings.local.json`, which nomad never touches.
|
|
234
|
+
|
|
235
|
+
A setting that another machine removed from the repo is removed here too. Each time nomad writes
|
|
236
|
+
your settings, on a pull or a `nomad capture-settings`, it records which settings it wrote on this
|
|
237
|
+
machine, with a fingerprint of each value. A setting in that record that the repo no longer carries,
|
|
238
|
+
and that still has the value nomad wrote, is one nomad put there, so the next pull removes it. The
|
|
239
|
+
pull names each setting it removes (so does `nomad pull --dry-run`), and the file from before the
|
|
240
|
+
pull stays in `~/.cache/claude-nomad/backup/`. A setting missing from the record is one you added,
|
|
241
|
+
and one you changed since is yours now, so either is kept and listed as above. A removal is handled
|
|
242
|
+
the same whether it arrives with this pull or reached your repo earlier through an edit you made, a
|
|
243
|
+
`nomad push`, or a `nomad pull --dry-run`.
|
|
244
|
+
|
|
245
|
+
A machine that has not finished a pull yet, or whose cache folder was cleared, has nothing recorded.
|
|
246
|
+
There a removal that reached the repo earlier is still listed as a setting you added. Save it or
|
|
247
|
+
delete it as above and pull again.
|
|
248
|
+
|
|
220
249
|
During `nomad push` and `nomad pull`, long-running steps (rebase, secret scan, git push, session
|
|
221
250
|
sync) show an animated progress indicator on an interactive terminal so the CLI does not look hung.
|
|
222
251
|
In CI and when output is piped, only plain text lines are printed, with no ANSI control codes, so
|
|
@@ -301,14 +330,15 @@ skips with a `⚠︎` when the ref is unavailable, and is non-fatal in all cases
|
|
|
301
330
|
Every `nomad` subcommand exits with one of a small set of codes, so a script or cron wrapper can
|
|
302
331
|
branch on `$?` without parsing stderr text.
|
|
303
332
|
|
|
304
|
-
| Code | Name
|
|
305
|
-
| ---- |
|
|
306
|
-
| 0 | Success
|
|
307
|
-
| 1 | Generic failure
|
|
308
|
-
| 2 | Usage
|
|
309
|
-
| 4 | Conflict
|
|
310
|
-
| 5 | Leak blocked
|
|
311
|
-
|
|
|
333
|
+
| Code | Name | Meaning |
|
|
334
|
+
| ---- | ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
335
|
+
| 0 | Success | Completed successfully. |
|
|
336
|
+
| 1 | Generic failure | Unclassified failure; the default for any error not covered below. |
|
|
337
|
+
| 2 | Usage | Bad argv: an unknown subcommand, an unknown flag, or a malformed flag value. |
|
|
338
|
+
| 4 | Conflict | The sync repo is wedged (e.g. an unresolved rebase) and needs manual git resolution. |
|
|
339
|
+
| 5 | Leak blocked | gitleaks confirmed a secret in the staged tree and the push was aborted. |
|
|
340
|
+
| 6 | Settings blocked | Pull (or the pull half of `nomad sync`) found settings on this machine that are not in the sync repo, so it did not write your settings file. |
|
|
341
|
+
| 130 | Interrupted | You pressed Ctrl+C at an interactive prompt, so nomad stopped without finishing. |
|
|
312
342
|
|
|
313
343
|
A run skipped because another nomad process already holds the lock also exits 0: this is an
|
|
314
344
|
intentional no-op skip, not a failure, so a backgrounded shell-rc or cron invocation never raises a
|