claude-nomad 0.59.0 → 0.61.0

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/.gitleaks.toml CHANGED
@@ -41,7 +41,11 @@ condition = "AND"
41
41
  # false-positive handler is a narrow allowlist scoped to synced session
42
42
  # paths. `condition = "AND"` requires BOTH a known literal AND a
43
43
  # `shared/projects/<logical>/.../*.jsonl` path; a real PAT in the same
44
- # file (different 36-char body) still fires.
44
+ # file (different 36-char body) still fires. Also scoped to
45
+ # `shared/projects/<logical>/memory/*.md`: these exact literals legitimately
46
+ # appear in curated memory prose that discusses the fixture pattern itself
47
+ # (e.g. a memory note documenting this allowlist), and the exact-literal match
48
+ # carries no false-negative risk there either.
45
49
  [[allowlists]]
46
50
  description = "claude-nomad: documented test-fixture github-pat literals + scrub placeholders in synced session transcripts"
47
51
  regexes = [
@@ -52,6 +56,7 @@ regexes = [
52
56
  ]
53
57
  paths = [
54
58
  '''^shared/projects/[^/]+/.*\.jsonl$''',
59
+ '''^shared/projects/[^/]+/memory/[^/]+\.md$''',
55
60
  ]
56
61
  condition = "AND"
57
62
 
@@ -64,7 +69,10 @@ condition = "AND"
64
69
  # regexTarget = "line") keeps this from whitelisting a bare token: a real
65
70
  # secret is never preceded by an SSH key-type label and the SHA256: scheme
66
71
  # prefix. `condition = "AND"` plus the session-jsonl path scope double-locks
67
- # it to synced transcripts.
72
+ # it to synced transcripts. Also scoped to `shared/projects/<logical>/memory/*.md`:
73
+ # this is plausible content in a curated memory note documenting a commit
74
+ # signature-verification procedure, and the structural `with <keytype> key
75
+ # SHA256:` anchor keeps the false-negative risk low there too.
68
76
  [[allowlists]]
69
77
  description = "claude-nomad: SSH public-key fingerprints (with <keytype> key SHA256:<b64>) in git signature output in synced session transcripts"
70
78
  regexTarget = "line"
@@ -73,6 +81,7 @@ regexes = [
73
81
  ]
74
82
  paths = [
75
83
  '''^shared/projects/[^/]+/.*\.jsonl$''',
84
+ '''^shared/projects/[^/]+/memory/[^/]+\.md$''',
76
85
  ]
77
86
  condition = "AND"
78
87
 
package/CHANGELOG.md CHANGED
@@ -1,5 +1,51 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.61.0](https://github.com/funkadelic/claude-nomad/compare/v0.60.0...v0.61.0) (2026-07-17)
4
+
5
+
6
+ ### Added
7
+
8
+ * **push:** handle memory/*.md secrets at parity with session transcripts ([#427](https://github.com/funkadelic/claude-nomad/issues/427)) ([d1e544c](https://github.com/funkadelic/claude-nomad/commit/d1e544c4f402dae80e319c62ed1fae903fef6e4b))
9
+
10
+
11
+ ### Changed
12
+
13
+ * **publish:** checkout in smoke-test so setup-node can read .nvmrc ([#424](https://github.com/funkadelic/claude-nomad/issues/424)) ([3d8fd2c](https://github.com/funkadelic/claude-nomad/commit/3d8fd2c66ba7947a9326c46f997c336793786efc))
14
+
15
+
16
+ ### Documentation
17
+
18
+ * correct release-bump, Stryker HOME, and offboarding details ([#429](https://github.com/funkadelic/claude-nomad/issues/429)) ([bb5f0fe](https://github.com/funkadelic/claude-nomad/commit/bb5f0fede4cafb848609134bbd1581ac62d42f2c))
19
+ * drop redundant overview file tree in how-it-works ([#428](https://github.com/funkadelic/claude-nomad/issues/428)) ([dd795c8](https://github.com/funkadelic/claude-nomad/commit/dd795c831b876be3ed6bfe1b1313c8ce8f108715))
20
+ * **site:** show claude-nomad version badge in the header ([#430](https://github.com/funkadelic/claude-nomad/issues/430)) ([18d5e86](https://github.com/funkadelic/claude-nomad/commit/18d5e864cd5579d79a79fdd8060352afedcc32fe))
21
+
22
+
23
+ ### Testing
24
+
25
+ * **integration:** cover recovery, sync, dry-run, manifest, and eject flows ([#426](https://github.com/funkadelic/claude-nomad/issues/426)) ([c9c5223](https://github.com/funkadelic/claude-nomad/commit/c9c5223117426439ad57e2442137891c379af1f7))
26
+
27
+ ## [0.60.0](https://github.com/funkadelic/claude-nomad/compare/v0.59.0...v0.60.0) (2026-07-15)
28
+
29
+
30
+ ### Added
31
+
32
+ * **links:** preserve live gsd hook entries across regenerateSettings ([#421](https://github.com/funkadelic/claude-nomad/issues/421)) ([10a18ca](https://github.com/funkadelic/claude-nomad/commit/10a18ca7ed6c1851cdc43e46ad616527d41a1f92))
33
+ * **sync:** compact output with merged tree and no-op collapse ([#415](https://github.com/funkadelic/claude-nomad/issues/415)) ([9bb9cdd](https://github.com/funkadelic/claude-nomad/commit/9bb9cdd7e901ea463d5c1fb5b66ffc39b2864f8a))
34
+ * **sync:** compact summary-only output by default, add --verbose ([#420](https://github.com/funkadelic/claude-nomad/issues/420)) ([b5b95b3](https://github.com/funkadelic/claude-nomad/commit/b5b95b372634a0b372023b399e7f16bb0063ff74))
35
+
36
+
37
+ ### Changed
38
+
39
+ * **lint:** enable sonarjs recommended ruleset with triaged exclusions ([#422](https://github.com/funkadelic/claude-nomad/issues/422)) ([f92fce8](https://github.com/funkadelic/claude-nomad/commit/f92fce8533e06814d5e3f58c1f120adf3e00ded7))
40
+ * **tests:** make Defender exclusion step non-fatal ([#419](https://github.com/funkadelic/claude-nomad/issues/419)) ([413a906](https://github.com/funkadelic/claude-nomad/commit/413a9065ef152dfaedd76b325de749070e2165ab))
41
+
42
+
43
+ ### Testing
44
+
45
+ * **integration:** cover extras deny-set, host overrides, and skills sync in round-trip ([#418](https://github.com/funkadelic/claude-nomad/issues/418)) ([70074b5](https://github.com/funkadelic/claude-nomad/commit/70074b5c5a8831a93726576e346e7e89ac511ffa))
46
+ * **pull:** fix flaky incomingChanges tests via shared mock instance ([#417](https://github.com/funkadelic/claude-nomad/issues/417)) ([6589887](https://github.com/funkadelic/claude-nomad/commit/6589887d0ac1c77f7696b89a1a518e469e913dae))
47
+ * **vitest:** raise subprocess project maxWorkers to 2 ([#423](https://github.com/funkadelic/claude-nomad/issues/423)) ([8fa28b5](https://github.com/funkadelic/claude-nomad/commit/8fa28b5a2ef4cae4816f5b6ad23bf90189a611d1))
48
+
3
49
  ## [0.59.0](https://github.com/funkadelic/claude-nomad/compare/v0.58.1...v0.59.0) (2026-07-14)
4
50
 
5
51
 
package/README.md CHANGED
@@ -45,6 +45,9 @@ survives different file paths and your secrets never ride along.
45
45
  entirely and can leak a secret that `nomad push` would have caught. Steady-state pushes scan only
46
46
  the transcripts that changed since the last successful push (incremental); a cold start, a
47
47
  gitleaks version change, a config file change, or `--full-scan` forces a full rescan.
48
+ `nomad doctor --check-shared` also runs a read-only advisory over memory notes already synced to
49
+ the repo, flagging (but never blocking on) a secret that already made it through in a past push;
50
+ the fix is the same interactive Redact step `nomad push` offers.
48
51
  - **Preview before you trust it.** `nomad diff` shows offline what a pull would change (gsd-owned
49
52
  hook churn is filtered the same as on pull, so the preview matches what a real pull writes), and
50
53
  `--dry-run` on pull and push prints the plan without writing anything.
@@ -174,12 +177,13 @@ $ nomad sync # pull config, then publish local changes, in one step
174
177
 
175
178
  `nomad sync` is the command to reach for day to day: it always pulls first (so changes from your
176
179
  other machines land before anything is pushed, and work that exists only on this machine is kept,
177
- not deleted) and then pushes, under one lock, so there is no ordering to remember. `nomad pull` and
178
- `nomad push` are still available as lower-level commands for cases `sync` does not cover: recovering
179
- a wedged repo with `nomad pull --force-remote`, or resolving a detected secret without the
180
- interactive menu via `nomad push --redact-all` / `--allow` / `--allow-all` (see
181
- [Changing settings](#changing-settings) and
182
- [Recovery flows](https://funkadelic.github.io/claude-nomad/recovery/)). The
180
+ not deleted) and then pushes, under one lock, so there is no ordering to remember. Output is compact
181
+ by default: a run prints only a short Sync summary, not the full status tree; pass
182
+ `nomad sync --verbose` (or `--all` / `-v`) to see the full tree. `nomad pull` and `nomad push` are
183
+ still available as lower-level commands for cases `sync` does not cover: recovering a wedged repo
184
+ with `nomad pull --force-remote`, or resolving a detected secret without the interactive menu via
185
+ `nomad push --redact-all` / `--allow` / `--allow-all` (see [Changing settings](#changing-settings)
186
+ and [Recovery flows](https://funkadelic.github.io/claude-nomad/recovery/)). The
183
187
  [FAQ](https://funkadelic.github.io/claude-nomad/faq/) covers what `sync` does under the hood and the
184
188
  push/pull order it enforces.
185
189