@neocompose/cli 0.12.0 → 0.14.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 +72 -0
- package/dist/neo.mjs +11393 -10404
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,77 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.14.0] - 2026-07-28
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- Stamp authored provenance on every row a materialized default produces.
|
|
8
|
+
Writing `new EyePart { Name = "RightEye" }` as a row in `EyesPart.Children`
|
|
9
|
+
copies `EyePart`'s default graph, and until now the copy had no link home:
|
|
10
|
+
a clip declared on `EyePart` addresses `EyePart`'s own class-default rows,
|
|
11
|
+
which no copy of them named, so it resolved on no nested instance at all.
|
|
12
|
+
Each copied row now carries the class-default row it came from, forwarding
|
|
13
|
+
that row's own stamp so a part three levels deep still points at the
|
|
14
|
+
original rather than an intermediate copy. Clips on nested class rows
|
|
15
|
+
resolve, at any depth, and the Unity exporter chains the stamp through a
|
|
16
|
+
placement unchanged. `neo pull` output is byte-identical either way.
|
|
17
|
+
|
|
18
|
+
### Fixed
|
|
19
|
+
|
|
20
|
+
- Push two sibling bare `new()` rows of a class whose default is row-backed.
|
|
21
|
+
Re-lowering a declared initializer adopted the `@id` written on it as the
|
|
22
|
+
copy's identity — which is the class-default row's id — so
|
|
23
|
+
`[new EyePart(), new EyePart()]` minted one id twice and failed with
|
|
24
|
+
`Value construction reuses identity`, and even a single such row was
|
|
25
|
+
rejected by the server as an existing value. That id is now the copy's
|
|
26
|
+
provenance instead of its identity.
|
|
27
|
+
- Keep `genericBindings` and `bindingMembers` on an authored seed row across
|
|
28
|
+
the push transport. The schema commit route rebuilt each seed from a field
|
|
29
|
+
whitelist that omitted both, so an authored `NeoAnimationChildOverride` row
|
|
30
|
+
lost its concrete generic environment between the CLI and the server's own
|
|
31
|
+
re-lowering, and the push failed as a trusted-lowering mismatch.
|
|
32
|
+
|
|
33
|
+
### Removed
|
|
34
|
+
|
|
35
|
+
- The nested-clip-owner advisory added in 0.12.0, along with the `warnings`
|
|
36
|
+
array `neo push --json`, `neo status --json` and `neo diff --json` carried
|
|
37
|
+
it in. It described a defect that provenance now fixes, so leaving it would
|
|
38
|
+
warn on correct code.
|
|
39
|
+
|
|
40
|
+
## [0.13.0] - 2026-07-28
|
|
41
|
+
|
|
42
|
+
### Added
|
|
43
|
+
|
|
44
|
+
- Author a single field of a structured leaf member inside an animation
|
|
45
|
+
override graph. P42 gives `SpriteInfo`, `Vector2`, `Vector2Int`, `Vector3`,
|
|
46
|
+
`Vector3Int` and `Color` a named field surface — `FileId`/`SliceIndex`,
|
|
47
|
+
`x`/`y`/`z`, `r`/`g`/`b`/`a` — and a frame's `Overrides` can now name one of
|
|
48
|
+
them: `Sprite = new { SliceIndex = 2 }` animates the slice while the sheet
|
|
49
|
+
stays whatever the played instance holds, and `Position = new { y = 0.5 }`
|
|
50
|
+
leaves `x` and `z` alone. The explicit `new Partial<SpriteInfo> { ... }` form
|
|
51
|
+
is accepted alongside the inferred `new { ... }`, matching how a class
|
|
52
|
+
override already reads, and an empty `new { }` still means no change.
|
|
53
|
+
- Accept a bare `Images.<Name>` in a `FileId` field position. It is the one
|
|
54
|
+
place a sprite file is named without a slice; as a whole sprite value it is
|
|
55
|
+
still rejected in favour of `Images.<Name>.Slice(index)`.
|
|
56
|
+
|
|
57
|
+
### Changed
|
|
58
|
+
|
|
59
|
+
- Reject a non-integer component of a `Vector2Int` or `Vector3Int` in source,
|
|
60
|
+
naming the member and the field. `new(0.5, 0.5)` used to lower unchecked and
|
|
61
|
+
fail later at commit against a server guard, which reported the record rather
|
|
62
|
+
than the line that wrote it.
|
|
63
|
+
- Reject `new { ... }` for a structured leaf outside an animation override
|
|
64
|
+
graph — a member declaration default, or a top-level value binding — instead
|
|
65
|
+
of accepting a partial value in a position that can never be composed with
|
|
66
|
+
anything.
|
|
67
|
+
|
|
68
|
+
### Fixed
|
|
69
|
+
|
|
70
|
+
- Stop emitting the literal text `null` for a sprite value that carries no
|
|
71
|
+
`fileId`. Now that a sprite field can be overridden on its own, a `neo pull`
|
|
72
|
+
of such a value wrote source that the next `neo push` read as a deletion of
|
|
73
|
+
the override.
|
|
74
|
+
|
|
3
75
|
## [0.12.0] - 2026-07-28
|
|
4
76
|
|
|
5
77
|
### Added
|