@neocompose/cli 0.52.1 → 0.52.3

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neocompose/cli",
3
- "version": "0.52.1",
3
+ "version": "0.52.3",
4
4
  "description": "Neo Compose native project-source CLI with bidirectional sync.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -9,7 +9,7 @@ description: >-
9
9
  `@neocompose/cli` or `node cli/bin/neo.mjs` in the neo-compose repository.
10
10
  ---
11
11
 
12
- <!-- reviewed-through-cli: 0.52.1 -->
12
+ <!-- reviewed-through-cli: 0.52.3 -->
13
13
 
14
14
  # Neo Compose CLI
15
15
 
@@ -260,6 +260,8 @@ schema-affected callers and commits only that diff under CAS. Use
260
260
  normal push deliberately does not upload or re-lower the whole source tree. On
261
261
  `base-hash-conflict`, pull and resolve. On `version-bump-required`, inspect the
262
262
  classification and pass `neo push --accept-bump` only when intended.
263
+ If a push committed but its local rewrite failed, run `neo pull` to resume the
264
+ saved result. Keep `.neo/state.json`; status and push require that recovery first.
263
265
 
264
266
  ## Finish with evidence
265
267
 
@@ -81,6 +81,13 @@ are not uploaded or recompiled on every push. The explicit trade-off is that a
81
81
  CLI lowering mismatch on a normal push is exposed by the next canonical pull;
82
82
  `neo push --dry-run` remains the complete source-to-record rehearsal.
83
83
 
84
+ A committed push result is journaled in `.neo/state.json` before source
85
+ projection. If projection fails, `neo pull` consumes that result and preserves
86
+ later local edits before fetching newer remote changes. Do not advance the merge
87
+ base without preserving recovery, or retry the write as a new push. Candidate
88
+ value projection shares the push envelope completion; persisted physical rows
89
+ and content hashes remain the merge base.
90
+
84
91
  ## Package and release maintenance
85
92
 
86
93
  Keep the npm artifact native JavaScript. Do not publish `.csproj`, `.cs`,
@@ -90,7 +97,7 @@ wrappers.
90
97
  The marker near the top of `SKILL.md` must exactly match the package version:
91
98
 
92
99
  ```html
93
- <!-- reviewed-through-cli: 0.52.1 -->
100
+ <!-- reviewed-through-cli: 0.52.3 -->
94
101
  ```
95
102
 
96
103
  The quoted version above is checked too, so this instruction cannot go stale
@@ -47,6 +47,14 @@ managed binaries untouched. It handles both changed-record pulls and full
47
47
  snapshot refreshes. Added or deleted records, authored changes, and unresolved
48
48
  conflicts still require the normal merge path.
49
49
 
50
+ If a push commits but source rewriting fails, `neo pull` resumes its saved
51
+ result before checking the remote head. The recovery journal in `.neo/state.json`
52
+ retains committed identities and any prepared file replacements. Interrupted
53
+ file writes resume without parsing a partially rewritten checkout. If a file
54
+ was edited again after that plan was saved, recovery stops and names the file;
55
+ preserve that edit separately before restoring the expected content and retrying.
56
+ `--reset` and `--force` explicitly discard local edits and can bypass recovery.
57
+
50
58
  Keep `.neo/state.json`: it holds the merge baseline and source placements.
51
59
  Normal pull refuses existing production sources without that baseline. To
52
60
  deliberately replace a checkout whose state is gone, back it up first and use