@almadar/core 7.7.1 → 7.9.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.
@@ -944,6 +944,15 @@ interface ResolvedTrait {
944
944
  ticks: ResolvedTraitTick[];
945
945
  listens: ResolvedTraitListener[];
946
946
  dataEntities: ResolvedTraitDataEntity[];
947
+ /**
948
+ * Atom-declared linked entity. The atom (e.g. std-pagination)
949
+ * declares which entity its `@entity.X` bindings resolve against
950
+ * (e.g. `PagedItem`). Distinct from the call-site rebind on
951
+ * `ResolvedTraitBinding.linkedEntity`, which a molecule may use
952
+ * to override the atom's default. Either side may be undefined
953
+ * for traits that don't bind any entity (pure interaction).
954
+ */
955
+ linkedEntity?: string;
947
956
  /**
948
957
  * The trait's DECLARED `config { }` schema (per-field
949
958
  * `{ type, default? }`). Drives `@config.X` substitution: each
@@ -1169,14 +1178,26 @@ interface BusEventSource {
1169
1178
  transition?: string;
1170
1179
  tick?: string;
1171
1180
  /**
1172
- * True when the orbital bridge is re-broadcasting a transition event
1173
- * on the bus so cross-trait `listens { X EVENT Y }` wiring fires on
1174
- * user-click flows. The originating trait's own `useUIEvents` plain-
1175
- * event listener checks this flag and skips otherwise the trait
1176
- * that just dispatched E would hear its own bridge echo and dispatch
1177
- * E again, infinitely.
1181
+ * True when the orbital bridge re-broadcasts an event onto the bus
1182
+ * (any source both echoes of the dispatched event and server-side
1183
+ * cascade emits via `(emit X)` / `fetch.emit.success`). Cross-trait
1184
+ * listeners filter on this flag so the click-time qualified emit
1185
+ * (which has no `fromBridge`) doesn't double-fire alongside the
1186
+ * post-server bridge confirmation. See `dispatched` for the narrower
1187
+ * "echo of the just-dispatched event" signal.
1178
1188
  */
1179
1189
  fromBridge?: boolean;
1190
+ /**
1191
+ * True ONLY for the bridge echo of the event the source trait JUST
1192
+ * dispatched (path 1 of useOrbitalBridge). The originating trait's
1193
+ * `useUIEvents` skips events with this flag to prevent the source
1194
+ * from re-dispatching its own bridge echo (infinite loop). Server-
1195
+ * side cascade emits (path 2) carry `fromBridge: true` but NOT
1196
+ * `dispatched`, so they reach the source trait's transition handler
1197
+ * — that's how a fetch's `emit.success` advances the trait's own
1198
+ * state machine (e.g. `loading -> browsing` on `BrowseItemLoaded`).
1199
+ */
1200
+ dispatched?: boolean;
1180
1201
  }
1181
1202
  /**
1182
1203
  * An event flowing on the bus.