@zlink-systems/framework 0.25.0 → 0.27.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 (557) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/contracts/Channels/IZLinkFanoutClient.d.ts +0 -6
  3. package/dist/contracts/Common/CoreTypes.d.ts +6 -0
  4. package/dist/contracts/Common/CoreTypes.js +7 -0
  5. package/dist/contracts/Common/index.d.ts +1 -1
  6. package/dist/contracts/Common/index.js +0 -1
  7. package/dist/contracts/Configuration/InternalDefaults.d.ts +8 -0
  8. package/dist/contracts/Configuration/InternalDefaults.js +9 -1
  9. package/dist/contracts/Configuration/Registration.d.ts +13 -2
  10. package/dist/contracts/Configuration/Registration.js +58 -36
  11. package/dist/contracts/Configuration/RegistrationBuilderPolicy.d.ts +13 -1
  12. package/dist/contracts/Configuration/RegistrationBuilderPolicy.js +38 -1
  13. package/dist/contracts/Configuration/RegistrationBuilders.d.ts +2 -3
  14. package/dist/contracts/Configuration/RegistrationBuilders.js +27 -32
  15. package/dist/contracts/Configuration/RegistrationTypes.d.ts +1 -0
  16. package/dist/contracts/Configuration/RegistrationValidators.js +15 -12
  17. package/dist/contracts/Configuration/TimerRegistrationValidator.js +3 -2
  18. package/dist/contracts/Dispatch/ZLinkDispatchOptions.d.ts +1 -1
  19. package/dist/contracts/Handlers/JsonContract.js +10 -4
  20. package/dist/contracts/Locations/Authority.d.ts +1 -1
  21. package/dist/contracts/Locations/Authority.js +3 -2
  22. package/dist/contracts/Locations/Options.js +1 -1
  23. package/dist/contracts/Locations/Stores.d.ts +12 -0
  24. package/dist/contracts/Locations/Stores.js +9 -0
  25. package/dist/contracts/RouteMesh/RuntimeTopology.d.ts +8 -0
  26. package/dist/contracts/Spots/Contracts.d.ts +1 -1
  27. package/dist/internal.d.ts +5 -0
  28. package/dist/internal.js +16 -1
  29. package/dist/nest-integration.d.ts +4 -2
  30. package/dist/nest-integration.js +14 -4
  31. package/dist/runtime/abort.d.ts +1 -0
  32. package/dist/runtime/abort.js +8 -5
  33. package/dist/runtime/activation-admission.d.ts +28 -0
  34. package/dist/runtime/activation-admission.js +57 -0
  35. package/dist/runtime/actors/actor-authority-payload-codec.d.ts +1 -2
  36. package/dist/runtime/actors/actor-authority-payload-codec.js +34 -18
  37. package/dist/runtime/actors/actor-client.d.ts +2 -2
  38. package/dist/runtime/actors/actor-client.js +42 -143
  39. package/dist/runtime/actors/actor-context.d.ts +3 -5
  40. package/dist/runtime/actors/actor-context.js +19 -17
  41. package/dist/runtime/actors/actor-handoff.d.ts +13 -7
  42. package/dist/runtime/actors/actor-handoff.js +36 -25
  43. package/dist/runtime/actors/actor-lifecycle-snapshot.js +2 -1
  44. package/dist/runtime/actors/actor-local-native-join.d.ts +11 -6
  45. package/dist/runtime/actors/actor-local-native-join.js +85 -123
  46. package/dist/runtime/actors/actor-native-lookup.js +2 -8
  47. package/dist/runtime/actors/actor-packet-relay-wire.d.ts +3 -3
  48. package/dist/runtime/actors/actor-packet-relay-wire.js +5 -3
  49. package/dist/runtime/actors/actor-remote-joiner.d.ts +3 -3
  50. package/dist/runtime/actors/actor-remote-joiner.js +11 -17
  51. package/dist/runtime/actors/actor-remote-wire.js +5 -3
  52. package/dist/runtime/actors/actor-request-deadline.d.ts +3 -0
  53. package/dist/runtime/actors/actor-request-deadline.js +31 -0
  54. package/dist/runtime/actors/actor-retry-delay.js +2 -1
  55. package/dist/runtime/actors/actor-runtime-contracts.d.ts +4 -2
  56. package/dist/runtime/actors/actor-runtime-state.d.ts +9 -21
  57. package/dist/runtime/actors/actor-runtime-state.js +70 -187
  58. package/dist/runtime/actors/actor-source-transfer.d.ts +5 -5
  59. package/dist/runtime/actors/bound-session-wire.js +2 -7
  60. package/dist/runtime/actors/deferred-join-completion.d.ts +19 -0
  61. package/dist/runtime/actors/deferred-join-completion.js +21 -0
  62. package/dist/runtime/actors/index.d.ts +10 -8
  63. package/dist/runtime/actors/index.js +101 -73
  64. package/dist/runtime/actors/spot-actor-dispatch.d.ts +3 -3
  65. package/dist/runtime/actors/spot-actor-dispatch.js +25 -10
  66. package/dist/runtime/actors/transferred-actor-rollback.d.ts +3 -5
  67. package/dist/runtime/actors/transferred-actor-rollback.js +9 -42
  68. package/dist/runtime/admission.d.ts +7 -1
  69. package/dist/runtime/admission.js +11 -1
  70. package/dist/runtime/application-jobs/application-job-queue-scope.d.ts +1 -1
  71. package/dist/runtime/application-jobs/application-job-queue-scope.js +1 -1
  72. package/dist/runtime/backend/contracts/index.d.ts +8 -33
  73. package/dist/runtime/backend/mesh-actor-session-node-adapter.js +3 -26
  74. package/dist/runtime/backend/mesh-dispatch-pump.d.ts +1 -2
  75. package/dist/runtime/backend/mesh-dispatch-pump.js +95 -107
  76. package/dist/runtime/backend/node/node-backend-adapter-factory.d.ts +1 -2
  77. package/dist/runtime/backend/node/node-backend-adapter-factory.js +4 -18
  78. package/dist/runtime/backend/node/node-backend-adapter-support.d.ts +7 -4
  79. package/dist/runtime/backend/node/node-backend-adapter-support.js +28 -34
  80. package/dist/runtime/backend/node/node-event-loop-poller.d.ts +2 -2
  81. package/dist/runtime/backend/node/node-event-loop-poller.js +11 -6
  82. package/dist/runtime/backend/node/node-monitor-backend-adapter.js +1 -0
  83. package/dist/runtime/backend/node/node-raw-binding-port.d.ts +1 -1
  84. package/dist/runtime/backend/node/node-raw-binding-port.js +51 -19
  85. package/dist/runtime/backend/node/node-raw-mesh-backend.d.ts +21 -19
  86. package/dist/runtime/backend/node/node-raw-mesh-backend.js +171 -111
  87. package/dist/runtime/backend/node/node-socket-backend-adapter.js +4 -3
  88. package/dist/runtime/backend/raw-binding-port.d.ts +13 -1
  89. package/dist/runtime/backend/runtime-values.d.ts +4 -1
  90. package/dist/runtime/backend/runtime-values.js +2 -0
  91. package/dist/runtime/channels/channel-clients.d.ts +20 -9
  92. package/dist/runtime/channels/channel-clients.js +68 -60
  93. package/dist/runtime/channels/channel-envelope-inspection.js +2 -1
  94. package/dist/runtime/channels/channel-envelope.js +47 -29
  95. package/dist/runtime/channels/channel-outbound-operations.d.ts +3 -0
  96. package/dist/runtime/channels/channel-outbound-operations.js +9 -18
  97. package/dist/runtime/channels/channel-receive-loops.d.ts +8 -3
  98. package/dist/runtime/channels/channel-receive-loops.js +27 -6
  99. package/dist/runtime/channels/channel-runtime-lifecycle.d.ts +12 -1
  100. package/dist/runtime/channels/channel-runtime-lifecycle.js +48 -28
  101. package/dist/runtime/channels/channel-runtime-manager.d.ts +2 -5
  102. package/dist/runtime/channels/channel-runtime-manager.js +4 -12
  103. package/dist/runtime/channels/channel-socket-options.js +3 -2
  104. package/dist/runtime/channels/channel-socket-registry.d.ts +30 -32
  105. package/dist/runtime/channels/channel-socket-registry.js +296 -235
  106. package/dist/runtime/channels/channel-transports.d.ts +11 -20
  107. package/dist/runtime/channels/channel-transports.js +68 -47
  108. package/dist/runtime/channels/client-server-location-runtime.d.ts +1 -1
  109. package/dist/runtime/channels/client-server-location-runtime.js +10 -11
  110. package/dist/runtime/channels/client-server-service-wire.d.ts +7 -2
  111. package/dist/runtime/channels/client-server-service-wire.js +32 -11
  112. package/dist/runtime/channels/dispatch-error-reporter.d.ts +1 -2
  113. package/dist/runtime/channels/dispatch-error-reporter.js +2 -1
  114. package/dist/runtime/channels/fanout-location-runtime.d.ts +16 -3
  115. package/dist/runtime/channels/fanout-location-runtime.js +133 -81
  116. package/dist/runtime/channels/spot-direct-envelope.d.ts +1 -0
  117. package/dist/runtime/channels/spot-direct-envelope.js +4 -3
  118. package/dist/runtime/channels/spot-node-route-transport.js +3 -2
  119. package/dist/runtime/diagnostics/diagnostic-text.d.ts +2 -0
  120. package/dist/runtime/diagnostics/diagnostic-text.js +7 -0
  121. package/dist/runtime/diagnostics/dispatch-error-details.d.ts +3 -0
  122. package/dist/runtime/diagnostics/dispatch-error-details.js +30 -2
  123. package/dist/runtime/diagnostics/flow-context.d.ts +6 -0
  124. package/dist/runtime/diagnostics/flow-context.js +16 -2
  125. package/dist/runtime/diagnostics/index.d.ts +4 -2
  126. package/dist/runtime/diagnostics/index.js +14 -4
  127. package/dist/runtime/diagnostics/message-flow.d.ts +1 -1
  128. package/dist/runtime/diagnostics/message-flow.js +10 -19
  129. package/dist/runtime/diagnostics/runtime-metrics.d.ts +94 -31
  130. package/dist/runtime/diagnostics/runtime-metrics.js +168 -105
  131. package/dist/runtime/diagnostics/runtime-observation-queue.js +3 -2
  132. package/dist/runtime/diagnostics/topology-runtime-projections.d.ts +2 -4
  133. package/dist/runtime/diagnostics/topology-runtime-projections.js +135 -154
  134. package/dist/runtime/disposal.d.ts +5 -0
  135. package/dist/runtime/disposal.js +22 -0
  136. package/dist/runtime/execution/index.d.ts +22 -9
  137. package/dist/runtime/execution/index.js +107 -37
  138. package/dist/runtime/execution/serial-execution-queue.d.ts +12 -7
  139. package/dist/runtime/execution/serial-execution-queue.js +99 -26
  140. package/dist/runtime/execution/state-lane.d.ts +8 -1
  141. package/dist/runtime/execution/state-lane.js +118 -3
  142. package/dist/runtime/foundation/actor-join-recovery-codec.d.ts +3 -0
  143. package/dist/runtime/foundation/actor-join-recovery-codec.js +15 -11
  144. package/dist/runtime/foundation/event-loop-resources.d.ts +2 -24
  145. package/dist/runtime/foundation/event-loop-resources.js +6 -119
  146. package/dist/runtime/foundation/listener-records.d.ts +11 -0
  147. package/dist/runtime/foundation/listener-records.js +20 -0
  148. package/dist/runtime/foundation/operation-identity.d.ts +2 -0
  149. package/dist/runtime/foundation/operation-identity.js +9 -5
  150. package/dist/runtime/foundation/operation-registry.d.ts +5 -7
  151. package/dist/runtime/foundation/operation-registry.js +34 -44
  152. package/dist/runtime/foundation/raw-service-mesh-runtime.d.ts +18 -26
  153. package/dist/runtime/foundation/raw-service-mesh-runtime.js +122 -469
  154. package/dist/runtime/foundation/runtime-state-projections.d.ts +3 -1
  155. package/dist/runtime/foundation/runtime-state-projections.js +8 -0
  156. package/dist/runtime/foundation/service-authority-payload-codec.d.ts +1 -0
  157. package/dist/runtime/foundation/service-authority-payload-codec.js +30 -12
  158. package/dist/runtime/foundation/service-discovery-registry.d.ts +4 -0
  159. package/dist/runtime/foundation/service-discovery-registry.js +22 -3
  160. package/dist/runtime/foundation/service-instance-activation-recovery-codec.js +8 -4
  161. package/dist/runtime/foundation/service-liveness-registry.js +2 -1
  162. package/dist/runtime/foundation/service-maintenance-runtime.d.ts +0 -1
  163. package/dist/runtime/foundation/service-maintenance-runtime.js +23 -8
  164. package/dist/runtime/foundation/service-metadata-codec.js +3 -3
  165. package/dist/runtime/foundation/service-relocation-aggregate-committer.d.ts +2 -5
  166. package/dist/runtime/foundation/service-relocation-aggregate-committer.js +1 -48
  167. package/dist/runtime/foundation/service-relocation-coordinator.d.ts +9 -0
  168. package/dist/runtime/foundation/service-relocation-coordinator.js +14 -1
  169. package/dist/runtime/foundation/service-relocation-object-owner.d.ts +8 -0
  170. package/dist/runtime/foundation/service-relocation-object-owner.js +19 -6
  171. package/dist/runtime/foundation/service-relocation-runtime.js +43 -32
  172. package/dist/runtime/foundation/service-runtime-contracts.d.ts +40 -8
  173. package/dist/runtime/foundation/service-runtime-contracts.js +25 -1
  174. package/dist/runtime/foundation/service-session-binding-ingress-port.d.ts +0 -19
  175. package/dist/runtime/foundation/service-stateful-registry.d.ts +2 -0
  176. package/dist/runtime/foundation/service-stateful-registry.js +10 -2
  177. package/dist/runtime/foundation/service-stateful-runtime.d.ts +28 -24
  178. package/dist/runtime/foundation/service-stateful-runtime.js +297 -244
  179. package/dist/runtime/foundation/service-stateful-wire-codec.d.ts +12 -7
  180. package/dist/runtime/foundation/service-stateful-wire-codec.js +240 -143
  181. package/dist/runtime/foundation/service-topology-registry.d.ts +1 -3
  182. package/dist/runtime/foundation/service-topology-registry.js +22 -61
  183. package/dist/runtime/foundation/service-wire-binary-primitives.d.ts +5 -0
  184. package/dist/runtime/foundation/service-wire-binary-primitives.js +6 -0
  185. package/dist/runtime/foundation/service-wire-codec.js +10 -8
  186. package/dist/runtime/foundation/service-wire-constants.generated.d.ts +1 -0
  187. package/dist/runtime/foundation/service-wire-constants.generated.js +2 -1
  188. package/dist/runtime/foundation/service-wire-m6a-codec.d.ts +2 -0
  189. package/dist/runtime/foundation/service-wire-m6a-codec.js +23 -13
  190. package/dist/runtime/framework-errors-internal.d.ts +2 -1
  191. package/dist/runtime/framework-errors-internal.js +343 -122
  192. package/dist/runtime/handlers/handler-instance-scope.d.ts +3 -1
  193. package/dist/runtime/handlers/handler-instance-scope.js +61 -74
  194. package/dist/runtime/host/actor-packet-relay.d.ts +9 -6
  195. package/dist/runtime/host/actor-packet-relay.js +48 -91
  196. package/dist/runtime/host/actor-placement-coordinator.js +7 -5
  197. package/dist/runtime/host/actor-runtime-options-factory.d.ts +2 -0
  198. package/dist/runtime/host/actor-runtime-options-factory.js +17 -4
  199. package/dist/runtime/host/actor-transfer-runtime.d.ts +28 -28
  200. package/dist/runtime/host/actor-transfer-runtime.js +210 -256
  201. package/dist/runtime/host/application-job-queue.js +16 -33
  202. package/dist/runtime/host/bound-session-relay.js +1 -1
  203. package/dist/runtime/host/channel-runtime-options-factory.js +1 -1
  204. package/dist/runtime/host/index.d.ts +19 -14
  205. package/dist/runtime/host/index.js +234 -175
  206. package/dist/runtime/host/instance-activation-authority.d.ts +2 -3
  207. package/dist/runtime/host/instance-activation-authority.js +17 -45
  208. package/dist/runtime/host/location-runtime-owner.d.ts +1 -1
  209. package/dist/runtime/host/location-runtime-owner.js +2 -2
  210. package/dist/runtime/host/remote-actor-join-receiver.d.ts +2 -2
  211. package/dist/runtime/host/remote-actor-join-receiver.js +1 -14
  212. package/dist/runtime/host/remote-actor-packet-target-store.d.ts +3 -2
  213. package/dist/runtime/host/remote-actor-packet-target-store.js +8 -47
  214. package/dist/runtime/host/remote-bound-session-relay.d.ts +2 -3
  215. package/dist/runtime/host/remote-bound-session-relay.js +11 -23
  216. package/dist/runtime/host/route-mesh-runtime.d.ts +14 -10
  217. package/dist/runtime/host/route-mesh-runtime.js +178 -257
  218. package/dist/runtime/host/runtime-shutdown.d.ts +2 -0
  219. package/dist/runtime/host/runtime-shutdown.js +18 -21
  220. package/dist/runtime/host/service-relocation-control.js +6 -1
  221. package/dist/runtime/host/service-relocation-host-runtime.d.ts +71 -38
  222. package/dist/runtime/host/service-relocation-host-runtime.js +816 -651
  223. package/dist/runtime/host/spot-address-transport.d.ts +2 -3
  224. package/dist/runtime/host/spot-address-transport.js +34 -136
  225. package/dist/runtime/host/spot-node-runtime-options-factory.d.ts +1 -1
  226. package/dist/runtime/host/spot-node-runtime-options-factory.js +3 -2
  227. package/dist/runtime/host/spot-runtime-options-factory.d.ts +4 -7
  228. package/dist/runtime/host/spot-runtime-options-factory.js +53 -21
  229. package/dist/runtime/host/stateful-authority-route-runtime.js +6 -2
  230. package/dist/runtime/host/user-spot-creation-coordinator.d.ts +14 -6
  231. package/dist/runtime/host/user-spot-creation-coordinator.js +96 -95
  232. package/dist/runtime/locations/aggregate-inventory-store.js +13 -10
  233. package/dist/runtime/locations/authority-key-codec.js +4 -3
  234. package/dist/runtime/locations/auto-connect-reconciler.d.ts +4 -0
  235. package/dist/runtime/locations/auto-connect-reconciler.js +37 -25
  236. package/dist/runtime/locations/creation-operation-id.js +6 -4
  237. package/dist/runtime/locations/domain-store-contract.d.ts +3 -3
  238. package/dist/runtime/locations/in-memory-authority-store.js +31 -15
  239. package/dist/runtime/locations/in-memory-location-store.d.ts +2 -2
  240. package/dist/runtime/locations/in-memory-location-store.js +17 -14
  241. package/dist/runtime/locations/in-memory-provider-location-store.d.ts +1 -0
  242. package/dist/runtime/locations/in-memory-provider-location-store.js +79 -27
  243. package/dist/runtime/locations/key-codec.js +3 -2
  244. package/dist/runtime/locations/lease-tracker.d.ts +3 -5
  245. package/dist/runtime/locations/lease-tracker.js +7 -11
  246. package/dist/runtime/locations/lifecycle.d.ts +5 -10
  247. package/dist/runtime/locations/lifecycle.js +4 -33
  248. package/dist/runtime/locations/location-store-failure.d.ts +2 -0
  249. package/dist/runtime/locations/location-store-failure.js +7 -0
  250. package/dist/runtime/locations/location-store-pages.d.ts +3 -0
  251. package/dist/runtime/locations/location-store-pages.js +13 -0
  252. package/dist/runtime/locations/location-store-repository.d.ts +5 -7
  253. package/dist/runtime/locations/location-store-repository.js +303 -332
  254. package/dist/runtime/locations/relocation-blob.js +18 -5
  255. package/dist/runtime/locations/resolvers.d.ts +5 -5
  256. package/dist/runtime/locations/resolvers.js +44 -30
  257. package/dist/runtime/locations/runtime.d.ts +5 -4
  258. package/dist/runtime/locations/runtime.js +123 -92
  259. package/dist/runtime/locations/spot-location-claims.d.ts +8 -2
  260. package/dist/runtime/locations/spot-location-claims.js +40 -23
  261. package/dist/runtime/messaging/payload-codec.js +26 -20
  262. package/dist/runtime/messaging/submission-result.d.ts +3 -0
  263. package/dist/runtime/messaging/submission-result.js +48 -0
  264. package/dist/runtime/protocol/service_wire_codec.generated.d.ts +2 -0
  265. package/dist/runtime/protocol/service_wire_codec.generated.js +17 -8
  266. package/dist/runtime/protocol/service_wire_pilot_codec.generated.d.ts +1 -0
  267. package/dist/runtime/protocol/service_wire_pilot_codec.generated.js +3 -2
  268. package/dist/runtime/spots/formal-remote-actor-admission-registry.d.ts +3 -3
  269. package/dist/runtime/spots/formal-remote-actor-admission-registry.js +4 -4
  270. package/dist/runtime/spots/formal-remote-actor-transfer-registry.d.ts +6 -3
  271. package/dist/runtime/spots/index.d.ts +29 -29
  272. package/dist/runtime/spots/index.js +441 -313
  273. package/dist/runtime/spots/spot-activation-registry.d.ts +4 -4
  274. package/dist/runtime/spots/spot-activation-registry.js +27 -60
  275. package/dist/runtime/spots/spot-activation-state.d.ts +2 -11
  276. package/dist/runtime/spots/spot-activation-state.js +4 -17
  277. package/dist/runtime/spots/spot-activation.d.ts +10 -9
  278. package/dist/runtime/spots/spot-activation.js +103 -81
  279. package/dist/runtime/spots/spot-actor-admission-coordinator.d.ts +1 -2
  280. package/dist/runtime/spots/spot-actor-admission-coordinator.js +3 -40
  281. package/dist/runtime/spots/spot-actor-join-dispatch.d.ts +10 -18
  282. package/dist/runtime/spots/spot-actor-join-dispatch.js +5 -55
  283. package/dist/runtime/spots/spot-actor-lifecycle-drain.js +2 -2
  284. package/dist/runtime/spots/spot-actor-membership.d.ts +7 -5
  285. package/dist/runtime/spots/spot-actor-membership.js +44 -53
  286. package/dist/runtime/spots/spot-actor-packet-dispatch.d.ts +0 -1
  287. package/dist/runtime/spots/spot-actor-packet-dispatch.js +0 -9
  288. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.d.ts +2 -2
  289. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +1 -7
  290. package/dist/runtime/spots/spot-context.d.ts +2 -2
  291. package/dist/runtime/spots/spot-entry-activation.d.ts +3 -4
  292. package/dist/runtime/spots/spot-entry-activation.js +9 -21
  293. package/dist/runtime/spots/spot-lifecycle-metrics.js +3 -2
  294. package/dist/runtime/spots/spot-manager-public.d.ts +5 -6
  295. package/dist/runtime/spots/spot-manager-public.js +6 -5
  296. package/dist/runtime/spots/spot-node-autoconnect.js +22 -31
  297. package/dist/runtime/spots/spot-node-runtime-manager.d.ts +22 -21
  298. package/dist/runtime/spots/spot-node-runtime-manager.js +73 -82
  299. package/dist/runtime/spots/spot-outbound.d.ts +4 -3
  300. package/dist/runtime/spots/spot-outbound.js +10 -37
  301. package/dist/runtime/spots/spot-remote-codec.js +5 -3
  302. package/dist/runtime/spots/spot-route-packet-dispatch.d.ts +2 -2
  303. package/dist/runtime/spots/spot-route-packet-dispatch.js +8 -8
  304. package/dist/runtime/spots/spot-route-replies.d.ts +2 -2
  305. package/dist/runtime/spots/spot-route-replies.js +3 -1
  306. package/dist/runtime/spots/spot-routed-actor-admission.d.ts +3 -2
  307. package/dist/runtime/spots/spot-routed-actor-admission.js +3 -2
  308. package/dist/runtime/spots/spot-routed-frame-dispatch.d.ts +2 -7
  309. package/dist/runtime/spots/spot-routed-frame-dispatch.js +1 -70
  310. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.d.ts +4 -0
  311. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +65 -15
  312. package/dist/runtime/spots/spot-runtime-ports.d.ts +4 -20
  313. package/dist/runtime/spots/spot-serial-executor.d.ts +5 -0
  314. package/dist/runtime/spots/spot-serial-executor.js +9 -2
  315. package/dist/runtime/spots/spot-serial-turn-executor.d.ts +29 -6
  316. package/dist/runtime/spots/spot-serial-turn-executor.js +89 -13
  317. package/dist/runtime/spots/spot-timer.d.ts +3 -2
  318. package/dist/runtime/streams/actor-session-binding-registry.d.ts +17 -32
  319. package/dist/runtime/streams/actor-session-binding-registry.js +145 -367
  320. package/dist/runtime/streams/actor-session-binding-runtime-owner.d.ts +2 -6
  321. package/dist/runtime/streams/bound-actor-relay-sender.d.ts +6 -2
  322. package/dist/runtime/streams/bound-actor-relay-sender.js +57 -33
  323. package/dist/runtime/streams/bound-session-service.d.ts +7 -0
  324. package/dist/runtime/streams/bound-session-service.js +12 -19
  325. package/dist/runtime/streams/index.d.ts +15 -14
  326. package/dist/runtime/streams/index.js +38 -39
  327. package/dist/runtime/streams/managed-stream.d.ts +3 -0
  328. package/dist/runtime/streams/managed-stream.js +17 -8
  329. package/dist/runtime/streams/native-fallback-bound-session.js +1 -3
  330. package/dist/runtime/streams/protocol.d.ts +6 -33
  331. package/dist/runtime/streams/protocol.js +38 -110
  332. package/dist/runtime/streams/session-actor-coordinator.d.ts +2 -3
  333. package/dist/runtime/streams/session-actor-coordinator.js +12 -4
  334. package/dist/runtime/streams/session-calls.d.ts +1 -1
  335. package/dist/runtime/streams/session-calls.js +5 -4
  336. package/dist/runtime/streams/session-context.d.ts +6 -6
  337. package/dist/runtime/streams/session-context.js +22 -4
  338. package/dist/runtime/streams/session-requests.js +2 -1
  339. package/dist/runtime/streams/session-serial-executor.js +2 -2
  340. package/dist/runtime/streams/stream-binding-runtime-ports.d.ts +16 -1
  341. package/dist/runtime/streams/stream-frame-factory.js +2 -2
  342. package/dist/runtime/streams/stream-session-runtime.d.ts +10 -11
  343. package/dist/runtime/streams/stream-session-runtime.js +25 -33
  344. package/dist/runtime/workers/index.d.ts +2 -2
  345. package/dist/runtime/workers/index.js +5 -4
  346. package/package.json +3 -3
  347. package/src/contracts/Channels/IZLinkFanoutClient.ts +0 -7
  348. package/src/contracts/Common/CoreTypes.ts +7 -0
  349. package/src/contracts/Common/index.ts +1 -1
  350. package/src/contracts/Configuration/InternalDefaults.ts +12 -0
  351. package/src/contracts/Configuration/Registration.ts +92 -48
  352. package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +44 -2
  353. package/src/contracts/Configuration/RegistrationBuilders.ts +77 -68
  354. package/src/contracts/Configuration/RegistrationTypes.ts +1 -0
  355. package/src/contracts/Configuration/RegistrationValidators.ts +19 -13
  356. package/src/contracts/Configuration/TimerRegistrationValidator.ts +4 -2
  357. package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +1 -0
  358. package/src/contracts/Handlers/JsonContract.ts +14 -4
  359. package/src/contracts/Locations/Authority.ts +7 -3
  360. package/src/contracts/Locations/Options.ts +1 -1
  361. package/src/contracts/Locations/Stores.ts +14 -0
  362. package/src/contracts/RouteMesh/RuntimeTopology.ts +10 -0
  363. package/src/contracts/Spots/Contracts.ts +1 -1
  364. package/src/internal.ts +15 -0
  365. package/src/nest-integration.ts +28 -10
  366. package/src/runtime/abort.ts +6 -5
  367. package/src/runtime/activation-admission.ts +72 -0
  368. package/src/runtime/actors/actor-authority-payload-codec.ts +58 -20
  369. package/src/runtime/actors/actor-client.ts +77 -204
  370. package/src/runtime/actors/actor-context.ts +45 -39
  371. package/src/runtime/actors/actor-handoff.ts +55 -45
  372. package/src/runtime/actors/actor-lifecycle-snapshot.ts +2 -1
  373. package/src/runtime/actors/actor-local-native-join.ts +174 -215
  374. package/src/runtime/actors/actor-native-lookup.ts +2 -9
  375. package/src/runtime/actors/actor-packet-relay-wire.ts +18 -12
  376. package/src/runtime/actors/actor-remote-joiner.ts +15 -36
  377. package/src/runtime/actors/actor-remote-wire.ts +5 -3
  378. package/src/runtime/actors/actor-request-deadline.ts +49 -0
  379. package/src/runtime/actors/actor-retry-delay.ts +2 -1
  380. package/src/runtime/actors/actor-runtime-contracts.ts +4 -10
  381. package/src/runtime/actors/actor-runtime-state.ts +85 -247
  382. package/src/runtime/actors/actor-source-transfer.ts +5 -18
  383. package/src/runtime/actors/bound-session-wire.ts +2 -8
  384. package/src/runtime/actors/deferred-join-completion.ts +44 -0
  385. package/src/runtime/actors/index.ts +122 -88
  386. package/src/runtime/actors/spot-actor-dispatch.ts +60 -29
  387. package/src/runtime/actors/transferred-actor-rollback.ts +11 -62
  388. package/src/runtime/admission.ts +13 -2
  389. package/src/runtime/application-jobs/application-job-queue-scope.ts +4 -4
  390. package/src/runtime/backend/contracts/index.ts +15 -42
  391. package/src/runtime/backend/mesh-actor-session-node-adapter.ts +4 -28
  392. package/src/runtime/backend/mesh-dispatch-pump.ts +111 -117
  393. package/src/runtime/backend/node/node-backend-adapter-factory.ts +5 -25
  394. package/src/runtime/backend/node/node-backend-adapter-support.ts +32 -35
  395. package/src/runtime/backend/node/node-event-loop-poller.ts +16 -8
  396. package/src/runtime/backend/node/node-monitor-backend-adapter.ts +1 -0
  397. package/src/runtime/backend/node/node-raw-binding-port.ts +58 -23
  398. package/src/runtime/backend/node/node-raw-mesh-backend.ts +252 -162
  399. package/src/runtime/backend/node/node-socket-backend-adapter.ts +5 -4
  400. package/src/runtime/backend/raw-binding-port.ts +14 -1
  401. package/src/runtime/backend/runtime-values.ts +4 -1
  402. package/src/runtime/channels/channel-clients.ts +132 -96
  403. package/src/runtime/channels/channel-envelope-inspection.ts +2 -1
  404. package/src/runtime/channels/channel-envelope.ts +58 -29
  405. package/src/runtime/channels/channel-outbound-operations.ts +10 -31
  406. package/src/runtime/channels/channel-receive-loops.ts +39 -7
  407. package/src/runtime/channels/channel-runtime-lifecycle.ts +60 -27
  408. package/src/runtime/channels/channel-runtime-manager.ts +8 -15
  409. package/src/runtime/channels/channel-socket-options.ts +8 -2
  410. package/src/runtime/channels/channel-socket-registry.ts +369 -262
  411. package/src/runtime/channels/channel-transports.ts +161 -115
  412. package/src/runtime/channels/client-server-location-runtime.ts +17 -17
  413. package/src/runtime/channels/client-server-service-wire.ts +40 -12
  414. package/src/runtime/channels/dispatch-error-reporter.ts +7 -5
  415. package/src/runtime/channels/fanout-location-runtime.ts +175 -106
  416. package/src/runtime/channels/spot-direct-envelope.ts +1 -1
  417. package/src/runtime/channels/spot-node-route-transport.ts +5 -2
  418. package/src/runtime/diagnostics/diagnostic-text.ts +4 -0
  419. package/src/runtime/diagnostics/dispatch-error-details.ts +36 -1
  420. package/src/runtime/diagnostics/flow-context.ts +16 -2
  421. package/src/runtime/diagnostics/index.ts +27 -17
  422. package/src/runtime/diagnostics/message-flow.ts +15 -25
  423. package/src/runtime/diagnostics/runtime-metrics.ts +181 -113
  424. package/src/runtime/diagnostics/runtime-observation-queue.ts +3 -2
  425. package/src/runtime/diagnostics/topology-runtime-projections.ts +194 -162
  426. package/src/runtime/disposal.ts +19 -0
  427. package/src/runtime/execution/index.ts +116 -38
  428. package/src/runtime/execution/serial-execution-queue.ts +179 -34
  429. package/src/runtime/execution/state-lane.ts +142 -4
  430. package/src/runtime/foundation/actor-join-recovery-codec.ts +13 -8
  431. package/src/runtime/foundation/event-loop-resources.ts +5 -122
  432. package/src/runtime/foundation/listener-records.ts +21 -0
  433. package/src/runtime/foundation/operation-identity.ts +11 -5
  434. package/src/runtime/foundation/operation-registry.ts +33 -50
  435. package/src/runtime/foundation/raw-service-mesh-runtime.ts +170 -571
  436. package/src/runtime/foundation/runtime-state-projections.ts +9 -1
  437. package/src/runtime/foundation/service-authority-payload-codec.ts +41 -13
  438. package/src/runtime/foundation/service-discovery-registry.ts +32 -3
  439. package/src/runtime/foundation/service-instance-activation-recovery-codec.ts +12 -4
  440. package/src/runtime/foundation/service-liveness-registry.ts +2 -1
  441. package/src/runtime/foundation/service-maintenance-runtime.ts +30 -19
  442. package/src/runtime/foundation/service-metadata-codec.ts +2 -2
  443. package/src/runtime/foundation/service-relocation-aggregate-committer.ts +3 -66
  444. package/src/runtime/foundation/service-relocation-coordinator.ts +13 -0
  445. package/src/runtime/foundation/service-relocation-object-owner.ts +23 -7
  446. package/src/runtime/foundation/service-relocation-runtime.ts +57 -35
  447. package/src/runtime/foundation/service-runtime-contracts.ts +46 -10
  448. package/src/runtime/foundation/service-session-binding-ingress-port.ts +0 -25
  449. package/src/runtime/foundation/service-stateful-registry.ts +14 -2
  450. package/src/runtime/foundation/service-stateful-runtime.ts +435 -327
  451. package/src/runtime/foundation/service-stateful-wire-codec.ts +329 -199
  452. package/src/runtime/foundation/service-topology-registry.ts +30 -79
  453. package/src/runtime/foundation/service-wire-binary-primitives.ts +6 -0
  454. package/src/runtime/foundation/service-wire-codec.ts +15 -8
  455. package/src/runtime/foundation/service-wire-constants.generated.ts +1 -0
  456. package/src/runtime/foundation/service-wire-m6a-codec.ts +29 -15
  457. package/src/runtime/framework-errors-internal.ts +380 -134
  458. package/src/runtime/handlers/handler-instance-scope.ts +68 -95
  459. package/src/runtime/host/actor-packet-relay.ts +57 -147
  460. package/src/runtime/host/actor-placement-coordinator.ts +8 -5
  461. package/src/runtime/host/actor-runtime-options-factory.ts +27 -8
  462. package/src/runtime/host/actor-transfer-runtime.ts +266 -418
  463. package/src/runtime/host/application-job-queue.ts +28 -34
  464. package/src/runtime/host/bound-session-relay.ts +1 -2
  465. package/src/runtime/host/channel-runtime-options-factory.ts +1 -2
  466. package/src/runtime/host/index.ts +408 -312
  467. package/src/runtime/host/instance-activation-authority.ts +89 -109
  468. package/src/runtime/host/location-runtime-owner.ts +4 -2
  469. package/src/runtime/host/remote-actor-join-receiver.ts +3 -31
  470. package/src/runtime/host/remote-actor-packet-target-store.ts +17 -58
  471. package/src/runtime/host/remote-bound-session-relay.ts +12 -44
  472. package/src/runtime/host/route-mesh-runtime.ts +236 -275
  473. package/src/runtime/host/runtime-shutdown.ts +17 -21
  474. package/src/runtime/host/service-relocation-control.ts +14 -1
  475. package/src/runtime/host/service-relocation-host-runtime.ts +1161 -904
  476. package/src/runtime/host/spot-address-transport.ts +73 -195
  477. package/src/runtime/host/spot-node-runtime-options-factory.ts +6 -3
  478. package/src/runtime/host/spot-runtime-options-factory.ts +92 -30
  479. package/src/runtime/host/stateful-authority-route-runtime.ts +8 -4
  480. package/src/runtime/host/user-spot-creation-coordinator.ts +182 -163
  481. package/src/runtime/locations/aggregate-inventory-store.ts +16 -13
  482. package/src/runtime/locations/authority-key-codec.ts +7 -3
  483. package/src/runtime/locations/auto-connect-reconciler.ts +39 -26
  484. package/src/runtime/locations/creation-operation-id.ts +6 -3
  485. package/src/runtime/locations/domain-store-contract.ts +12 -3
  486. package/src/runtime/locations/in-memory-authority-store.ts +44 -15
  487. package/src/runtime/locations/in-memory-location-store.ts +50 -39
  488. package/src/runtime/locations/in-memory-provider-location-store.ts +110 -31
  489. package/src/runtime/locations/key-codec.ts +3 -2
  490. package/src/runtime/locations/lease-tracker.ts +8 -14
  491. package/src/runtime/locations/lifecycle.ts +16 -45
  492. package/src/runtime/locations/location-store-failure.ts +4 -0
  493. package/src/runtime/locations/location-store-pages.ts +18 -0
  494. package/src/runtime/locations/location-store-repository.ts +450 -478
  495. package/src/runtime/locations/relocation-blob.ts +17 -6
  496. package/src/runtime/locations/resolvers.ts +90 -58
  497. package/src/runtime/locations/runtime.ts +220 -110
  498. package/src/runtime/locations/spot-location-claims.ts +54 -26
  499. package/src/runtime/messaging/payload-codec.ts +35 -24
  500. package/src/runtime/messaging/submission-result.ts +57 -1
  501. package/src/runtime/protocol/service_wire_codec.generated.ts +27 -10
  502. package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +4 -4
  503. package/src/runtime/spots/formal-remote-actor-admission-registry.ts +6 -6
  504. package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +6 -3
  505. package/src/runtime/spots/index.ts +687 -437
  506. package/src/runtime/spots/spot-activation-registry.ts +42 -71
  507. package/src/runtime/spots/spot-activation-state.ts +4 -16
  508. package/src/runtime/spots/spot-activation.ts +167 -115
  509. package/src/runtime/spots/spot-actor-admission-coordinator.ts +5 -57
  510. package/src/runtime/spots/spot-actor-join-dispatch.ts +25 -79
  511. package/src/runtime/spots/spot-actor-lifecycle-drain.ts +20 -18
  512. package/src/runtime/spots/spot-actor-membership.ts +107 -75
  513. package/src/runtime/spots/spot-actor-packet-dispatch.ts +0 -16
  514. package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +3 -15
  515. package/src/runtime/spots/spot-context.ts +3 -3
  516. package/src/runtime/spots/spot-entry-activation.ts +13 -33
  517. package/src/runtime/spots/spot-lifecycle-metrics.ts +3 -2
  518. package/src/runtime/spots/spot-manager-public.ts +29 -21
  519. package/src/runtime/spots/spot-node-autoconnect.ts +20 -26
  520. package/src/runtime/spots/spot-node-runtime-manager.ts +145 -140
  521. package/src/runtime/spots/spot-outbound.ts +47 -68
  522. package/src/runtime/spots/spot-remote-codec.ts +7 -3
  523. package/src/runtime/spots/spot-route-packet-dispatch.ts +25 -24
  524. package/src/runtime/spots/spot-route-replies.ts +6 -4
  525. package/src/runtime/spots/spot-routed-actor-admission.ts +13 -6
  526. package/src/runtime/spots/spot-routed-frame-dispatch.ts +6 -77
  527. package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +95 -22
  528. package/src/runtime/spots/spot-runtime-ports.ts +10 -43
  529. package/src/runtime/spots/spot-serial-executor.ts +10 -2
  530. package/src/runtime/spots/spot-serial-turn-executor.ts +120 -13
  531. package/src/runtime/spots/spot-timer.ts +3 -2
  532. package/src/runtime/streams/actor-session-binding-registry.ts +182 -560
  533. package/src/runtime/streams/actor-session-binding-runtime-owner.ts +1 -19
  534. package/src/runtime/streams/bound-actor-relay-sender.ts +89 -43
  535. package/src/runtime/streams/bound-session-service.ts +23 -37
  536. package/src/runtime/streams/index.ts +102 -88
  537. package/src/runtime/streams/managed-stream.ts +29 -10
  538. package/src/runtime/streams/native-fallback-bound-session.ts +1 -3
  539. package/src/runtime/streams/protocol.ts +34 -88
  540. package/src/runtime/streams/session-actor-coordinator.ts +17 -5
  541. package/src/runtime/streams/session-calls.ts +6 -5
  542. package/src/runtime/streams/session-context.ts +54 -10
  543. package/src/runtime/streams/session-requests.ts +2 -1
  544. package/src/runtime/streams/session-serial-executor.ts +2 -2
  545. package/src/runtime/streams/stream-binding-runtime-ports.ts +22 -1
  546. package/src/runtime/streams/stream-frame-factory.ts +2 -3
  547. package/src/runtime/streams/stream-session-runtime.ts +57 -59
  548. package/src/runtime/workers/index.ts +13 -12
  549. package/dist/runtime/actors/deferred-join-accepted-journal.d.ts +0 -47
  550. package/dist/runtime/actors/deferred-join-accepted-journal.js +0 -992
  551. package/dist/runtime/actors/post-commit-actor-location.d.ts +0 -19
  552. package/dist/runtime/actors/post-commit-actor-location.js +0 -72
  553. package/dist/runtime/spots/spot-native-actor-join-admission.d.ts +0 -26
  554. package/dist/runtime/spots/spot-native-actor-join-admission.js +0 -106
  555. package/src/runtime/actors/deferred-join-accepted-journal.ts +0 -1346
  556. package/src/runtime/actors/post-commit-actor-location.ts +0 -121
  557. package/src/runtime/spots/spot-native-actor-join-admission.ts +0 -155
