@zlink-systems/framework 0.26.0 → 0.28.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.
Files changed (561) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/contracts/Actors/ZLinkActorClient.d.ts +1 -1
  3. package/dist/contracts/Channels/Calls.d.ts +1 -1
  4. package/dist/contracts/Common/CoreTypes.d.ts +6 -0
  5. package/dist/contracts/Common/CoreTypes.js +7 -0
  6. package/dist/contracts/Common/index.d.ts +1 -1
  7. package/dist/contracts/Common/index.js +0 -1
  8. package/dist/contracts/Configuration/Builders.d.ts +0 -1
  9. package/dist/contracts/Configuration/Configs.d.ts +0 -1
  10. package/dist/contracts/Configuration/InternalDefaults.d.ts +8 -0
  11. package/dist/contracts/Configuration/InternalDefaults.js +9 -1
  12. package/dist/contracts/Configuration/Registration.d.ts +13 -2
  13. package/dist/contracts/Configuration/Registration.js +58 -36
  14. package/dist/contracts/Configuration/RegistrationBuilderPolicy.d.ts +13 -1
  15. package/dist/contracts/Configuration/RegistrationBuilderPolicy.js +38 -1
  16. package/dist/contracts/Configuration/RegistrationBuilders.d.ts +2 -3
  17. package/dist/contracts/Configuration/RegistrationBuilders.js +27 -32
  18. package/dist/contracts/Configuration/RegistrationTypes.d.ts +1 -5
  19. package/dist/contracts/Configuration/RegistrationValidators.js +15 -14
  20. package/dist/contracts/Configuration/TimerRegistrationValidator.js +3 -2
  21. package/dist/contracts/Dispatch/ZLinkDispatchOptions.d.ts +1 -1
  22. package/dist/contracts/Handlers/JsonContract.js +10 -4
  23. package/dist/contracts/Locations/Authority.d.ts +1 -1
  24. package/dist/contracts/Locations/Authority.js +3 -2
  25. package/dist/contracts/Locations/Options.js +1 -1
  26. package/dist/contracts/Locations/Stores.d.ts +12 -0
  27. package/dist/contracts/Locations/Stores.js +9 -0
  28. package/dist/contracts/Spots/Contracts.d.ts +2 -2
  29. package/dist/contracts/Streams/BoundSessionContracts.d.ts +1 -1
  30. package/dist/contracts/Streams/IZLinkSession.d.ts +2 -3
  31. package/dist/contracts/Streams/IZLinkSessionActor.d.ts +2 -2
  32. package/dist/internal.d.ts +4 -0
  33. package/dist/internal.js +15 -1
  34. package/dist/nest-integration.d.ts +4 -2
  35. package/dist/nest-integration.js +14 -4
  36. package/dist/runtime/abort.d.ts +1 -0
  37. package/dist/runtime/abort.js +8 -5
  38. package/dist/runtime/activation-admission.d.ts +1 -2
  39. package/dist/runtime/activation-admission.js +2 -6
  40. package/dist/runtime/actors/actor-authority-payload-codec.d.ts +1 -2
  41. package/dist/runtime/actors/actor-authority-payload-codec.js +34 -18
  42. package/dist/runtime/actors/actor-client.d.ts +2 -2
  43. package/dist/runtime/actors/actor-client.js +49 -153
  44. package/dist/runtime/actors/actor-context.d.ts +3 -5
  45. package/dist/runtime/actors/actor-context.js +13 -11
  46. package/dist/runtime/actors/actor-handoff.d.ts +4 -4
  47. package/dist/runtime/actors/actor-handoff.js +8 -8
  48. package/dist/runtime/actors/actor-lifecycle-snapshot.js +2 -1
  49. package/dist/runtime/actors/actor-local-native-join.d.ts +11 -6
  50. package/dist/runtime/actors/actor-local-native-join.js +83 -105
  51. package/dist/runtime/actors/actor-native-lookup.js +2 -8
  52. package/dist/runtime/actors/actor-packet-relay-wire.d.ts +3 -3
  53. package/dist/runtime/actors/actor-packet-relay-wire.js +5 -3
  54. package/dist/runtime/actors/actor-remote-joiner.d.ts +1 -1
  55. package/dist/runtime/actors/actor-remote-joiner.js +5 -9
  56. package/dist/runtime/actors/actor-remote-wire.js +5 -3
  57. package/dist/runtime/actors/actor-request-deadline.d.ts +1 -0
  58. package/dist/runtime/actors/actor-request-deadline.js +6 -0
  59. package/dist/runtime/actors/actor-retry-delay.js +2 -1
  60. package/dist/runtime/actors/actor-routed-join-transport.d.ts +2 -3
  61. package/dist/runtime/actors/actor-runtime-state.d.ts +9 -21
  62. package/dist/runtime/actors/actor-runtime-state.js +70 -187
  63. package/dist/runtime/actors/bound-session-wire.js +2 -7
  64. package/dist/runtime/actors/deferred-join-completion.d.ts +11 -6
  65. package/dist/runtime/actors/deferred-join-completion.js +1 -0
  66. package/dist/runtime/actors/index.d.ts +9 -7
  67. package/dist/runtime/actors/index.js +87 -69
  68. package/dist/runtime/actors/spot-actor-dispatch.d.ts +3 -3
  69. package/dist/runtime/actors/spot-actor-dispatch.js +25 -10
  70. package/dist/runtime/actors/transferred-actor-rollback.d.ts +3 -5
  71. package/dist/runtime/actors/transferred-actor-rollback.js +9 -42
  72. package/dist/runtime/admission.d.ts +2 -0
  73. package/dist/runtime/admission.js +7 -1
  74. package/dist/runtime/application-jobs/application-job-queue-scope.d.ts +1 -1
  75. package/dist/runtime/application-jobs/application-job-queue-scope.js +1 -1
  76. package/dist/runtime/backend/contracts/index.d.ts +7 -27
  77. package/dist/runtime/backend/mesh-actor-session-node-adapter.js +1 -17
  78. package/dist/runtime/backend/mesh-dispatch-pump.d.ts +1 -2
  79. package/dist/runtime/backend/mesh-dispatch-pump.js +95 -107
  80. package/dist/runtime/backend/node/node-backend-adapter-support.d.ts +3 -1
  81. package/dist/runtime/backend/node/node-backend-adapter-support.js +51 -10
  82. package/dist/runtime/backend/node/node-dealer-channel-client-transport.d.ts +1 -1
  83. package/dist/runtime/backend/node/node-dealer-channel-client-transport.js +1 -2
  84. package/dist/runtime/backend/node/node-event-loop-poller.d.ts +2 -2
  85. package/dist/runtime/backend/node/node-event-loop-poller.js +6 -7
  86. package/dist/runtime/backend/node/node-monitor-backend-adapter.js +1 -0
  87. package/dist/runtime/backend/node/node-raw-binding-port.js +41 -34
  88. package/dist/runtime/backend/node/node-raw-mesh-backend.d.ts +14 -15
  89. package/dist/runtime/backend/node/node-raw-mesh-backend.js +146 -118
  90. package/dist/runtime/backend/node/node-socket-backend-adapter.js +4 -3
  91. package/dist/runtime/backend/raw-binding-port.d.ts +1 -1
  92. package/dist/runtime/backend/runtime-values.d.ts +4 -1
  93. package/dist/runtime/backend/runtime-values.js +2 -0
  94. package/dist/runtime/channels/channel-clients.d.ts +20 -8
  95. package/dist/runtime/channels/channel-clients.js +73 -59
  96. package/dist/runtime/channels/channel-envelope-inspection.js +2 -1
  97. package/dist/runtime/channels/channel-envelope.d.ts +1 -1
  98. package/dist/runtime/channels/channel-envelope.js +51 -39
  99. package/dist/runtime/channels/channel-outbound-operations.d.ts +5 -2
  100. package/dist/runtime/channels/channel-outbound-operations.js +25 -42
  101. package/dist/runtime/channels/channel-receive-loops.d.ts +8 -3
  102. package/dist/runtime/channels/channel-receive-loops.js +27 -6
  103. package/dist/runtime/channels/channel-runtime-lifecycle.d.ts +12 -1
  104. package/dist/runtime/channels/channel-runtime-lifecycle.js +48 -28
  105. package/dist/runtime/channels/channel-runtime-manager.d.ts +4 -4
  106. package/dist/runtime/channels/channel-runtime-manager.js +13 -10
  107. package/dist/runtime/channels/channel-socket-options.js +3 -12
  108. package/dist/runtime/channels/channel-socket-registry.d.ts +14 -29
  109. package/dist/runtime/channels/channel-socket-registry.js +240 -177
  110. package/dist/runtime/channels/channel-transports.d.ts +21 -31
  111. package/dist/runtime/channels/channel-transports.js +80 -62
  112. package/dist/runtime/channels/client-server-location-runtime.d.ts +1 -1
  113. package/dist/runtime/channels/client-server-location-runtime.js +10 -11
  114. package/dist/runtime/channels/client-server-service-wire.d.ts +7 -2
  115. package/dist/runtime/channels/client-server-service-wire.js +32 -11
  116. package/dist/runtime/channels/dispatch-error-reporter.d.ts +1 -2
  117. package/dist/runtime/channels/dispatch-error-reporter.js +2 -1
  118. package/dist/runtime/channels/fanout-location-runtime.d.ts +16 -3
  119. package/dist/runtime/channels/fanout-location-runtime.js +130 -72
  120. package/dist/runtime/channels/local-spot-route-transport.d.ts +1 -1
  121. package/dist/runtime/channels/local-spot-route-transport.js +1 -3
  122. package/dist/runtime/channels/router-socket-spot-route-transport.d.ts +1 -1
  123. package/dist/runtime/channels/router-socket-spot-route-transport.js +2 -2
  124. package/dist/runtime/channels/source-spot-router.d.ts +1 -1
  125. package/dist/runtime/channels/source-spot-router.js +2 -4
  126. package/dist/runtime/channels/spot-direct-envelope.d.ts +1 -0
  127. package/dist/runtime/channels/spot-direct-envelope.js +4 -3
  128. package/dist/runtime/channels/spot-node-route-transport.d.ts +1 -1
  129. package/dist/runtime/channels/spot-node-route-transport.js +5 -5
  130. package/dist/runtime/channels/spot-route-bridge-transport.d.ts +1 -1
  131. package/dist/runtime/channels/spot-route-bridge-transport.js +2 -2
  132. package/dist/runtime/channels/spot-route-dispatch-strategy.d.ts +2 -4
  133. package/dist/runtime/channels/spot-route-dispatch-strategy.js +11 -12
  134. package/dist/runtime/diagnostics/diagnostic-text.d.ts +2 -0
  135. package/dist/runtime/diagnostics/diagnostic-text.js +7 -0
  136. package/dist/runtime/diagnostics/dispatch-error-details.d.ts +3 -0
  137. package/dist/runtime/diagnostics/dispatch-error-details.js +30 -2
  138. package/dist/runtime/diagnostics/flow-context.d.ts +6 -0
  139. package/dist/runtime/diagnostics/flow-context.js +16 -2
  140. package/dist/runtime/diagnostics/index.d.ts +4 -2
  141. package/dist/runtime/diagnostics/index.js +14 -4
  142. package/dist/runtime/diagnostics/message-flow.d.ts +1 -1
  143. package/dist/runtime/diagnostics/message-flow.js +10 -19
  144. package/dist/runtime/diagnostics/runtime-metrics.d.ts +94 -31
  145. package/dist/runtime/diagnostics/runtime-metrics.js +168 -105
  146. package/dist/runtime/diagnostics/runtime-observation-queue.js +3 -2
  147. package/dist/runtime/diagnostics/topology-runtime-projections.d.ts +2 -4
  148. package/dist/runtime/diagnostics/topology-runtime-projections.js +135 -154
  149. package/dist/runtime/disposal.d.ts +5 -0
  150. package/dist/runtime/disposal.js +22 -0
  151. package/dist/runtime/execution/index.d.ts +12 -9
  152. package/dist/runtime/execution/index.js +58 -14
  153. package/dist/runtime/execution/serial-execution-queue.d.ts +8 -2
  154. package/dist/runtime/execution/serial-execution-queue.js +54 -15
  155. package/dist/runtime/execution/state-lane.d.ts +8 -1
  156. package/dist/runtime/execution/state-lane.js +118 -3
  157. package/dist/runtime/foundation/actor-join-recovery-codec.d.ts +3 -0
  158. package/dist/runtime/foundation/actor-join-recovery-codec.js +15 -11
  159. package/dist/runtime/foundation/event-loop-resources.d.ts +2 -24
  160. package/dist/runtime/foundation/event-loop-resources.js +6 -119
  161. package/dist/runtime/foundation/operation-identity.d.ts +2 -0
  162. package/dist/runtime/foundation/operation-identity.js +9 -5
  163. package/dist/runtime/foundation/operation-registry.d.ts +5 -7
  164. package/dist/runtime/foundation/operation-registry.js +34 -44
  165. package/dist/runtime/foundation/raw-service-mesh-runtime.d.ts +8 -5
  166. package/dist/runtime/foundation/raw-service-mesh-runtime.js +79 -94
  167. package/dist/runtime/foundation/runtime-state-projections.d.ts +3 -1
  168. package/dist/runtime/foundation/runtime-state-projections.js +8 -0
  169. package/dist/runtime/foundation/service-authority-payload-codec.js +22 -12
  170. package/dist/runtime/foundation/service-discovery-registry.d.ts +4 -0
  171. package/dist/runtime/foundation/service-discovery-registry.js +22 -3
  172. package/dist/runtime/foundation/service-instance-activation-recovery-codec.js +8 -4
  173. package/dist/runtime/foundation/service-liveness-registry.js +2 -1
  174. package/dist/runtime/foundation/service-maintenance-runtime.d.ts +0 -1
  175. package/dist/runtime/foundation/service-maintenance-runtime.js +0 -6
  176. package/dist/runtime/foundation/service-metadata-codec.js +3 -3
  177. package/dist/runtime/foundation/service-relocation-aggregate-committer.d.ts +2 -5
  178. package/dist/runtime/foundation/service-relocation-aggregate-committer.js +1 -48
  179. package/dist/runtime/foundation/service-relocation-object-owner.js +3 -2
  180. package/dist/runtime/foundation/service-relocation-runtime.js +43 -32
  181. package/dist/runtime/foundation/service-runtime-contracts.d.ts +40 -8
  182. package/dist/runtime/foundation/service-runtime-contracts.js +25 -1
  183. package/dist/runtime/foundation/service-session-binding-ingress-port.d.ts +0 -12
  184. package/dist/runtime/foundation/service-stateful-registry.d.ts +2 -0
  185. package/dist/runtime/foundation/service-stateful-registry.js +10 -2
  186. package/dist/runtime/foundation/service-stateful-runtime.d.ts +26 -25
  187. package/dist/runtime/foundation/service-stateful-runtime.js +217 -204
  188. package/dist/runtime/foundation/service-stateful-wire-codec.d.ts +3 -3
  189. package/dist/runtime/foundation/service-stateful-wire-codec.js +89 -55
  190. package/dist/runtime/foundation/service-topology-registry.d.ts +0 -1
  191. package/dist/runtime/foundation/service-topology-registry.js +17 -32
  192. package/dist/runtime/foundation/service-wire-binary-primitives.d.ts +5 -0
  193. package/dist/runtime/foundation/service-wire-binary-primitives.js +6 -0
  194. package/dist/runtime/foundation/service-wire-codec.js +10 -8
  195. package/dist/runtime/foundation/service-wire-constants.generated.d.ts +1 -0
  196. package/dist/runtime/foundation/service-wire-constants.generated.js +2 -1
  197. package/dist/runtime/foundation/service-wire-m6a-codec.d.ts +2 -0
  198. package/dist/runtime/foundation/service-wire-m6a-codec.js +23 -13
  199. package/dist/runtime/framework-errors-internal.d.ts +2 -1
  200. package/dist/runtime/framework-errors-internal.js +343 -122
  201. package/dist/runtime/handlers/handler-instance-scope.d.ts +3 -1
  202. package/dist/runtime/handlers/handler-instance-scope.js +61 -74
  203. package/dist/runtime/host/actor-packet-relay.d.ts +11 -8
  204. package/dist/runtime/host/actor-packet-relay.js +54 -99
  205. package/dist/runtime/host/actor-placement-coordinator.js +7 -5
  206. package/dist/runtime/host/actor-runtime-options-factory.d.ts +2 -0
  207. package/dist/runtime/host/actor-runtime-options-factory.js +17 -4
  208. package/dist/runtime/host/actor-transfer-runtime.d.ts +16 -18
  209. package/dist/runtime/host/actor-transfer-runtime.js +143 -176
  210. package/dist/runtime/host/application-job-queue.js +16 -33
  211. package/dist/runtime/host/bound-session-relay.js +1 -1
  212. package/dist/runtime/host/channel-runtime-options-factory.js +1 -1
  213. package/dist/runtime/host/index.d.ts +14 -13
  214. package/dist/runtime/host/index.js +190 -171
  215. package/dist/runtime/host/instance-activation-authority.d.ts +2 -3
  216. package/dist/runtime/host/instance-activation-authority.js +17 -45
  217. package/dist/runtime/host/location-runtime-owner.d.ts +1 -1
  218. package/dist/runtime/host/location-runtime-owner.js +2 -2
  219. package/dist/runtime/host/remote-actor-join-receiver.d.ts +2 -2
  220. package/dist/runtime/host/remote-actor-join-receiver.js +1 -14
  221. package/dist/runtime/host/remote-actor-packet-target-store.d.ts +3 -2
  222. package/dist/runtime/host/remote-actor-packet-target-store.js +8 -47
  223. package/dist/runtime/host/remote-bound-session-relay.d.ts +2 -3
  224. package/dist/runtime/host/remote-bound-session-relay.js +15 -28
  225. package/dist/runtime/host/route-mesh-runtime.d.ts +13 -11
  226. package/dist/runtime/host/route-mesh-runtime.js +171 -252
  227. package/dist/runtime/host/runtime-shutdown.d.ts +2 -0
  228. package/dist/runtime/host/runtime-shutdown.js +18 -21
  229. package/dist/runtime/host/service-relocation-control.js +6 -1
  230. package/dist/runtime/host/service-relocation-host-runtime.d.ts +21 -30
  231. package/dist/runtime/host/service-relocation-host-runtime.js +508 -416
  232. package/dist/runtime/host/spot-address-transport.d.ts +3 -12
  233. package/dist/runtime/host/spot-address-transport.js +78 -220
  234. package/dist/runtime/host/spot-node-runtime-options-factory.d.ts +1 -1
  235. package/dist/runtime/host/spot-node-runtime-options-factory.js +3 -2
  236. package/dist/runtime/host/spot-runtime-options-factory.d.ts +4 -10
  237. package/dist/runtime/host/spot-runtime-options-factory.js +50 -14
  238. package/dist/runtime/host/user-spot-creation-coordinator.d.ts +3 -3
  239. package/dist/runtime/host/user-spot-creation-coordinator.js +11 -8
  240. package/dist/runtime/locations/aggregate-inventory-store.js +13 -10
  241. package/dist/runtime/locations/authority-key-codec.js +4 -3
  242. package/dist/runtime/locations/auto-connect-reconciler.d.ts +4 -0
  243. package/dist/runtime/locations/auto-connect-reconciler.js +37 -25
  244. package/dist/runtime/locations/creation-operation-id.js +6 -4
  245. package/dist/runtime/locations/domain-store-contract.d.ts +3 -3
  246. package/dist/runtime/locations/in-memory-authority-store.js +31 -15
  247. package/dist/runtime/locations/in-memory-location-store.d.ts +2 -2
  248. package/dist/runtime/locations/in-memory-location-store.js +17 -14
  249. package/dist/runtime/locations/in-memory-provider-location-store.d.ts +1 -0
  250. package/dist/runtime/locations/in-memory-provider-location-store.js +72 -22
  251. package/dist/runtime/locations/key-codec.js +3 -2
  252. package/dist/runtime/locations/lease-tracker.d.ts +3 -5
  253. package/dist/runtime/locations/lease-tracker.js +7 -11
  254. package/dist/runtime/locations/lifecycle.d.ts +4 -9
  255. package/dist/runtime/locations/lifecycle.js +2 -31
  256. package/dist/runtime/locations/location-store-failure.d.ts +2 -0
  257. package/dist/runtime/locations/location-store-failure.js +7 -0
  258. package/dist/runtime/locations/location-store-pages.d.ts +3 -0
  259. package/dist/runtime/locations/location-store-pages.js +13 -0
  260. package/dist/runtime/locations/location-store-repository.d.ts +5 -7
  261. package/dist/runtime/locations/location-store-repository.js +309 -336
  262. package/dist/runtime/locations/relocation-blob.js +18 -5
  263. package/dist/runtime/locations/resolvers.d.ts +5 -5
  264. package/dist/runtime/locations/resolvers.js +37 -28
  265. package/dist/runtime/locations/runtime.d.ts +5 -4
  266. package/dist/runtime/locations/runtime.js +123 -92
  267. package/dist/runtime/locations/spot-location-claims.d.ts +6 -0
  268. package/dist/runtime/locations/spot-location-claims.js +42 -1
  269. package/dist/runtime/messaging/payload-codec.js +26 -20
  270. package/dist/runtime/messaging/request-deadline.d.ts +3 -0
  271. package/dist/runtime/messaging/request-deadline.js +39 -0
  272. package/dist/runtime/messaging/submission-result.d.ts +4 -0
  273. package/dist/runtime/messaging/submission-result.js +56 -1
  274. package/dist/runtime/protocol/service_wire_codec.generated.d.ts +1 -0
  275. package/dist/runtime/protocol/service_wire_codec.generated.js +12 -7
  276. package/dist/runtime/spots/formal-remote-actor-transfer-registry.d.ts +4 -1
  277. package/dist/runtime/spots/index.d.ts +14 -20
  278. package/dist/runtime/spots/index.js +302 -176
  279. package/dist/runtime/spots/spot-activation-registry.d.ts +3 -5
  280. package/dist/runtime/spots/spot-activation-registry.js +14 -50
  281. package/dist/runtime/spots/spot-activation-state.d.ts +1 -1
  282. package/dist/runtime/spots/spot-activation-state.js +2 -2
  283. package/dist/runtime/spots/spot-activation.d.ts +3 -4
  284. package/dist/runtime/spots/spot-activation.js +49 -32
  285. package/dist/runtime/spots/spot-actor-admission-coordinator.d.ts +1 -2
  286. package/dist/runtime/spots/spot-actor-admission-coordinator.js +3 -40
  287. package/dist/runtime/spots/spot-actor-join-dispatch.d.ts +10 -18
  288. package/dist/runtime/spots/spot-actor-join-dispatch.js +4 -52
  289. package/dist/runtime/spots/spot-actor-membership.d.ts +4 -6
  290. package/dist/runtime/spots/spot-actor-membership.js +22 -45
  291. package/dist/runtime/spots/spot-actor-packet-dispatch.d.ts +0 -1
  292. package/dist/runtime/spots/spot-actor-packet-dispatch.js +0 -9
  293. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.d.ts +2 -2
  294. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +1 -7
  295. package/dist/runtime/spots/spot-context.d.ts +2 -2
  296. package/dist/runtime/spots/spot-entry-activation.d.ts +2 -2
  297. package/dist/runtime/spots/spot-entry-activation.js +9 -20
  298. package/dist/runtime/spots/spot-lifecycle-metrics.js +3 -2
  299. package/dist/runtime/spots/spot-manager-public.d.ts +5 -6
  300. package/dist/runtime/spots/spot-manager-public.js +5 -4
  301. package/dist/runtime/spots/spot-node-autoconnect.js +22 -31
  302. package/dist/runtime/spots/spot-node-runtime-manager.d.ts +19 -18
  303. package/dist/runtime/spots/spot-node-runtime-manager.js +67 -72
  304. package/dist/runtime/spots/spot-outbound.d.ts +7 -8
  305. package/dist/runtime/spots/spot-outbound.js +21 -23
  306. package/dist/runtime/spots/spot-remote-codec.js +5 -3
  307. package/dist/runtime/spots/spot-route-packet-dispatch.d.ts +2 -2
  308. package/dist/runtime/spots/spot-route-packet-dispatch.js +8 -8
  309. package/dist/runtime/spots/spot-route-replies.d.ts +2 -2
  310. package/dist/runtime/spots/spot-route-replies.js +3 -1
  311. package/dist/runtime/spots/spot-routed-actor-admission.d.ts +3 -3
  312. package/dist/runtime/spots/spot-routed-actor-admission.js +3 -12
  313. package/dist/runtime/spots/spot-routed-frame-dispatch.d.ts +1 -2
  314. package/dist/runtime/spots/spot-routed-frame-dispatch.js +0 -1
  315. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.d.ts +4 -0
  316. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +65 -15
  317. package/dist/runtime/spots/spot-runtime-ports.d.ts +2 -16
  318. package/dist/runtime/spots/spot-serial-executor.js +2 -2
  319. package/dist/runtime/spots/spot-serial-turn-executor.d.ts +27 -7
  320. package/dist/runtime/spots/spot-serial-turn-executor.js +83 -11
  321. package/dist/runtime/spots/spot-timer.d.ts +3 -2
  322. package/dist/runtime/streams/actor-session-binding-registry.d.ts +16 -29
  323. package/dist/runtime/streams/actor-session-binding-registry.js +142 -212
  324. package/dist/runtime/streams/actor-session-binding-runtime-owner.d.ts +1 -4
  325. package/dist/runtime/streams/bound-actor-relay-sender.d.ts +8 -4
  326. package/dist/runtime/streams/bound-actor-relay-sender.js +65 -41
  327. package/dist/runtime/streams/bound-session-service.d.ts +7 -0
  328. package/dist/runtime/streams/bound-session-service.js +12 -2
  329. package/dist/runtime/streams/index.d.ts +16 -17
  330. package/dist/runtime/streams/index.js +22 -23
  331. package/dist/runtime/streams/managed-stream.d.ts +5 -2
  332. package/dist/runtime/streams/managed-stream.js +20 -13
  333. package/dist/runtime/streams/native-fallback-bound-session.js +14 -19
  334. package/dist/runtime/streams/protocol.d.ts +6 -33
  335. package/dist/runtime/streams/protocol.js +38 -110
  336. package/dist/runtime/streams/session-actor-coordinator.d.ts +2 -3
  337. package/dist/runtime/streams/session-actor-coordinator.js +12 -4
  338. package/dist/runtime/streams/session-calls.d.ts +6 -8
  339. package/dist/runtime/streams/session-calls.js +6 -22
  340. package/dist/runtime/streams/session-context.d.ts +10 -10
  341. package/dist/runtime/streams/session-context.js +25 -10
  342. package/dist/runtime/streams/session-requests.js +2 -1
  343. package/dist/runtime/streams/stream-binding-runtime-ports.d.ts +16 -1
  344. package/dist/runtime/streams/stream-frame-factory.js +2 -2
  345. package/dist/runtime/streams/stream-session-runtime.d.ts +10 -11
  346. package/dist/runtime/streams/stream-session-runtime.js +25 -33
  347. package/dist/runtime/workers/index.d.ts +2 -2
  348. package/dist/runtime/workers/index.js +5 -4
  349. package/package.json +3 -3
  350. package/src/contracts/Actors/ZLinkActorClient.ts +1 -1
  351. package/src/contracts/Channels/Calls.ts +1 -1
  352. package/src/contracts/Common/CoreTypes.ts +7 -0
  353. package/src/contracts/Common/index.ts +1 -1
  354. package/src/contracts/Configuration/Builders.ts +0 -1
  355. package/src/contracts/Configuration/Configs.ts +0 -1
  356. package/src/contracts/Configuration/InternalDefaults.ts +12 -0
  357. package/src/contracts/Configuration/Registration.ts +92 -48
  358. package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +44 -2
  359. package/src/contracts/Configuration/RegistrationBuilders.ts +77 -71
  360. package/src/contracts/Configuration/RegistrationTypes.ts +1 -5
  361. package/src/contracts/Configuration/RegistrationValidators.ts +19 -17
  362. package/src/contracts/Configuration/TimerRegistrationValidator.ts +4 -2
  363. package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +1 -0
  364. package/src/contracts/Handlers/JsonContract.ts +14 -4
  365. package/src/contracts/Locations/Authority.ts +7 -3
  366. package/src/contracts/Locations/Options.ts +1 -1
  367. package/src/contracts/Locations/Stores.ts +14 -0
  368. package/src/contracts/Spots/Contracts.ts +2 -2
  369. package/src/contracts/Streams/BoundSessionContracts.ts +1 -1
  370. package/src/contracts/Streams/IZLinkSession.ts +2 -3
  371. package/src/contracts/Streams/IZLinkSessionActor.ts +2 -6
  372. package/src/internal.ts +14 -0
  373. package/src/nest-integration.ts +28 -10
  374. package/src/runtime/abort.ts +6 -5
  375. package/src/runtime/activation-admission.ts +2 -8
  376. package/src/runtime/actors/actor-authority-payload-codec.ts +58 -20
  377. package/src/runtime/actors/actor-client.ts +85 -218
  378. package/src/runtime/actors/actor-context.ts +39 -33
  379. package/src/runtime/actors/actor-handoff.ts +24 -22
  380. package/src/runtime/actors/actor-lifecycle-snapshot.ts +2 -1
  381. package/src/runtime/actors/actor-local-native-join.ts +172 -174
  382. package/src/runtime/actors/actor-native-lookup.ts +2 -9
  383. package/src/runtime/actors/actor-packet-relay-wire.ts +18 -12
  384. package/src/runtime/actors/actor-remote-joiner.ts +9 -11
  385. package/src/runtime/actors/actor-remote-wire.ts +5 -3
  386. package/src/runtime/actors/actor-request-deadline.ts +4 -0
  387. package/src/runtime/actors/actor-retry-delay.ts +2 -1
  388. package/src/runtime/actors/actor-routed-join-transport.ts +3 -5
  389. package/src/runtime/actors/actor-runtime-state.ts +85 -247
  390. package/src/runtime/actors/bound-session-wire.ts +2 -8
  391. package/src/runtime/actors/deferred-join-completion.ts +10 -6
  392. package/src/runtime/actors/index.ts +100 -79
  393. package/src/runtime/actors/spot-actor-dispatch.ts +60 -29
  394. package/src/runtime/actors/transferred-actor-rollback.ts +11 -62
  395. package/src/runtime/admission.ts +8 -1
  396. package/src/runtime/application-jobs/application-job-queue-scope.ts +4 -4
  397. package/src/runtime/backend/contracts/index.ts +14 -37
  398. package/src/runtime/backend/mesh-actor-session-node-adapter.ts +2 -18
  399. package/src/runtime/backend/mesh-dispatch-pump.ts +111 -117
  400. package/src/runtime/backend/node/node-backend-adapter-support.ts +67 -10
  401. package/src/runtime/backend/node/node-dealer-channel-client-transport.ts +0 -2
  402. package/src/runtime/backend/node/node-event-loop-poller.ts +8 -12
  403. package/src/runtime/backend/node/node-monitor-backend-adapter.ts +1 -0
  404. package/src/runtime/backend/node/node-raw-binding-port.ts +44 -49
  405. package/src/runtime/backend/node/node-raw-mesh-backend.ts +227 -170
  406. package/src/runtime/backend/node/node-socket-backend-adapter.ts +4 -3
  407. package/src/runtime/backend/raw-binding-port.ts +1 -1
  408. package/src/runtime/backend/runtime-values.ts +4 -1
  409. package/src/runtime/channels/channel-clients.ts +139 -102
  410. package/src/runtime/channels/channel-envelope-inspection.ts +2 -1
  411. package/src/runtime/channels/channel-envelope.ts +74 -57
  412. package/src/runtime/channels/channel-outbound-operations.ts +40 -55
  413. package/src/runtime/channels/channel-receive-loops.ts +39 -7
  414. package/src/runtime/channels/channel-runtime-lifecycle.ts +60 -27
  415. package/src/runtime/channels/channel-runtime-manager.ts +12 -30
  416. package/src/runtime/channels/channel-socket-options.ts +8 -15
  417. package/src/runtime/channels/channel-socket-registry.ts +291 -196
  418. package/src/runtime/channels/channel-transports.ts +168 -145
  419. package/src/runtime/channels/client-server-location-runtime.ts +17 -17
  420. package/src/runtime/channels/client-server-service-wire.ts +40 -12
  421. package/src/runtime/channels/dispatch-error-reporter.ts +7 -5
  422. package/src/runtime/channels/fanout-location-runtime.ts +172 -91
  423. package/src/runtime/channels/local-spot-route-transport.ts +1 -5
  424. package/src/runtime/channels/router-socket-spot-route-transport.ts +2 -6
  425. package/src/runtime/channels/source-spot-router.ts +2 -9
  426. package/src/runtime/channels/spot-direct-envelope.ts +1 -1
  427. package/src/runtime/channels/spot-node-route-transport.ts +7 -9
  428. package/src/runtime/channels/spot-route-bridge-transport.ts +5 -12
  429. package/src/runtime/channels/spot-route-dispatch-strategy.ts +11 -30
  430. package/src/runtime/diagnostics/diagnostic-text.ts +4 -0
  431. package/src/runtime/diagnostics/dispatch-error-details.ts +36 -1
  432. package/src/runtime/diagnostics/flow-context.ts +16 -2
  433. package/src/runtime/diagnostics/index.ts +27 -17
  434. package/src/runtime/diagnostics/message-flow.ts +15 -25
  435. package/src/runtime/diagnostics/runtime-metrics.ts +181 -113
  436. package/src/runtime/diagnostics/runtime-observation-queue.ts +3 -2
  437. package/src/runtime/diagnostics/topology-runtime-projections.ts +194 -162
  438. package/src/runtime/disposal.ts +19 -0
  439. package/src/runtime/execution/index.ts +60 -20
  440. package/src/runtime/execution/serial-execution-queue.ts +131 -18
  441. package/src/runtime/execution/state-lane.ts +142 -4
  442. package/src/runtime/foundation/actor-join-recovery-codec.ts +13 -8
  443. package/src/runtime/foundation/event-loop-resources.ts +5 -122
  444. package/src/runtime/foundation/operation-identity.ts +11 -5
  445. package/src/runtime/foundation/operation-registry.ts +33 -50
  446. package/src/runtime/foundation/raw-service-mesh-runtime.ts +127 -125
  447. package/src/runtime/foundation/runtime-state-projections.ts +9 -1
  448. package/src/runtime/foundation/service-authority-payload-codec.ts +31 -13
  449. package/src/runtime/foundation/service-discovery-registry.ts +32 -3
  450. package/src/runtime/foundation/service-instance-activation-recovery-codec.ts +12 -4
  451. package/src/runtime/foundation/service-liveness-registry.ts +2 -1
  452. package/src/runtime/foundation/service-maintenance-runtime.ts +0 -10
  453. package/src/runtime/foundation/service-metadata-codec.ts +2 -2
  454. package/src/runtime/foundation/service-relocation-aggregate-committer.ts +3 -66
  455. package/src/runtime/foundation/service-relocation-object-owner.ts +5 -2
  456. package/src/runtime/foundation/service-relocation-runtime.ts +57 -35
  457. package/src/runtime/foundation/service-runtime-contracts.ts +46 -10
  458. package/src/runtime/foundation/service-session-binding-ingress-port.ts +0 -17
  459. package/src/runtime/foundation/service-stateful-registry.ts +14 -2
  460. package/src/runtime/foundation/service-stateful-runtime.ts +322 -276
  461. package/src/runtime/foundation/service-stateful-wire-codec.ts +128 -80
  462. package/src/runtime/foundation/service-topology-registry.ts +23 -32
  463. package/src/runtime/foundation/service-wire-binary-primitives.ts +6 -0
  464. package/src/runtime/foundation/service-wire-codec.ts +15 -8
  465. package/src/runtime/foundation/service-wire-constants.generated.ts +1 -0
  466. package/src/runtime/foundation/service-wire-m6a-codec.ts +29 -15
  467. package/src/runtime/framework-errors-internal.ts +380 -134
  468. package/src/runtime/handlers/handler-instance-scope.ts +68 -95
  469. package/src/runtime/host/actor-packet-relay.ts +63 -160
  470. package/src/runtime/host/actor-placement-coordinator.ts +8 -5
  471. package/src/runtime/host/actor-runtime-options-factory.ts +27 -8
  472. package/src/runtime/host/actor-transfer-runtime.ts +180 -260
  473. package/src/runtime/host/application-job-queue.ts +28 -34
  474. package/src/runtime/host/bound-session-relay.ts +1 -2
  475. package/src/runtime/host/channel-runtime-options-factory.ts +1 -2
  476. package/src/runtime/host/index.ts +327 -320
  477. package/src/runtime/host/instance-activation-authority.ts +89 -109
  478. package/src/runtime/host/location-runtime-owner.ts +4 -2
  479. package/src/runtime/host/remote-actor-join-receiver.ts +3 -31
  480. package/src/runtime/host/remote-actor-packet-target-store.ts +17 -58
  481. package/src/runtime/host/remote-bound-session-relay.ts +16 -57
  482. package/src/runtime/host/route-mesh-runtime.ts +228 -271
  483. package/src/runtime/host/runtime-shutdown.ts +17 -21
  484. package/src/runtime/host/service-relocation-control.ts +14 -1
  485. package/src/runtime/host/service-relocation-host-runtime.ts +699 -561
  486. package/src/runtime/host/spot-address-transport.ts +175 -356
  487. package/src/runtime/host/spot-node-runtime-options-factory.ts +6 -3
  488. package/src/runtime/host/spot-runtime-options-factory.ts +73 -22
  489. package/src/runtime/host/user-spot-creation-coordinator.ts +36 -22
  490. package/src/runtime/locations/aggregate-inventory-store.ts +16 -13
  491. package/src/runtime/locations/authority-key-codec.ts +7 -3
  492. package/src/runtime/locations/auto-connect-reconciler.ts +39 -26
  493. package/src/runtime/locations/creation-operation-id.ts +6 -3
  494. package/src/runtime/locations/domain-store-contract.ts +12 -3
  495. package/src/runtime/locations/in-memory-authority-store.ts +44 -15
  496. package/src/runtime/locations/in-memory-location-store.ts +50 -39
  497. package/src/runtime/locations/in-memory-provider-location-store.ts +100 -25
  498. package/src/runtime/locations/key-codec.ts +3 -2
  499. package/src/runtime/locations/lease-tracker.ts +8 -14
  500. package/src/runtime/locations/lifecycle.ts +13 -43
  501. package/src/runtime/locations/location-store-failure.ts +4 -0
  502. package/src/runtime/locations/location-store-pages.ts +18 -0
  503. package/src/runtime/locations/location-store-repository.ts +457 -482
  504. package/src/runtime/locations/relocation-blob.ts +17 -6
  505. package/src/runtime/locations/resolvers.ts +75 -49
  506. package/src/runtime/locations/runtime.ts +220 -110
  507. package/src/runtime/locations/spot-location-claims.ts +58 -1
  508. package/src/runtime/messaging/payload-codec.ts +35 -24
  509. package/src/runtime/messaging/request-deadline.ts +58 -0
  510. package/src/runtime/messaging/submission-result.ts +72 -2
  511. package/src/runtime/protocol/service_wire_codec.generated.ts +18 -8
  512. package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +1 -1
  513. package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +4 -1
  514. package/src/runtime/spots/index.ts +433 -229
  515. package/src/runtime/spots/spot-activation-registry.ts +30 -69
  516. package/src/runtime/spots/spot-activation-state.ts +2 -2
  517. package/src/runtime/spots/spot-activation.ts +67 -37
  518. package/src/runtime/spots/spot-actor-admission-coordinator.ts +5 -57
  519. package/src/runtime/spots/spot-actor-join-dispatch.ts +24 -77
  520. package/src/runtime/spots/spot-actor-membership.ts +40 -72
  521. package/src/runtime/spots/spot-actor-packet-dispatch.ts +0 -16
  522. package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +3 -15
  523. package/src/runtime/spots/spot-context.ts +3 -3
  524. package/src/runtime/spots/spot-entry-activation.ts +13 -30
  525. package/src/runtime/spots/spot-lifecycle-metrics.ts +3 -2
  526. package/src/runtime/spots/spot-manager-public.ts +21 -17
  527. package/src/runtime/spots/spot-node-autoconnect.ts +20 -26
  528. package/src/runtime/spots/spot-node-runtime-manager.ts +136 -125
  529. package/src/runtime/spots/spot-outbound.ts +59 -47
  530. package/src/runtime/spots/spot-remote-codec.ts +7 -3
  531. package/src/runtime/spots/spot-route-packet-dispatch.ts +25 -24
  532. package/src/runtime/spots/spot-route-replies.ts +6 -4
  533. package/src/runtime/spots/spot-routed-actor-admission.ts +13 -26
  534. package/src/runtime/spots/spot-routed-frame-dispatch.ts +2 -3
  535. package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +95 -22
  536. package/src/runtime/spots/spot-runtime-ports.ts +5 -27
  537. package/src/runtime/spots/spot-serial-executor.ts +2 -2
  538. package/src/runtime/spots/spot-serial-turn-executor.ts +112 -11
  539. package/src/runtime/spots/spot-timer.ts +3 -2
  540. package/src/runtime/streams/actor-session-binding-registry.ts +179 -269
  541. package/src/runtime/streams/actor-session-binding-runtime-owner.ts +0 -8
  542. package/src/runtime/streams/bound-actor-relay-sender.ts +98 -66
  543. package/src/runtime/streams/bound-session-service.ts +22 -2
  544. package/src/runtime/streams/index.ts +78 -68
  545. package/src/runtime/streams/managed-stream.ts +32 -23
  546. package/src/runtime/streams/native-fallback-bound-session.ts +14 -28
  547. package/src/runtime/streams/protocol.ts +34 -88
  548. package/src/runtime/streams/session-actor-coordinator.ts +17 -5
  549. package/src/runtime/streams/session-calls.ts +11 -36
  550. package/src/runtime/streams/session-context.ts +60 -25
  551. package/src/runtime/streams/session-requests.ts +2 -1
  552. package/src/runtime/streams/stream-binding-runtime-ports.ts +22 -1
  553. package/src/runtime/streams/stream-frame-factory.ts +2 -3
  554. package/src/runtime/streams/stream-session-runtime.ts +57 -59
  555. package/src/runtime/workers/index.ts +13 -12
  556. package/dist/runtime/actors/post-commit-actor-location.d.ts +0 -19
  557. package/dist/runtime/actors/post-commit-actor-location.js +0 -72
  558. package/dist/runtime/spots/spot-native-actor-join-admission.d.ts +0 -26
  559. package/dist/runtime/spots/spot-native-actor-join-admission.js +0 -106
  560. package/src/runtime/actors/post-commit-actor-location.ts +0 -121
  561. package/src/runtime/spots/spot-native-actor-join-admission.ts +0 -155
