@coderook/cli 0.42.5 → 0.42.6

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.
@@ -2,7 +2,7 @@
2
2
  "name": "coderook",
3
3
  "displayName": "CodeRook",
4
4
  "description": "Save, browse and restore whole-snapshot versions of a project on CodeRook, with cbx or plain git, from Claude Code.",
5
- "version": "0.42.5",
5
+ "version": "0.42.6",
6
6
  "author": {
7
7
  "name": "ACCA Gaming Productions",
8
8
  "url": "https://coderook.com"
@@ -1541,12 +1541,26 @@ async function commandGet(parsed) {
1541
1541
  would bury the only copy.
1542
1542
  */
1543
1543
  if (resuming) {
1544
+ /*
1545
+ Only a file this fetch rewrites can be buried by finishing it: one
1546
+ whose incoming copy differs from what was placed here. An edit to a
1547
+ file the version left alone is kept, exactly as an ordinary fetch
1548
+ keeps it, so it is no reason to stop. It used to be: completing in
1549
+ "replace" mode rewrote every file, so any edit at all, anywhere,
1550
+ refused the resume (2026-11-06, two page edits blocked a catch-up).
1551
+ */
1544
1552
  const notYetArrived = await (0, worktree_js_1.changedFiles)(folder, rules, incoming);
1545
1553
  const changedInTheGap = notYetArrived.filter((file) => !file.deleted &&
1546
1554
  incoming.has(file.path) &&
1555
+ incoming.get(file.path) !== link.local[file.path] &&
1547
1556
  edited.some((one) => one.path === file.path));
1548
1557
  if (!changedInTheGap.length) {
1549
- return fetchInto(link.repositoryId, folder, link.slug, link.local ?? null, "replace", await (0, track_commands_js_1.trackFor)(folder));
1558
+ /*
1559
+ Reconciling finishes the job: every file the version changed is
1560
+ placed (the half the interrupted run already placed are placed
1561
+ again, harmlessly), and what it left alone stays as it is.
1562
+ */
1563
+ return fetchInto(link.repositoryId, folder, link.slug, link.local ?? null, "reconcile", await (0, track_commands_js_1.trackFor)(folder));
1550
1564
  }
1551
1565
  console.error(red(`${changedInTheGap.length} file${changedInTheGap.length === 1 ? "" : "s"} ` +
1552
1566
  `changed while the interrupted fetch was stopped:`));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coderook/cli",
3
- "version": "0.42.5",
3
+ "version": "0.42.6",
4
4
  "description": "The command line for CodeRook (coderook.com): version control and project hosting for projects of any size. Every save is a compressed snapshot, private or public, never used to train AI.",
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://coderook.com",