@@ -20,6 +20,7 @@ import { ZLinkFrameworkException } from '../../contracts';
20
20
  import {
21
21
  decodeServiceInstanceAuthorityPayload,
22
22
  decodeServiceReadySpotAuthority,
23
+ decodeServiceClosingSpotAuthority,
23
24
  encodeServiceInstanceAuthorityPayload
24
25
  } from '../foundation/service-authority-payload-codec';
25
26
  import type {
@@ -36,7 +37,6 @@ import type {
36
37
  } from '../foundation/service-stateful-wire-codec';
37
38
  import { routingIdsEqual } from '../routing-id';
38
39
  import { encodeAuthorityKey } from '../locations/authority-key-codec';
39
- import { crc32c } from '../foundation/service-relocation-runtime';
40
40
  import { putNewRelocationBlob, relocationBlobReference } from '../locations/relocation-blob';
41
41
 
42
42
  import {
@@ -80,7 +80,8 @@ export class ZLinkInstanceActivationAuthority implements ServiceAsyncInstanceAct
80
80
  }
81
81
 
82
82
  async reserve(
83
- activation: Omit<ServiceInstanceActivationRecoveryEnvelope, 'targetMeshName'>
83
+ activation: Omit<ServiceInstanceActivationRecoveryEnvelope, 'targetMeshName'>,
84
+ signal?: AbortSignal
84
85
  ): Promise<ServiceInstanceAuthorityReserve> {
85
86
  const target = activation.target;
86
87
  const owner = this.requireOwner();
@@ -99,15 +100,15 @@ export class ZLinkInstanceActivationAuthority implements ServiceAsyncInstanceAct
99
100
  const stored = await putNewRelocationBlob(
100
101
  relocationStore,
101
102
  requestBytes,
102
- CREATION_REQUEST_RETENTION_MS
103
+ CREATION_REQUEST_RETENTION_MS,
104
+ signal
103
105
  );
104
- const storedRead = await relocationStore.read(stored.reference);
106
+ const storedRead = await relocationStore.read(stored.reference, signal);
105
107
  if (
106
108
  stored.reference.value.length === 0 ||
107
109
  stored.expiresAt.getTime() <= stored.storeNow.getTime() ||
108
110
  storedRead.kind !== 'found' ||
109
- crc32c(storedRead.bytes) !== crc32c(requestBytes) ||
110
- !Buffer.from(storedRead.bytes).equals(requestBytes)
111
+ Buffer.compare(storedRead.bytes, requestBytes) !== 0
111
112
  ) {
112
113
  await this.deleteOrphan(stored.reference);
113
114
  throw new Error('Relocation Store returned an invalid creation request receipt.');
@@ -115,50 +116,44 @@ export class ZLinkInstanceActivationAuthority implements ServiceAsyncInstanceAct
115
116
  let reserved: Awaited<ReturnType<ZLinkObjectCreationStore['reserve']>>;
116
117
  try {
117
118
  for (;;) {
118
- reserved = await this.options.store.reserve({
119
- key: { kind: 'instance_spot', globalId: target.targetSpotId },
120
- intent: {
121
- stableType: target.stableType,
122
- requestContentReference: stored.reference.value,
123
- requestSha256: requestHash,
124
- requestEncodedSize: BigInt(requestBytes.byteLength)
125
- },
126
- target: {
127
- meshName: this.options.meshName,
128
- nodeRid: target.targetNodeRid,
129
- nodeLifecycleGeneration: target.targetNodeGeneration,
130
- owner
131
- },
132
- creatingPayload: encodeServiceInstanceAuthorityPayload({
133
- state: 'coldActivating',
134
- stableType: target.stableType,
135
- spotId: target.targetSpotId,
136
- ownerId: owner.ownerId,
137
- ownerLeaseGeneration: owner.leaseGeneration,
138
- ownerMeshName: this.options.meshName,
139
- ownerNodeRid: target.targetNodeRid,
140
- ownerNodeGeneration: target.targetNodeGeneration
141
- }),
142
- capacity: {
143
- actors: 0,
144
- spots: 1,
145
- spotType: {
146
- objectKind: 'instance_spot',
119
+ reserved = await this.options.store.reserve(
120
+ {
121
+ key: { kind: 'instance_spot', globalId: target.targetSpotId },
122
+ intent: {
147
123
  stableType: target.stableType,
148
- count: 1
124
+ requestContentReference: stored.reference.value,
125
+ requestSha256: requestHash,
126
+ requestEncodedSize: BigInt(requestBytes.byteLength)
127
+ },
128
+ target: {
129
+ meshName: this.options.meshName,
130
+ nodeRid: target.targetNodeRid,
131
+ nodeLifecycleGeneration: target.targetNodeGeneration,
132
+ owner
133
+ },
134
+ creatingPayload: encodeServiceInstanceAuthorityPayload({
135
+ state: 'coldActivating',
136
+ stableType: target.stableType,
137
+ spotId: target.targetSpotId,
138
+ ownerId: owner.ownerId,
139
+ ownerLeaseGeneration: owner.leaseGeneration,
140
+ ownerMeshName: this.options.meshName,
141
+ ownerNodeRid: target.targetNodeRid,
142
+ ownerNodeGeneration: target.targetNodeGeneration
143
+ }),
144
+ capacity: {
145
+ actors: 0,
146
+ spots: 1,
147
+ spotType: {
148
+ objectKind: 'instance_spot',
149
+ stableType: target.stableType,
150
+ count: 1
151
+ }
149
152
  }
150
- }
151
- });
152
- if (reserved.kind === 'conflict' || reserved.kind === 'alreadyExists') {
153
- const existingState =
154
- reserved.current.kind === 'snapshot'
155
- ? decodeServiceInstanceAuthorityPayload(reserved.current.payload)?.state
156
- : undefined;
157
- if (existingState === 'closing') {
158
- await this.awaitClosingRelease(target, activation.deadlineUnixMs);
159
- continue;
160
- }
161
- }
153
+ },
154
+ undefined,
155
+ activation.deadlineUnixMs
156
+ );
162
157
  if (reserved.kind !== 'alreadyExists') break;
163
158
  this.options.metrics?.recordInstanceSpotClaimConflict(
164
159
  this.options.meshName,
@@ -266,40 +261,45 @@ export class ZLinkInstanceActivationAuthority implements ServiceAsyncInstanceAct
266
261
  async commit(
267
262
  target: ServiceInstanceActivationTarget,
268
263
  reservation: ServiceInstanceActivationReservation,
269
- spot: ServiceSpotState
264
+ spot: ServiceSpotState,
265
+ deadlineUnixMs?: bigint
270
266
  ): Promise<{ readonly kind: 'committed' | 'lost'; readonly route: ServiceInstanceRouteFence }> {
271
267
  const pending = this.requirePending(reservation);
272
268
  requireCommitIdentity(target, reservation, pending.creating, spot, this.options.meshName);
273
269
  let result;
274
270
  try {
275
- result = await this.options.store.commit({
276
- key: { kind: 'instance_spot', globalId: target.targetSpotId },
277
- reservationId: pending.reservationId,
278
- expectedStoreVersion: pending.creating.storeVersion.value,
279
- target: {
280
- meshName: this.options.meshName,
281
- nodeRid: target.targetNodeRid,
282
- nodeLifecycleGeneration: target.targetNodeGeneration,
283
- owner: pending.owner
271
+ result = await this.options.store.commit(
272
+ {
273
+ key: { kind: 'instance_spot', globalId: target.targetSpotId },
274
+ reservationId: pending.reservationId,
275
+ expectedStoreVersion: pending.creating.storeVersion.value,
276
+ target: {
277
+ meshName: this.options.meshName,
278
+ nodeRid: target.targetNodeRid,
279
+ nodeLifecycleGeneration: target.targetNodeGeneration,
280
+ owner: pending.owner
281
+ },
282
+ readyPayload: encodeServiceInstanceAuthorityPayload({
283
+ state: 'ready',
284
+ stableType: spot.stableType,
285
+ spotId: spot.ref.spotId,
286
+ ownerId: pending.owner.ownerId,
287
+ ownerLeaseGeneration: pending.owner.leaseGeneration,
288
+ ownerMeshName: this.options.meshName,
289
+ ownerNodeRid: target.targetNodeRid,
290
+ ownerNodeGeneration: target.targetNodeGeneration,
291
+ activationRecovery: {
292
+ reference: pending.requestReference.value,
293
+ sha256: pending.requestSha256,
294
+ encodedSize: pending.requestEncodedSize,
295
+ inboxSequence: 1n,
296
+ replayCursor: 0n
297
+ }
298
+ })
284
299
  },
285
- readyPayload: encodeServiceInstanceAuthorityPayload({
286
- state: 'ready',
287
- stableType: spot.stableType,
288
- spotId: spot.ref.spotId,
289
- ownerId: pending.owner.ownerId,
290
- ownerLeaseGeneration: pending.owner.leaseGeneration,
291
- ownerMeshName: this.options.meshName,
292
- ownerNodeRid: target.targetNodeRid,
293
- ownerNodeGeneration: target.targetNodeGeneration,
294
- activationRecovery: {
295
- reference: pending.requestReference.value,
296
- sha256: pending.requestSha256,
297
- encodedSize: pending.requestEncodedSize,
298
- inboxSequence: 1n,
299
- replayCursor: 0n
300
- }
301
- })
302
- });
300
+ undefined,
301
+ deadlineUnixMs
302
+ );
303
303
  } catch (error) {
304
304
  if (error instanceof ZLinkFrameworkException) throw error;
305
305
  throw createInternalFrameworkException(
@@ -483,32 +483,6 @@ export class ZLinkInstanceActivationAuthority implements ServiceAsyncInstanceAct
483
483
  );
484
484
  }
485
485
 
486
- private async awaitClosingRelease(
487
- target: ServiceInstanceActivationTarget,
488
- deadlineUnixMs: bigint
489
- ): Promise<void> {
490
- const key = authorityKey(target.targetSpotId);
491
- const deadlineMs = performance.now() + Number(deadlineUnixMs - BigInt(Date.now()));
492
- while (performance.now() <= deadlineMs) {
493
- const current = await this.options.store.readAuthority(key);
494
- if (current.kind !== 'snapshot') return;
495
- const decoded = decodeServiceInstanceAuthorityPayload(current.payload);
496
- if (
497
- current.allocation.objectKind !== 'instance_spot' ||
498
- current.allocation.stableType !== target.stableType ||
499
- decoded?.kind !== 'instance_spot' ||
500
- decoded.spotId !== target.targetSpotId
501
- ) {
502
- throw new Error('Instance authority changed to a different Spot while closing.');
503
- }
504
- if (decoded.state !== 'closing') return;
505
- await waitForActivationJoin(deadlineMs);
506
- }
507
- throw new Error(
508
- `Instance Spot '${target.targetSpotId}' close did not release authority before deadline.`
509
- );
510
- }
511
-
512
486
  private requirePending(reservation: ServiceInstanceActivationReservation): PendingReservation {
513
487
  const pending = this.pending.get(reservation.token);
514
488
  if (pending === undefined || pending.creating.objectGeneration !== reservation.attempt) {
@@ -522,12 +496,13 @@ function readyRead(
522
496
  snapshot: ZLinkAuthoritySnapshot,
523
497
  target: ServiceInstanceActivationTarget
524
498
  ): ServiceInstanceAuthorityRead {
525
- const decoded = decodeServiceReadySpotAuthority(snapshot.payload);
499
+ const decoded =
500
+ decodeServiceReadySpotAuthority(snapshot.payload) ??
501
+ decodeServiceClosingSpotAuthority(snapshot.payload);
526
502
  const creating = decodeServiceInstanceAuthorityPayload(snapshot.payload);
527
503
  if (
528
504
  creating?.state === 'coldActivating' &&
529
505
  snapshot.allocation.objectKind === 'instance_spot' &&
530
- snapshot.allocation.state === 'reserved' &&
531
506
  creating.stableType === target.stableType &&
532
507
  creating.spotId === target.targetSpotId &&
533
508
  creating.ownerId === snapshot.ownerId &&
@@ -541,7 +516,8 @@ function readyRead(
541
516
  return {
542
517
  kind: 'creating',
543
518
  objectGeneration: snapshot.objectGeneration,
544
- authorityOwnerGeneration: snapshot.authorityOwnerGeneration
519
+ authorityOwnerGeneration: snapshot.authorityOwnerGeneration,
520
+ authority: snapshot
545
521
  };
546
522
  }
547
523
  if (
@@ -560,14 +536,16 @@ function readyRead(
560
536
  ) {
561
537
  return { kind: 'missing' };
562
538
  }
563
- return { kind: 'ready', route: routeFromSnapshot(snapshot) };
539
+ return { kind: 'ready', route: routeFromSnapshot(snapshot), authority: snapshot };
564
540
  }
565
541
 
566
542
  function readyExisting(
567
543
  snapshot: ZLinkAuthoritySnapshot,
568
544
  target: ServiceInstanceActivationTarget
569
545
  ): Extract<ServiceInstanceAuthorityRead, { readonly kind: 'ready' }> {
570
- const decoded = decodeServiceReadySpotAuthority(snapshot.payload);
546
+ const decoded =
547
+ decodeServiceReadySpotAuthority(snapshot.payload) ??
548
+ decodeServiceClosingSpotAuthority(snapshot.payload);
571
549
  if (
572
550
  decoded?.kind !== 'instance_spot' ||
573
551
  decoded.stableType !== target.stableType ||
@@ -582,7 +560,7 @@ function readyExisting(
582
560
  ) {
583
561
  throw new Error('Existing Instance authority is not a matching Ready allocation.');
584
562
  }
585
- return { kind: 'ready', route: routeFromSnapshot(snapshot) };
563
+ return { kind: 'ready', route: routeFromSnapshot(snapshot), authority: snapshot };
586
564
  }
587
565
 
588
566
  async function waitForActivationJoin(deadlineMs: number): Promise<void> {
@@ -619,7 +597,9 @@ function requireCommitIdentity(
619
597
  }
620
598
 
621
599
  function routeFromSnapshot(snapshot: ZLinkAuthoritySnapshot): ServiceInstanceRouteFence {
622
- const decoded = decodeServiceReadySpotAuthority(snapshot.payload);
600
+ const decoded =
601
+ decodeServiceReadySpotAuthority(snapshot.payload) ??
602
+ decodeServiceClosingSpotAuthority(snapshot.payload);
623
603
  if (decoded?.kind !== 'instance_spot') {
624
604
  throw new Error('Instance authority is not Ready.');
625
605
  }
@@ -203,13 +203,15 @@ export class ZLinkLocationRuntimeOwner {
203
203
  async startForRuntime(
204
204
  primaryMeshName: string | undefined,
205
205
  spotNodeRuntime: ZLinkSpotNodeRuntimeManager,
206
- channelRuntime: ZLinkChannelRuntimeManager
206
+ channelRuntime: ZLinkChannelRuntimeManager,
207
+ signal: AbortSignal,
208
+ shutdownSignal: () => AbortSignal
207
209
  ): Promise<ZLinkLocationRuntime | undefined> {
208
210
  const runtime = this.ensureRuntime(primaryMeshName);
209
211
  if (runtime === undefined) {
210
212
  return undefined;
211
213
  }
212
- await runtime.start(this.ownerNodeRid(spotNodeRuntime));
214
+ await runtime.start(this.ownerNodeRid(spotNodeRuntime), signal, shutdownSignal);
213
215
  const stores = this.currentStores;
214
216
  if (stores === undefined) {
215
217
  return runtime;
@@ -1,12 +1,8 @@
1
1
  import { ZLinkBufferMessage as RuntimeMessage } from '../backend/runtime-message';
2
- import type { RoutingId, ZLinkRouteMessageContext } from '../../contracts';
2
+ import type { RoutingId } from '../../contracts';
3
3
  import type { Message } from '../../contracts/Common/Message';
4
4
  import type { ZLinkBackendActorRef } from '../backend';
5
5
  import type { DefaultZLinkActorManager } from '../actors';
6
- import {
7
- mergeRemoteBoundSessionTarget,
8
- preferredRemoteBoundSessionTarget
9
- } from '../actors/actor-runtime-state';
10
6
  import { decodeRemoteActorJoinPayload } from '../actors/actor-remote-wire';
11
7
  import type { DefaultZLinkSpotManager } from '../spots';
12
8
  import type { ZLinkAuthorityStore } from '../locations/internal-store-contracts';
@@ -15,7 +11,7 @@ import {
15
11
  ZLinkFrameworkInternalErrorKind,
16
12
  createInternalFrameworkException
17
13
  } from '../framework-errors-internal';
18
- import { normalizeRoutingId, routingIdWireHex, routingIdsEqual } from '../routing-id';
14
+ import { routingIdWireHex, routingIdsEqual } from '../routing-id';
19
15
 
20
16
  export interface ZLinkCanonicalActorJoinAuthorityFence {
21
17
  readonly actorId: string;
@@ -35,10 +31,7 @@ export interface ZLinkRemoteActorJoinReceiverOptions {
35
31
  export class ZLinkRemoteActorJoinReceiver {
36
32
  constructor(private readonly options: ZLinkRemoteActorJoinReceiverOptions) {}
37
33
 
38
- async receive(
39
- payload: unknown,
40
- routeContext: ZLinkRouteMessageContext
41
- ): Promise<{
34
+ async receive(payload: unknown): Promise<{
42
35
  readonly accepted: boolean;
43
36
  readonly actorNodeRid: string;
44
37
  readonly actorNodeRidHex?: string;
@@ -77,26 +70,6 @@ export class ZLinkRemoteActorJoinReceiver {
77
70
  generation: BigInt(join.actorGeneration)
78
71
  };
79
72
  state.setNativeActorRef(actorRef as unknown as ZLinkBackendActorRef);
80
- const refreshedTarget = mergeRemoteBoundSessionTarget(
81
- {
82
- routerChannelId:
83
- join.boundSessionRouterChannelId ??
84
- join.routerChannelId ??
85
- routeContext.channelName ??
86
- '',
87
- targetNodeRid:
88
- join.boundSessionTargetNodeRid ?? normalizeRoutingId(routeContext.sourceNodeRid),
89
- spotId:
90
- join.boundSessionSpotId ??
91
- join.sourceSpotId ??
92
- normalizeRoutingId(routeContext.sourceNodeRid)
93
- },
94
- preferredRemoteBoundSessionTarget(
95
- state.remoteBoundSessionTarget,
96
- state.boundSessionTransferTarget
97
- )
98
- );
99
- state.setRemoteBoundSessionTarget(refreshedTarget);
100
73
  const request = RuntimeMessage.from(Buffer.from(join.request, 'base64'));
101
74
  try {
102
75
  const response = await this.requireSpotManager().admitActorJoin(
@@ -105,7 +78,6 @@ export class ZLinkRemoteActorJoinReceiver {
105
78
  request,
106
79
  (spot) => {
107
80
  state.setJoinedSpot(join.spotId as RoutingId, spot);
108
- return () => state.clearJoinedSpot();
109
81
  },
110
82
  undefined,
111
83
  undefined,
@@ -1,11 +1,15 @@
1
- import type { ActorRef, RoutingId, SpotId, ZLinkSessionActor } from '../../contracts';
2
- import { ZLinkSpotKind } from '../../contracts';
1
+ import {
2
+ type ActorRef,
3
+ type RoutingId,
4
+ type ZLinkSessionActor,
5
+ ZLinkSpotKind
6
+ } from '../../contracts';
7
+
3
8
  import type { DefaultZLinkActorManager, ZLinkRemoteActorPacketTarget } from '../actors';
4
- import type { ZLinkStreamActorLookupPort } from '../streams/stream-binding-runtime-ports';
5
9
  import { decodeRemoteActorPacketTarget } from '../actors/actor-packet-relay-wire';
6
- import { normalizeRoutingId as normalizeRuntimeRoutingId } from '../routing-id';
7
- import type { MeshRouterResolver } from './mesh-router-resolver';
8
10
  import { routingIdsEqual } from '../routing-id';
11
+ import type { ZLinkStreamActorLookupPort } from '../streams/stream-binding-runtime-ports';
12
+ import type { MeshRouterResolver } from './mesh-router-resolver';
9
13
 
10
14
  export interface ZLinkRemoteActorPacketTargetStoreOptions {
11
15
  readonly actorManager: () => DefaultZLinkActorManager | undefined;
@@ -100,10 +104,7 @@ export class ZLinkRemoteActorPacketTargetStore {
100
104
  );
101
105
  }
102
106
 
103
- targetForState(
104
- actorId: string,
105
- routerChannelIdHint?: string
106
- ): ZLinkRemoteActorPacketTarget | undefined {
107
+ targetForState(actorId: string): ZLinkRemoteActorPacketTarget | undefined {
107
108
  const state = this.options.actorManager()?.getState(actorId);
108
109
  if (
109
110
  state?.remoteActorPacketTarget !== undefined &&
@@ -112,51 +113,12 @@ export class ZLinkRemoteActorPacketTargetStore {
112
113
  ) {
113
114
  return state.remoteActorPacketTarget;
114
115
  }
115
- const spotId = state?.spotId;
116
- if (spotId !== undefined && state?.remoteActorPacketTarget !== undefined) {
117
- // The cached packet target refers to a different Spot than the
118
- // actor's current membership (the actor just moved Entry -> User).
119
- // Combining the stale target's node with the new Spot id fabricates
120
- // a route with no complete Ready authority fence, and the next
121
- // direct request then fails the fence check instead of resolving
122
- // the current owner route (spec 12 §direct payload uses the
123
- // Location Store's current owner route; spec 32:87 — an unavailable
124
- // route is Unavailable, not a fabricated hit). Publish no hint so
125
- // the source clears its cache and re-resolves completely.
126
- return undefined;
127
- }
128
- const actorRef = state?.nativeActorRef as ActorRef | undefined;
129
- const targetNodeRid =
130
- (actorRef?.nodeRid as RoutingId | undefined) ?? this.options.primaryNodeRid();
131
- const routerChannelId =
132
- routerChannelIdHint ??
133
- this.options.meshRouters.defaultSpotRouterChannelId() ??
134
- this.options.meshRouters.defaultRouterChannelId();
135
- const localNodeRid = this.options.primaryNodeRid();
136
- if (
137
- spotId === undefined &&
138
- targetNodeRid !== undefined &&
139
- localNodeRid !== undefined &&
140
- routingIdsEqual(targetNodeRid, localNodeRid)
141
- ) {
142
- return undefined;
143
- }
144
- if (spotId === undefined || targetNodeRid === undefined || routerChannelId === undefined) {
145
- return undefined;
146
- }
147
- return {
148
- routerChannelId,
149
- targetNodeRid: normalizeRuntimeRoutingId(targetNodeRid),
150
- spotId: validateSpotId(spotId),
151
- spotKind: ZLinkSpotKind.User,
152
- ...(state?.spotGeneration === undefined ? {} : { targetSpotGeneration: state.spotGeneration })
153
- };
116
+ return undefined;
154
117
  }
155
118
 
156
119
  targetForActorRef(actorRef: ActorRef): ZLinkRemoteActorPacketTarget | undefined {
157
120
  const targetNodeRid = actorRef.nodeRid as RoutingId;
158
- const localNodeRid = this.options.primaryNodeRid();
159
- if (localNodeRid !== undefined && routingIdsEqual(localNodeRid, targetNodeRid)) {
121
+ if (this.isLocalActorRef(actorRef)) {
160
122
  return undefined;
161
123
  }
162
124
  const meshName = actorRef.meshName;
@@ -176,6 +138,11 @@ export class ZLinkRemoteActorPacketTargetStore {
176
138
  };
177
139
  }
178
140
 
141
+ isLocalActorRef(actorRef: ActorRef): boolean {
142
+ const localNodeRid = this.options.primaryNodeRid();
143
+ return localNodeRid !== undefined && routingIdsEqual(localNodeRid, actorRef.nodeRid);
144
+ }
145
+
179
146
  tenureKeyForActor(actor: ZLinkSessionActor): string {
180
147
  return sessionActorPacketTargetTenureKey(actor);
181
148
  }
@@ -236,11 +203,3 @@ function sessionActorPacketTargetTenureKeyForRef(actorId: string, actorRef: Acto
236
203
  ref.ownerLeaseGeneration?.toString() ?? ''
237
204
  ].join(':');
238
205
  }
239
-
240
- function validateSpotId(value: string): SpotId {
241
- const byteLength = Buffer.byteLength(value, 'utf8');
242
- if (byteLength < 1 || byteLength > 255) {
243
- throw new TypeError('SpotId must contain between 1 and 255 UTF-8 bytes.');
244
- }
245
- return value;
246
- }
@@ -54,10 +54,7 @@ export interface ZLinkRemoteBoundSessionRelayOptions {
54
54
  readonly destroyedActorRefs: ReadonlyMap<string, ActorRef>;
55
55
  readonly boundSessionFactory: (actorId: string) => DefaultZLinkBoundSession;
56
56
  readonly updateRemoteActorPacketTarget: (actorId: string, value: unknown) => Promise<void>;
57
- readonly actorPacketTargetForState: (
58
- actorId: string,
59
- routerChannelIdHint?: string
60
- ) => ZLinkRemoteActorPacketTarget | undefined;
57
+ readonly actorPacketTargetForState: (actorId: string) => ZLinkRemoteActorPacketTarget | undefined;
61
58
  readonly reportOwnershipRefreshError?: (actorId: string, error: unknown) => void;
62
59
  }
63
60
 
@@ -197,17 +194,6 @@ export class ZLinkRemoteBoundSessionRelay {
197
194
  async receiveRemoteBoundSessionSend(payload: unknown): Promise<{ readonly ok: boolean }> {
198
195
  const send = decodeRemoteBoundSessionSendPayload(payload);
199
196
  await this.options.updateRemoteActorPacketTarget(send.actorId, send.actorPacketTarget);
200
- const owner = actorSessionBindingRuntimeOwnerIfRegistered(this.options.streamBindingRuntime());
201
- const retained = await owner?.retainRelocationOutbound(
202
- send.actorId,
203
- {
204
- deliver: () => this.deliverRemoteBoundSessionSend(send),
205
- fail: (error) => this.options.reportOwnershipRefreshError?.(send.actorId, error)
206
- },
207
- send.relocationSealId
208
- );
209
- if (retained === 'retained') return { ok: true };
210
- if (retained === 'rejected') return { ok: false };
211
197
  return { ok: await this.deliverRemoteBoundSessionSend(send) };
212
198
  }
213
199
 
@@ -349,7 +335,7 @@ export class ZLinkRemoteBoundSessionRelay {
349
335
  await owner.clearRelocation(actorId, error);
350
336
  void this.options
351
337
  .streamBindingRuntime()
352
- .disconnectBoundSession(actorId)
338
+ .closeSessionBinding(actorId, value.session)
353
339
  .catch((disconnectError) =>
354
340
  this.options.reportOwnershipRefreshError?.(actorId, disconnectError)
355
341
  );
@@ -389,7 +375,7 @@ export class ZLinkRemoteBoundSessionRelay {
389
375
  await owner.clearRelocation(actorId, error);
390
376
  void this.options
391
377
  .streamBindingRuntime()
392
- .disconnectBoundSession(actorId)
378
+ .closeSessionBinding(actorId, value.session)
393
379
  .catch((disconnectError) =>
394
380
  this.options.reportOwnershipRefreshError?.(actorId, disconnectError)
395
381
  );
@@ -425,15 +411,6 @@ export class ZLinkRemoteBoundSessionRelay {
425
411
  }
426
412
  const state = this.activeServiceWireRelocations.get(key);
427
413
  if (state === undefined) {
428
- await actorSessionBindingRuntimeOwner(
429
- this.options.streamBindingRuntime()
430
- ).discardRelocationOutbound(
431
- value.actor.actorId,
432
- key,
433
- new ZLinkRemoteBoundSessionFenceError(
434
- `Actor '${value.actor.actorId}' command 44 did not match an active command 42.`
435
- )
436
- );
437
414
  this.warnLateSessionRouteUpdate(value);
438
415
  return;
439
416
  }
@@ -500,7 +477,7 @@ export class ZLinkRemoteBoundSessionRelay {
500
477
  );
501
478
  await this.options
502
479
  .streamBindingRuntime()
503
- .disconnectBoundSession(state.actorId)
480
+ .closeSessionBinding(state.actorId, value.session)
504
481
  .catch((disconnectError) =>
505
482
  this.options.reportOwnershipRefreshError?.(state.actorId, disconnectError)
506
483
  );
@@ -528,7 +505,7 @@ export class ZLinkRemoteBoundSessionRelay {
528
505
  const owner = actorSessionBindingRuntimeOwner(runtime);
529
506
  const fingerprint = encodeSessionRelocationRoute(value).toString('base64');
530
507
  if (value.route.action === 'abort') {
531
- await owner.applyRelocation(value.actor.actorId, key, fingerprint, 'abort', async () => {
508
+ await owner.applyRelocation(value.actor.actorId, key, fingerprint, async () => {
532
509
  if (!(await runtime.abortActorRouteSeal(value.actor.actorId, key))) {
533
510
  throw new ZLinkRemoteBoundSessionFenceError(
534
511
  `Actor '${value.actor.actorId}' command 44 abort lost its Session seal.`
@@ -550,9 +527,10 @@ export class ZLinkRemoteBoundSessionRelay {
550
527
  nodeRid: decodeWireRoutingId(committedRoute.targetNodeRid, undefined),
551
528
  bindingGeneration: value.session.bindingGeneration,
552
529
  ownershipGeneration: committedRoute.targetAuthorityOwnerGeneration,
553
- ownerNodeGeneration: committedRoute.targetNodeGeneration
530
+ ownerNodeGeneration: committedRoute.targetNodeGeneration,
531
+ ownerLeaseGeneration: committedRoute.targetOwnerLeaseGeneration
554
532
  } as ActorRef;
555
- await owner.applyRelocation(value.actor.actorId, key, fingerprint, 'commit', async () => {
533
+ await owner.applyRelocation(value.actor.actorId, key, fingerprint, async () => {
556
534
  await runtime.commitActorRoute(targetActorRef, undefined, {
557
535
  confirmRemoteSessionBinding: 'send',
558
536
  releaseSeal: { sealId: key }
@@ -591,13 +569,6 @@ export class ZLinkRemoteBoundSessionRelay {
591
569
  }
592
570
  }
593
571
 
594
- rememberRemoteBoundSessionTarget(
595
- actorId: string,
596
- target: ZLinkRemoteBoundSessionTarget | undefined
597
- ): void {
598
- this.options.actorManager()?.getState(actorId)?.setRemoteBoundSessionTarget(target);
599
- }
600
-
601
572
  resolveRemoteBoundSessionTarget(
602
573
  sourceNodeRid: RoutingId,
603
574
  sourceSessionRid: RoutingId
@@ -617,11 +588,8 @@ export class ZLinkRemoteBoundSessionRelay {
617
588
  };
618
589
  }
619
590
 
620
- actorPacketTargetForState(
621
- actorId: string,
622
- routerChannelIdHint?: string
623
- ): ZLinkRemoteActorPacketTarget | undefined {
624
- return this.options.actorPacketTargetForState(actorId, routerChannelIdHint);
591
+ actorPacketTargetForState(actorId: string): ZLinkRemoteActorPacketTarget | undefined {
592
+ return this.options.actorPacketTargetForState(actorId);
625
593
  }
626
594
 
627
595
  clearOwnership(actorId: string): void {
@@ -767,7 +735,7 @@ export class ZLinkRemoteBoundSessionRelay {
767
735
  signal?: AbortSignal
768
736
  ): Promise<void> {
769
737
  const actorPacketTarget = encodeRemoteActorPacketTarget(
770
- this.options.actorPacketTargetForState(actorId, target.routerChannelId)
738
+ this.options.actorPacketTargetForState(actorId)
771
739
  );
772
740
  await this.sendRemoteBoundSessionControl(
773
741
  target,
@@ -802,7 +770,7 @@ export class ZLinkRemoteBoundSessionRelay {
802
770
  error,
803
771
  metadata,
804
772
  actorPacketTarget: encodeRemoteActorPacketTarget(
805
- this.options.actorPacketTargetForState(actorId, target.routerChannelId)
773
+ this.options.actorPacketTargetForState(actorId)
806
774
  )
807
775
  }),
808
776
  signal