@neocompose/cli 0.89.6 → 0.89.7

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.89.6",
3
+ "version": "0.89.7",
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.89.6 -->
12
+ <!-- reviewed-through-cli: 0.89.7 -->
13
13
 
14
14
  # Neo Compose CLI
15
15
 
@@ -138,7 +138,7 @@ The marker near the top of `SKILL.md` must exactly match the package version,
138
138
  and this quoted copy is checked too:
139
139
 
140
140
  ```html
141
- <!-- reviewed-through-cli: 0.89.6 -->
141
+ <!-- reviewed-through-cli: 0.89.7 -->
142
142
  ```
143
143
 
144
144
  Keep this skill on current behavior. Upgrade steps, rollout prerequisites,
@@ -178,3 +178,7 @@ affected full-project candidate; Vitest doesn't replace it. Run
178
178
  formatted files.
179
179
 
180
180
  Class collection assignment must validate all incoming owned entries before replacing a stored row or changing its aliases. Keep caught-rejection, late-entry failure, duplicate-row, and successful retry controls in `class-collection-assignment.test.ts`.
181
+
182
+ Nested insertion must reject duplicate or already-owned descendants before publishing rows or changing aliases. Keep partial-encoding retry and removed List/Set/Dictionary alias controls in `nested-collection-insertion.test.ts`; Reference entries continue to share targets, including unbacked local collection handles. Include local Set references, whose closed target can lower to Lookup. Check alternating shared targets and target writes as well as indexing costs, and preserve identity-based removal through generic bindings. Selection edges remain in the reference graph but must not supply a target's owned placement or generic environment. Keep backed Set payloads distinct from single-Reference cells; cover Dictionary, List and Set target mutations and owned attachment/removal when measuring incremental index work. Raw parent links preserve duplicate edges and insertion order; removing an actual owner must not scan unchanged selection parents. Preserve incremental indexing through target-list sorting and entry writes, including explicit per-entry row provenance. Include plain scalar List and Dictionary entry writes after assignment or Add, without rebuilding unrelated Reference cells. Indexed Reference assignment must preserve each selection cell and the closed stored entry contract, including removed generic aliases. Keep scalar Slot assignments distinct from backed Handle Reference assignments: a missing Dictionary key assigned a backed Handle needs its closed Lookup contract and an independent selection cell. Inline-to-backed Reference reassignment must create a selection cell rather than attach its target. Scalar field writes update only their exact raw edges while retaining write receipts and conservative fallback for unindexed or non-scalar values.
183
+
184
+ Closed collection Reference exports must include the physical target graph, including plain-string Set entries. Keep minimal target-only exports and existing-descriptor dependency completion in `reference-target-descriptors.test.ts` and `compiled-construction-types.test.ts`; do not seed unrelated constructions to satisfy export coverage.