@@ -1,10 +1,8 @@
1
1
  import type { ActorRef } from '../../contracts';
2
- import type { ServiceSessionBindingAdmissionResult } from '../foundation/service-session-binding-ingress-port';
3
2
  import type {
4
3
  ZLinkActorSessionAuthorityFence,
5
4
  ZLinkActorSessionRelocationClaim,
6
5
  ZLinkActorSessionRelocationSnapshot,
7
- ZLinkActorSessionRetainedOutbound,
8
6
  ZLinkActorSessionRouteFence
9
7
  } from './actor-session-binding-registry';
10
8
 
@@ -19,12 +17,6 @@ export interface ZLinkActorSessionBindingRuntimeOwner {
19
17
  actorId: string,
20
18
  sealId: string
21
19
  ): Promise<ZLinkActorSessionRelocationSnapshot | undefined>;
22
- retainRelocationOutbound(
23
- actorId: string,
24
- operation: ZLinkActorSessionRetainedOutbound,
25
- sealId?: string
26
- ): Promise<ServiceSessionBindingAdmissionResult>;
27
- discardRelocationOutbound(actorId: string, sealId: string, error: unknown): Promise<void>;
28
20
  applyRelocation(
29
21
  actorId: string,
30
22
  sealId: string,
@@ -1,32 +1,38 @@
1
1
  import type { ZLinkMessage, ZLinkMessageSerializer, ZLinkSessionActor } from '../../contracts';
2
- import { ZLinkSubmitStatus, type ZLinkSubmitResult } from '../messaging/submission-result';
3
2
  import type { Message } from '../../contracts/Common/Message';
4
- import { encodeFrameworkPayloadMessage } from '../messaging/payload-codec';
5
3
  import {
6
- encodeStreamHeader,
7
- messageToBytes,
8
- type ZLinkStreamFrameHeader,
9
- ZLinkStreamMessageKind
10
- } from './protocol';
11
- import { throwIfAborted } from '../abort';
12
- import { captureZLinkExecutionTurn } from '../execution';
4
+ ZLinkDispatchErrorSurface,
5
+ ZLinkDispatchMessageKind,
6
+ ZLinkRuntimeMessageFlowOutcome
7
+ } from '../../contracts/Dispatch/ZLinkDispatchOptions';
8
+ import type { ZLinkDispatchErrorReporter } from '../channels';
9
+ import { flowIfEnabled } from '../diagnostics';
10
+ import { encodeFrameworkPayloadMessage } from '../messaging/payload-codec';
11
+ import { ZLinkSubmitStatus, type ZLinkSubmitResult } from '../messaging/submission-result';
13
12
  import {
14
13
  ZLinkActorSessionBindingRegistry,
15
14
  ZLinkActorSessionBindingTermination
16
15
  } from './actor-session-binding-registry';
