@neocompose/cli 0.30.2 → 0.31.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/CHANGELOG.md CHANGED
@@ -1,5 +1,50 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.31.0] - 2026-08-13
4
+
5
+ ### Added
6
+
7
+ - P67 NeoObject variants: author a named configuration of a `NeoObject`-derived
8
+ class as a top-level `NeoVariant<Class>` global with `initialize`/`apply`
9
+ delegates, group them with `NeoVariantFolder<Class>` records assigned by
10
+ `@settings(folder: ...)`, and pull them back as one file per (class, folder)
11
+ under `Variants/`. The canonical system schema seeds
12
+ `NeoVariant<TObject>` and `NeoVariantFolder<TObject>`, so `.Variant` and
13
+ `.VariantFolder` join the `NeoWorldKind` vocabulary.
14
+ - Variant declaration diagnostics surface live in the editor with the same
15
+ rules push enforces: folder resolution and class ownership, per-scope name
16
+ uniqueness across variant names and folder path segments, the reserved
17
+ `Base` name, C# identifier normalization, `initialize`/`apply` shapes, and
18
+ the reference-only rule that keeps `NeoVariant` out of every nested type
19
+ position.
20
+ - The `Variant` member kind: declare `public NeoVariant<Tree> Felled =
21
+ Tree.Variants.ChoppedTree;` to point data at a named configuration. The
22
+ default authors as the bare `<Class>.Variants.<Name>` path — never
23
+ `Reference(...)`, which resolves to a value row rather than a record — and
24
+ resolves at push to the stored `{classId, variantId}` pair, including
25
+ against a variant authored beside a brand-new class in the same push. Pull
26
+ re-emits the canonical path from the stored ids, so renaming a variant or
27
+ moving it between folders round-trips. `<Class>.Variants.Base` selects the
28
+ class with no variant applied, and a nullable declaration may default to
29
+ `null` for no selection at all.
30
+ - Live diagnostics for the two predictable member-default mistakes: a variant
31
+ path whose class is not the declared target or a subclass, and
32
+ `Reference(...)` where a bare path is required.
33
+
34
+ ### Changed
35
+
36
+ - `Partial<T>?` now lowers as nullable instead of silently dropping the `?`,
37
+ which is what lets an optional `Partial<T>? x = null` parameter declare its
38
+ own P65 default.
39
+
40
+ ## [0.30.3] - 2026-08-13
41
+
42
+ ### Fixed
43
+
44
+ - Identify stored dialogue and migration bodies in `neo script check --all`
45
+ compile failures and print each in-body source position once. The command
46
+ also accepts existing delegate and action types in constructor signatures.
47
+
3
48
  ## [0.30.2] - 2026-08-13
4
49
 
5
50
  ### Fixed