claude-nomad 0.52.2 → 0.52.3

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,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.52.3](https://github.com/funkadelic/claude-nomad/compare/v0.52.2...v0.52.3) (2026-06-20)
4
+
5
+
6
+ ### Fixed
7
+
8
+ * **diff:** strip gsd hook entries from both sides of settings preview ([#323](https://github.com/funkadelic/claude-nomad/issues/323)) ([5d52583](https://github.com/funkadelic/claude-nomad/commit/5d52583b397b70e68ef4fde9d47af83830fe9c77))
9
+
3
10
  ## [0.52.2](https://github.com/funkadelic/claude-nomad/compare/v0.52.1...v0.52.2) (2026-06-19)
4
11
 
5
12
 
package/README.md CHANGED
@@ -40,7 +40,8 @@ survives different file paths and your secrets never ride along.
40
40
  - **Every push is secret-scanned.** Only an explicit allow-list of paths ever leaves the machine,
41
41
  credentials never sync, and gitleaks scans the exact files about to be published. The push aborts
42
42
  on any hit, with an interactive menu to redact, allow, or drop the finding.
43
- - **Preview before you trust it.** `nomad diff` shows offline what a pull would change, and
43
+ - **Preview before you trust it.** `nomad diff` shows offline what a pull would change (gsd-owned
44
+ hook churn is filtered the same as on pull, so the preview matches what a real pull writes), and
44
45
  `--dry-run` on pull and push prints the plan without writing anything.
45
46
  - **One command tells you what is wrong.** `nomad doctor` is a read-only health check: wedged sync
46
47
  repo, broken hook references, hooks that would crash on session start because of a missing
package/dist/nomad.mjs CHANGED
@@ -5558,14 +5558,15 @@ function previewSettings(basePath, hostPath, settingsPath) {
5558
5558
  if (hostOverrides === null && existsSync36(hostPath)) {
5559
5559
  notes.push(`malformed hosts/${HOST}.json; ignoring overrides`);
5560
5560
  }
5561
- const merged = deepMerge(base, hostOverrides ?? {});
5561
+ const merged = stripGsdHookEntries(deepMerge(base, hostOverrides ?? {}));
5562
5562
  const current = readJsonOrNull(settingsPath);
5563
5563
  if (current === null && existsSync36(settingsPath)) {
5564
5564
  return { diff: "", notes: [...notes, "malformed; skipping diff"] };
5565
5565
  }
5566
- const rawEqual = JSON.stringify(current ?? {}, null, 2) === JSON.stringify(merged, null, 2);
5566
+ const strippedCurrent = stripGsdHookEntries(current ?? {});
5567
+ const rawEqual = JSON.stringify(strippedCurrent, null, 2) === JSON.stringify(merged, null, 2);
5567
5568
  const diff = diffJsonStrings(
5568
- JSON.stringify(sortKeysDeep(current ?? {}), null, 2),
5569
+ JSON.stringify(sortKeysDeep(strippedCurrent), null, 2),
5569
5570
  JSON.stringify(sortKeysDeep(merged), null, 2)
5570
5571
  );
5571
5572
  if (diff === "" && !rawEqual) notes.push(CANONICAL_ORDER_NOTE);
@@ -6794,7 +6795,7 @@ function parsePushArgs(argv) {
6794
6795
  // package.json
6795
6796
  var package_default = {
6796
6797
  name: "claude-nomad",
6797
- version: "0.52.2",
6798
+ version: "0.52.3",
6798
6799
  type: "module",
6799
6800
  description: "Sync Claude Code config (~/.claude/) across machines via a private Git repo, with path remapping and per-host settings overrides.",
6800
6801
  keywords: [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-nomad",
3
- "version": "0.52.2",
3
+ "version": "0.52.3",
4
4
  "type": "module",
5
5
  "description": "Sync Claude Code config (~/.claude/) across machines via a private Git repo, with path remapping and per-host settings overrides.",
6
6
  "keywords": [