@neocompose/cli 0.59.4 → 0.60.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neocompose/cli",
3
- "version": "0.59.4",
3
+ "version": "0.60.1",
4
4
  "description": "Neo Compose native project-source CLI with bidirectional sync.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -31,11 +31,12 @@
31
31
  "publish:npm": "npm run prepublishOnly && set -a && . ./.env.prod && set +a && npm publish --ignore-scripts"
32
32
  },
33
33
  "engines": {
34
- "node": ">=20.0.0"
34
+ "node": ">=22.0.0"
35
35
  },
36
36
  "dependencies": {
37
37
  "@inquirer/prompts": "^8.5.2",
38
38
  "convex": "^1.45.0",
39
+ "fflate": "^0.8.3",
39
40
  "ignore": "^7.0.6",
40
41
  "valibot": "^1.4.2"
41
42
  },
@@ -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.59.4 -->
12
+ <!-- reviewed-through-cli: 0.60.1 -->
13
13
 
14
14
  # Neo Compose CLI
15
15
 
@@ -101,7 +101,7 @@ wrappers.
101
101
  The marker near the top of `SKILL.md` must exactly match the package version:
102
102
 
103
103
  ```html
104
- <!-- reviewed-through-cli: 0.59.4 -->
104
+ <!-- reviewed-through-cli: 0.60.1 -->
105
105
  ```
106
106
 
107
107
  The quoted version above is checked too, so this instruction cannot go stale
@@ -299,6 +299,12 @@ result download, and local result application. `startedMs` is relative to the
299
299
  CLI process and `durationMs` covers the named operation. Nested spans overlap;
300
300
  do not add all durations. Normal command JSON remains on stdout.
301
301
 
302
- Durable pushes submit compressed JSON directly to a Convex HTTP action and subscribe to completion with the scoped session's refreshing JWT. Bodies above 1 MiB and staged media use an internal Node action; requests beyond the direct transport's bounds use the existing server upload route. The CLI pins the deployment through the authenticated app origin before sending it a session token.
302
+ Each command opens one Convex websocket, authenticated with the scoped
303
+ session's refreshing JWT, and runs every query, mutation, and subscription over
304
+ it. Push sends compressed JSON through `clientCommits.commit` when the request
305
+ has no staged files and decodes to at most 512 KiB; otherwise it streams chunks
306
+ through `begin`, `appendChunks`, and `seal`, and subscribes to completion. The
307
+ CLI pins the deployment through the authenticated app origin before sending it
308
+ a session token.
303
309
  Results pin the workspace to that transaction's hash, so a concurrent later commit still
304
310
  requires a pull before another push.
@@ -367,3 +367,8 @@ neo migrate prune
367
367
 
368
368
  Run checks before migration execution. Review storage ownership and every write
369
369
  intent; do not assume an action body is writable merely because it compiled.
370
+
371
+ `neo migrate run` reads the project from the server and prepares its writes
372
+ locally, like push. If another commit lands while it runs, the run is refused:
373
+ run it again. `neo loc` writes work the same way: a write refused because
374
+ another commit landed is run again.