@neocompose/cli 0.53.3 → 0.53.4

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,9 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.53.4] - 2026-09-19
4
+
5
+ - `neo test` preserves runtime types and getter overrides for nested save objects after writes rebuild the evaluator ownership index. Virtual children reuse their known owning graph when no stored parent link exists.
6
+
3
7
  ## [0.53.3] - 2026-09-19
4
8
 
5
9
  - Executable object initializers can set immutable stored members during construction. Later mutation and readonly-member restrictions still apply.
package/dist/neo.mjs CHANGED
@@ -75442,7 +75442,14 @@ function memberForValueRow(row, ctx) {
75442
75442
  if (indexes2.memberByRowId.has(row.id)) {
75443
75443
  return indexes2.memberByRowId.get(row.id) ?? null;
75444
75444
  }
75445
- const member = resolveMemberForValueRow(row, ctx, /* @__PURE__ */ new Set());
75445
+ let member = resolveMemberForValueRow(row, ctx, /* @__PURE__ */ new Set());
75446
+ if (member === null) {
75447
+ const rows = ctx.vm.databaseVM?.virtualInstanceRowsForValue(row.id);
75448
+ if (rows !== void 0 && rows.length > 0) {
75449
+ ensureVirtualExpansionIndexed(rows, ctx, indexes2);
75450
+ member = resolveMemberForValueRow(row, ctx, /* @__PURE__ */ new Set());
75451
+ }
75452
+ }
75446
75453
  indexes2.memberByRowId.set(row.id, member);
75447
75454
  return member;
75448
75455
  }
@@ -83918,7 +83925,8 @@ function createHeadlessVirtualInstanceResolver(args) {
83918
83925
  requirement: 1 /* Required */
83919
83926
  });
83920
83927
  }
83921
- return emptyRows;
83928
+ const knownGraph = graphByValueId.get(receiverValueId);
83929
+ return knownGraph === void 0 ? emptyRows : expandRoot(knownGraph.instanceRootId, void 0);
83922
83930
  };
83923
83931
  return {
83924
83932
  virtualInstanceRowsForValue,
@@ -138717,7 +138725,7 @@ var init_registry2 = __esm({
138717
138725
  "schema-contract/registry.mjs"() {
138718
138726
  "use strict";
138719
138727
  PROJECT_SCHEMA_CONTRACT = Object.freeze({
138720
- cliVersion: "0.53.3",
138728
+ cliVersion: "0.53.4",
138721
138729
  projectFileUploadBatchSize: 32,
138722
138730
  documentRecords: {
138723
138731
  member: {
@@ -146538,7 +146546,7 @@ There is no --keep-current: preserving current semantic state defines flatten.
146538
146546
  async function main() {
146539
146547
  const args = parseArgs(process.argv.slice(2));
146540
146548
  if (args.command === "--version") {
146541
- console.log("0.53.3");
146549
+ console.log("0.53.4");
146542
146550
  return;
146543
146551
  }
146544
146552
  if (args.command === null || args.command === "help" || args.command === "--help" || args.command === "-h") {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neocompose/cli",
3
- "version": "0.53.3",
3
+ "version": "0.53.4",
4
4
  "description": "Neo Compose native project-source CLI with bidirectional sync.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -9,7 +9,7 @@ description: >-
9
9
  `@neocompose/cli` or `node cli/bin/neo.mjs` in the neo-compose repository.
10
10
  ---
11
11
 
12
- <!-- reviewed-through-cli: 0.53.3 -->
12
+ <!-- reviewed-through-cli: 0.53.4 -->
13
13
 
14
14
  # Neo Compose CLI
15
15
 
@@ -97,7 +97,7 @@ wrappers.
97
97
  The marker near the top of `SKILL.md` must exactly match the package version:
98
98
 
99
99
  ```html
100
- <!-- reviewed-through-cli: 0.53.3 -->
100
+ <!-- reviewed-through-cli: 0.53.4 -->
101
101
  ```
102
102
 
103
103
  The quoted version above is checked too, so this instruction cannot go stale