@neocompose/cli 0.73.1 → 0.74.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/CHANGELOG.md +22 -0
- package/dist/neo.mjs +689 -221
- package/dist/test-worker.mjs +442 -40
- package/package.json +1 -1
- package/skills/neocompose-cli/SKILL.md +1 -1
- package/skills/neocompose-cli/references/cli-development.md +7 -10
- package/skills/neocompose-cli/references/declarations-and-construction.md +6 -0
- package/skills/neocompose-cli/references/neoscript.md +15 -0
- package/skills/neocompose-cli/references/values-identities-and-references.md +4 -0
package/package.json
CHANGED
|
@@ -118,21 +118,18 @@ wrappers.
|
|
|
118
118
|
The marker near the top of `SKILL.md` must exactly match the package version:
|
|
119
119
|
|
|
120
120
|
```html
|
|
121
|
-
<!-- reviewed-through-cli: 0.
|
|
121
|
+
<!-- reviewed-through-cli: 0.74.0 -->
|
|
122
122
|
```
|
|
123
123
|
|
|
124
124
|
The quoted version above is checked too, so this instruction cannot go stale
|
|
125
125
|
while the skill advances.
|
|
126
126
|
|
|
127
|
-
For every CLI
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
Every version bump also gets a `CHANGELOG.md` entry, newest first, under a
|
|
134
|
-
`## [version] - date` heading. The same check grades it, so an undocumented
|
|
135
|
-
release fails alongside a stale marker.
|
|
127
|
+
For every CLI behavior change, audit the affected skill/references in the same
|
|
128
|
+
feature PR and add a unique `.changeset/*.md` release note. Leave versions,
|
|
129
|
+
changelogs, and these markers unchanged. `npm run version:packages` combines
|
|
130
|
+
fragments in a release PR and advances the markers after those feature reviews.
|
|
131
|
+
`npm run doctor` and package verification still check marker/version agreement
|
|
132
|
+
and the newest changelog entry. See `.changeset/README.md` in the repository.
|
|
136
133
|
|
|
137
134
|
Keep `agents/openai.yaml` and every directly linked reference inside the
|
|
138
135
|
published `skills/neocompose-cli/` tree. Keep the frontmatter limited to
|
|
@@ -440,3 +440,9 @@ Populated unordered member defaults, such as `@settings(kind: .Unordered)` with
|
|
|
440
440
|
`List<Entry> Entries = [new Entry()]`, are constructed by an initializer for
|
|
441
441
|
each instance. A declaration has no container value row to own unordered entries.
|
|
442
442
|
Nested unordered lists already have container rows and retain their stored values.
|
|
443
|
+
|
|
444
|
+
A lookup's declared class must be assignable to the entry class of its
|
|
445
|
+
`@settings(collection: Owner.Member)` collection. A subclass may narrow the
|
|
446
|
+
selection. Constructor arguments and member initializers must select compatible
|
|
447
|
+
targets too. An `NPC` lookup cannot select from `List<Quest>`, even when its
|
|
448
|
+
initializer is typed `NPC`; status reports the conflicting collection annotation.
|
|
@@ -559,6 +559,21 @@ receivers stay Session-only. Gameplay hosts dispatch after the write batch.
|
|
|
559
559
|
Authoring, replay, migration, and dialogue dry-run hosts retain wiring without
|
|
560
560
|
invoking callbacks.
|
|
561
561
|
|
|
562
|
+
Instance getters take the same syntax, for example
|
|
563
|
+
`this._quantity.Value.OnChanged += this.QuantityChanged`. A getter
|
|
564
|
+
subscription lives only in memory for the play session, so subscribe from a
|
|
565
|
+
function, effect, lifecycle hook, or dialogue action, never a constructor,
|
|
566
|
+
initializer, or migration. Subscribing reads the getter once. The SDK calls the
|
|
567
|
+
handler with a fresh result whenever something that read depended on changes,
|
|
568
|
+
even if the result is equal, and several changes before the next read call it
|
|
569
|
+
once. Static getters, `base.Value`, and `@listeners` can't observe a getter.
|
|
570
|
+
`neo test` dispatches getter subscriptions the same way, treating the test body
|
|
571
|
+
as the host: handlers run after each of its statements, so the next statement
|
|
572
|
+
sees their effects. A getter that reads through `Clone()` or a grid query can
|
|
573
|
+
run more often in `neo test` than in Unity: any write but its own handlers'
|
|
574
|
+
counts as a change. Other TypeScript hosts validate getter subscriptions and
|
|
575
|
+
never call the handler.
|
|
576
|
+
|
|
562
577
|
Persist wiring on the owning class value with named arguments, for example:
|
|
563
578
|
|
|
564
579
|
```neo
|
|
@@ -283,3 +283,7 @@ Pull/push compare server-verified SHA-256, not storage ETags. A divergent
|
|
|
283
283
|
binary keeps local bytes and writes the verified remote side under
|
|
284
284
|
`.neo/conflicts/files/<file-id>/`. A retained declaration with a missing binary
|
|
285
285
|
is an error; remove the declaration to request deletion.
|
|
286
|
+
|
|
287
|
+
New schema getters referenced by NeoFlow interpolation need no `@id`. Export and
|
|
288
|
+
`neo dev` assign the same identity to the declaration and its references, including
|
|
289
|
+
inherited getters. Repeated exports and the next push reuse the export identity ledger.
|