claude-nomad 0.48.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 CHANGED
@@ -1,5 +1,27 @@
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
+
18
+ ## [0.49.0](https://github.com/funkadelic/claude-nomad/compare/v0.48.0...v0.49.0) (2026-06-10)
19
+
20
+
21
+ ### Added
22
+
23
+ * **plugin:** add companion Claude Code plugin ([#281](https://github.com/funkadelic/claude-nomad/issues/281)) ([af85994](https://github.com/funkadelic/claude-nomad/commit/af859940453b6f9419d26072be4b0e04aaea1e8f))
24
+
3
25
  ## [0.48.0](https://github.com/funkadelic/claude-nomad/compare/v0.47.1...v0.48.0) (2026-06-09)
4
26
 
5
27
 
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.** Agents, skills, slash commands, rules, hooks, and
31
- your `CLAUDE.md` live in one place and follow you everywhere. Settings merge a shared base with a
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 a sync repo stuck mid-rebase while parking your stranded work on a branch, refusing
45
- entirely if shared config is at risk.
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,11 +111,32 @@ 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 mid-rebase or mid-merge, run
109
- `nomad pull --force-remote` to auto-recover. It aborts the in-progress operation, parks stranded
110
- commits on a `nomad/stranded-<ts>` branch, and resets to `origin/main`, then re-pulls. It refuses if
111
- any stranded or dirty tracked changes touch synced config (shared/, hosts/, path-map.json), so
112
- config you care about is never silently discarded.
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.
123
+
124
+ ## Claude Code plugin
125
+
126
+ An optional companion plugin puts nomad one slash away inside Claude Code and warns you at session
127
+ start when your synced setup has drifted. It is a thin layer over the CLI: install `claude-nomad`
128
+ first (minimum version `>= 0.35.0`), then add the plugin.
129
+
130
+ ```text
131
+ /plugin marketplace add funkadelic/claude-nomad
132
+ /plugin install nomad@claude-nomad
133
+ ```
134
+
135
+ It adds `/nomad:pull`, `/nomad:diff`, `/nomad:push` (preview only), `/nomad:doctor`, and
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
139
+ [plugin guide](https://funkadelic.github.io/claude-nomad/plugin/) for details.
113
140
 
114
141
  ## Requirements
115
142
 
@@ -125,9 +152,13 @@ version-staleness check and `nomad doctor --check-schema`. The CLI works without
125
152
 
126
153
  - [How it works](https://funkadelic.github.io/claude-nomad/how-it-works/) -- path remapping,
127
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
128
157
  - [Setup and migration](https://funkadelic.github.io/claude-nomad/quickstart/) -- full setup
129
158
  walkthrough, migrating an existing `~/.claude/`
130
159
  - [Commands reference](https://funkadelic.github.io/claude-nomad/commands/) -- all CLI flags
160
+ - [Claude Code plugin](https://funkadelic.github.io/claude-nomad/plugin/) -- /nomad slash commands
161
+ and the session-start drift check
131
162
  - [Recovery flows](https://funkadelic.github.io/claude-nomad/recovery/) -- backups, drop-session,
132
163
  redact, gitleaks allowlist, non-interactive allow
133
164
  - [FAQ](https://funkadelic.github.io/claude-nomad/faq/) -- common questions, like the right