17
16
  import { ZLinkActorSessionLifecycleCoordinator } from './actor-session-lifecycle-coordinator';
18
17
  import { ZLinkManagedStream } from './managed-stream';
18
+ import {
19
+ encodeStreamHeader,
20
+ messageToBytes,
21
+ ZLinkStreamMessageKind,
22
+ type ZLinkStreamFrameHeader
23
+ } from './protocol';
19
24
  import { DefaultZLinkSessionActor, DefaultZLinkSessionContext } from './session-context';
20
25
  import { ZLinkStreamFrameMessageFactory } from './stream-frame-factory';
26
+ export const DEFAULT_RELAY_ACTOR_BIND_TIMEOUT_MS = 2000;
21
27
 
22
28
  export interface ZLinkBoundActorRelaySenderOptions {
29
+ readonly dispatchErrors?: ZLinkDispatchErrorReporter;
23
30
  readonly actorBindTimeoutMs?: number;
24
31
  readonly messageSerializers?: ReadonlyMap<string, ZLinkMessageSerializer>;
25
32
  readonly relay?: (
26
33
  actor: ZLinkSessionActor,
27
34
  header: ZLinkStreamFrameHeader,
28
- payload: Message,
29
- signal?: AbortSignal
35
+ payload: Message
30
36
  ) => Promise<boolean>;
31
37
  readonly notifyDisconnected?: (actor: ZLinkSessionActor, signal?: AbortSignal) => Promise<void>;
32
38
  }
