@neocompose/cli 0.37.0 → 0.38.1

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.37.0",
3
+ "version": "0.38.1",
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.37.0 -->
12
+ <!-- reviewed-through-cli: 0.38.1 -->
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.37.0 -->
86
+ <!-- reviewed-through-cli: 0.38.1 -->
87
87
  ```
88
88
 
89
89
  The quoted version above is checked too, so this instruction cannot go stale
@@ -157,10 +157,18 @@ neo login [--api <url>] [--profile editor|release] [--save-project <id>]
157
157
  neo doctor
158
158
  ```
159
159
 
160
+ `login`, `whoami`, and `logout` use the current workspace's `apiBaseUrl` when
161
+ run beneath a `neo.json`. An explicit `--api` takes priority. Outside a
162
+ workspace, they use the CLI build's default API origin. Login prints the
163
+ selected origin before it requests or stores a credential.
164
+
160
165
  `neo doctor` reports two different things. The authoring contracts (format,
161
166
  compiler, extension cache, source, files) decide its exit code; the document
162
- audit below them reports malformed records in the last pull and deliberately
163
- does not, so a project with records still to repair does not fail the command.
167
+ audit below them reports the last pull's malformed records, plus base rows no
168
+ emitted file projects and no record names, and deliberately does not, so a
169
+ project with records still to repair does not fail the command. An unprojected
170
+ row is invisible to `neo status` by construction, which is why `neo doctor` is
171
+ the only place it surfaces.
164
172
  `neo doctor --json` carries a `repair` entry per finding, which is what a
165
173
  targeted repair is handed instead of scanning a project to rediscover them.
166
174
 
@@ -70,7 +70,9 @@ create. The server validates authored new IDs for UUID-v4 shape and uniqueness.
70
70
  Prefer generated IDs unless the structural reference needs an ID immediately.
71
71
 
72
72
  Do not invent IDs for structural rows whose identities derive from an owner
73
- role. Do not add a separate root/static initializer ID.
73
+ role. Do not add a separate root/static initializer ID. A constructor argument
74
+ is one such row — its identity comes from the schema key its parameter settles
75
+ — so it never carries `@id`, in either the named or the positional form.
74
76
 
75
77
  ## Same-push references
76
78
 
@@ -128,7 +130,16 @@ tracking. Require either transition to appear in `neo diff`.
128
130
 
129
131
  Editing an initializer updates sparse override rows in place: projected member
130
132
  IDs remain stable, and omitted virtual rows are never emitted as authored seed
131
- records. A construction whose durable constructor arguments changed, whose
133
+ records. Spelling a declared default verbatim in a new initializer lowers to
134
+ the same absence as omitting the member — a leaf equal to its declaration, or
135
+ a bare class construction whose members the declaration wholly settles, mints
136
+ no override row and resumes source tracking. A stored row already spelling its
137
+ default converges to the sparse form on its next authored touch. A stored
138
+ construction predating the P75 collapse converges the same way: its next push
139
+ drops the constructor-settled keys the body duplicated from the creation data
140
+ and stamps the construction's provenance. That is a one-time storage
141
+ convergence, not an edit — resolved values do not change, and the argument
142
+ rows stay reachable through the creation data that already named them. A construction whose durable constructor arguments changed, whose
132
143
  class changed, or which predates a required constructor parameter fails with
133
144
  `construction-arguments-conflict` instead of silently replaying a different
134
145
  recipe. Edit members supported by the recorded construction, or delete and