@neocompose/cli 0.67.4 → 0.68.0

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.67.4",
3
+ "version": "0.68.0",
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.67.4 -->
12
+ <!-- reviewed-through-cli: 0.68.0 -->
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.67.4 -->
113
+ <!-- reviewed-through-cli: 0.68.0 -->
114
114
  ```
115
115
 
116
116
  The quoted version above is checked too, so this instruction cannot go stale
@@ -439,3 +439,25 @@ run it again. `neo loc` writes work the same way: a write refused because
439
439
  another commit landed is run again.
440
440
 
441
441
  VS Code rename follows override families and class constructors, resolves contextual enum options such as `.Success`, and keeps local-variable renames scoped to their declaration. Assigned IDs are not required for these refactorings.
442
+
443
+ ## Member change listeners
444
+
445
+ Subscribe to a writable stored instance member with `owner.Field.OnChanged +=
446
+ receiver.Handler`; use `-=` to remove the same receiver/handler pair. Handlers
447
+ are noncapturing, return void, and accept the field's type. Bindings to Session
448
+ receivers stay Session-only. Gameplay hosts dispatch after the write batch.
449
+ Authoring, replay, migration, and dialogue dry-run hosts retain wiring without
450
+ invoking callbacks.
451
+
452
+ Persist wiring on the owning class value with named arguments, for example:
453
+
454
+ ```neo
455
+ @listeners(Count: [root.Save.Tracker.CountChanged], Label: [root.Save.Tracker.LabelChanged])
456
+ new Counter()
457
+ ```
458
+
459
+ Every supplied argument must name a writable stored field. Names are contextual
460
+ and may appear in any order. Use the existing nested positional override for a
461
+ virtual owner; changing its listeners alone must not add a value override.
462
+ Omitting a field inherits its listeners. An empty array suppresses inherited
463
+ listeners and disappears when there is no inherited wiring to suppress.