@neocompose/cli 0.47.1 → 0.48.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,17 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.48.1] - 2026-09-10
4
+
5
+ - Emit empty class member defaults as `new Type()` even when their backing value row is virtual. Required members now read as initialized, and adding a `new() { ... }` override preserves sparse storage.
6
+
7
+ ## [0.48.0] - 2026-09-10
8
+
9
+ - Preserve current declaration and managed asset paths through pull, force, and reset, including files moved since the previous synchronization.
10
+ - Support typed local initializer declarations in any project folder, with one owner per aggregate and explicit `Reference(NAME)` uses. Pull preserves extracted initializers and aliases; divergent scalar uses retain the server values.
11
+ - Add shared editor actions to extract an initializer into a file, inline its sole use, or duplicate it with fresh nested identities.
12
+ - Place newly encountered system declarations in their category's `System` subfolder, including classes, enums, interfaces, templates, localization statuses, and priority/dialogue groups.
13
+ - Recognize migration headers outside `Migrations` and preserve migration ordering with `@order`.
14
+
3
15
  ## [0.47.1] - 2026-09-09
4
16
 
5
17
  ### Changed
package/README.md CHANGED
@@ -57,9 +57,9 @@ neo/
57
57
  neo.json # formatVersion: 4
58
58
  Project.neo # project defaults/settings
59
59
  Root.neo # protected root shape; editable root values
60
- Classes/
61
- Interfaces/
62
- Enums/
60
+ Classes/{System/, ...}
61
+ Interfaces/{System/, ...}
62
+ Enums/{System/, ...}
63
63
  Relations.neo # generic project relations, when present
64
64
  Templates/
65
65
  Localization.neo
@@ -105,6 +105,47 @@ In Unity projects, `neo.json` may use `unityConfigPath` instead of storing
105
105
  `projectId` and `versionId`. The referenced `NeoComposeConfig.asset` then owns
106
106
  those IDs and receives branch/version switches.
107
107
 
108
+ ### Organize source locally
109
+
110
+ Move `.neo` and `.neoflow` files into any project folder, and group declarations
111
+ in files as you prefer. Keep existing IDs. Pull, force, and reset read your
112
+ current placement before applying server state. New server declarations use
113
+ the default folders. System declarations use a `System` subfolder, such as
114
+ `Classes/System`, `Enums/System`, or `Interfaces/System`. Ownership comes from
115
+ the reserved system identity, so project types keep their normal defaults.
116
+ Managed images and audio can also move. Update their typed registry paths.
117
+
118
+ Extract large Root or static initializers into typed declarations without imports:
119
+
120
+ ```neo
121
+ // Configuration/ProjectSortingLayers.neo
122
+ List<NeoSortingLayer> SORTING_LAYERS = [
123
+ new NeoSortingLayer() { Name = "Default" }
124
+ ];
125
+
126
+ // Inside the Root Assets initializer
127
+ SortingLayers = SORTING_LAYERS
128
+ ```
129
+
130
+ Existing nested `@id` annotations stay with the extracted initializer. The
131
+ consuming member keeps its value ID; no ID is required at the use. An aggregate
132
+ has one owning assignment. Additional references use `Reference(NAME)` where
133
+ the member supports references. Independent copies need fresh nested IDs;
134
+ the editor's duplicate action removes the old IDs. Scalars may have several
135
+ owners. If web edits make those values differ, pull inlines the differing uses.
136
+
137
+ The shared language service offers extract-to-file for a selected complete
138
+ initializer, inline for a sole use, and duplicate. These declarations are local
139
+ project setup and do not create runtime globals. Use them as complete value
140
+ initializers; using their names inside executable expressions such as
141
+ `BASE + 1` is rejected. Initializer cycles and ambiguous
142
+ aggregate ownership fail validation before synchronization. Fix source errors
143
+ before resetting a checkout with extracted initializers so their layout can be
144
+ recovered safely.
145
+
146
+ Migrations can move too. Keep their `/// @migration` header and `/// @order N`
147
+ directive, or retain the numeric filename prefix for ordering.
148
+
108
149
  ## Native Neo authoring
109
150
 
110
151
  Classes, interfaces, and enums are top-level declarations. Schema functions,