claude-nomad 0.65.0 → 0.67.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 +110 -0
- package/README.md +3 -2
- package/dist/nomad.mjs +1424 -1051
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,115 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.67.0](https://github.com/funkadelic/claude-nomad/compare/v0.66.0...v0.67.0) (2026-08-18)
|
|
4
|
+
|
|
5
|
+
### What's new
|
|
6
|
+
|
|
7
|
+
**On all supported platforms, i.e. \*nix, Mac, WSL2, and native Windows.**
|
|
8
|
+
|
|
9
|
+
- **Your backup cache no longer collects empty folders.** Every sync saves a copy of anything it is
|
|
10
|
+
about to overwrite into a dated folder under `~/.cache/claude-nomad/backup/`, and it creates that
|
|
11
|
+
folder before it touches your files so a full disk or a permissions problem stops the sync before
|
|
12
|
+
it has changed anything. A sync that turns out to have nothing to save now clears its own folder
|
|
13
|
+
instead of leaving an empty one behind, and so does one that stops early.
|
|
14
|
+
- **`nomad clean --backups` removes empty backup folders whatever their age.** They hold nothing to
|
|
15
|
+
recover, so neither the 14-day default nor `--keep <N>` keeps one alive, and they no longer use up
|
|
16
|
+
the slots `--keep <N>` reserves: ask for the five newest and you get the five newest that actually
|
|
17
|
+
hold something. Backups holding anything at all, a file or even a link, are left exactly as
|
|
18
|
+
before. `nomad clean --backups --dry-run` always prints its preview, since it changes nothing and
|
|
19
|
+
never waits on another command.
|
|
20
|
+
- **`nomad adopt` no longer runs at the same time as a pull, push, or sync.** It waits its turn the
|
|
21
|
+
way those commands already wait for each other, so a cleanup or a sync running in another terminal
|
|
22
|
+
cannot remove or overwrite a backup that adopt is still writing. If another one is already
|
|
23
|
+
running, adopt says so and does nothing rather than starting a move it cannot finish safely.
|
|
24
|
+
Previewing with `nomad adopt <name> --dry-run` never waits, since it only reads and prints.
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
### Added
|
|
28
|
+
|
|
29
|
+
* clean up the empty folders in your backup cache ([#525](https://github.com/funkadelic/claude-nomad/issues/525)) ([3f5ae92](https://github.com/funkadelic/claude-nomad/commit/3f5ae92e46173364f5e9c66e4963bcc716c813e6))
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
### Fixed
|
|
33
|
+
|
|
34
|
+
* **ci:** base the drift branch on main on a dispatch run ([#524](https://github.com/funkadelic/claude-nomad/issues/524)) ([3e94c1e](https://github.com/funkadelic/claude-nomad/commit/3e94c1e2df9296a539c71eac873058cb69225d78))
|
|
35
|
+
|
|
36
|
+
## [0.66.0](https://github.com/funkadelic/claude-nomad/compare/v0.65.0...v0.66.0) (2026-08-17)
|
|
37
|
+
|
|
38
|
+
### What's new
|
|
39
|
+
|
|
40
|
+
**On all supported platforms, i.e. \*nix, Mac, WSL2, and native Windows.**
|
|
41
|
+
|
|
42
|
+
- **A folder you share now carries everything inside it.** If you share a folder through
|
|
43
|
+
`sharedDirs`, its subfolders travel with it, including ones with everyday names like `sessions`,
|
|
44
|
+
`plans`, `tasks`, and `cache`. Those names used to be refused wherever they appeared, so a push
|
|
45
|
+
could fail, or `nomad adopt` could turn you away, over a folder holding nothing sensitive. Your
|
|
46
|
+
Claude login, your credential files, your per-host settings, and your local history still never
|
|
47
|
+
leave the machine, in either direction.
|
|
48
|
+
- **`nomad adopt` checks the whole folder before it moves anything.** It used to copy everything,
|
|
49
|
+
so a file that never syncs between machines could land in your repo and fail your next push, on
|
|
50
|
+
content you never chose to add. Adopt now stops before touching anything and names every path it
|
|
51
|
+
objected to and why: a name that collides with the never-sync list, which renaming clears, or a
|
|
52
|
+
name that looks like a credential file, where renaming only helps if the new name looks different
|
|
53
|
+
too. `--dry-run` gives exactly the same answer as the real run, so you can check a folder before
|
|
54
|
+
committing to it.
|
|
55
|
+
- **An interrupted `nomad adopt` now explains itself instead of writing a crash report.** If
|
|
56
|
+
another program has the directory open, or its permissions block the move partway through, the
|
|
57
|
+
command says what happened, where your content ended up, and what to run next. Your content is
|
|
58
|
+
safe in every one of these cases: either it was never touched on this machine, or it is already
|
|
59
|
+
in the repo.
|
|
60
|
+
|
|
61
|
+
**On native Windows (PowerShell or cmd).** Note: WSL2 behaves like Linux and none of these apply to
|
|
62
|
+
it.
|
|
63
|
+
|
|
64
|
+
- **A push no longer publishes a folder you never asked to share.** Windows keeps your shared
|
|
65
|
+
config as real file copies rather than symlinks, and a push used to pick up any folder sitting in
|
|
66
|
+
your Claude directory and publish it to your other machines. Sharing is now the same deliberate
|
|
67
|
+
step it has always been on macOS and Linux: run `nomad adopt <name>` once, then push. Your
|
|
68
|
+
existing shared folders keep syncing exactly as before.
|
|
69
|
+
- **`nomad doctor --verbose` names a folder your repo does not carry yet.** It lists the local
|
|
70
|
+
copies that are still private to this machine, and the command that shares one.
|
|
71
|
+
- **One unreadable file no longer ends your pull.** A single config file that another program has
|
|
72
|
+
open, or that your account cannot read, used to stop the whole pull with a crash report. Nomad
|
|
73
|
+
now names the file and the reason, then carries on: your settings, your skills, and your session
|
|
74
|
+
history all still sync, and the command finishes normally. The warning also says whether the file
|
|
75
|
+
is still there or has been removed, and points at the backup copy when there is one.
|
|
76
|
+
- **`nomad adopt` recovers cleanly when it cannot restore your local copy.** Adopt finishes by
|
|
77
|
+
copying the folder back out of the sync repo so this machine keeps a usable copy. If that copy
|
|
78
|
+
was blocked, the command used to end in a crash report, with the folder gone from your Claude
|
|
79
|
+
directory and nothing staged for publishing. It now stops with a plain message naming the folder
|
|
80
|
+
and the reason, stages the adopted content either way, and tells you to run `nomad pull` before
|
|
81
|
+
your next push and why that order matters. A half written folder left behind by the interrupted
|
|
82
|
+
copy is removed, so a later push cannot replace your adopted folder with the partial one.
|
|
83
|
+
- **A refused `nomad pull --force-remote` now tells you what actually clears it.** The old advice
|
|
84
|
+
did not work, and would land you back on the same refusal. The message now gives the steps that
|
|
85
|
+
finish the job and names the one that clears the check, and it says that the stuck rebase has
|
|
86
|
+
already been undone by that point, so retrying is now just an ordinary pull. It no longer calls
|
|
87
|
+
every listed file at risk, since the list can include files where the shared repo is simply ahead
|
|
88
|
+
of yours. The quickstart says the same thing and links to the matching recovery steps in the FAQ.
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
### Added
|
|
92
|
+
|
|
93
|
+
* carry your own subfolders inside a shared directory ([#522](https://github.com/funkadelic/claude-nomad/issues/522)) ([791eef9](https://github.com/funkadelic/claude-nomad/commit/791eef9685672eb16113f79b7160c3988fae8ebc))
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
### Fixed
|
|
97
|
+
|
|
98
|
+
* **adopt:** say what happened when a move cannot finish ([#516](https://github.com/funkadelic/claude-nomad/issues/516)) ([d5e8add](https://github.com/funkadelic/claude-nomad/commit/d5e8addac0ba769f340b776ffeb5e96a95877eea))
|
|
99
|
+
* **adopt:** stop a native Windows adopt from ending in a crash report ([#514](https://github.com/funkadelic/claude-nomad/issues/514)) ([0e9bee9](https://github.com/funkadelic/claude-nomad/commit/0e9bee9cc6d32ce71db2f290897de9a256b3a10c))
|
|
100
|
+
* **adopt:** stop adopt from copying host-only files into your synced config ([#517](https://github.com/funkadelic/claude-nomad/issues/517)) ([9f92706](https://github.com/funkadelic/claude-nomad/commit/9f92706fa6ce06635b8c3fef0e76d34484a40696))
|
|
101
|
+
* **ci:** keep the drift PR updatable on a second push ([#523](https://github.com/funkadelic/claude-nomad/issues/523)) ([ff6cdc6](https://github.com/funkadelic/claude-nomad/commit/ff6cdc631002bdbabb5948b7d5c41634adc5a771))
|
|
102
|
+
* **pull:** keep a native Windows pull going when one shared file cannot be read ([#512](https://github.com/funkadelic/claude-nomad/issues/512)) ([32ea631](https://github.com/funkadelic/claude-nomad/commit/32ea63195f260556ebd246ca03d63f7ee1758753))
|
|
103
|
+
* **pull:** say what actually clears a refused recovery ([#515](https://github.com/funkadelic/claude-nomad/issues/515)) ([a97fed2](https://github.com/funkadelic/claude-nomad/commit/a97fed27a0c0439631594fe6c7213e6e6df45062))
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
### Dependencies
|
|
107
|
+
|
|
108
|
+
* bump astro from 7.2.0 to 7.2.2 in /docs-site in the prod-dependencies group across 1 directory ([#521](https://github.com/funkadelic/claude-nomad/issues/521)) ([4e5e4ca](https://github.com/funkadelic/claude-nomad/commit/4e5e4ca0d0a8d551f3fa743818bb3a196325254d))
|
|
109
|
+
* bump starlight-links-validator from 0.25.2 to 0.25.3 in /docs-site in the dev-dependencies group across 1 directory ([#520](https://github.com/funkadelic/claude-nomad/issues/520)) ([77d1a24](https://github.com/funkadelic/claude-nomad/commit/77d1a24303a14c8d8556d9d69ece4990572797f4))
|
|
110
|
+
* bump the codeql-action group with 2 updates ([#519](https://github.com/funkadelic/claude-nomad/issues/519)) ([9e45462](https://github.com/funkadelic/claude-nomad/commit/9e45462797059f52efbfbaec8d2a65d52455b3a9))
|
|
111
|
+
* bump the dev-dependencies group across 1 directory with 5 updates ([#518](https://github.com/funkadelic/claude-nomad/issues/518)) ([2feb689](https://github.com/funkadelic/claude-nomad/commit/2feb6893c61e815940fd182995b01c3be93be728))
|
|
112
|
+
|
|
3
113
|
## [0.65.0](https://github.com/funkadelic/claude-nomad/compare/v0.64.1...v0.65.0) (2026-08-13)
|
|
4
114
|
|
|
5
115
|
### What's new
|
package/README.md
CHANGED
|
@@ -146,8 +146,9 @@ the same either way; the difference is under the hood.
|
|
|
146
146
|
Native Windows cannot use symlinks, so claude-nomad keeps a real copy of your shared config in
|
|
147
147
|
`~/.claude/` instead of a symlink. `nomad pull` and `nomad sync` both mirror your local copies into
|
|
148
148
|
the repo before they fetch, so an edit you have not published yet is captured rather than
|
|
149
|
-
overwritten. If a file cannot be read,
|
|
150
|
-
|
|
149
|
+
overwritten. If a file cannot be read, because another program is holding it open or its permissions
|
|
150
|
+
changed, the pull warns naming the file and the reason, skips that one file, and finishes everything
|
|
151
|
+
else normally. Close whatever is holding it, or fix its permissions, and run again to pick it up.
|
|
151
152
|
|
|
152
153
|
```powershell
|
|
153
154
|
# 1. Install prerequisites and the CLI. (Using Scoop instead? scoop install gh gitleaks.)
|