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