@neocompose/cli 0.58.3 → 0.59.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
|
@@ -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.
|
|
12
|
+
<!-- reviewed-through-cli: 0.59.0 -->
|
|
13
13
|
|
|
14
14
|
# Neo Compose CLI
|
|
15
15
|
|
|
@@ -38,8 +38,8 @@ Those are not part of format 4.
|
|
|
38
38
|
or push merely to obtain compiled initializer bodies.
|
|
39
39
|
5. Run `neo push --dry-run` before every real push. It performs the full local
|
|
40
40
|
source emission, ID-assignment, transport-shape, hash, and repeat-verification path,
|
|
41
|
-
then
|
|
42
|
-
materialization and whole-graph validation — against the pulled document,
|
|
41
|
+
then runs the preparation a real push ships — compilation, schema-commit
|
|
42
|
+
materialization, and whole-graph validation — against the pulled document,
|
|
43
43
|
without prompting, uploading, committing, or rewriting the checkout. Pull
|
|
44
44
|
once with the installed CLI so the workspace carries compatible
|
|
45
45
|
derived-edge extractor metadata. Pending getters and functions compile before
|
|
@@ -258,9 +258,10 @@ a pull conflict by itself; if an older CLI retained such a metadata-only
|
|
|
258
258
|
conflict without writing source markers, either side settles it the same way
|
|
259
259
|
while preserving any real local source edit.
|
|
260
260
|
|
|
261
|
-
`neo push`
|
|
262
|
-
|
|
263
|
-
|
|
261
|
+
`neo push` prepares the commit locally, recompiling changed NeoScript bodies
|
|
262
|
+
and schema-affected callers, and the server commits the prepared changes under
|
|
263
|
+
CAS. If another commit lands after your pull, the push fails as
|
|
264
|
+
`non-fast-forward`: pull, then push again. Use
|
|
264
265
|
`neo push --dry-run` for the complete source-to-record round-trip check; a
|
|
265
266
|
normal push deliberately does not upload or re-lower the whole source tree. On
|
|
266
267
|
`base-hash-conflict`, pull and resolve. On `version-bump-required`, inspect the
|
|
@@ -72,14 +72,18 @@ LSP state. Preserve diagnostics, completion, hover, signatures, definition,
|
|
|
72
72
|
references, rename, symbols, semantic tokens, code actions, and formatting
|
|
73
73
|
parity for `.neo` and `.neoflow`.
|
|
74
74
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
75
|
+
The CLI prepares every push with the server's own preparation code: it
|
|
76
|
+
compiles changed NeoScript bodies and callers affected by schema-contract
|
|
77
|
+
changes, materializes values, and validates the whole graph against the pulled
|
|
78
|
+
head. The server accepts that preparation only from a CLI on its NeoScript
|
|
79
|
+
compiler revision and re-checks the head, authorization, row shapes, and CAS
|
|
80
|
+
bases. A modified CLI can therefore write bad rows to a project its user may
|
|
81
|
+
already write; keep preparation in shared `src/database` code rather than
|
|
82
|
+
forking it in the CLI. The server still verifies a push's uploaded
|
|
83
|
+
project-file bytes, and web editor commits still prepare on the server.
|
|
84
|
+
Unrelated source files are not uploaded or recompiled on every push. A CLI lowering mismatch on a normal push is exposed by the next
|
|
85
|
+
canonical pull; `neo push --dry-run` remains the complete source-to-record
|
|
86
|
+
rehearsal.
|
|
83
87
|
|
|
84
88
|
A committed push result is journaled in `.neo/state.json` before source
|
|
85
89
|
projection. If projection fails, `neo pull` consumes that result and preserves
|
|
@@ -97,7 +101,7 @@ wrappers.
|
|
|
97
101
|
The marker near the top of `SKILL.md` must exactly match the package version:
|
|
98
102
|
|
|
99
103
|
```html
|
|
100
|
-
<!-- reviewed-through-cli: 0.
|
|
104
|
+
<!-- reviewed-through-cli: 0.59.0 -->
|
|
101
105
|
```
|
|
102
106
|
|
|
103
107
|
The quoted version above is checked too, so this instruction cannot go stale
|
|
@@ -73,11 +73,10 @@ restarts. Upgrade the CLI together with the P83 server read protocol.
|
|
|
73
73
|
|
|
74
74
|
Treat `neo push --dry-run` as a full local commit rehearsal: source emission,
|
|
75
75
|
in-memory pending-ID assignment, transport shapes, hashes, and repeat
|
|
76
|
-
verification all run. It also runs the
|
|
77
|
-
schema-commit materialization, seeded structural rows, and
|
|
78
|
-
validation — so a rejection
|
|
79
|
-
|
|
80
|
-
upload, commit, or rewrite source.
|
|
76
|
+
verification all run. It also runs the preparation a real push ships —
|
|
77
|
+
compilation, schema-commit materialization, seeded structural rows, and
|
|
78
|
+
whole-graph validation — so a rejection reports before anything is sent. It
|
|
79
|
+
does not prompt, upload, commit, or rewrite source.
|
|
81
80
|
|
|
82
81
|
Dry-run also compares the CLI's derived-edge extractor with the server version
|
|
83
82
|
saved by the last pull. Run `neo pull` after upgrading the CLI or when an older
|
|
@@ -90,8 +89,10 @@ dry run or a real push only when diagnosing stale derived IR: it retains the
|
|
|
90
89
|
exhaustive project-wide body sweep and is intentionally slower.
|
|
91
90
|
|
|
92
91
|
Changed member bodies and migration bodies share one schema projection and its
|
|
93
|
-
indexes throughout push preparation
|
|
94
|
-
|
|
92
|
+
indexes throughout push preparation, so a batch of scripted changes does not
|
|
93
|
+
rebuild the whole schema for every body. Each changed body compiles once for
|
|
94
|
+
local evaluation and once more, against minted ids, in the preparation the push
|
|
95
|
+
ships.
|
|
95
96
|
|
|
96
97
|
Interactive status, diff, pull, and test commands report workspace loading and
|
|
97
98
|
preparation phases. Spinners continue animating during synchronous compilation;
|
|
@@ -105,17 +106,14 @@ after confirmation; it does not run a second local preparation pass. JSON and
|
|
|
105
106
|
non-TTY output remain structured and do not emit that terminal-only spinner.
|
|
106
107
|
|
|
107
108
|
A clean dry-run does not promise a clean push. The workspace holds its
|
|
108
|
-
last-pulled state, so
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
server does not recompile every unchanged source file merely to prove that an
|
|
113
|
-
authenticated developer used the CLI. Pull again before pushing if time has
|
|
114
|
-
passed.
|
|
109
|
+
last-pulled state, so the server still grades the live head: the project-head
|
|
110
|
+
check, per-change CAS bases, authorization, row shapes, project-file staging,
|
|
111
|
+
admission, chunk planning, and finalization. A push whose head moved fails as
|
|
112
|
+
`non-fast-forward`. Pull again before pushing if time has passed.
|
|
115
113
|
|
|
116
114
|
Durable preparation is selected from the semantic record workload, not the
|
|
117
115
|
size of the project-wide source identity. Its storage artifact carries one
|
|
118
|
-
copy of the
|
|
116
|
+
copy of the prepared transaction, and resumable staging reads one plan per
|
|
119
117
|
bounded batch while preserving an atomic write boundary per physical chunk.
|
|
120
118
|
The complete source stays local. Normal push hashes the exact authored source
|
|
121
119
|
inputs already read during preparation, including file paths and formatting,
|