@neocompose/cli 0.42.0 → 0.42.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,18 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.42.1] - 2026-09-02
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- `neo status` reported a phantom parent update plus a child create for every
|
|
8
|
+
packed child of a row authored directly in a List or Dictionary member's
|
|
9
|
+
declaration default (`PlacementTiles = [ new NeoObjectPlacementTile { Cell =
|
|
10
|
+
new(0, 1) } ]` in a class file). The shared packed-value fold decides what
|
|
11
|
+
packs by walking the value graph from its roots, and that walk seeded a
|
|
12
|
+
declaration default only for Class members, so an entry row's children had
|
|
13
|
+
no placement and stayed sparse where the server had packed them. The walk now
|
|
14
|
+
seeds List and Dictionary declaration defaults too.
|
|
15
|
+
|
|
3
16
|
## [0.42.0] - 2026-09-02
|
|
4
17
|
|
|
5
18
|
### Fixed
|
package/dist/neo.mjs
CHANGED
|
@@ -67138,6 +67138,21 @@ function findOwningMembersForValues(document, valueIds, additionalRoots, travers
|
|
|
67138
67138
|
rows.push(value);
|
|
67139
67139
|
}
|
|
67140
67140
|
}
|
|
67141
|
+
let declaringClassIdByMemberId = null;
|
|
67142
|
+
const declaringClassEnv = (memberId) => {
|
|
67143
|
+
if (declaringClassIdByMemberId === null) {
|
|
67144
|
+
declaringClassIdByMemberId = /* @__PURE__ */ new Map();
|
|
67145
|
+
for (const schemaClass2 of document.classes) {
|
|
67146
|
+
for (const declaredId of Object.values(schemaClass2.schema)) {
|
|
67147
|
+
if (declaringClassIdByMemberId.has(declaredId)) continue;
|
|
67148
|
+
declaringClassIdByMemberId.set(declaredId, schemaClass2.id);
|
|
67149
|
+
}
|
|
67150
|
+
}
|
|
67151
|
+
}
|
|
67152
|
+
const classId = declaringClassIdByMemberId.get(memberId);
|
|
67153
|
+
if (classId === void 0) return envFromStamp(void 0);
|
|
67154
|
+
return resolveInstanceEnv(classId, void 0, document.classes);
|
|
67155
|
+
};
|
|
67141
67156
|
const queue = [];
|
|
67142
67157
|
const enqueueClassInstanceChildren = (args) => {
|
|
67143
67158
|
const merged = mergeStoredInstanceSchema(
|
|
@@ -67191,18 +67206,57 @@ function findOwningMembersForValues(document, valueIds, additionalRoots, travers
|
|
|
67191
67206
|
}
|
|
67192
67207
|
const defaultValue = member.defaultValue;
|
|
67193
67208
|
if (defaultValue == null) continue;
|
|
67194
|
-
if (
|
|
67195
|
-
|
|
67196
|
-
|
|
67197
|
-
|
|
67198
|
-
|
|
67199
|
-
|
|
67200
|
-
|
|
67201
|
-
|
|
67202
|
-
|
|
67203
|
-
|
|
67204
|
-
|
|
67205
|
-
|
|
67209
|
+
if (isMemberClassBase(member)) {
|
|
67210
|
+
if (!isRecordValue(defaultValue.value)) continue;
|
|
67211
|
+
enqueueClassInstanceChildren({
|
|
67212
|
+
member,
|
|
67213
|
+
record: defaultValue.value,
|
|
67214
|
+
effectiveClassId: defaultValue.classId ?? member.classId,
|
|
67215
|
+
// A declaration default is never itself an override graph (D10).
|
|
67216
|
+
insideAnimationOverrideGraph: false,
|
|
67217
|
+
// The default graph hangs off the MEMBER record, so its children have
|
|
67218
|
+
// no owning value row (P76: they stay physically sparse).
|
|
67219
|
+
parentValueId: null
|
|
67220
|
+
});
|
|
67221
|
+
continue;
|
|
67222
|
+
}
|
|
67223
|
+
let entryMemberId;
|
|
67224
|
+
let entryValueIds;
|
|
67225
|
+
if (isMemberDictionaryBase(member)) {
|
|
67226
|
+
if (!isRecordValue(defaultValue.value)) continue;
|
|
67227
|
+
entryMemberId = member.entryMemberId;
|
|
67228
|
+
entryValueIds = Object.values(defaultValue.value);
|
|
67229
|
+
} else if (isMemberListBase(member)) {
|
|
67230
|
+
if (listKindOf(member) === 1 /* Unordered */) continue;
|
|
67231
|
+
if (!isStringListValue(defaultValue.value)) continue;
|
|
67232
|
+
entryMemberId = member.entryMemberId;
|
|
67233
|
+
entryValueIds = defaultValue.value;
|
|
67234
|
+
} else {
|
|
67235
|
+
continue;
|
|
67236
|
+
}
|
|
67237
|
+
const entryMemberRecord = membersById2.get(entryMemberId);
|
|
67238
|
+
if (entryMemberRecord === void 0) continue;
|
|
67239
|
+
let entryMember;
|
|
67240
|
+
try {
|
|
67241
|
+
entryMember = substituteMember(
|
|
67242
|
+
entryMemberRecord,
|
|
67243
|
+
declaringClassEnv(member.id),
|
|
67244
|
+
document.members
|
|
67245
|
+
);
|
|
67246
|
+
} catch {
|
|
67247
|
+
continue;
|
|
67248
|
+
}
|
|
67249
|
+
for (const entryValueId of entryValueIds) {
|
|
67250
|
+
queue.push({
|
|
67251
|
+
member: entryMember,
|
|
67252
|
+
memberRecordId: entryMemberRecord.id,
|
|
67253
|
+
id: entryValueId,
|
|
67254
|
+
// A declaration default is never itself an override graph (D10).
|
|
67255
|
+
insideAnimationOverrideGraph: false,
|
|
67256
|
+
// Reached from the MEMBER record: no owning value row.
|
|
67257
|
+
parentValueId: null
|
|
67258
|
+
});
|
|
67259
|
+
}
|
|
67206
67260
|
}
|
|
67207
67261
|
const visited = /* @__PURE__ */ new Set();
|
|
67208
67262
|
for (let cursor = 0; cursor < queue.length; cursor += 1) {
|
|
@@ -124187,7 +124241,7 @@ var init_registry2 = __esm({
|
|
|
124187
124241
|
PROJECT_SCHEMA_CONTRACT = Object.freeze({
|
|
124188
124242
|
formatVersion: 4,
|
|
124189
124243
|
contractVersion: "4.1",
|
|
124190
|
-
cliVersion: "0.42.
|
|
124244
|
+
cliVersion: "0.42.1",
|
|
124191
124245
|
projectFileUploadBatchSize: 32,
|
|
124192
124246
|
documentRecords: {
|
|
124193
124247
|
member: {
|
|
@@ -131007,7 +131061,7 @@ There is no --keep-current: preserving current semantic state defines flatten.
|
|
|
131007
131061
|
async function main() {
|
|
131008
131062
|
const args = parseArgs(process.argv.slice(2));
|
|
131009
131063
|
if (args.command === "--version") {
|
|
131010
|
-
console.log("0.42.
|
|
131064
|
+
console.log("0.42.1");
|
|
131011
131065
|
return;
|
|
131012
131066
|
}
|
|
131013
131067
|
if (args.command === null || args.command === "help" || args.command === "--help" || args.command === "-h") {
|
package/package.json
CHANGED
|
@@ -83,7 +83,7 @@ wrappers.
|
|
|
83
83
|
The marker near the top of `SKILL.md` must exactly match the package version:
|
|
84
84
|
|
|
85
85
|
```html
|
|
86
|
-
<!-- reviewed-through-cli: 0.42.
|
|
86
|
+
<!-- reviewed-through-cli: 0.42.1 -->
|
|
87
87
|
```
|
|
88
88
|
|
|
89
89
|
The quoted version above is checked too, so this instruction cannot go stale
|