@neocompose/cli 0.70.1 → 0.70.2

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.70.2] - 2026-10-06
4
+
5
+ - After `neo push` creates, replaces or moves a project file, its committed bytes become the file's merge base at its new path, as a pull's would. Before, the re-export after the push failed for every new file with "the pull recorded no bytes for it", and for a moved file with "missing". Either failure left the Unity project marked as a local export.
6
+
3
7
  ## [0.70.1] - 2026-10-06
4
8
 
5
9
  - `neo push` can upload a project file renamed with `@settings(name: ...)`. It used to stage the upload under the file's basename, so the commit failed with "Staged project file … did not match its source name".
package/dist/neo.mjs CHANGED
@@ -31811,7 +31811,7 @@ var init_registry = __esm({
31811
31811
  "../packages/manifest/schema-contract/registry.mjs"() {
31812
31812
  "use strict";
31813
31813
  PROJECT_SCHEMA_CONTRACT = Object.freeze({
31814
- cliVersion: "0.70.1",
31814
+ cliVersion: "0.70.2",
31815
31815
  projectFileUploadBatchSize: 32,
31816
31816
  documentRecords: {
31817
31817
  member: {
@@ -140070,8 +140070,8 @@ async function download(data, fileId, client, workspace) {
140070
140070
  }
140071
140071
  return { bytes: response.bytes, sha256: computed };
140072
140072
  }
140073
- function committedProjectBinaryStateV4(previous, data) {
140074
- return isObjectRecord2(data) ? binaryState(previous.path, readSha256(data), data) : previous;
140073
+ function committedProjectBinaryStateV4(path, data) {
140074
+ return binaryState(path, readSha256(data), isObjectRecord2(data) ? data : {});
140075
140075
  }
140076
140076
  function binaryState(path, sha2562, data) {
140077
140077
  return {
@@ -158782,6 +158782,18 @@ ${blockingErrors.map((error) => ` ${error.message}`).join("\n")}`
158782
158782
  data: local.fullData
158783
158783
  });
158784
158784
  }
158785
+ for (const binary of localStatus.binaryFiles ?? []) {
158786
+ const key = recordStateKey(
158787
+ "project-file",
158788
+ rewriteAssignedString(binary.fileId, replacements)
158789
+ );
158790
+ const record6 = nextRecords[key];
158791
+ if (record6 === void 0 || !changedKeys.has(key)) continue;
158792
+ nextRecords[key] = {
158793
+ ...record6,
158794
+ projectBinary: committedProjectBinaryStateV4(binary.path, record6.data)
158795
+ };
158796
+ }
158785
158797
  const previousState = workspace.state;
158786
158798
  workspace.state = {
158787
158799
  ...previousState,
@@ -159014,14 +159026,13 @@ function foldChangedRecords(previous, changedRecords) {
159014
159026
  `Changed record "${key}" response is missing its snapshot content hash.`
159015
159027
  );
159016
159028
  }
159017
- const projectBinary = records2[key]?.projectBinary;
159018
159029
  records2[key] = {
159019
159030
  recordKind,
159020
159031
  recordId,
159021
159032
  contentHash: snapshot.contentHash,
159022
159033
  data: changed.data,
159023
159034
  file: records2[key]?.file,
159024
- projectBinary: projectBinary && committedProjectBinaryStateV4(projectBinary, changed.data)
159035
+ projectBinary: records2[key]?.projectBinary
159025
159036
  };
159026
159037
  }
159027
159038
  return records2;
@@ -181274,7 +181285,7 @@ There is no --keep-current: preserving current semantic state defines flatten.
181274
181285
  async function main() {
181275
181286
  const args = parseArgs(process.argv.slice(2));
181276
181287
  if (args.command === "--version") {
181277
- console.log("0.70.1");
181288
+ console.log("0.70.2");
181278
181289
  return;
181279
181290
  }
181280
181291
  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.70.1",
3
+ "version": "0.70.2",
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.70.1 -->
12
+ <!-- reviewed-through-cli: 0.70.2 -->
13
13
 
14
14
  # Neo Compose CLI
15
15
 
@@ -110,7 +110,7 @@ wrappers.
110
110
  The marker near the top of `SKILL.md` must exactly match the package version:
111
111
 
112
112
  ```html
113
- <!-- reviewed-through-cli: 0.70.1 -->
113
+ <!-- reviewed-through-cli: 0.70.2 -->
114
114
  ```
115
115
 
116
116
  The quoted version above is checked too, so this instruction cannot go stale