claude-nomad 0.49.0 → 0.50.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 +15 -0
- package/README.md +25 -11
- package/dist/nomad.mjs +603 -209
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.50.0](https://github.com/funkadelic/claude-nomad/compare/v0.49.0...v0.50.0) (2026-06-11)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Added
|
|
7
|
+
|
|
8
|
+
* **extras-sync:** overlay .planning sync so repo-only files survive ([#283](https://github.com/funkadelic/claude-nomad/issues/283)) ([8ba7e13](https://github.com/funkadelic/claude-nomad/commit/8ba7e1372a973b5d0434e7180595ddfaff2369e0))
|
|
9
|
+
* **pull:** self-heal unmerged-index wedge with no active rebase ([#286](https://github.com/funkadelic/claude-nomad/issues/286)) ([977534c](https://github.com/funkadelic/claude-nomad/commit/977534c56c6160e81a835189db21913424a20242))
|
|
10
|
+
* **sync:** stop double-managing gsd-owned hooks, agents, and skills ([#285](https://github.com/funkadelic/claude-nomad/issues/285)) ([aabfd8a](https://github.com/funkadelic/claude-nomad/commit/aabfd8a96ab80dc998b8df27d64f98ceaa33ec49))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Documentation
|
|
14
|
+
|
|
15
|
+
* add GSD-aware sync page and document plugin minimum CLI version ([#287](https://github.com/funkadelic/claude-nomad/issues/287)) ([6ac4320](https://github.com/funkadelic/claude-nomad/commit/6ac4320dca12f959bd6329f0e1c813408a3b9c6a))
|
|
16
|
+
* **plugin:** clarify CLI-subcommand wording in version-floor note ([#288](https://github.com/funkadelic/claude-nomad/issues/288)) ([d45adee](https://github.com/funkadelic/claude-nomad/commit/d45adeed8d01515e6cb94f6ac72feced2fb31a52))
|
|
17
|
+
|
|
3
18
|
## [0.49.0](https://github.com/funkadelic/claude-nomad/compare/v0.48.0...v0.49.0) (2026-06-10)
|
|
4
19
|
|
|
5
20
|
|
package/README.md
CHANGED
|
@@ -27,8 +27,11 @@ survives different file paths and your secrets never ride along.
|
|
|
27
27
|
`claude --resume` on your laptop, and it is there. claude-nomad rewrites the machine-specific file
|
|
28
28
|
paths Claude Code embeds in every transcript, so history survives projects living at different
|
|
29
29
|
paths on different hosts.
|
|
30
|
-
- **One shared setup, per-machine exceptions.**
|
|
31
|
-
|
|
30
|
+
- **One shared setup, per-machine exceptions.** Your own skills, slash commands, rules, and your
|
|
31
|
+
`CLAUDE.md` live in one place and follow you everywhere. `hooks/` and `agents/` are installed
|
|
32
|
+
per-host by `@opengsd/gsd-core` via npm and are not synced (syncing them caused version-skew
|
|
33
|
+
churn). Skills sync as a filtered copy: your own skills travel, `gsd-*` skills are excluded (see
|
|
34
|
+
`SHARED_LINKS` and `src/skills-sync.ts` in `src/config.ts`). Settings merge a shared base with a
|
|
32
35
|
per-host override, so one machine can run a different model or MCP URL without forking the rest.
|
|
33
36
|
- **Every push is secret-scanned.** Only an explicit allow-list of paths ever leaves the machine,
|
|
34
37
|
credentials never sync, and gitleaks scans the exact files about to be published. The push aborts
|
|
@@ -41,8 +44,11 @@ survives different file paths and your secrets never ride along.
|
|
|
41
44
|
when `~/.claude/settings.json` no longer matches the base+host merge nomad would write, the
|
|
42
45
|
silent-clobber case, with `nomad pull` as the fix), each with a fix hint.
|
|
43
46
|
- **Self-healing sync.** Every overwrite is backed up first, and `nomad pull --force-remote`
|
|
44
|
-
recovers
|
|
45
|
-
|
|
47
|
+
recovers two kinds of stuck sync repo: a repo stuck mid-rebase or mid-merge (aborts the operation,
|
|
48
|
+
parks stranded work on a branch, refuses if shared config is at risk), and a repo where the rebase
|
|
49
|
+
was interrupted but the git index was left with unmerged entries and no active operation (clears
|
|
50
|
+
the index via `git reset --mixed HEAD`, surfaces any orphaned stash entry left by the interrupted
|
|
51
|
+
autostash, never discards working-tree edits).
|
|
46
52
|
- **Easy off.** `nomad eject` replaces every managed `~/.claude/` symlink with a real copy in one
|
|
47
53
|
step, so your setup keeps working after you delete the sync checkout and uninstall the CLI.
|
|
48
54
|
|
|
@@ -105,17 +111,21 @@ All allow paths always re-scan after writing the allowlist; a surviving finding
|
|
|
105
111
|
push. See [Recovery flows](https://funkadelic.github.io/claude-nomad/recovery/) for the full
|
|
106
112
|
decision tree.
|
|
107
113
|
|
|
108
|
-
If a previous `nomad pull` left the sync repo stuck
|
|
109
|
-
|
|
110
|
-
commits on a `nomad/stranded-<ts>` branch,
|
|
111
|
-
|
|
112
|
-
|
|
114
|
+
If a previous `nomad pull` left the sync repo in a stuck state, run `nomad pull --force-remote` to
|
|
115
|
+
auto-recover. It handles two cases: a repo stuck mid-rebase or mid-merge (aborts the in-progress
|
|
116
|
+
operation, parks stranded commits on a `nomad/stranded-<ts>` branch, resets to `origin/main`, then
|
|
117
|
+
re-pulls; refuses if stranded or dirty tracked changes touch synced config), and a repo where the
|
|
118
|
+
rebase was torn down but the git index still has unmerged entries with no active rebase or merge in
|
|
119
|
+
progress (clears the stuck index via `git reset --mixed HEAD`, preserving working-tree edits,
|
|
120
|
+
surfaces any orphaned autostash entry, then re-pulls). Run `nomad doctor` first if you are unsure
|
|
121
|
+
which state you are in; the Repository section names the specific problem and points at the right
|
|
122
|
+
fix.
|
|
113
123
|
|
|
114
124
|
## Claude Code plugin
|
|
115
125
|
|
|
116
126
|
An optional companion plugin puts nomad one slash away inside Claude Code and warns you at session
|
|
117
127
|
start when your synced setup has drifted. It is a thin layer over the CLI: install `claude-nomad`
|
|
118
|
-
first, then add the plugin.
|
|
128
|
+
first (minimum version `>= 0.35.0`), then add the plugin.
|
|
119
129
|
|
|
120
130
|
```text
|
|
121
131
|
/plugin marketplace add funkadelic/claude-nomad
|
|
@@ -123,7 +133,9 @@ first, then add the plugin.
|
|
|
123
133
|
```
|
|
124
134
|
|
|
125
135
|
It adds `/nomad:pull`, `/nomad:diff`, `/nomad:push` (preview only), `/nomad:doctor`, and
|
|
126
|
-
`/nomad:clean`, plus a session-start drift check.
|
|
136
|
+
`/nomad:clean`, plus a session-start drift check. The plugin versions independently from the CLI,
|
|
137
|
+
but requires nomad `>= 0.35.0` because it calls recent subcommands (`nomad diff`,
|
|
138
|
+
`nomad clean --backups`) and reads the doctor command's status output. See the
|
|
127
139
|
[plugin guide](https://funkadelic.github.io/claude-nomad/plugin/) for details.
|
|
128
140
|
|
|
129
141
|
## Requirements
|
|
@@ -140,6 +152,8 @@ version-staleness check and `nomad doctor --check-schema`. The CLI works without
|
|
|
140
152
|
|
|
141
153
|
- [How it works](https://funkadelic.github.io/claude-nomad/how-it-works/) -- path remapping,
|
|
142
154
|
settings merge, what syncs and what doesn't
|
|
155
|
+
- [GSD-aware sync](https://funkadelic.github.io/claude-nomad/gsd-aware-sync/) -- what nomad does for
|
|
156
|
+
GSD users out of the box
|
|
143
157
|
- [Setup and migration](https://funkadelic.github.io/claude-nomad/quickstart/) -- full setup
|
|
144
158
|
walkthrough, migrating an existing `~/.claude/`
|
|
145
159
|
- [Commands reference](https://funkadelic.github.io/claude-nomad/commands/) -- all CLI flags
|