@neocompose/cli 0.43.0 → 0.44.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neocompose/cli",
3
- "version": "0.43.0",
3
+ "version": "0.44.0",
4
4
  "description": "Neo Compose native project-source CLI with bidirectional sync.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -39,6 +39,7 @@
39
39
  "ignore": "^7.0.6"
40
40
  },
41
41
  "devDependencies": {
42
+ "@neocompose/neoscript-language": "file:../packages/neoscript-language",
42
43
  "esbuild": "^0.28.1",
43
44
  "prettier": "^3.9.5",
44
45
  "uuid": "^14.0.1"
@@ -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.43.0 -->
12
+ <!-- reviewed-through-cli: 0.44.0 -->
13
13
 
14
14
  # Neo Compose CLI
15
15
 
@@ -83,7 +83,7 @@ wrappers.
83
83
  The marker near the top of `SKILL.md` must exactly match the package version:
84
84
 
85
85
  ```html
86
- <!-- reviewed-through-cli: 0.43.0 -->
86
+ <!-- reviewed-through-cli: 0.44.0 -->
87
87
  ```
88
88
 
89
89
  The quoted version above is checked too, so this instruction cannot go stale
@@ -86,6 +86,12 @@ Resolve source conflicts by editing the final intended source. Use
86
86
  `neo resolve --mine` or `neo resolve --theirs` only for a deliberate whole-side
87
87
  choice. Pull, inspect, dry-run, and retry; there is no force-CAS path.
88
88
 
89
+ One record is one conflict, however many files declare it. A member declared by
90
+ more than one class is marked in every declaring file, and `neo resolve`
91
+ settles those files together; it refuses a record whose declarations are only
92
+ partly resolved rather than settling the rest to the other side and leaving the
93
+ declarations disagreeing.
94
+
89
95
  Compiled initializer IR is server-owned and does not participate in authored
90
96
  three-way merge decisions. Either `neo resolve` side adopts the server side as
91
97
  the new base for every conflict it settles — `--theirs` then reads clean, and
@@ -185,6 +191,18 @@ row is invisible to `neo status` by construction, which is why `neo doctor` is
185
191
  the only place it surfaces.
186
192
  `neo doctor --json` carries a `repair` entry per finding, which is what a
187
193
  targeted repair is handed instead of scanning a project to rediscover them.
194
+ `neo doctor --fix` consumes those entries for the `unprojected-value-row`
195
+ findings: it lists each orphan root with the number of rows it owns, confirms,
196
+ then deletes them. Two guards make a stale audit fail the commit rather than
197
+ delete a row that has since gained an owner: every row carries the CAS base the
198
+ last pull recorded, and every transaction expects the version head the previous
199
+ one produced, starting from the head that pull left. Adopting an orphan writes
200
+ its new owner rather than the row itself, so only the head guard sees that, and
201
+ a workspace with no recorded head is refused rather than written blind. More
202
+ rows than one transaction budgets for go up in batches sized from the shared
203
+ cost model against the immediate commit path. `--yes` answers the confirmation
204
+ for scripted runs, and `--fix` has no `--json` form. No other finding kind has
205
+ an automatic repair.
188
206
 
189
207
  The Node CLI talks directly to authenticated Convex APIs through the
190
208
  session-gated CAS boundary. Tokens use the OS credential store when available