claude-nomad 0.49.0 → 0.50.1

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,34 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.50.1](https://github.com/funkadelic/claude-nomad/compare/v0.50.0...v0.50.1) (2026-06-12)
4
+
5
+
6
+ ### Changed
7
+
8
+ * **doctor:** tidy summary verdict and dependency-version lines ([#289](https://github.com/funkadelic/claude-nomad/issues/289)) ([43d38a7](https://github.com/funkadelic/claude-nomad/commit/43d38a7bbf1780cd0e1e1b5e6bd85f9d75de7630))
9
+
10
+
11
+ ### Documentation
12
+
13
+ * **hero:** plain-language status rows, drop gsd-owned files ([#291](https://github.com/funkadelic/claude-nomad/issues/291)) ([c144b0d](https://github.com/funkadelic/claude-nomad/commit/c144b0d01eea801d39b012ad3d4b3780d2ffafd1))
14
+ * **how-it-works:** use neutral sharedDirs example, not a gsd dir ([#292](https://github.com/funkadelic/claude-nomad/issues/292)) ([e000ecf](https://github.com/funkadelic/claude-nomad/commit/e000ecf67e814855d09c664b9dae6ce5d8287a97))
15
+ * **recipes:** add recipes page with example configs ([#293](https://github.com/funkadelic/claude-nomad/issues/293)) ([c339372](https://github.com/funkadelic/claude-nomad/commit/c3393723062bd9e639acff31e5236a9ff2ac2802))
16
+
17
+ ## [0.50.0](https://github.com/funkadelic/claude-nomad/compare/v0.49.0...v0.50.0) (2026-06-11)
18
+
19
+
20
+ ### Added
21
+
22
+ * **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))
23
+ * **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))
24
+ * **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))
25
+
26
+
27
+ ### Documentation
28
+
29
+ * 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))
30
+ * **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))
31
+
3
32
  ## [0.49.0](https://github.com/funkadelic/claude-nomad/compare/v0.48.0...v0.49.0) (2026-06-10)
4
33
 
5
34
 
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,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 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.
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. See the
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,8 +152,12 @@ 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/`
159
+ - [Recipes](https://funkadelic.github.io/claude-nomad/recipes/) -- copy-pasteable example configs
160
+ for common setups, from scratch to cross-OS remapping and GSD integration
145
161
  - [Commands reference](https://funkadelic.github.io/claude-nomad/commands/) -- all CLI flags
146
162
  - [Claude Code plugin](https://funkadelic.github.io/claude-nomad/plugin/) -- /nomad slash commands
147
163
  and the session-start drift check