@neocompose/cli 0.81.0 → 0.81.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.81.0",
3
+ "version": "0.81.1",
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.81.0 -->
12
+ <!-- reviewed-through-cli: 0.81.1 -->
13
13
 
14
14
  # Neo Compose CLI
15
15
 
@@ -157,6 +157,14 @@ NeoVariant<ExampleObject> Down = new(
157
157
  deltas over existing instances. They may use inferred `new { ... }` or
158
158
  explicit `new Partial<T> { ... }`, and never pass arguments to or invoke
159
159
  `T`'s constructor—even when `T` has a required constructor.
160
+ - `Variants.X.Initialize()` runs `initialize`, then `overrides` and child
161
+ overrides. `ToVariant` runs `apply`, then `overrides` and child overrides; it
162
+ never reruns `initialize`. An instance remembers both: the variant that built
163
+ it and the variant last applied. The applied variant's overrides win where
164
+ they answer, `apply` writes stay as instance overrides, and
165
+ `ToVariant(Base)` removes the applied layer. On an object nested inside
166
+ another instance's construction, `ToVariant` applies the layers in place and
167
+ records nothing.
160
168
 
161
169
  Folders are records too, declared as their own globals and assigned per
162
170
  variant. Nesting is spelled in the path with `/`; intermediate segments are
@@ -129,7 +129,7 @@ wrappers.
129
129
  The marker near the top of `SKILL.md` must exactly match the package version:
130
130
 
131
131
  ```html
132
- <!-- reviewed-through-cli: 0.81.0 -->
132
+ <!-- reviewed-through-cli: 0.81.1 -->
133
133
  ```
134
134
 
135
135
  The quoted version above is checked too, so this instruction cannot go stale
@@ -35,8 +35,9 @@ names with readable ones. It keeps chosen names and rewrites references. Use
35
35
  declaration file grouping already recorded by the workspace, while
36
36
  declarations with no prior placement use the canonical per-declaration layout. Use `--force` only to discard local edits for the server
37
37
  version. Normal pulls persist a transaction cursor and fetch only changed
38
- records. Dictionary string keys, including Unicode, round-trip through full and
39
- incremental reads. If the remote head is unchanged, pull preserves the local source
38
+ records. Dictionary string keys, including Unicode, `_id`, `$name`, and `__proto__`,
39
+ round-trip through full and incremental reads. String keys may be empty or contain
40
+ whitespace; enum keys must name a live enum option. If the remote head is unchanged, pull preserves the local source
40
41
  without compiling it; use `neo status` to inspect local edits and diagnostics.
41
42
  Pull ignores records whose hashes already match the saved server baseline,
42
43
  including echoes of this checkout's last push, and advances its cursor without
@@ -278,11 +278,14 @@ rows stay reachable through the creation data that already named them.
278
278
 
279
279
  Defaulted members may be added without recreating existing instances, including
280
280
  instances whose sparse arguments are retained only as constructor data.
281
- A construction whose durable constructor arguments changed, whose
282
- class changed, or which predates a required constructor parameter fails with
283
- `construction-arguments-conflict` instead of silently replaying a different
284
- recipe. Edit members supported by the recorded construction, or delete and
285
- recreate the value.
281
+ Source is authoritative for a construction: editing its constructor arguments,
282
+ including a static's, rebuilds the instance in place on push. The value keeps
283
+ its ID, rows at unchanged positions keep theirs, added entries create rows,
284
+ removed entries delete them, and the stored creation data records the new
285
+ arguments. Overrides the rebuilt construction no longer produces are deleted,
286
+ so keep them in the construction's `{ ... }` block. A construction whose class
287
+ changed fails with `construction-arguments-conflict`; delete and recreate the
288
+ value to change its class.
286
289
 
287
290
  Write main-locale text directly in localizable string initializers. Pull/lower
288
291
  retargets only the edited assignment. Equal primary-locale text on the same