@neocompose/cli 0.69.1 → 0.70.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,19 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.70.1] - 2026-10-06
4
+
5
+ - `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".
6
+ - A project file's `@settings(name: ...)` must end with its file's extension, for example `@settings(name: "ClinkingCoin1.mp3")` for `clinkingcoin1.mp3`. A pull on another machine rebuilds the file's path from that name. The symbol error now says the name needs that extension.
7
+ - Push and pull keep `@settings(name: ...)` on a renamed file, and a new file keeps the path you gave it. Before, the rewrite after a push dropped the name and rebuilt the path from it.
8
+
9
+ ## [0.70.0] - 2026-10-06
10
+
11
+ - `neo export` exports the working copy, local edits included, with no network. Unity sees an edit as soon as it's saved, before `neo push`. The export says whether it holds only the pulled head ("Clean") or how many local changes it includes ("Local"). A local export is marked in `metadata.localExport`; SDK 0.59.0 refuses player builds from it and keeps play-mode saves on disk instead of the server. A clean `neo export` or a push clears the mark. A local export still stops, writing nothing, on an error diagnostic or on a project file whose pulled bytes aren't on disk yet; run `neo pull` first.
12
+ - New declarations keep their ids across exports and into the push. `.neo/export.json` records the id each export gave a new declaration, keyed by file, kind and name rather than line, so inserting lines above it or exporting again changes nothing. `neo push` commits those same ids, so Unity saves made against a local export still resolve after the push. After a successful push, `neo push` re-exports into the Unity project if the last export was local.
13
+ - New migration files get a stable pending id from their path, so the id survives repeated exports.
14
+ - **Breaking:** `neo dev` runs `neo export` once and again after every saved change to source, `neo.json`, `.neo/state.json`, `Files/` or the Unity config asset. It no longer pulls or pushes: `--push` and the `p` key are gone, so run `neo pull` and `neo push` in another terminal. `s` prints status and `q` quits.
15
+ - Pull, push, branch, refresh, merge, resolve, init and export hold `.neo/workspace.lock` while they run, so `neo dev` and a command in another terminal never write the working copy at the same time. A command waits for the holder and says which command it's waiting for. A lock left by a process that no longer exists is taken over.
16
+
3
17
  ## [0.69.1] - 2026-10-06
4
18
 
5
19
  - `neo export` shows a spinner while it works, labeled with the current step: reading the pulled project, building the export, generating Unity types, writing changed files, and checking local changes.
package/README.md CHANGED
@@ -491,7 +491,7 @@ authorization boundary.
491
491
  | `diff [--json]` | Show semantic records, spans, digests, and upload intent. |
492
492
  | `push [--dry-run] [--accept-bump] [--no-verify]` | Validate or commit one atomic compare-and-swap transaction. |
493
493
  | `test [file-or-dir ...] [-t pattern]` | Compile the unpushed local candidate and run `*.spec.neo` tests. |
494
- | `dev [--push]` | Watch remote/local changes; pushing remains opt-in. |
494
+ | `dev [--unity-project <dir>]` | Run `neo export` after every local change; never pulls or pushes. |
495
495
  | `resolve --mine\|--theirs` | Resolve all current source/binary conflicts with one side. |
496
496
  | `script check\|compile\|eval` | Compile or preview NeoScript with project context; never commit writes. |
497
497
  | `dialogue dryrun <ref>` | Simulate a locally authored dialogue candidate. |
@@ -502,7 +502,7 @@ authorization boundary.
502
502
  | `release` | Cut, publish, archive, or restore releases. |
503
503
  | `channel` | Manage release channels. |
504
504
  | `history` | Inspect and deliberately rewrite retained history. |
505
- | `export [--unity-project <dir>]` | Write the pulled head into a Unity project, offline. |
505
+ | `export [--unity-project <dir>]` | Write the working copy, local edits included, into a Unity project. |
506
506
 
507
507
  With the deliberate exception of `neo loc`, content authoring goes through
508
508
  tracked native source and `neo push`. Localization commands can mutate