@neocompose/cli 0.56.1 → 0.57.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,20 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.57.0] - 2026-09-23
4
+
5
+ - Enum-keyed dictionary lambdas receive enum values, so `Where((key, value) => key == ToolType.Pickaxe)` matches the expected entries.
6
+ - Author enum dictionary keys as `.Pickaxe` or `ToolType.Pickaxe` in defaults and stored values. Pull emits readable keys in enum declaration order, with orphaned option IDs quoted and placed last.
7
+ - Iterate dictionary keys and values with `foreach (var (key, value) in dict)` or `foreach ((ToolType key, float value) in dict)`. The bindings are read-only, and writes through writable entries remain supported.
8
+ - First pushes compile pending getters and functions before evaluating stored initializers. A new initializer that calls a getter created in the same push no longer fails with "has no compiled `getter`."
9
+ - `--force-recompile` refreshes callable bodies before local initializer replay and dry-run verification, so stale pulled code cannot disagree with the server's recompiled result.
10
+ - Initializers can read other values created in the same push, regardless of record order. Cyclic initializer dependencies report the participating values.
11
+ - First pushes validate static animation segments after replaying their constructors and field assignments. Valid segments no longer fail with "Duration must be an integer," and invalid durations still fail validation.
12
+ - Class defaults that repeat inherited values stay inline, avoiding unused pending IDs and repeated changes when replacing a populated default with `new()`. Authored parameterless constructors still execute.
13
+ - Children of newly authored defaults receive stable IDs after source IDs are assigned, including when canonical formatting moves a declaration.
14
+ - Read-only validation accepts abstract overrides whose modifier is inherited from their declaration. Concrete overrides still require a default.
15
+ - Direct object placements created by source constructors validate using their class and instance variant, matching other placement readers.
16
+ - A freshly seeded class constraint with an explicit default kind compares equal to its source form, avoiding false protected-system-class edits.
17
+
3
18
  ## [0.56.1] - 2026-09-23
4
19
 
5
20
  - Changing a member that a variant's `initialize` or `apply` closure uses, such as its storage, recompiles the closure. The closure used to keep the code compiled against the old member, so after a member changed from `.Session` to `.Writable`, a variant that writes it failed in the game with "Member '…' is not Session-owned." To repair closures an earlier push left stale, add `--force-recompile` to your next push.