@@ -45,7 +51,6 @@ export class ZLinkBoundActorRelaySender {
45
51
  async relay(
46
52
  actor: DefaultZLinkSessionActor,
47
53
  payload: ZLinkMessage,
48
- signal?: AbortSignal,
49
54
  dispatchHeader?: ZLinkStreamFrameHeader
50
55
  ): Promise<ZLinkSubmitResult> {
51
56
  const header =
@@ -56,70 +61,98 @@ export class ZLinkBoundActorRelaySender {
56
61
  const operation = async (): Promise<ZLinkSubmitResult> => {
57
62
  const admission = await this.routes.beginAcceptedRequestFrameWhenReady(
58
63
  actor.actorId,
59
- actor.bindingToken,
60
- signal
64
+ actor.bindingToken
61
65
  );
62
66
  try {
63
- return await this.relayAcceptedFrame(actor, payload, signal, header, admission);
67
+ return await this.relayAcceptedFrame(actor, payload, header, admission);
64
68
  } finally {
65
69
  await admission.complete();
66
70
  }
67
71
  };
68
- if (
69
- (await this.routes.isSealed(actor.actorId)) &&
70
- captureZLinkExecutionTurn() !== undefined
71
- ) {
72
- void operation().catch(() => undefined);
73
- return { status: ZLinkSubmitStatus.Submitted };
74
- }
75
72
  return await operation();
76
73
  }
77
- if ((await this.routes.isSealed(actor.actorId)) && captureZLinkExecutionTurn() !== undefined) {
78
- // Spec 32:62 — a Send completes once the source outbound queue
79
- // accepts it; spec 05 — infrastructure send progress must not depend
80
- // on the application turn. When the CALLER IS an application turn
81
- // (a lifecycle callback pushing to a bound actor), awaiting the seal
82
- // release here deadlocks: the relocation seal waits for that very
83
- // callback to finish (onJoinedActor -> push -> seal ->
84
- // onJoinedActor). Accept the frame now and deliver it after the
85
- // seal releases, in per-actor order through the lifecycle lane; the
86
- // bounded seal wait converts a stuck seal into a typed failure.
87
- // Non-turn callers (stream ingress relays) keep the waiting
88
- // semantics so a held frame across a failed rebind still
89
- // terminalizes to the caller.
90
- void this.routes
91
- .runAcceptedFrameWhenReady(
92
- actor.actorId,
93
- actor.bindingToken,
94
- () => this.relayAcceptedFrame(actor, payload, signal),
95
- signal
96
- )
97
- .catch(() => undefined);
74
+ const held = await this.routes.acceptOneWay(actor.actorId, actor.bindingToken, () => {
75
+ let heldMessage: Message | undefined = encodeFrameworkPayloadMessage(
76
+ payload,
77
+ this.options.messageSerializers
78
+ );
79
+ return {
80
+ deliver: async () => {
81
+ try {
82
+ const result = await this.routes.runAcceptedFrameWhenReady(
83
+ actor.actorId,
84
+ actor.bindingToken,
85
+ () => this.relayAcceptedFrame(actor, payload, header, undefined, heldMessage)
86
+ );
87
+ if (result.status !== ZLinkSubmitStatus.Submitted) {
88
+ this.traceHeldDrop(
89
+ header,
90
+ result.status === ZLinkSubmitStatus.Backpressured ||
91
+ result.status === ZLinkSubmitStatus.TimedOut
92
+ ? 'backpressure'
93
+ : result.status === ZLinkSubmitStatus.Shutdown
94
+ ? 'shutdown'
95
+ : 'stale_target'
96
+ );
97
+ }
98
+ } finally {
99
+ heldMessage?.close();
100
+ heldMessage = undefined;
101
+ }
102
+ },
103
+ drop: (reason, error) => {
104
+ heldMessage?.close();
105
+ heldMessage = undefined;
106
+ this.traceHeldDrop(header, reason, error);
107
+ }
108
+ };
109
+ });
110
+ if (held) {
98
111
  return { status: ZLinkSubmitStatus.Submitted };
99
112
  }
100
- return this.routes.runAcceptedFrameWhenReady(
101
- actor.actorId,
102
- actor.bindingToken,
103
- () => this.relayAcceptedFrame(actor, payload, signal),
104
- signal
113
+ return this.routes.runAcceptedFrameWhenReady(actor.actorId, actor.bindingToken, () =>
114
+ this.relayAcceptedFrame(actor, payload)
105
115
  );
106
116
  }
107
117
 
118
+ private traceHeldDrop(
119
+ header: ZLinkStreamFrameHeader,
120
+ reason: 'backpressure' | 'target_closed' | 'stale_target' | 'shutdown',
121
+ error?: unknown
122
+ ): void {
123
+ flowIfEnabled(
124
+ this.options.dispatchErrors?.flow,
125
+ ZLinkRuntimeMessageFlowOutcome.Dropped,
126
+ undefined,
127
+ header.flowId
128
+ )?.trace({
129
+ outcome: ZLinkRuntimeMessageFlowOutcome.Dropped,
130
+ surface: ZLinkDispatchErrorSurface.StreamSession,
131
+ messageKind: ZLinkDispatchMessageKind.Send,
132
+ packetName: header.name,
133
+ flowId: header.flowId,
134
+ flowOrigin: header.flowOrigin,
135
+ correlationId: header.correlationId,
136
+ errorReason: reason,
137
+ ...(error instanceof Error ? { errorType: error.name, errorMessage: error.message } : {})
138
+ });
139
+ }
140
+
108
141
  private async relayAcceptedFrame(
109
142
  actor: DefaultZLinkSessionActor,
110
143
  payload: ZLinkMessage,
111
- signal?: AbortSignal,
112
144
  header?: ZLinkStreamFrameHeader,
113
- requestAdmission?: { beginSubmission(signal?: AbortSignal): Promise<void> | undefined }
145
+ requestAdmission?: { beginSubmission(signal?: AbortSignal): Promise<void> | undefined },
146
+ acceptedPayload?: Message
114
147
  ): Promise<ZLinkSubmitResult> {
115
148
  const activeHeader = header ?? (await this.currentHeader(actor));
116
149
  const started = await this.lifecycle.run(actor.actorId, async () => {
117
150
  const completion = this.relayInsideLifecycle(
118
151
  actor,
119
152
  payload,
120
- signal,
121
153
  activeHeader,
122
- requestAdmission
154
+ requestAdmission,
155
+ acceptedPayload
123
156
  );
124
157
  if (
125
158
  activeHeader.kind === ZLinkStreamMessageKind.Request &&
@@ -163,18 +196,18 @@ export class ZLinkBoundActorRelaySender {
163
196
  private async relayInsideLifecycle(
164
197
  actor: DefaultZLinkSessionActor,
165
198
  payload: ZLinkMessage,
166
- signal: AbortSignal | undefined,
167
199
  currentHeader?: ZLinkStreamFrameHeader,
168
- requestAdmission?: { beginSubmission(signal?: AbortSignal): Promise<void> | undefined }
200
+ requestAdmission?: { beginSubmission(signal?: AbortSignal): Promise<void> | undefined },
201
+ acceptedPayload?: Message
169
202
  ): Promise<ZLinkSubmitResult> {
170
203
  const header = currentHeader ?? (await this.currentHeader(actor));
171
- const held = requestAdmission?.beginSubmission(signal);
204
+ const held = requestAdmission?.beginSubmission();
172
205
  if (held !== undefined) await held;
173
- throwIfAborted(signal);
174
- const payloadMessage = encodeFrameworkPayloadMessage(payload, this.options.messageSerializers);
206
+ const payloadMessage =
207
+ acceptedPayload ?? encodeFrameworkPayloadMessage(payload, this.options.messageSerializers);
175
208
  try {
176
209
  if (this.options.relay !== undefined) {
177
- const handled = await this.options.relay(actor, header, payloadMessage, signal);
210
+ const handled = await this.options.relay(actor, header, payloadMessage);
178
211
  if (handled) {
179
212
  return { status: ZLinkSubmitStatus.Submitted };
180
213
  }
@@ -188,17 +221,16 @@ export class ZLinkBoundActorRelaySender {
188
221
  messageToBytes(payloadMessage)
189
222
  );
190
223
  try {
191
- return await route.context.stream.submitBoundActor(
192
- actor.actorId,
193
- [headerMessage, framePayloadMessage],
194
- signal
195
- );
224
+ return await route.context.stream.submitBoundActor(actor.actorId, [
225
+ headerMessage,
226
+ framePayloadMessage
227
+ ]);
196
228
  } finally {
197
229
  headerMessage.close();
198
230
  framePayloadMessage.close();
199
231
  }
200
232
  } finally {
201
- payloadMessage.close();
233
+ if (acceptedPayload === undefined) payloadMessage.close();
202
234
  }
203
235
  }
204
236
 
@@ -224,7 +256,7 @@ export class ZLinkBoundActorRelaySender {
224
256
  ) {
225
257
  await detached.context.stream.unbindActor(
226
258
  actor.actorId,
227
- this.options.actorBindTimeoutMs ?? 2000,
259
+ this.options.actorBindTimeoutMs ?? DEFAULT_RELAY_ACTOR_BIND_TIMEOUT_MS,
228
260
  signal
229
261
  );
230
262
  }
@@ -233,7 +265,7 @@ export class ZLinkBoundActorRelaySender {
233
265
 
234
266
  async notifyPhysicalDisconnect(context: DefaultZLinkSessionContext): Promise<void> {
235
267
  const snapshot = [...context.boundActors];
236
- const timeoutMs = this.options.actorBindTimeoutMs ?? 2000;
268
+ const timeoutMs = this.options.actorBindTimeoutMs ?? DEFAULT_RELAY_ACTOR_BIND_TIMEOUT_MS;
237
269
  await Promise.allSettled(
238
270
  snapshot.map(async (actor) => {
239
271
  const detached = await this.lifecycle.run(actor.actorId, async () => {
@@ -23,6 +23,8 @@ import type { DefaultZLinkSessionActor, DefaultZLinkSessionContext } from './ses
23
23
  import { boundSessionErrorPayload } from './bound-session-response-target';
24
24
  import { ZLinkStreamFrameMessageFactory } from './stream-frame-factory';
25
25
  import { ZLinkManagedStream } from './managed-stream';
26
+ import type { ZLinkSessionBindingIdentity } from './stream-binding-runtime-ports';
27
+ import { REMOTE_BOUND_SESSION_BIND_PACKET } from '../spots/spot-remote-codec';
26
28
 
27
29
  const ZLINK_SEND_DONT_WAIT = 1;
28
30
 
@@ -127,7 +129,7 @@ export class ZLinkBoundSessionService {
127
129
  if ((await this.routes.route(actorId))?.bindingToken !== route.bindingToken) {
128
130
  return { status: ZLinkSubmitStatus.TargetNotFound };
129
131
  }
130
- return await route.context.stream.submitRaw(frame, signal);
132
+ return await route.context.stream.submitRaw(frame);
131
133
  } finally {
132
134
  frame.close();
133
135
  }
@@ -301,12 +303,30 @@ export class ZLinkBoundSessionService {
301
303
  }
302
304
  }
303
305
 
306
+ /**
307
+ * Closes the physical Session of one exact binding after its relocation
308
+ * failed (Session–Actor binding §8.1). A newer binding of the same Actor is
309
+ * not selected.
310
+ */
311
+ async closeSessionBinding(
312
+ actorId: string,
313
+ expected: ZLinkSessionBindingIdentity,
314
+ signal?: AbortSignal
315
+ ): Promise<void> {
316
+ const route = await this.routes.routeForSessionBinding(
317
+ actorId,
318
+ expected.sessionRid,
319
+ expected.bindingGeneration
320
+ );
321
+ await route?.context.close(signal);
322
+ }
323
+
304
324
  async relayRemoteBoundSessionBind(stream: ZLinkManagedStream, actorRef: ActorRef): Promise<void> {
305
325
  const encodedBindHeader = encodeStreamHeader({
306
326
  kind: ZLinkStreamMessageKind.Send,
307
327
  codec: ZLinkStreamCodec.Raw,
308
328
  flags: ZLinkStreamHeaderFlags.None,
309
- name: 'zlink.framework.actor.bound_session.bind',
329
+ name: REMOTE_BOUND_SESSION_BIND_PACKET,
310
330
  metadata: new Map()
311
331
  });
312
332
  // encodeStreamHeader returns a fresh, unaliased array; view it without re-copying.
@@ -1,45 +1,45 @@
1
- import type { ZLinkListenerRecords } from '../foundation/listener-records';
2
- import type {
3
- ActorRef,
4
- Type,
5
- ZLinkActor,
6
- ZLinkBoundSession,
7
- ZLinkSessionActor,
8
- ZLinkSessionFactory,
9
- ZLinkSession,
10
- ZLinkMessageSerializer,
11
- ZLinkStreamCompressionCodec,
12
- ZLinkStreamCompressionOptions
1
+ import {
2
+ type ActorRef,
3
+ type Type,
4
+ type ZLinkActor,
5
+ type ZLinkBoundSession,
6
+ type ZLinkMessageSerializer,
7
+ type ZLinkSession,
8
+ type ZLinkSessionActor,
9
+ type ZLinkSessionFactory,
10
+ type ZLinkStreamCompressionCodec,
11
+ type ZLinkStreamCompressionOptions,
12
+ ZLinkMessage
13
13
  } from '../../contracts';
14
- import type { ZLinkProviderResolver } from '../../contracts/Common/ZLinkProviderResolver';
15
- import type { ZLinkSubmitResult } from '../messaging/submission-result';
16
- import { ZLinkMessage } from '../../contracts';
17
14
  import type { Message } from '../../contracts/Common/Message';
18
- import {
19
- buildAdvertisedEndpoint,
20
- ZLinkConfigurationException,
21
- type ZLinkFrameworkRegistration
22
- } from '../configuration';
23
- import { ZLinkDispatchErrorReporter } from '../channels';
15
+ import type { ZLinkProviderResolver } from '../../contracts/Common/ZLinkProviderResolver';
16
+ import { DEFAULT_STREAM_NODE_MAX_MESSAGE_SIZE } from '../../contracts/Configuration/InternalDefaults';
17
+ import { zlinkDefaultLocationOptions } from '../../contracts/Locations/Options';
24
18
  import type {
25
- ZLinkBackendAdapterFactory,
26
19
  ZLinkBackendActorSessionNode,
20
+ ZLinkBackendAdapterFactory,
27
21
  ZLinkBackendContext,
28
22
  ZLinkBackendMeshNode,
29
23
  ZLinkBackendSocketMonitor,
30
24
  ZLinkBackendStreamSocket
31
25
  } from '../backend/contracts';
32
26
  import type { ZLinkMeshCompletionTable } from '../backend/mesh-completion-table';
27
+ import { ZLinkDispatchErrorReporter } from '../channels';
28
+ import {
29
+ buildAdvertisedEndpoint,
30
+ ZLinkConfigurationException,
31
+ type ZLinkFrameworkRegistration
32
+ } from '../configuration';
33
+ import type { ZLinkListenerRecords } from '../foundation/listener-records';
33
34
  import type { StreamSessionService } from '../foundation/service-runtime-contracts';
34
35
  import { registerServiceSessionBindingIngressPort } from '../foundation/service-session-binding-ingress-port';
35
36
  import {
36
- messageToBytes,
37
- ZLinkStreamCodec,
38
- type ZLinkStreamFrameHeader,
39
- ZLinkStreamMessageKind,
40
- type ZLinkStreamReplyMessageKind
41
- } from './protocol';
37
+ ApplicationJobQueue,
38
+ resolveApplicationJobQueueConfiguration
39
+ } from '../host/application-job-queue';
40
+ import type { ZLinkSubmitResult } from '../messaging/submission-result';
42
41
  import {
42
+ DEFAULT_TERMINAL_RELOCATION_CAPACITY,
43
43
  ZLinkActorSessionBindingRegistry,
44
44
  type ZLinkActorSessionAuthorityFence
45
45
  } from './actor-session-binding-registry';
@@ -48,38 +48,45 @@ import {
48
48
  registerActorSessionBindingRuntimeOwner
49
49
  } from './actor-session-binding-runtime-owner';
50
50
  import { ZLinkActorSessionLifecycleCoordinator } from './actor-session-lifecycle-coordinator';
51
+ import { ZLinkBoundActorRelaySender } from './bound-actor-relay-sender';
51
52
  import {
52
- decompressStreamPayload,
53
- resolveStreamCompressionCodec,
54
- ZLinkStreamFrameMessageFactory
55
- } from './stream-frame-factory';
53
+ DefaultZLinkBoundSessionResponseTarget,
54
+ type ZLinkBoundSessionResponseTarget
55
+ } from './bound-session-response-target';
56
+ import { ZLinkBoundSessionService, type ZLinkBoundSessionTransport } from './bound-session-service';
57
+ import { ZLinkManagedStream } from './managed-stream';
56
58
  import {
57
- ApplicationJobQueue,
58
- resolveApplicationJobQueueConfiguration
59
- } from '../host/application-job-queue';
60
- import { simpleMessage } from './stream-message-utils';
59
+ messageToBytes,
60
+ ZLinkStreamCodec,
61
+ ZLinkStreamMessageKind,
62
+ type ZLinkStreamFrameHeader,
63
+ type ZLinkStreamReplyMessageKind
64
+ } from './protocol';
65
+ import { ZLinkSessionActorCoordinator } from './session-actor-coordinator';
61
66
  import {
62
67
  DefaultZLinkBoundSession,
63
68
  DefaultZLinkSessionActor,
64
69
  DefaultZLinkSessionContext
65
70
  } from './session-context';
66
- import {
67
- DefaultZLinkBoundSessionResponseTarget,
68
- type ZLinkBoundSessionResponseTarget
69
- } from './bound-session-response-target';
70
- import { ZLinkBoundSessionService, type ZLinkBoundSessionTransport } from './bound-session-service';
71
- import { ZLinkSessionActorCoordinator } from './session-actor-coordinator';
72
- import { ZLinkBoundActorRelaySender } from './bound-actor-relay-sender';
73
- import { ZLinkManagedStream } from './managed-stream';
74
71
  import { createStreamSessionInstance } from './session-provider';
75
- import { DEFAULT_STREAM_NODE_MAX_MESSAGE_SIZE } from '../../contracts/Configuration/InternalDefaults';
72
+ import type {
73
+ ZLinkActorRouteCommitOptions,
74
+ ZLinkSessionBindingConfirmationOptions,
75
+ ZLinkSessionBindingIdentity
76
+ } from './stream-binding-runtime-ports';
77
+ import {
78
+ decompressStreamPayload,
79
+ resolveStreamCompressionCodec,
80
+ ZLinkStreamFrameMessageFactory
81
+ } from './stream-frame-factory';
82
+ import { simpleMessage } from './stream-message-utils';
76
83
  import {
77
84
  ZLinkStreamSessionNodeRuntime as ZLinkStreamSessionNodeRuntimeCore,
78
85
  ZLinkStreamSessionRuntime as ZLinkStreamSessionRuntimeCore,
79
86
  type ZLinkStreamSessionNodeRuntimeOptions as ZLinkStreamSessionNodeRuntimeCoreOptions,
80
87
  type ZLinkStreamSessionRuntimeOptions as ZLinkStreamSessionRuntimeCoreOptions
81
88
  } from './stream-session-runtime';
82
- import type { ZLinkActorRouteCommitOptions } from './stream-binding-runtime-ports';
89
+ const DEFAULT_STREAM_SERVICE_SHUTDOWN_TIMEOUT_MS = 1000;
83
90
  export { ZLinkPendingSessionRequest } from './session-requests';
84
91
  export { ZLinkActorSessionLifecycleCoordinator } from './actor-session-lifecycle-coordinator';
85
92
  export { ZLinkActorSessionBindingRegistry } from './actor-session-binding-registry';
@@ -99,6 +106,7 @@ export type {
99
106
  } from './bound-session-service';
100
107
 
101
108
  export interface ZLinkStreamBindingRuntimeOptions {
109
+ readonly dispatchErrors?: ZLinkDispatchErrorReporter;
102
110
  readonly transport?: ZLinkBoundSessionTransport;
103
111
  readonly messageFactory?: ZLinkStreamMessageFactory;
104
112
  readonly streamPayloadCodec?: ZLinkStreamPayloadCodec;
@@ -121,7 +129,7 @@ export interface ZLinkStreamBindingRuntimeOptions {
121
129
  actor: ActorRef,
122
130
  sessionRid: ActorRef['nodeRid'],
123
131
  signal?: AbortSignal,
124
- options?: { readonly waitForAcknowledgement?: boolean }
132
+ options?: ZLinkSessionBindingConfirmationOptions
125
133
  ) => Promise<void>;
126
134
  readonly errorSink?: () =>
127
135
  | {
@@ -131,8 +139,7 @@ export interface ZLinkStreamBindingRuntimeOptions {
131
139
  readonly relay?: (
132
140
  actor: ZLinkSessionActor,
133
141
  header: ZLinkStreamFrameHeader,
134
- payload: Message,
135
- signal?: AbortSignal
142
+ payload: Message
136
143
  ) => Promise<boolean>;
137
144
  readonly notifyDisconnected?: (actor: ZLinkSessionActor, signal?: AbortSignal) => Promise<void>;
138
145
  readonly flowCreationEnabled?: () => boolean;
@@ -274,10 +281,7 @@ export class ZLinkStreamRuntimeManager {
274
281
  node.nativeSessionServices.push(service);
275
282
  const bindingOwner = actorSessionBindingRuntimeOwner(this.options.bindingRuntime);
276
283
  registerServiceSessionBindingIngressPort(service, {
277
- actorSlot: (actorId, sessionRid) => bindingOwner.actorSlot(actorId, sessionRid),
278
- retainOutbound: (actorId, delivery) =>
279
- bindingOwner.retainRelocationOutbound(actorId, delivery),
280
- clearOutbound: (actorId, error) => bindingOwner.clearRelocation(actorId, error)
284
+ actorSlot: (actorId, sessionRid) => bindingOwner.actorSlot(actorId, sessionRid)
281
285
  });
282
286
  nativeSessionRoutes.set(meshName, {
283
287
  service,
@@ -332,16 +336,16 @@ export class ZLinkStreamRuntimeManager {
332
336
 
333
337
  async dispose(): Promise<void> {
334
338
  const nodes = [...this.nodes.values()];
335
- this.nodes.clear();
336
339
  for (const node of nodes.reverse()) {
337
340
  await node.runtime?.dispose();
338
341
  for (const service of node.nativeSessionServices) {
339
- service.shutdown(1000);
342
+ service.shutdown(DEFAULT_STREAM_SERVICE_SHUTDOWN_TIMEOUT_MS);
340
343
  service.close();
341
344
  }
342
345
  await node.monitor?.dispose();
343
346
  await node.socket.dispose();
344
347
  }
348
+ this.nodes.clear();
345
349
  }
346
350
 
347
351
  async notifyServerDrain(meshName: string): Promise<void> {
@@ -373,6 +377,7 @@ export class ZLinkStreamSessionRuntime extends ZLinkStreamSessionRuntimeCore {
373
377
  const bindingRuntime =
374
378
  options.bindingRuntime ??
375
379
  new ZLinkStreamBindingRuntime({
380
+ dispatchErrors: options.dispatchErrors,
376
381
  flowCreationEnabled: () => options.dispatchErrors?.flow.flowCreationEnabled() ?? true
377
382
  });
378
383
  super(
@@ -396,6 +401,7 @@ export class ZLinkStreamSessionNodeRuntime extends ZLinkStreamSessionNodeRuntime
396
401
  const bindingRuntime =
397
402
  options.bindingRuntime ??
398
403
  new ZLinkStreamBindingRuntime({
404
+ dispatchErrors: options.dispatchErrors,
399
405
  flowCreationEnabled: () => options.dispatchErrors?.flow.flowCreationEnabled() ?? true
400
406
  });
401
407
  super({
@@ -424,7 +430,12 @@ export class ZLinkStreamBindingRuntime {
424
430
  this.routes = new ZLinkActorSessionBindingRegistry<
425
431
  DefaultZLinkSessionContext,
426
432
  DefaultZLinkSessionActor
427
- >(4096, 4096, runtimeOptions.sessionRelocationSealTimeoutMs ?? 3_000, runtimeOptions.errorSink);
433
+ >(
434
+ DEFAULT_TERMINAL_RELOCATION_CAPACITY,
435
+ runtimeOptions.sessionRelocationSealTimeoutMs ??
436
+ zlinkDefaultLocationOptions.sessionRelocationSealTimeoutMs,
437
+ runtimeOptions.errorSink
438
+ );
428
439
  this.compressionCodec = resolveStreamCompressionCodec(runtimeOptions.streamCompression);
429
440
  this.frameMessages = new ZLinkStreamFrameMessageFactory(runtimeOptions);
430
441
  this.boundSessions = new ZLinkBoundSessionService(
@@ -446,19 +457,11 @@ export class ZLinkStreamBindingRuntime {
446
457
  actorSessionLifecycle
447
458
  );
448
459
  registerActorSessionBindingRuntimeOwner(this, {
449
- actorSlot: async (actorId, sessionRid) => {
450
- const route = await this.routes.route(actorId);
451
- return route !== undefined && route.sessionIdentity === sessionRid
452
- ? route.actorSlot
453
- : undefined;
454
- },
460
+ actorSlot: async (actorId, sessionRid) =>
461
+ (await this.routes.routeForSessionBinding(actorId, sessionRid))?.actorSlot,
455
462
  sealRelocation: (claim, expected, signal) =>
456
463
  this.routes.sealRelocation(claim, expected, signal),
457
464
  relocationSnapshot: (actorId, sealId) => this.routes.relocationSnapshot(actorId, sealId),
458
- retainRelocationOutbound: (actorId, operation, sealId) =>
459
- this.routes.retainRelocationOutbound(actorId, operation, sealId),
460
- discardRelocationOutbound: (actorId, sealId, error) =>
461
- this.routes.discardRelocationOutbound(actorId, sealId, error),
462
465
  applyRelocation: (...args) => this.routes.applyRelocation(...args),
463
466
  observeRelocationTerminal: (...args) => this.routes.observeRelocationTerminal(...args),
464
467
  clearRelocation: (actorId, error) => this.routes.clearRelocation(actorId, error),
@@ -743,13 +746,20 @@ export class ZLinkStreamBindingRuntime {
743
746
  await this.boundSessions.disconnectBoundSession(actorId, signal);
744
747
  }
745
748
 
749
+ async closeSessionBinding(
750
+ actorId: string,
751
+ expected: ZLinkSessionBindingIdentity,
752
+ signal?: AbortSignal
753
+ ): Promise<void> {
754
+ await this.boundSessions.closeSessionBinding(actorId, expected, signal);
755
+ }
756
+
746
757
  async relay(
747
758
  actor: DefaultZLinkSessionActor,
748
759
  payload: ZLinkMessage,
749
- signal?: AbortSignal,
750
760
  dispatchHeader?: ZLinkStreamFrameHeader
751
761
  ): Promise<ZLinkSubmitResult> {
752
- return await this.boundActorRelay.relay(actor, payload, signal, dispatchHeader);
762
+ return await this.boundActorRelay.relay(actor, payload, dispatchHeader);
753
763
  }
754
764
 
755
765
  async notifyDisconnected(actor: DefaultZLinkSessionActor, signal?: AbortSignal): Promise<void> {