claude-nomad 0.69.3 → 0.69.5
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 +59 -0
- package/README.md +34 -18
- package/dist/nomad.mjs +3733 -3482
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,64 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.69.5](https://github.com/funkadelic/claude-nomad/compare/v0.69.4...v0.69.5) (2026-09-25)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### What's new
|
|
7
|
+
|
|
8
|
+
* On native Windows, `nomad doctor` now lists a shared folder you have not published yet, and the `nomad adopt` command to share it, without `--verbose`.
|
|
9
|
+
* `nomad diff` and `nomad pull --dry-run` now say your local copy will be backed up when you pull, instead of naming a backup folder that does not exist yet.
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
* **doctor:** show unpublished shared folders without --verbose ([#642](https://github.com/funkadelic/claude-nomad/issues/642)) ([7128c4b](https://github.com/funkadelic/claude-nomad/commit/7128c4ba42768b6b6ca92ac56b5d783e487ae9f8))
|
|
15
|
+
* **extras:** stop previews naming a backup path they never write ([#641](https://github.com/funkadelic/claude-nomad/issues/641)) ([20cc9e7](https://github.com/funkadelic/claude-nomad/commit/20cc9e7830440373bd8e830b506f803c8ba00e24))
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
|
|
20
|
+
* pass the app token's client-id instead of the deprecated app-id ([#639](https://github.com/funkadelic/claude-nomad/issues/639)) ([5e81d04](https://github.com/funkadelic/claude-nomad/commit/5e81d042a18cde889787ae50c263aca065225c41))
|
|
21
|
+
|
|
22
|
+
## [0.69.4](https://github.com/funkadelic/claude-nomad/compare/v0.69.3...v0.69.4) (2026-09-24)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
### What's new
|
|
26
|
+
|
|
27
|
+
* `nomad pull` no longer overwrites a hook you added on this machine when your sync repo already has hooks. It stops, names the hook, and leaves `~/.claude/settings.json` as it is. Run `nomad capture-settings` to save the hook to your repo, or add `--host` to keep it on this machine only.
|
|
28
|
+
* When another machine removes a hook from your repo, `nomad pull` now names it as it deletes it, and your settings from before the pull stay in `~/.cache/claude-nomad/backup/`.
|
|
29
|
+
* `nomad init` and `nomad doctor` no longer treat a remote on another host as a GitHub repo just because its address mentions github.com.
|
|
30
|
+
* On native Windows (PowerShell, cmd, or Git Bash; WSL2 behaves like Linux and is not affected), `nomad pull` now warns when a file nomad never syncs is tracked in your sync repo and has turned into a broken link.
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
### Fixed
|
|
34
|
+
|
|
35
|
+
* **init:** only treat a remote as GitHub when github.com is its host ([#631](https://github.com/funkadelic/claude-nomad/issues/631)) ([ed0301a](https://github.com/funkadelic/claude-nomad/commit/ed0301ac2c63426d0bf954cfa58cdb7049d100b4))
|
|
36
|
+
* **pull:** stop overwriting a hook you added locally ([#638](https://github.com/funkadelic/claude-nomad/issues/638)) ([59ea891](https://github.com/funkadelic/claude-nomad/commit/59ea89103376c402604cda3efc0c5e1e844ea5cd))
|
|
37
|
+
* **pull:** warn on Windows when a never-sync file in the repo becomes a broken link ([#635](https://github.com/funkadelic/claude-nomad/issues/635)) ([312d6b9](https://github.com/funkadelic/claude-nomad/commit/312d6b945cafd0d4ba6e1c509f0bf251c50c2692))
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
### Changed
|
|
41
|
+
|
|
42
|
+
* **dependabot:** group action bumps and add a release cooldown ([#627](https://github.com/funkadelic/claude-nomad/issues/627)) ([eefdf06](https://github.com/funkadelic/claude-nomad/commit/eefdf0641cd14ad7339ecfeb4b270a78b25b08df))
|
|
43
|
+
* move the TTY check and the manifest store out of the push command ([#633](https://github.com/funkadelic/claude-nomad/issues/633)) ([50584df](https://github.com/funkadelic/claude-nomad/commit/50584df68f609dd84c295f21cea22dbe56b157a5))
|
|
44
|
+
* publish a test-count badge from main ([#637](https://github.com/funkadelic/claude-nomad/issues/637)) ([7cd6f1d](https://github.com/funkadelic/claude-nomad/commit/7cd6f1d7750a4c2fb3e080feb87aaede939b7c1c))
|
|
45
|
+
* **sync:** move settings drift helpers into sync ([#634](https://github.com/funkadelic/claude-nomad/issues/634)) ([3462c6f](https://github.com/funkadelic/claude-nomad/commit/3462c6f4e3b919b8dd7ec6225ae1ac62f87a901b))
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
### Testing
|
|
49
|
+
|
|
50
|
+
* cover the defensive fault-handling branches ([#636](https://github.com/funkadelic/claude-nomad/issues/636)) ([b187ef5](https://github.com/funkadelic/claude-nomad/commit/b187ef5763e8ce2e97f6cae1c35cd526699cea0f))
|
|
51
|
+
* pin the home preflight, crash redaction and spinner worker path ([#632](https://github.com/funkadelic/claude-nomad/issues/632)) ([6ad01cd](https://github.com/funkadelic/claude-nomad/commit/6ad01cdf3260a2867a3b2b690a81142d0398bcb0))
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
### Dependencies
|
|
55
|
+
|
|
56
|
+
* bump @astrojs/starlight from 0.42.0 to 0.42.1 in /docs-site in the prod-dependencies group across 1 directory ([#626](https://github.com/funkadelic/claude-nomad/issues/626)) ([6f8a2dc](https://github.com/funkadelic/claude-nomad/commit/6f8a2dcc0d189c6358b6def2b5ba0b61e0bbbcc2))
|
|
57
|
+
* bump astro from 7.3.2 to 7.3.3 in /docs-site in the astro group ([#624](https://github.com/funkadelic/claude-nomad/issues/624)) ([ff34642](https://github.com/funkadelic/claude-nomad/commit/ff3464207ee8686728bccfa8684f520a91a028ba))
|
|
58
|
+
* bump starlight-llms-txt from 0.11.0 to 0.12.0 in /docs-site in the dev-dependencies group across 1 directory ([#625](https://github.com/funkadelic/claude-nomad/issues/625)) ([ca728a4](https://github.com/funkadelic/claude-nomad/commit/ca728a42fdcce079656a1fcc8da29609cfa70909))
|
|
59
|
+
* bump the actions group across 1 directory with 4 updates ([#630](https://github.com/funkadelic/claude-nomad/issues/630)) ([8b10d51](https://github.com/funkadelic/claude-nomad/commit/8b10d5150b205348604a3fbcd785bb6da8f3ef7b))
|
|
60
|
+
* bump the dev-dependencies group across 1 directory with 5 updates ([#629](https://github.com/funkadelic/claude-nomad/issues/629)) ([dd8aa58](https://github.com/funkadelic/claude-nomad/commit/dd8aa58dd08de0e0a0106ea0e147809ac6d02d5a))
|
|
61
|
+
|
|
3
62
|
## [0.69.3](https://github.com/funkadelic/claude-nomad/compare/v0.69.2...v0.69.3) (2026-09-19)
|
|
4
63
|
|
|
5
64
|
|
package/README.md
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# claude-nomad
|
|
2
2
|
|
|
3
3
|
[](https://github.com/funkadelic/claude-nomad/actions/workflows/tests.yml)
|
|
4
|
+
[](https://app.codecov.io/gh/funkadelic/claude-nomad/tests/main)
|
|
4
5
|
[](https://github.com/funkadelic/claude-nomad/actions/workflows/codeql.yml)
|
|
5
6
|
[](https://codecov.io/gh/funkadelic/claude-nomad)
|
|
6
|
-
[](https://www.npmjs.com/package/claude-nomad)
|
|
7
|
+
[](https://www.npmjs.com/package/claude-nomad)
|
|
7
8
|
[](https://www.npmjs.com/package/claude-nomad)
|
|
8
9
|
[](https://www.npmjs.com/package/claude-nomad)
|
|
9
|
-
[](LICENSE)
|
|
10
10
|
|
|
11
11
|

|
|
12
12
|
|
|
@@ -39,8 +39,9 @@ session history survives different file paths and your secrets never ride along.
|
|
|
39
39
|
with a per-host override, so one machine can run a different model or MCP URL without forking the
|
|
40
40
|
rest. GSD-owned hook entries (scripts whose basename starts with `gsd-`) are filtered out of the
|
|
41
41
|
generated `~/.claude/settings.json` during pull and stripped from `shared/settings.base.json` on
|
|
42
|
-
the next push; GSD reinstalls the correct per-host hook set itself. A
|
|
43
|
-
live settings
|
|
42
|
+
the next push; GSD reinstalls the correct per-host hook set itself. A pull never overwrites a
|
|
43
|
+
non-gsd hook you add to your live settings; run `nomad capture-settings` to save it so it syncs to
|
|
44
|
+
your other machines.
|
|
44
45
|
- **Every push is secret-scanned.** Only an explicit allow-list of paths ever leaves the machine,
|
|
45
46
|
credentials never sync, and gitleaks scans the exact files about to be published. The push aborts
|
|
46
47
|
on any hit, with an interactive menu to redact, allow, or drop the finding. Always publish through
|
|
@@ -228,6 +229,20 @@ longer want them. Your shared files, skills, sessions, and project extras still
|
|
|
228
229
|
command exits with a non-zero status so a scripted or cron-driven pull does not report success. Once
|
|
229
230
|
you have saved or deleted the settings, the next pull proceeds normally.
|
|
230
231
|
|
|
232
|
+
When your repo already has hooks and you add another one on this machine, `nomad pull` stops the
|
|
233
|
+
same way. It names the new hook by its event, and by its command too when the command is short
|
|
234
|
+
enough to show, for example `PreToolUse hook 'python3 ~/x.py'`. Save it with
|
|
235
|
+
`nomad capture-settings`, which adds it to the shared hooks for that event. A hook another machine
|
|
236
|
+
removed from the repo is removed here too and named by the pull, the same as any other setting, and
|
|
237
|
+
`nomad capture-settings` does not save it back.
|
|
238
|
+
|
|
239
|
+
With `--host`, capture writes that event's whole hook list, shared entries included, into this
|
|
240
|
+
machine's host file. Later changes to that event's hooks in the shared file then stop reaching this
|
|
241
|
+
machine, and capture warns you before it writes. If your host file already sets its own hooks for
|
|
242
|
+
that event, or sets `hooks` to `null`, a plain `nomad capture-settings` does not save the hook and
|
|
243
|
+
tells you to add `--host`. A `--host` capture over `hooks: null` replaces the `null`, so the shared
|
|
244
|
+
hooks for every other event reach this machine again, and capture warns about that too.
|
|
245
|
+
|
|
231
246
|
Credential settings are the one exception. Keys that can hold a secret (`env`, `apiKeyHelper`,
|
|
232
247
|
`awsAuthRefresh`, `awsCredentialExport`, `otelHeadersHelper`) are never printed, so pull cannot list
|
|
233
248
|
them and will not stop for them. When it finds some your repo does not track, it writes
|
|
@@ -236,13 +251,13 @@ them and will not stop for them. When it finds some your repo does not track, it
|
|
|
236
251
|
|
|
237
252
|
A setting that another machine removed from the repo is removed here too. Each time nomad writes
|
|
238
253
|
your settings, on a pull or a `nomad capture-settings`, it records which settings it wrote on this
|
|
239
|
-
machine, with a fingerprint of each value. A setting in that record that the repo
|
|
240
|
-
and that still has the value nomad wrote, is one nomad put there, so the next
|
|
241
|
-
pull names each setting it removes (so does `nomad pull --dry-run`), and the
|
|
242
|
-
pull stays in `~/.cache/claude-nomad/backup/`. A setting missing from the
|
|
243
|
-
and one you changed since is yours now, so either is kept and listed as
|
|
244
|
-
the same whether it arrives with this pull or reached your repo earlier
|
|
245
|
-
`nomad push`, or a `nomad pull --dry-run`.
|
|
254
|
+
machine, with a fingerprint of each value and of each hook. A setting in that record that the repo
|
|
255
|
+
no longer carries, and that still has the value nomad wrote, is one nomad put there, so the next
|
|
256
|
+
pull removes it. The pull names each setting it removes (so does `nomad pull --dry-run`), and the
|
|
257
|
+
file from before the pull stays in `~/.cache/claude-nomad/backup/`. A setting missing from the
|
|
258
|
+
record is one you added, and one you changed since is yours now, so either is kept and listed as
|
|
259
|
+
above. A removal is handled the same whether it arrives with this pull or reached your repo earlier
|
|
260
|
+
through an edit you made, a `nomad push`, or a `nomad pull --dry-run`.
|
|
246
261
|
|
|
247
262
|
A machine that has not finished a pull yet, or whose cache folder was cleared, has nothing recorded.
|
|
248
263
|
There a removal that reached the repo earlier is still listed as a setting you added. Save it or
|
|
@@ -285,13 +300,14 @@ file still carries conflict markers, so they are never copied into your live con
|
|
|
285
300
|
specific problem and points at the right fix.
|
|
286
301
|
|
|
287
302
|
If an external tool (such as Claude Code or GSD) wrote new keys into your `~/.claude/settings.json`
|
|
288
|
-
that are not yet in your shared repo, run `nomad capture-settings` to promote them
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
detects ahead-drift so you have a
|
|
303
|
+
that are not yet in your shared repo, run `nomad capture-settings` to promote them, or to save a
|
|
304
|
+
hook it added under an event your repo already tracks, before the next `nomad pull` overwrites them.
|
|
305
|
+
With `--host`, the keys land in `hosts/<NOMAD_HOST>.json` instead of `shared/settings.base.json`
|
|
306
|
+
(useful for machine-specific values such as absolute paths). `--dry-run` shows what would be written
|
|
307
|
+
without touching anything. Before it writes, `capture-settings` shows the destination and the keys
|
|
308
|
+
and asks you to confirm; pass `--yes` (or `-y`) to skip the prompt, which is required when running
|
|
309
|
+
without an interactive terminal. `nomad push` also warns when it detects ahead-drift so you have a
|
|
310
|
+
prompt to act before the push completes.
|
|
295
311
|
|
|
296
312
|
## Claude Code plugin
|
|
297
313
|
|