@neocompose/cli 0.62.0 → 0.62.2

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.62.0",
3
+ "version": "0.62.2",
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.62.0 -->
12
+ <!-- reviewed-through-cli: 0.62.2 -->
13
13
 
14
14
  # Neo Compose CLI
15
15
 
@@ -110,7 +110,7 @@ wrappers.
110
110
  The marker near the top of `SKILL.md` must exactly match the package version:
111
111
 
112
112
  ```html
113
- <!-- reviewed-through-cli: 0.62.0 -->
113
+ <!-- reviewed-through-cli: 0.62.2 -->
114
114
  ```
115
115
 
116
116
  The quoted version above is checked too, so this instruction cannot go stale
@@ -314,3 +314,17 @@ CLI pins the deployment through the authenticated app origin before sending it
314
314
  a session token.
315
315
  Results pin the workspace to that transaction's hash, so a concurrent later commit still
316
316
  requires a pull before another push.
317
+
318
+ ## Test execution
319
+
320
+ `neo test` compiles unpushed production source and validates the candidate graph.
321
+ It does not perform the additional source serialization round trip that
322
+ `neo push --dry-run` uses. Invalid production source still stops test execution.
323
+ Unchanged project and spec inputs reuse content-addressed local caches.
324
+
325
+ Spec files run in parallel using up to four available CPU workers. Set
326
+ `test.maxWorkers` in `neo.json`, override it with `neo test --maxWorkers <n>`,
327
+ or use `neo test --runInBand` to run serially. Each file preserves hook and test
328
+ order; fixtures and mocks stay isolated. Reports retain discovery order.
329
+ Parallel test work is summed across workers and can exceed elapsed execution;
330
+ JSON `timings.executeMs` and `timings.workerStartupMs` give elapsed phase times.
@@ -387,3 +387,8 @@ class PlacedItem<
387
387
  ```
388
388
 
389
389
  Executable object initializer blocks can set immutable stored members on the newly constructed instance, including nested `new` expressions. Ordinary assignments after construction remain subject to storage restrictions. `readonly` declarations still change only through class defaults.
390
+
391
+ Populated unordered member defaults, such as `@settings(kind: .Unordered)` with
392
+ `List<Entry> Entries = [new Entry()]`, are constructed by an initializer for
393
+ each instance. A declaration has no container value row to own unordered entries.
394
+ Nested unordered lists already have container rows and retain their stored values.
@@ -131,7 +131,9 @@ assignability, collection membership, multiplicity, and group constraints.
131
131
 
132
132
  `collectionValue` references follow the same post-push resolution and
133
133
  membership rules as member defaults. Name the collection itself, for example
134
- `Reference(root.Assets.Quests.Daily)`. A path may traverse construction defaults
134
+ `root.Assets.Quests.Daily` or `Reference(root.Assets.Quests.Daily)`. Invalid
135
+ reference-valued settings are errors; they never silently remove the binding.
136
+ A path may traverse construction defaults
135
137
  and declarations created in the same push. Preparation materializes the target
136
138
  collection and its required ancestor rows together, preserving the virtual
137
139
  identities. No preliminary push or manual value ID is needed.