claude-nomad 0.57.1 → 0.58.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 +14 -0
- package/dist/nomad.mjs +23 -8
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.58.1](https://github.com/funkadelic/claude-nomad/compare/v0.58.0...v0.58.1) (2026-07-11)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Fixed
|
|
7
|
+
|
|
8
|
+
* **sync:** distinguish push/pull/sync summary headers ([#396](https://github.com/funkadelic/claude-nomad/issues/396)) ([e88a3d6](https://github.com/funkadelic/claude-nomad/commit/e88a3d61eaeedd5c6ab7c8d85c3c3e201226e430))
|
|
9
|
+
|
|
10
|
+
## [0.58.0](https://github.com/funkadelic/claude-nomad/compare/v0.57.1...v0.58.0) (2026-07-11)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Added
|
|
14
|
+
|
|
15
|
+
* **preview:** render an Extras section in pull/diff dry-run previews ([#394](https://github.com/funkadelic/claude-nomad/issues/394)) ([6b929dc](https://github.com/funkadelic/claude-nomad/commit/6b929dc7c63aad905ba267f793b31308fa7cb76e))
|
|
16
|
+
|
|
3
17
|
## [0.57.1](https://github.com/funkadelic/claude-nomad/compare/v0.57.0...v0.57.1) (2026-07-08)
|
|
4
18
|
|
|
5
19
|
|
package/dist/nomad.mjs
CHANGED
|
@@ -5592,7 +5592,7 @@ function syncedSections(st) {
|
|
|
5592
5592
|
];
|
|
5593
5593
|
}
|
|
5594
5594
|
function summarySection(st) {
|
|
5595
|
-
const s = section("
|
|
5595
|
+
const s = section("Push summary");
|
|
5596
5596
|
const unmapped = st.remap.unmapped + st.extras.unmapped;
|
|
5597
5597
|
addItem(s, summaryRow("push", unmapped, st.remap.collisions, st.extras.skipped));
|
|
5598
5598
|
return s;
|
|
@@ -6350,9 +6350,23 @@ function computePreview(ts, map, verb = "pull") {
|
|
|
6350
6350
|
if (localOnly > 0) {
|
|
6351
6351
|
addItem(sessions, `${localOnly} local-only present, not in repo (push to reconcile)`);
|
|
6352
6352
|
}
|
|
6353
|
+
const extras = section("Extras");
|
|
6354
|
+
let extrasSkipped = 0;
|
|
6355
|
+
let extrasUnmapped = 0;
|
|
6356
|
+
if (existsSync38(join45(repo, "path-map.json")) && existsSync38(join45(repo, "shared", "extras"))) {
|
|
6357
|
+
const extrasResult = remapExtrasPull(ts, { dryRun: true });
|
|
6358
|
+
for (const entry of extrasResult.wouldPull) {
|
|
6359
|
+
addItem(extras, entry);
|
|
6360
|
+
}
|
|
6361
|
+
extrasSkipped = extrasResult.skipped;
|
|
6362
|
+
extrasUnmapped = extrasResult.unmapped;
|
|
6363
|
+
}
|
|
6353
6364
|
const summary = section("Summary");
|
|
6354
|
-
addItem(
|
|
6355
|
-
|
|
6365
|
+
addItem(
|
|
6366
|
+
summary,
|
|
6367
|
+
summaryRow(verb, remapResult.unmapped + extrasUnmapped, 0, extrasSkipped, localOnly)
|
|
6368
|
+
);
|
|
6369
|
+
renderTree([links, settingsSection, sessions, extras, summary]);
|
|
6356
6370
|
return { unmapped: remapResult.unmapped, collisions: 0, localOnly };
|
|
6357
6371
|
}
|
|
6358
6372
|
|
|
@@ -6488,6 +6502,7 @@ function recoverForceRemote(mode, repo) {
|
|
|
6488
6502
|
init_utils();
|
|
6489
6503
|
init_utils_fs();
|
|
6490
6504
|
init_utils_json();
|
|
6505
|
+
var PULL_SUMMARY_HEADER = "Pull summary";
|
|
6491
6506
|
function captureHead(repo) {
|
|
6492
6507
|
try {
|
|
6493
6508
|
return gitCaptureRaw(["rev-parse", "HEAD"], repo).trim();
|
|
@@ -6509,7 +6524,7 @@ function buildWetPullSections(ts, map, prePostHeads) {
|
|
|
6509
6524
|
const remapResult = withSpinner("Syncing sessions", () => remapPull(ts));
|
|
6510
6525
|
const extrasResult = remapExtrasPull(ts, { prePostHeads });
|
|
6511
6526
|
const localOnly = scanLocalOnly();
|
|
6512
|
-
const summary = section(
|
|
6527
|
+
const summary = section(PULL_SUMMARY_HEADER);
|
|
6513
6528
|
addItem(
|
|
6514
6529
|
summary,
|
|
6515
6530
|
summaryRow(
|
|
@@ -7140,7 +7155,7 @@ init_utils_fs();
|
|
|
7140
7155
|
init_utils_json();
|
|
7141
7156
|
function pullHasNoSyncedItems(sections) {
|
|
7142
7157
|
return sections.every(
|
|
7143
|
-
(s) => s.header === "Settings" || s.header ===
|
|
7158
|
+
(s) => s.header === "Settings" || s.header === PULL_SUMMARY_HEADER || s.items.length === 0
|
|
7144
7159
|
);
|
|
7145
7160
|
}
|
|
7146
7161
|
function isNoopSync(pull, pushOutcome) {
|
|
@@ -7150,7 +7165,7 @@ function isNoopSync(pull, pushOutcome) {
|
|
|
7150
7165
|
return pullHasNoSyncedItems(pull.sections);
|
|
7151
7166
|
}
|
|
7152
7167
|
function pullPhrase(pull) {
|
|
7153
|
-
const summary = pull.sections.find((s) => s.header ===
|
|
7168
|
+
const summary = pull.sections.find((s) => s.header === PULL_SUMMARY_HEADER);
|
|
7154
7169
|
return summary?.items[0] ?? "applied";
|
|
7155
7170
|
}
|
|
7156
7171
|
function reconciledNotes(pull) {
|
|
@@ -7164,7 +7179,7 @@ function reconciledNotes(pull) {
|
|
|
7164
7179
|
return notes;
|
|
7165
7180
|
}
|
|
7166
7181
|
function buildSyncSummarySection(pull, pushOutcome) {
|
|
7167
|
-
const s = section("
|
|
7182
|
+
const s = section("Sync summary");
|
|
7168
7183
|
if (!pushOutcome.ok) {
|
|
7169
7184
|
addItem(s, `pull: applied, push: failed (${pushOutcome.message})`);
|
|
7170
7185
|
return s;
|
|
@@ -7854,7 +7869,7 @@ function parseSyncArgs(argv) {
|
|
|
7854
7869
|
// package.json
|
|
7855
7870
|
var package_default = {
|
|
7856
7871
|
name: "claude-nomad",
|
|
7857
|
-
version: "0.
|
|
7872
|
+
version: "0.58.1",
|
|
7858
7873
|
type: "module",
|
|
7859
7874
|
description: "Sync Claude Code config (~/.claude/) across machines via a private Git repo, with path remapping and per-host settings overrides.",
|
|
7860
7875
|
keywords: [
|
package/package.json
CHANGED