@neocompose/cli 0.78.0 → 0.79.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 +35 -0
- package/dist/neo.mjs +11914 -11550
- package/dist/test-worker.mjs +566 -521
- package/package.json +1 -1
- package/skills/neocompose-cli/SKILL.md +1 -1
- package/skills/neocompose-cli/references/animation-and-world-authoring.md +24 -5
- package/skills/neocompose-cli/references/cli-development.md +1 -1
- package/skills/neocompose-cli/references/commands-and-sync.md +5 -2
- package/skills/neocompose-cli/references/declarations-and-construction.md +3 -0
- package/skills/neocompose-cli/references/neoscript.md +3 -8
- package/skills/neocompose-cli/references/values-identities-and-references.md +23 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,40 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.79.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 53177b5: `neo push --dry-run` no longer rejects a new entry in a local value whose body is indented with four spaces.
|
|
8
|
+
- 53177b5: `neo pull` writes stored member defaults that read a static preset directly, such as `NeoCellPattern.EightNeighbors`, instead of failing. `neo status` and `neo push` still refuse them and point at `Clone()` or `Reference`, so you can fix them in source.
|
|
9
|
+
- 53177b5: Fix generated C# for a `Reference<T>` or `Set<Reference<T>>` whose class only allows `@storage(allowed: .Immutable)`. It called a `CreateWritable` the class doesn't have and failed to compile.
|
|
10
|
+
- 53177b5: Deleting a class member now removes its slot from every stored instance. Rows that push carries over without rebuilding, such as those kept by a listener-only patch, kept the deleted member's key and its child row, and `neo export` later failed with `unknown schema key`.
|
|
11
|
+
|
|
12
|
+
## 0.79.0
|
|
13
|
+
|
|
14
|
+
### Minor Changes
|
|
15
|
+
|
|
16
|
+
- fcc30a9: Placing a class, list, set, or dictionary value that something else already owns is now refused. Only a `Reference` member may share it. This covers a static (`static Item S = Holder.Shared;`), a static's field (`Pattern = Shared.Held.Pattern`), collection entries and dictionary values (`[Holder.Shared]`, `{ "a": Holder.Shared }`), object fields, member defaults, a local already placed elsewhere, and a constructor parameter stored in an ordinary field (`new Wrapped(Holder.Shared)` with `public Box Inner = inner;`). `neo status`, push, and `neo test` report the refusal at the authored position, including the argument that passed the value. Call `Clone()` to own a copy, or use `Reference`. Value kinds still copy. Pull no longer writes a static's name in place of an owned value. The server refuses a push that attaches a row another static or parent owns.
|
|
17
|
+
- fcc30a9: `NeoCellPattern` is an ordinary stored class (P109). `Center`, `FourNeighbors`, `EightNeighbors` and `Empty` are stored static values, so `Reference<NeoCellPattern>` can point at them, and `Box`, `Rect`, `Ring`, `Cross` and `Line` run as NeoScript. Unity export generates the class like any other and no longer rejects pattern references. The system schema migration rewrites stored compiled bodies that read the old preset getters so they read the stored values; authored code is unchanged. Unity projects need SDK 0.69.0.
|
|
18
|
+
|
|
19
|
+
An owned field can no longer default to a preset, as in `public NeoCellPattern Pattern = NeoCellPattern.EightNeighbors;`. `neo status` and `neo push` report it at the default. Write `.Clone()` to own a copy, or declare `Reference<NeoCellPattern>` to share the preset.
|
|
20
|
+
|
|
21
|
+
Add `NeoObject.GetTiles(pattern, offset)`, which returns the tile at each occupied cell of the pattern in pattern order. `GetObjects`, `GetTile` and `GetTiles` take an optional `offset` that shifts the whole pattern without constructing a translated one. Calls without an offset behave as before.
|
|
22
|
+
|
|
23
|
+
Fix the generated C# `NeoObject.GetTile`, which threw for authored (asset-owned) tiles.
|
|
24
|
+
|
|
25
|
+
- 632df4e: Read project snapshot and incremental sync payloads through their JSON envelope so Unicode dictionary keys round-trip without blocking project updates. Update the CLI alongside the server because incremental read responses now carry dataJson.
|
|
26
|
+
|
|
27
|
+
### Patch Changes
|
|
28
|
+
|
|
29
|
+
- 65c1226: Delete remote instance value rows when a locally deleted member is pushed after pulling concurrent changes, preventing orphaned rows in storage and Unity exports.
|
|
30
|
+
- b7ffb3d: Traverse class value ownership when sibling slots are null, so enum-keyed dictionary cascades reach their stored entries. Include surviving member and value updates in enum deletion responses when cascading removes class fields.
|
|
31
|
+
- c5aebfc: Allow newly created statics to be used inside other static value graphs in the same push, regardless of declaration order. Value kinds copy their values, and a `Reference` names the target object.
|
|
32
|
+
|
|
33
|
+
When editing a virtual default under a static or variant in the app, infer the placement scope from its stored parent instead of incorrectly asserting an authored root.
|
|
34
|
+
|
|
35
|
+
- d527836: The runtime drops its execution budget API. `executionBudgetLimits`, `sharedExecutionBudget`, the budget factory, and `NeoScriptResourceLimitError` are gone, and loops, `List.Repeat`, strings, and collections no longer stop at count limits. `wallClockDeadlineMs` still stops runaway scripts with `NeoScriptWallClockTimeoutError`, so `neo test` timeouts are unchanged.
|
|
36
|
+
- fcc30a9: Binding a collection to a list default whose entries come from a constructor, such as `[NeoCellPattern.Box(1), NeoCellPattern.Cross(2)]`, now pushes. Each entry is stored as its initializer, so no entry points at a temporary argument row anymore. Writing into a value built by a constructor now also stores the rows its constructor arguments use. A header-constructor argument such as `new Holder(root.Assets.Pattern)` keeps the rows it shares with a field the push drops as unchanged, so `Holders.Value.Pattern.Count` reads the real pattern.
|
|
37
|
+
|
|
3
38
|
## 0.78.0
|
|
4
39
|
|
|
5
40
|
### Minor Changes
|