@neocompose/cli 0.19.4 → 0.19.5

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,16 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.19.5] - 2026-08-02
4
+
5
+ ### Fixed
6
+
7
+ - `neo pull` no longer fails with `Stored member value … was not pulled` when
8
+ the workspace holds a newly declared stored static member. Its content is
9
+ carried as a seed until a push materializes it, while the member record
10
+ already binds the pending row, so emitting the local side walked a row the
11
+ document does not contain. The seed is overlaid for emission; rows the
12
+ document already carries win.
13
+
3
14
  ## [0.19.4] - 2026-08-01
4
15
 
5
16
  ### Added
package/dist/neo.mjs CHANGED
@@ -63582,6 +63582,51 @@ var init_project_file_pull = __esm({
63582
63582
  }
63583
63583
  });
63584
63584
 
63585
+ // src/project-source/static-value-seed-records.ts
63586
+ function staticValueSeedEmitRecords(status, present) {
63587
+ const records2 = /* @__PURE__ */ new Map();
63588
+ if (status === null) return records2;
63589
+ for (const [memberId, seed] of status.staticValueSeeds) {
63590
+ const rootId = seed.valueId ?? memberValueIdFromRecord(status, memberId);
63591
+ if (rootId !== null) {
63592
+ addSeedRecord(records2, present, {
63593
+ id: rootId,
63594
+ memberId,
63595
+ value: seed.value,
63596
+ classId: seed.classId
63597
+ });
63598
+ }
63599
+ for (const row of seed.values ?? []) {
63600
+ addSeedRecord(records2, present, { ...row });
63601
+ }
63602
+ }
63603
+ return records2;
63604
+ }
63605
+ function addSeedRecord(records2, present, data) {
63606
+ const key = `value:${data.id}`;
63607
+ if (present.has(key)) return;
63608
+ if (records2.has(key)) return;
63609
+ records2.set(key, {
63610
+ recordKind: "value",
63611
+ recordId: data.id,
63612
+ // A seed has no committed content, so it has no server hash to carry.
63613
+ contentHash: "",
63614
+ deleted: false,
63615
+ data
63616
+ });
63617
+ }
63618
+ function memberValueIdFromRecord(status, memberId) {
63619
+ const member = status.reconstructed.get(`member:${memberId}`)?.fullData;
63620
+ if (!isObjectRecord2(member)) return null;
63621
+ return typeof member.valueId === "string" ? member.valueId : null;
63622
+ }
63623
+ var init_static_value_seed_records = __esm({
63624
+ "src/project-source/static-value-seed-records.ts"() {
63625
+ "use strict";
63626
+ init_projection();
63627
+ }
63628
+ });
63629
+
63585
63630
  // src/commands/pull.ts
63586
63631
  var pull_exports = {};
63587
63632
  __export(pull_exports, {
@@ -63810,6 +63855,12 @@ async function finishFormat4Pull(args) {
63810
63855
  regenerateSourceNames
63811
63856
  } = args;
63812
63857
  const plannedLocalRecords = buildEmitRecordSet(document, plans, "emit");
63858
+ for (const [key, record3] of staticValueSeedEmitRecords(
63859
+ localStatus,
63860
+ new Set(plannedLocalRecords.keys())
63861
+ )) {
63862
+ plannedLocalRecords.set(key, record3);
63863
+ }
63813
63864
  const localRecords = regenerateSourceNames ? regenerateDialogueSourceNamesV4(plannedLocalRecords) : plannedLocalRecords;
63814
63865
  const regeneratedRecordKeys = new Set(
63815
63866
  [...plannedLocalRecords].flatMap(
@@ -64086,6 +64137,7 @@ var init_pull = __esm({
64086
64137
  init_project_documents();
64087
64138
  init_project_file_pull();
64088
64139
  init_dialogue_sources();
64140
+ init_static_value_seed_records();
64089
64141
  }
64090
64142
  });
64091
64143
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neocompose/cli",
3
- "version": "0.19.4",
3
+ "version": "0.19.5",
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.19.4 -->
12
+ <!-- reviewed-through-cli: 0.19.5 -->
13
13
 
14
14
  # Neo Compose CLI
15
15
 
@@ -73,7 +73,7 @@ wrappers.
73
73
  The marker near the top of `SKILL.md` must exactly match the package version:
74
74
 
75
75
  ```html
76
- <!-- reviewed-through-cli: 0.19.4 -->
76
+ <!-- reviewed-through-cli: 0.19.5 -->
77
77
  ```
78
78
 
79
79
  The quoted version above is checked too, so this instruction cannot go stale