claude-nomad 0.52.4 → 0.53.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 +27 -0
- package/README.md +3 -1
- package/dist/nomad.mjs +55 -19
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,32 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.53.1](https://github.com/funkadelic/claude-nomad/compare/v0.53.0...v0.53.1) (2026-06-21)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Testing
|
|
7
|
+
|
|
8
|
+
* **doctor:** assert okGlyph in verbose tree so release publish passes ([#334](https://github.com/funkadelic/claude-nomad/issues/334)) ([b587e99](https://github.com/funkadelic/claude-nomad/commit/b587e99bcadb4802a6cf9edcc9a139d84b479e86))
|
|
9
|
+
|
|
10
|
+
## [0.53.0](https://github.com/funkadelic/claude-nomad/compare/v0.52.4...v0.53.0) (2026-06-21)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Added
|
|
14
|
+
|
|
15
|
+
* **doctor:** compact default output with --verbose/--all/-v flag ([#327](https://github.com/funkadelic/claude-nomad/issues/327)) ([654dc91](https://github.com/funkadelic/claude-nomad/commit/654dc9174459efe0d89af2b92771bf68057e13a9))
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
|
|
20
|
+
* **docs:** add docs-sync gate requiring docs updates with CLI changes ([#328](https://github.com/funkadelic/claude-nomad/issues/328)) ([da2ffe9](https://github.com/funkadelic/claude-nomad/commit/da2ffe9c53824a847bb12d25b7dc879695623c13))
|
|
21
|
+
* drop dead exports flagged by fallow and knip; add knip config ([#330](https://github.com/funkadelic/claude-nomad/issues/330)) ([da8bab5](https://github.com/funkadelic/claude-nomad/commit/da8bab52bb9c5e457cda552b46a1dedabb00a805))
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
### Documentation
|
|
25
|
+
|
|
26
|
+
* **plugin:** add marketplace description and plugin keywords ([#331](https://github.com/funkadelic/claude-nomad/issues/331)) ([51ce1f8](https://github.com/funkadelic/claude-nomad/commit/51ce1f8604002dd15a9812d0411b5d0ac17e84eb))
|
|
27
|
+
* **plugin:** sync plugin and marketplace descriptions ([#332](https://github.com/funkadelic/claude-nomad/issues/332)) ([33c58b2](https://github.com/funkadelic/claude-nomad/commit/33c58b21f0fcb68320cf9c051b67fde119c94b68))
|
|
28
|
+
* **site:** add privacy page ([#333](https://github.com/funkadelic/claude-nomad/issues/333)) ([f8f17da](https://github.com/funkadelic/claude-nomad/commit/f8f17da5bcd06d25eb6a26f328133b7083371e99))
|
|
29
|
+
|
|
3
30
|
## [0.52.4](https://github.com/funkadelic/claude-nomad/compare/v0.52.3...v0.52.4) (2026-06-20)
|
|
4
31
|
|
|
5
32
|
|
package/README.md
CHANGED
|
@@ -49,7 +49,9 @@ survives different file paths and your secrets never ride along.
|
|
|
49
49
|
directions: keys present in the repo merge but absent from your live `settings.json` (behind; the
|
|
50
50
|
next `nomad pull` will restore them, fix: `nomad pull`) and keys present locally but not yet in
|
|
51
51
|
the repo (ahead; local-only additions, fix: `nomad capture-settings`). Each issue includes a fix
|
|
52
|
-
hint.
|
|
52
|
+
hint. By default the report is compact: it shows only checks that need action plus a one-line
|
|
53
|
+
verdict. Add `--verbose` (or `--all` / `-v`) to see the full per-check tree, including everything
|
|
54
|
+
that passed.
|
|
53
55
|
- **Self-healing sync.** Every overwrite is backed up first, and `nomad pull --force-remote`
|
|
54
56
|
recovers two kinds of stuck sync repo: a repo stuck mid-rebase or mid-merge (aborts the operation,
|
|
55
57
|
parks stranded work on a branch, refuses if shared config is at risk), and a repo where the rebase
|
package/dist/nomad.mjs
CHANGED
|
@@ -4440,6 +4440,25 @@ function buildVerdictSection(sections) {
|
|
|
4440
4440
|
return summary;
|
|
4441
4441
|
}
|
|
4442
4442
|
|
|
4443
|
+
// src/commands.doctor.compact.ts
|
|
4444
|
+
init_color();
|
|
4445
|
+
var ALWAYS_FULL = /* @__PURE__ */ new Set(["Nomad Version", "Summary", "Shared scan", "Schema scan"]);
|
|
4446
|
+
function isProblem(item2) {
|
|
4447
|
+
return item2.includes(failGlyph) || item2.includes(warnGlyph);
|
|
4448
|
+
}
|
|
4449
|
+
function isRepoStateLine(item2) {
|
|
4450
|
+
return item2.includes("repo state:");
|
|
4451
|
+
}
|
|
4452
|
+
function compactSections(sections) {
|
|
4453
|
+
return sections.map((s) => {
|
|
4454
|
+
if (ALWAYS_FULL.has(s.header)) return s;
|
|
4455
|
+
if (s.header === "Environment") {
|
|
4456
|
+
return { ...s, items: s.items.filter((it) => isRepoStateLine(it) || isProblem(it)) };
|
|
4457
|
+
}
|
|
4458
|
+
return { ...s, items: s.items.filter(isProblem) };
|
|
4459
|
+
});
|
|
4460
|
+
}
|
|
4461
|
+
|
|
4443
4462
|
// src/commands.doctor.ts
|
|
4444
4463
|
function gatherDoctorSections(opts) {
|
|
4445
4464
|
const host = section("Environment");
|
|
@@ -4510,7 +4529,26 @@ function cmdDoctor(opts = {}) {
|
|
|
4510
4529
|
} finally {
|
|
4511
4530
|
sp.stop();
|
|
4512
4531
|
}
|
|
4513
|
-
renderDoctor(report);
|
|
4532
|
+
renderDoctor(opts.verbose === true ? report : compactSections(report));
|
|
4533
|
+
}
|
|
4534
|
+
|
|
4535
|
+
// src/nomad.dispatch.doctor.ts
|
|
4536
|
+
function parseDoctorArgs(args) {
|
|
4537
|
+
if (args[0] === "--resume-cmd") {
|
|
4538
|
+
const id = args[1];
|
|
4539
|
+
if (args.length !== 2 || id.length === 0) return { kind: "error" };
|
|
4540
|
+
return { kind: "resume", id };
|
|
4541
|
+
}
|
|
4542
|
+
let checkShared = false;
|
|
4543
|
+
let checkSchema = false;
|
|
4544
|
+
let verbose = false;
|
|
4545
|
+
for (const arg of args) {
|
|
4546
|
+
if (arg === "--check-shared") checkShared = true;
|
|
4547
|
+
else if (arg === "--check-schema") checkSchema = true;
|
|
4548
|
+
else if (arg === "--verbose" || arg === "--all" || arg === "-v") verbose = true;
|
|
4549
|
+
else return { kind: "error" };
|
|
4550
|
+
}
|
|
4551
|
+
return { kind: "run", checkShared, checkSchema, verbose };
|
|
4514
4552
|
}
|
|
4515
4553
|
|
|
4516
4554
|
// src/commands.drop-session.ts
|
|
@@ -6805,7 +6843,7 @@ function parsePushArgs(argv) {
|
|
|
6805
6843
|
// package.json
|
|
6806
6844
|
var package_default = {
|
|
6807
6845
|
name: "claude-nomad",
|
|
6808
|
-
version: "0.
|
|
6846
|
+
version: "0.53.1",
|
|
6809
6847
|
type: "module",
|
|
6810
6848
|
description: "Sync Claude Code config (~/.claude/) across machines via a private Git repo, with path remapping and per-host settings overrides.",
|
|
6811
6849
|
keywords: [
|
|
@@ -6945,7 +6983,8 @@ var DEFAULT_HELP = [
|
|
|
6945
6983
|
),
|
|
6946
6984
|
"",
|
|
6947
6985
|
row(" doctor", "Read-only health check (symlinks, host file, path-map,"),
|
|
6948
|
-
cont("gitleaks, gitlinks)."),
|
|
6986
|
+
cont("gitleaks, gitlinks). Compact by default: shows problems plus a verdict."),
|
|
6987
|
+
row(" --verbose, --all, -v", "Show the full per-check tree, including passing checks."),
|
|
6949
6988
|
row(" --check-shared", "Preflight gitleaks scan of the session transcripts a"),
|
|
6950
6989
|
cont("`nomad push` would stage (a temp copy, never the live dir)."),
|
|
6951
6990
|
row(" --check-schema", "Flag settings.json keys absent from the live published"),
|
|
@@ -7205,27 +7244,24 @@ try {
|
|
|
7205
7244
|
});
|
|
7206
7245
|
break;
|
|
7207
7246
|
}
|
|
7208
|
-
case "doctor":
|
|
7209
|
-
|
|
7210
|
-
|
|
7211
|
-
} else if (process.argv[3] === "--check-shared" && process.argv.length === 4) {
|
|
7212
|
-
cmdDoctor({ checkShared: true });
|
|
7213
|
-
} else if (process.argv[3] === "--check-schema" && process.argv.length === 4) {
|
|
7214
|
-
cmdDoctor({ checkSchema: true });
|
|
7215
|
-
} else if (process.argv[3] === "--resume-cmd") {
|
|
7216
|
-
const id = process.argv[4];
|
|
7217
|
-
if (process.argv.length !== 5 || typeof id !== "string" || id.length === 0) {
|
|
7218
|
-
console.error("usage: nomad doctor --resume-cmd <session-id>");
|
|
7219
|
-
process.exit(1);
|
|
7220
|
-
}
|
|
7221
|
-
resumeCmd(id);
|
|
7222
|
-
} else {
|
|
7247
|
+
case "doctor": {
|
|
7248
|
+
const parsed = parseDoctorArgs(process.argv.slice(3));
|
|
7249
|
+
if (parsed.kind === "error") {
|
|
7223
7250
|
console.error(
|
|
7224
|
-
"usage: nomad doctor [--check-shared
|
|
7251
|
+
"usage: nomad doctor [--check-shared] [--check-schema] [--verbose|--all|-v] | --resume-cmd <session-id>"
|
|
7225
7252
|
);
|
|
7226
7253
|
process.exit(1);
|
|
7254
|
+
} else if (parsed.kind === "resume") {
|
|
7255
|
+
resumeCmd(parsed.id);
|
|
7256
|
+
} else {
|
|
7257
|
+
cmdDoctor({
|
|
7258
|
+
checkShared: parsed.checkShared,
|
|
7259
|
+
checkSchema: parsed.checkSchema,
|
|
7260
|
+
verbose: parsed.verbose
|
|
7261
|
+
});
|
|
7227
7262
|
}
|
|
7228
7263
|
break;
|
|
7264
|
+
}
|
|
7229
7265
|
case "drop-session": {
|
|
7230
7266
|
const id = process.argv[3];
|
|
7231
7267
|
if (process.argv.length !== 4 || typeof id !== "string" || !/^\w[\w-]{0,127}$/.test(id)) {
|
package/package.json
CHANGED