claude-nomad 0.69.4 → 0.69.6

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,55 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.69.6](https://github.com/funkadelic/claude-nomad/compare/v0.69.5...v0.69.6) (2026-10-07)
4
+
5
+
6
+ ### Changed
7
+
8
+ * **codecov:** drop the flags table from the PR comment ([#661](https://github.com/funkadelic/claude-nomad/issues/661)) ([a750e88](https://github.com/funkadelic/claude-nomad/commit/a750e880cb1dc7c3562f58d7402c33f1f133a283))
9
+ * **docs-check:** stop cancelling a running docs-sync job ([#648](https://github.com/funkadelic/claude-nomad/issues/648)) ([d9f3a61](https://github.com/funkadelic/claude-nomad/commit/d9f3a6161bc982891f1f4f3189b5517c418276ee))
10
+
11
+
12
+ ### Testing
13
+
14
+ * fail when a --autostash pull skips the conflict check ([#662](https://github.com/funkadelic/claude-nomad/issues/662)) ([12dc459](https://github.com/funkadelic/claude-nomad/commit/12dc459eb998c379767c0f958676fd1ed87e0dd7))
15
+ * give the multi-host sync flows a 60s timeout ([#663](https://github.com/funkadelic/claude-nomad/issues/663)) ([988da7f](https://github.com/funkadelic/claude-nomad/commit/988da7f76772033cff200a545a1fbd8b8023e54b))
16
+
17
+
18
+ ### Dependencies
19
+
20
+ * bump devalue from 5.9.2 to 5.9.4 in /docs-site ([#656](https://github.com/funkadelic/claude-nomad/issues/656)) ([56c01f0](https://github.com/funkadelic/claude-nomad/commit/56c01f00b9959dfa85d1d00a06d97abade1cd585))
21
+ * bump sharp from 0.35.4 to 0.35.5 in /docs-site ([#654](https://github.com/funkadelic/claude-nomad/issues/654)) ([9b105fd](https://github.com/funkadelic/claude-nomad/commit/9b105fd0055930fb6c285d8a17f38a024ac07a2e))
22
+ * bump shell-quote from 1.10.0 to 1.12.0 ([#665](https://github.com/funkadelic/claude-nomad/issues/665)) ([ac029b7](https://github.com/funkadelic/claude-nomad/commit/ac029b70324f31ce6d17dc57272be11c51a19748))
23
+ * bump smol-toml from 1.8.0 to 1.9.0 ([#664](https://github.com/funkadelic/claude-nomad/issues/664)) ([aa4f454](https://github.com/funkadelic/claude-nomad/commit/aa4f454d6c4f39dba50852961d9d0356fa84e4a4))
24
+ * bump smol-toml from 1.8.0 to 1.9.0 in /docs-site ([#659](https://github.com/funkadelic/claude-nomad/issues/659)) ([ab43bda](https://github.com/funkadelic/claude-nomad/commit/ab43bda82710a2586dd236f88ea749f8313d893b))
25
+ * bump source-map-js from 1.2.1 to 1.2.2 ([#660](https://github.com/funkadelic/claude-nomad/issues/660)) ([0ab5a3b](https://github.com/funkadelic/claude-nomad/commit/0ab5a3bc314c3310fba729d7d549dd50ff9dcf13))
26
+ * bump source-map-js from 1.2.1 to 1.2.2 in /docs-site ([#658](https://github.com/funkadelic/claude-nomad/issues/658)) ([216330b](https://github.com/funkadelic/claude-nomad/commit/216330b85a6d33aa0ec71cd9ace28e0eb4524b6b))
27
+ * bump the actions group across 1 directory with 3 updates ([#655](https://github.com/funkadelic/claude-nomad/issues/655)) ([6ef22c4](https://github.com/funkadelic/claude-nomad/commit/6ef22c4944130f4c5bee3b958834829f2be3c030))
28
+ * bump the astro group in /docs-site with 2 updates ([#644](https://github.com/funkadelic/claude-nomad/issues/644)) ([d7ba50a](https://github.com/funkadelic/claude-nomad/commit/d7ba50a13d1b303ceb44f720b8d14a7f2d285747))
29
+ * bump the astro group in /docs-site with 2 updates ([#653](https://github.com/funkadelic/claude-nomad/issues/653)) ([47dd484](https://github.com/funkadelic/claude-nomad/commit/47dd48475d7750a1ce2b0804a7d4c525040a4e73))
30
+ * bump the dev-dependencies group across 1 directory with 5 updates ([#657](https://github.com/funkadelic/claude-nomad/issues/657)) ([ec58e92](https://github.com/funkadelic/claude-nomad/commit/ec58e92a0d46b722ef7e830d2376fc1e90515ded))
31
+ * bump the dev-dependencies group across 1 directory with 7 updates ([#645](https://github.com/funkadelic/claude-nomad/issues/645)) ([e07db28](https://github.com/funkadelic/claude-nomad/commit/e07db28b35d22b57d0049bcad0b3133b774508b9))
32
+ * bump undici from 8.10.0 to 8.11.2 in /docs-site ([#646](https://github.com/funkadelic/claude-nomad/issues/646)) ([b36cd9c](https://github.com/funkadelic/claude-nomad/commit/b36cd9cb56233e14c26719da1fe207b920a7765d))
33
+
34
+ ## [0.69.5](https://github.com/funkadelic/claude-nomad/compare/v0.69.4...v0.69.5) (2026-09-25)
35
+
36
+
37
+ ### What's new
38
+
39
+ * 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`.
40
+ * `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.
41
+
42
+
43
+ ### Fixed
44
+
45
+ * **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))
46
+ * **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))
47
+
48
+
49
+ ### Changed
50
+
51
+ * 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))
52
+
3
53
  ## [0.69.4](https://github.com/funkadelic/claude-nomad/compare/v0.69.3...v0.69.4) (2026-09-24)
4
54
 
5
55
 
package/dist/nomad.mjs CHANGED
@@ -4004,9 +4004,10 @@ function win32CopyOkRow(name, exempt = 0) {
4004
4004
  const note = exempt > 0 ? dim(` (${exempt} never-synced path(s) not compared)`) : "";
4005
4005
  return { line: `${green(okGlyph)} ${name}: real copy (win32 copy-sync)${note}`, fail: false };
4006
4006
  }
4007
+ var UNPUBLISHED_MARKER = "real local copy, not published";
4007
4008
  function win32CopyUnpublishedRow(name) {
4008
4009
  return {
4009
- line: `${dim(infoGlyph)} ${name}: real local copy, not published (run \`nomad adopt ${name}\` to share it)`,
4010
+ line: `${dim(infoGlyph)} ${name}: ${UNPUBLISHED_MARKER} (run \`nomad adopt ${name}\` to share it)`,
4010
4011
  fail: false
4011
4012
  };
4012
4013
  }
@@ -6811,9 +6812,19 @@ function isRepoStateLine(item2) {
6811
6812
  function isCopySyncModalityLine(item2) {
6812
6813
  return item2.includes("sync modality: copy-sync");
6813
6814
  }
6815
+ function isUnpublishedLine(item2) {
6816
+ return item2.includes(UNPUBLISHED_MARKER);
6817
+ }
6818
+ function isKeptLinksRow(item2) {
6819
+ return isProblem(item2) || isUnpublishedLine(item2);
6820
+ }
6814
6821
  function isKeptEnvironmentRow(item2) {
6815
6822
  return isRepoStateLine(item2) || isCopySyncModalityLine(item2) || isProblem(item2);
6816
6823
  }
6824
+ var KEEP_RULES = /* @__PURE__ */ new Map([
6825
+ ["Environment", isKeptEnvironmentRow],
6826
+ ["Shared links", isKeptLinksRow]
6827
+ ]);
6817
6828
  function keepWithChildren(items, keep) {
6818
6829
  const out = [];
6819
6830
  let parentKept = false;
@@ -6830,7 +6841,7 @@ function keepWithChildren(items, keep) {
6830
6841
  function compactSections(sections) {
6831
6842
  return sections.map((s) => {
6832
6843
  if (ALWAYS_FULL.has(s.header)) return s;
6833
- const keep = s.header === "Environment" ? isKeptEnvironmentRow : isProblem;
6844
+ const keep = KEEP_RULES.get(s.header) ?? isProblem;
6834
6845
  return { ...s, items: keepWithChildren(s.items, keep) };
6835
6846
  });
6836
6847
  }
@@ -7468,8 +7479,9 @@ function deletePairsFor(t, raw) {
7468
7479
  }
7469
7480
  );
7470
7481
  }
7471
- function keptDeleteWarnLine(logical, relToLocal) {
7472
- return `keeping locally-edited ${relToLocal} in ${logical}: deleted upstream but changed locally (push to reconcile; your copy is backed up)`;
7482
+ function keptDeleteWarnLine(logical, relToLocal, dryRun = false) {
7483
+ const backup = dryRun ? "will be backed up when you pull" : "is backed up";
7484
+ return `keeping locally-edited ${relToLocal} in ${logical}: deleted upstream but changed locally (push to reconcile; your copy ${backup})`;
7473
7485
  }
7474
7486
  function keptDeletePreview(v, prePostHeads, repo) {
7475
7487
  const kept = [];
@@ -7620,10 +7632,12 @@ function divergenceWarnLine(o) {
7620
7632
  const name = o.isDir ? `${o.dirname}/` : o.dirname;
7621
7633
  const one = o.count === 1;
7622
7634
  const fileCount = one ? "1 file" : `${o.count} files`;
7623
- const yours = one ? "your current file is" : "your current files are";
7624
- return `local ${kind} ${name} in repo ${o.logical} differs from the synced copy in ${fileCount}; the next pull step will keep your local copy (push to reconcile; ${yours} backed up to ${o.projectBackupRoot}/)`;
7635
+ const yours = one ? "your current file" : "your current files";
7636
+ const verb = one ? "is" : "are";
7637
+ const backup = o.dryRun ? "will be backed up when you pull" : `${verb} backed up to ${o.projectBackupRoot}/`;
7638
+ return `local ${kind} ${name} in repo ${o.logical} differs from the synced copy in ${fileCount}; the next pull step will keep your local copy (push to reconcile; ${yours} ${backup})`;
7625
7639
  }
7626
- function divergenceCheckExtras(ts, prePostHeads) {
7640
+ function divergenceCheckExtras(ts, prePostHeads, dryRun = false) {
7627
7641
  const v = loadValidatedExtras({});
7628
7642
  if (v === null) return 0;
7629
7643
  const counts = { unmapped: 0, skipped: 0 };
@@ -7644,14 +7658,15 @@ function divergenceCheckExtras(ts, prePostHeads) {
7644
7658
  logical,
7645
7659
  isDir: statSync9(local).isDirectory(),
7646
7660
  count: modified.length,
7647
- projectBackupRoot
7661
+ projectBackupRoot,
7662
+ dryRun
7648
7663
  })
7649
7664
  );
7650
7665
  for (const f of modified) warn(` ${f}`);
7651
7666
  }
7652
7667
  if (prePostHeads !== void 0) {
7653
7668
  for (const { logical, relToLocal } of keptDeletePreview(v, prePostHeads, repo)) {
7654
- warn(keptDeleteWarnLine(logical, relToLocal));
7669
+ warn(keptDeleteWarnLine(logical, relToLocal, dryRun));
7655
7670
  }
7656
7671
  }
7657
7672
  return divergedCount;
@@ -9086,7 +9101,7 @@ function runPullWithBackupTs(ts, opts) {
9086
9101
  assertNoAutostashConflict(repo, "nomad pull");
9087
9102
  const mapPath = join65(repo, "path-map.json");
9088
9103
  const map = existsSync50(mapPath) ? readPathMap(mapPath) : { projects: {} };
9089
- const divergedKeptLocal = divergenceCheckExtras(ts, dryRun ? prePostHeads : void 0);
9104
+ const divergedKeptLocal = divergenceCheckExtras(ts, dryRun ? prePostHeads : void 0, dryRun);
9090
9105
  if (dryRun) {
9091
9106
  computePreview(ts, map, "pull", plansAgainst(sharedPlans, map), prePostHeads);
9092
9107
  return { tag: "dry" };
@@ -10899,7 +10914,7 @@ function cmdDiff() {
10899
10914
  const ts = freshBackupTs(backupBase());
10900
10915
  const mapPath = join78(repo, "path-map.json");
10901
10916
  const map = existsSync58(mapPath) ? readPathMap(mapPath) : { projects: {} };
10902
- divergenceCheckExtras(ts);
10917
+ divergenceCheckExtras(ts, void 0, true);
10903
10918
  computePreview(ts, map, "diff");
10904
10919
  } catch (err) {
10905
10920
  if (err instanceof NomadFatal) {
@@ -11468,7 +11483,7 @@ function parseSyncArgs(argv) {
11468
11483
  // package.json
11469
11484
  var package_default = {
11470
11485
  name: "claude-nomad",
11471
- version: "0.69.4",
11486
+ version: "0.69.6",
11472
11487
  type: "module",
11473
11488
  description: "Sync Claude Code config (~/.claude/) across machines via a private Git repo, with path remapping and per-host settings overrides.",
11474
11489
  keywords: [
@@ -11537,7 +11552,7 @@ var package_default = {
11537
11552
  "@conventional-changelog/git-client": {
11538
11553
  "conventional-commits-parser": "^7.0.0"
11539
11554
  },
11540
- "smol-toml": "^1.7.1"
11555
+ "smol-toml": "^1.9.0"
11541
11556
  },
11542
11557
  devDependencies: {
11543
11558
  "@commitlint/cli": "^21.0.1",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-nomad",
3
- "version": "0.69.4",
3
+ "version": "0.69.6",
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": [
@@ -69,7 +69,7 @@
69
69
  "@conventional-changelog/git-client": {
70
70
  "conventional-commits-parser": "^7.0.0"
71
71
  },
72
- "smol-toml": "^1.7.1"
72
+ "smol-toml": "^1.9.0"
73
73
  },
74
74
  "devDependencies": {
75
75
  "@commitlint/cli": "^21.0.1",