@neocompose/cli 0.9.2 → 0.9.4

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
@@ -7,6 +7,20 @@
7
7
  - Document the final relation-only world layer-link contract and keep the
8
8
  format-4 Hello World corpus free of the retired value-side binding field.
9
9
 
10
+ ## [0.9.4] - 2026-07-25
11
+
12
+ ### Fixed
13
+
14
+ - Preserve provisional list-item subtree identities when canonical source
15
+ reorders an unordered list during trusted server verification.
16
+
17
+ ## [0.9.3] - 2026-07-25
18
+
19
+ ### Fixed
20
+
21
+ - Re-lower provisional list rows as new value seeds during trusted source
22
+ verification instead of requiring them to exist in pulled state.
23
+
10
24
  ## [0.9.2] - 2026-07-24
11
25
 
12
26
  ### Fixed
package/dist/neo.mjs CHANGED
@@ -40297,11 +40297,43 @@ var init_dialogue_db_response_types = __esm({
40297
40297
  }
40298
40298
  });
40299
40299
 
40300
+ // ../src/common/benchmark.ts
40301
+ var init_benchmark = __esm({
40302
+ "../src/common/benchmark.ts"() {
40303
+ "use strict";
40304
+ }
40305
+ });
40306
+
40307
+ // ../src/common/error-message.ts
40308
+ var init_error_message = __esm({
40309
+ "../src/common/error-message.ts"() {
40310
+ "use strict";
40311
+ }
40312
+ });
40313
+
40314
+ // ../src/common/retree-input-diagnostics.ts
40315
+ var init_retree_input_diagnostics = __esm({
40316
+ "../src/common/retree-input-diagnostics.ts"() {
40317
+ "use strict";
40318
+ }
40319
+ });
40320
+
40321
+ // ../src/common/index.ts
40322
+ var init_common = __esm({
40323
+ "../src/common/index.ts"() {
40324
+ "use strict";
40325
+ init_benchmark();
40326
+ init_error_message();
40327
+ init_retree_input_diagnostics();
40328
+ }
40329
+ });
40330
+
40300
40331
  // ../src/models/dialogue/dialogue-triggering.ts
40301
40332
  var DEFAULT_RECENCY_HALF_LIFE_SECONDS;
40302
40333
  var init_dialogue_triggering = __esm({
40303
40334
  "../src/models/dialogue/dialogue-triggering.ts"() {
40304
40335
  "use strict";
40336
+ init_common();
40305
40337
  init_dialogue_group_types();
40306
40338
  DEFAULT_RECENCY_HALF_LIFE_SECONDS = 60 * 60 * 24;
40307
40339
  }
@@ -43239,6 +43271,20 @@ function lowerListValue(context, member, expression, base, source, inheritedEnvi
43239
43271
  continue;
43240
43272
  }
43241
43273
  const itemId = annotatedItemId;
43274
+ if (isPendingId(itemId) && context.state[`value:${itemId}`] === void 0) {
43275
+ ids.push(
43276
+ lowerPendingListItem(
43277
+ context,
43278
+ entryMember,
43279
+ element,
43280
+ source,
43281
+ `${String(base.id)}[${index}]`,
43282
+ member.listKind === "unordered" ? stringOrNull(base.id) : void 0,
43283
+ environment
43284
+ )
43285
+ );
43286
+ continue;
43287
+ }
43242
43288
  const child = valueBase(context, itemId);
43243
43289
  if (member.listKind === "unordered" && child.containerId !== base.id) {
43244
43290
  throw new Error(
@@ -43257,12 +43303,16 @@ function lowerListValue(context, member, expression, base, source, inheritedEnvi
43257
43303
  function lowerPendingListItem(context, member, expression, source, path, containerId, environment) {
43258
43304
  const rows = /* @__PURE__ */ new Map();
43259
43305
  const localizedTexts = /* @__PURE__ */ new Map();
43260
- const valueId = lowerSeedChild(
43306
+ const annotatedId = annotatedValue(expression).id;
43307
+ const valueId = annotatedId ?? pendingNestedValueId(source, path);
43308
+ const stablePath = isPendingId(valueId) ? valueId : path;
43309
+ lowerSeedRow(
43261
43310
  context,
43262
43311
  member,
43263
43312
  expression,
43264
43313
  source,
43265
- path,
43314
+ valueId,
43315
+ stablePath,
43266
43316
  rows,
43267
43317
  localizedTexts,
43268
43318
  containerId ?? void 0,
@@ -43868,9 +43918,13 @@ function pendingValueId(binding, name) {
43868
43918
  return `__pending__:value:${encodeURIComponent(binding.source.uri)}:${binding.source.range.start.line}:${binding.source.range.start.character}:${encodeURIComponent(name)}`;
43869
43919
  }
43870
43920
  function pendingNestedValueId(binding, path) {
43921
+ if (path.startsWith("__pending__:value:")) return path;
43871
43922
  return `__pending__:value:${encodeURIComponent(binding.source.uri)}:${binding.source.range.start.line}:${binding.source.range.start.character}:${encodeURIComponent(path)}`;
43872
43923
  }
43873
43924
  function pendingLocalizedTextId(binding, path) {
43925
+ if (path.startsWith("__pending__:value:")) {
43926
+ return `__pending__:localized-text:${path.slice("__pending__:value:".length)}`;
43927
+ }
43874
43928
  return `__pending__:localized-text:${encodeURIComponent(binding.source.uri)}:${binding.source.range.start.line}:${binding.source.range.start.character}:${encodeURIComponent(path)}`;
43875
43929
  }
43876
43930
  function classMemberByName(context, classId, name) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neocompose/cli",
3
- "version": "0.9.2",
3
+ "version": "0.9.4",
4
4
  "description": "Neo Compose native project-source CLI with bidirectional sync.",
5
5
  "license": "MIT",
6
6
  "type": "module",