claude-nomad 0.20.0 → 0.21.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/CHANGELOG.md +12 -0
- package/README.md +8 -8
- package/package.json +1 -1
- package/shared/.gitignore +1 -0
- package/src/config.ts +1 -0
- package/src/utils.ts +0 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.21.0](https://github.com/funkadelic/claude-nomad/compare/v0.20.0...v0.21.0) (2026-05-22)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Added
|
|
7
|
+
|
|
8
|
+
* **config:** add settings.local.json to NEVER_SYNC ([#100](https://github.com/funkadelic/claude-nomad/issues/100)) ([26c7dc1](https://github.com/funkadelic/claude-nomad/commit/26c7dc1ef15206056349d117395cd22a4ee5bd84))
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Changed
|
|
12
|
+
|
|
13
|
+
* **utils:** drop unused writeJson helper ([#101](https://github.com/funkadelic/claude-nomad/issues/101)) ([168a9d7](https://github.com/funkadelic/claude-nomad/commit/168a9d7a582e3cd8ff97e26ac32c9ee4adad1a0d))
|
|
14
|
+
|
|
3
15
|
## [0.20.0](https://github.com/funkadelic/claude-nomad/compare/v0.19.0...v0.20.0) (2026-05-22)
|
|
4
16
|
|
|
5
17
|
|
package/README.md
CHANGED
|
@@ -113,7 +113,7 @@ By default the CLI operates on `~/claude-nomad/` (see `REPO_HOME` in `src/config
|
|
|
113
113
|
│ ├── commands/
|
|
114
114
|
│ ├── rules/
|
|
115
115
|
│ ├── my-statusline.cjs # any script you want symlinked into ~/.claude/
|
|
116
|
-
│ ├── .gitignore # defense-in-depth: blocks .claude.json, *.token, *.key, .env
|
|
116
|
+
│ ├── .gitignore # defense-in-depth: blocks .claude.json, settings.local.json, *.token, *.key, .env
|
|
117
117
|
│ └── projects/ # session transcripts under logical names
|
|
118
118
|
├── hosts/
|
|
119
119
|
│ ├── <your-mac>.json # patches merged over settings.base.json
|
|
@@ -125,13 +125,13 @@ By default the CLI operates on `~/claude-nomad/` (see `REPO_HOME` in `src/config
|
|
|
125
125
|
|
|
126
126
|
## What gets synced vs. not
|
|
127
127
|
|
|
128
|
-
| Category | Items
|
|
129
|
-
| ------------------- |
|
|
130
|
-
| **Synced** | `CLAUDE.md`, `agents/`, `skills/`, `commands/`, `rules/`, `my-statusline.cjs`
|
|
131
|
-
| **Generated** | `settings.json`
|
|
132
|
-
| **Remapped** | `projects/` session transcripts
|
|
133
|
-
| **Never synced** | `~/.claude.json` (OAuth, MCP state), `history.jsonl`, `stats-cache.json`, `todos/`, `shell-snapshots/`, `debug/`, `file-history/`, `plans/`, `session-env/`, `statsig/`, `telemetry/`, `ide/` | Per-host ephemeral state. |
|
|
134
|
-
| **Auto-rehydrated** | `~/.claude/plugins/cache/<plugin>/...`
|
|
128
|
+
| Category | Items | Behavior |
|
|
129
|
+
| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
130
|
+
| **Synced** | `CLAUDE.md`, `agents/`, `skills/`, `commands/`, `rules/`, `my-statusline.cjs` | Symlinked into `~/.claude/` from `shared/` (see `SHARED_LINKS` in `src/config.ts`). |
|
|
131
|
+
| **Generated** | `settings.json` | Deep-merge of `settings.base.json` with `hosts/<hostname>.json`. Rewritten on every pull. |
|
|
132
|
+
| **Remapped** | `projects/` session transcripts | Copied with path translation per `path-map.json`. |
|
|
133
|
+
| **Never synced** | `~/.claude.json` (OAuth, MCP state), `history.jsonl`, `settings.local.json` (per-host overrides), `stats-cache.json`, `todos/`, `shell-snapshots/`, `debug/`, `file-history/`, `plans/`, `session-env/`, `statsig/`, `telemetry/`, `ide/` | Per-host ephemeral state. |
|
|
134
|
+
| **Auto-rehydrated** | `~/.claude/plugins/cache/<plugin>/...` | Plugin payloads not synced. Claude Code re-downloads them on first use from the `enabledPlugins` list in the regenerated `settings.json`; no manual `claude plugins install ...` per host. |
|
|
135
135
|
|
|
136
136
|
> [!NOTE]
|
|
137
137
|
> Plugins that depend on host-specific state (external binaries, API keys in env, MCP server URLs) still need that side set up on each host. Put them in `hosts/<host>.json` or the plugin's own per-host config.
|
package/package.json
CHANGED
package/shared/.gitignore
CHANGED
package/src/config.ts
CHANGED
package/src/utils.ts
CHANGED
|
@@ -117,11 +117,6 @@ export function readJson<T>(path: string): T {
|
|
|
117
117
|
return data as T;
|
|
118
118
|
}
|
|
119
119
|
|
|
120
|
-
/** Write `data` as pretty-printed JSON (2-space indent, trailing newline). Non-atomic. */
|
|
121
|
-
export function writeJson(path: string, data: unknown): void {
|
|
122
|
-
writeFileSync(path, JSON.stringify(data, null, 2) + '\n');
|
|
123
|
-
}
|
|
124
|
-
|
|
125
120
|
/**
|
|
126
121
|
* Atomic write: temp + fsync + rename + parent-dir fsync. Survives
|
|
127
122
|
* interrupted pulls. Preserves the destination file's existing mode when it
|