@neocompose/cli 0.36.5 → 0.36.6

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,14 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.36.6] - 2026-08-20
4
+
5
+ ### Fixed
6
+
7
+ - Keep normal pull's in-memory overlay of uncommitted static value seeds valid
8
+ for computed-initializer replay. This lets a pull reconcile source that
9
+ still has pending member identities after a successful remote commit without
10
+ requiring a destructive `neo pull --reset`.
11
+
3
12
  ## [0.36.5] - 2026-08-20
4
13
 
5
14
  ### Fixed
package/dist/neo.mjs CHANGED
@@ -106486,25 +106486,25 @@ var init_project_file_pull = __esm({
106486
106486
  });
106487
106487
 
106488
106488
  // src/project-source/static-value-seed-records.ts
106489
- function staticValueSeedEmitRecords(status, present) {
106489
+ function staticValueSeedEmitRecords(status, present, projectId) {
106490
106490
  const records2 = /* @__PURE__ */ new Map();
106491
106491
  if (status === null) return records2;
106492
106492
  for (const [memberId, seed] of status.authoredValueSeeds) {
106493
106493
  const rootId = seed.valueId ?? memberValueIdFromRecord(status, memberId);
106494
106494
  if (rootId !== null) {
106495
- addSeedRecord(records2, present, {
106495
+ addSeedRecord(records2, present, projectId, {
106496
106496
  id: rootId,
106497
106497
  memberId,
106498
106498
  ...seed.init === void 0 ? { value: seed.value, classId: seed.classId } : { init: seed.init }
106499
106499
  });
106500
106500
  }
106501
106501
  for (const row of seed.values ?? []) {
106502
- addSeedRecord(records2, present, { ...row });
106502
+ addSeedRecord(records2, present, projectId, { ...row });
106503
106503
  }
106504
106504
  }
106505
106505
  return records2;
106506
106506
  }
106507
- function addSeedRecord(records2, present, data) {
106507
+ function addSeedRecord(records2, present, projectId, data) {
106508
106508
  const key = `value:${data.id}`;
106509
106509
  if (present.has(key)) return;
106510
106510
  if (records2.has(key)) return;
@@ -106514,7 +106514,18 @@ function addSeedRecord(records2, present, data) {
106514
106514
  // A seed has no committed content, so it has no server hash to carry.
106515
106515
  contentHash: "",
106516
106516
  deleted: false,
106517
- data
106517
+ // These records exist only in normal pull's in-memory local projection,
106518
+ // but the value emitter deliberately validates the entire graph before it
106519
+ // replays any computed initializer. Give the seed the same envelope as a
106520
+ // persisted value row so an unrelated replay does not reject a valid
106521
+ // locally-authored static initializer. The overlay is never written to
106522
+ // workspace state or sent to the server.
106523
+ data: {
106524
+ ...data,
106525
+ projectId,
106526
+ createdAt: 0,
106527
+ updatedAt: 0
106528
+ }
106518
106529
  });
106519
106530
  }
106520
106531
  function memberValueIdFromRecord(status, memberId) {
@@ -106854,7 +106865,8 @@ async function finishFormat4Pull(args) {
106854
106865
  const plannedLocalRecords = buildEmitRecordSet(document, plans, "emit");
106855
106866
  for (const [key, record3] of staticValueSeedEmitRecords(
106856
106867
  localStatus,
106857
- new Set(plannedLocalRecords.keys())
106868
+ new Set(plannedLocalRecords.keys()),
106869
+ workspace.config.projectId
106858
106870
  )) {
106859
106871
  plannedLocalRecords.set(key, record3);
106860
106872
  }
@@ -114140,7 +114152,7 @@ var init_registry2 = __esm({
114140
114152
  PROJECT_SCHEMA_CONTRACT = Object.freeze({
114141
114153
  formatVersion: 3,
114142
114154
  contractVersion: "3.14",
114143
- cliVersion: "0.36.5",
114155
+ cliVersion: "0.36.6",
114144
114156
  projectFileUploadBatchSize: 32,
114145
114157
  documentRecords: {
114146
114158
  member: {
@@ -120742,7 +120754,7 @@ There is no --keep-current: preserving current semantic state defines flatten.
120742
120754
  async function main() {
120743
120755
  const args = parseArgs(process.argv.slice(2));
120744
120756
  if (args.command === "--version") {
120745
- console.log("0.36.5");
120757
+ console.log("0.36.6");
120746
120758
  return;
120747
120759
  }
120748
120760
  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.36.5",
3
+ "version": "0.36.6",
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.36.5 -->
12
+ <!-- reviewed-through-cli: 0.36.6 -->
13
13
 
14
14
  # Neo Compose CLI
15
15
 
@@ -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.36.5 -->
86
+ <!-- reviewed-through-cli: 0.36.6 -->
87
87
  ```
88
88
 
89
89
  The quoted version above is checked too, so this instruction cannot go stale