@temporalio/core-bridge 1.15.0 → 1.16.1

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 (209) hide show
  1. package/Cargo.lock +172 -70
  2. package/lib/native.d.ts +1 -1
  3. package/package.json +2 -2
  4. package/releases/aarch64-apple-darwin/index.node +0 -0
  5. package/releases/aarch64-unknown-linux-gnu/index.node +0 -0
  6. package/releases/x86_64-apple-darwin/index.node +0 -0
  7. package/releases/x86_64-pc-windows-msvc/index.node +0 -0
  8. package/releases/x86_64-unknown-linux-gnu/index.node +0 -0
  9. package/sdk-core/.github/workflows/per-pr.yml +6 -6
  10. package/sdk-core/AGENTS.md +41 -30
  11. package/sdk-core/Cargo.toml +3 -0
  12. package/sdk-core/README.md +15 -9
  13. package/sdk-core/crates/client/Cargo.toml +4 -0
  14. package/sdk-core/crates/client/README.md +139 -0
  15. package/sdk-core/crates/client/src/async_activity_handle.rs +297 -0
  16. package/sdk-core/crates/client/src/callback_based.rs +7 -0
  17. package/sdk-core/crates/client/src/errors.rs +294 -0
  18. package/sdk-core/crates/client/src/{raw.rs → grpc.rs} +280 -159
  19. package/sdk-core/crates/client/src/lib.rs +920 -1326
  20. package/sdk-core/crates/client/src/metrics.rs +24 -33
  21. package/sdk-core/crates/client/src/options_structs.rs +457 -0
  22. package/sdk-core/crates/client/src/replaceable.rs +5 -4
  23. package/sdk-core/crates/client/src/request_extensions.rs +8 -9
  24. package/sdk-core/crates/client/src/retry.rs +99 -54
  25. package/sdk-core/crates/client/src/{worker/mod.rs → worker.rs} +1 -1
  26. package/sdk-core/crates/client/src/workflow_handle.rs +826 -0
  27. package/sdk-core/crates/common/Cargo.toml +61 -2
  28. package/sdk-core/crates/common/build.rs +742 -12
  29. package/sdk-core/crates/common/protos/api_upstream/.github/workflows/ci.yml +2 -0
  30. package/sdk-core/crates/common/protos/api_upstream/Makefile +2 -1
  31. package/sdk-core/crates/common/protos/api_upstream/buf.yaml +0 -3
  32. package/sdk-core/crates/common/protos/api_upstream/cmd/check-path-conflicts/main.go +137 -0
  33. package/sdk-core/crates/common/protos/api_upstream/openapi/openapiv2.json +1166 -770
  34. package/sdk-core/crates/common/protos/api_upstream/openapi/openapiv3.yaml +1243 -750
  35. package/sdk-core/crates/common/protos/api_upstream/temporal/api/deployment/v1/message.proto +2 -2
  36. package/sdk-core/crates/common/protos/api_upstream/temporal/api/enums/v1/workflow.proto +4 -3
  37. package/sdk-core/crates/common/protos/api_upstream/temporal/api/failure/v1/message.proto +1 -0
  38. package/sdk-core/crates/common/protos/api_upstream/temporal/api/history/v1/message.proto +4 -0
  39. package/sdk-core/crates/common/protos/api_upstream/temporal/api/namespace/v1/message.proto +6 -0
  40. package/sdk-core/crates/common/protos/api_upstream/temporal/api/nexus/v1/message.proto +16 -1
  41. package/sdk-core/crates/common/protos/api_upstream/temporal/api/workflowservice/v1/request_response.proto +64 -6
  42. package/sdk-core/crates/common/protos/api_upstream/temporal/api/workflowservice/v1/service.proto +88 -33
  43. package/sdk-core/crates/common/protos/local/temporal/sdk/core/nexus/nexus.proto +4 -2
  44. package/sdk-core/crates/common/protos/local/temporal/sdk/core/workflow_activation/workflow_activation.proto +4 -0
  45. package/sdk-core/crates/common/protos/local/temporal/sdk/core/workflow_commands/workflow_commands.proto +5 -5
  46. package/sdk-core/crates/common/src/activity_definition.rs +20 -0
  47. package/sdk-core/crates/common/src/data_converters.rs +770 -0
  48. package/sdk-core/crates/common/src/envconfig.rs +5 -0
  49. package/sdk-core/crates/common/src/lib.rs +15 -211
  50. package/sdk-core/crates/common/src/payload_visitor.rs +648 -0
  51. package/sdk-core/crates/common/src/priority.rs +110 -0
  52. package/sdk-core/crates/common/src/protos/canned_histories.rs +3 -0
  53. package/sdk-core/crates/common/src/protos/history_builder.rs +45 -0
  54. package/sdk-core/crates/common/src/protos/history_info.rs +2 -0
  55. package/sdk-core/crates/common/src/protos/mod.rs +122 -27
  56. package/sdk-core/crates/common/src/protos/task_token.rs +3 -3
  57. package/sdk-core/crates/common/src/protos/utilities.rs +11 -0
  58. package/sdk-core/crates/{sdk-core → common}/src/telemetry/log_export.rs +5 -7
  59. package/sdk-core/crates/common/src/telemetry/metrics/core.rs +125 -0
  60. package/sdk-core/crates/common/src/telemetry/metrics.rs +268 -223
  61. package/sdk-core/crates/{sdk-core → common}/src/telemetry/otel.rs +8 -13
  62. package/sdk-core/crates/{sdk-core → common}/src/telemetry/prometheus_meter.rs +49 -50
  63. package/sdk-core/crates/{sdk-core → common}/src/telemetry/prometheus_server.rs +2 -3
  64. package/sdk-core/crates/common/src/telemetry.rs +264 -4
  65. package/sdk-core/crates/common/src/worker.rs +68 -603
  66. package/sdk-core/crates/common/src/workflow_definition.rs +60 -0
  67. package/sdk-core/crates/macros/Cargo.toml +5 -1
  68. package/sdk-core/crates/macros/src/activities_definitions.rs +585 -0
  69. package/sdk-core/crates/macros/src/fsm_impl.rs +507 -0
  70. package/sdk-core/crates/macros/src/lib.rs +138 -512
  71. package/sdk-core/crates/macros/src/macro_utils.rs +106 -0
  72. package/sdk-core/crates/macros/src/workflow_definitions.rs +1224 -0
  73. package/sdk-core/crates/sdk/Cargo.toml +19 -6
  74. package/sdk-core/crates/sdk/README.md +415 -0
  75. package/sdk-core/crates/sdk/src/activities.rs +417 -0
  76. package/sdk-core/crates/sdk/src/interceptors.rs +1 -1
  77. package/sdk-core/crates/sdk/src/lib.rs +757 -442
  78. package/sdk-core/crates/sdk/src/workflow_context/options.rs +45 -35
  79. package/sdk-core/crates/sdk/src/workflow_context.rs +1033 -289
  80. package/sdk-core/crates/sdk/src/workflow_future.rs +277 -213
  81. package/sdk-core/crates/sdk/src/workflows.rs +711 -0
  82. package/sdk-core/crates/sdk-core/Cargo.toml +57 -64
  83. package/sdk-core/crates/sdk-core/benches/workflow_replay_bench.rs +41 -35
  84. package/sdk-core/crates/sdk-core/machine_coverage/ActivityMachine_Coverage.puml +1 -1
  85. package/sdk-core/crates/sdk-core/src/abstractions.rs +6 -10
  86. package/sdk-core/crates/sdk-core/src/core_tests/activity_tasks.rs +6 -5
  87. package/sdk-core/crates/sdk-core/src/core_tests/mod.rs +13 -15
  88. package/sdk-core/crates/sdk-core/src/core_tests/queries.rs +21 -25
  89. package/sdk-core/crates/sdk-core/src/core_tests/replay_flag.rs +7 -10
  90. package/sdk-core/crates/sdk-core/src/core_tests/updates.rs +14 -17
  91. package/sdk-core/crates/sdk-core/src/core_tests/workers.rs +493 -26
  92. package/sdk-core/crates/sdk-core/src/core_tests/workflow_tasks.rs +4 -8
  93. package/sdk-core/crates/sdk-core/src/ephemeral_server/mod.rs +7 -7
  94. package/sdk-core/crates/sdk-core/src/histfetch.rs +20 -10
  95. package/sdk-core/crates/sdk-core/src/lib.rs +41 -111
  96. package/sdk-core/crates/sdk-core/src/pollers/mod.rs +4 -9
  97. package/sdk-core/crates/sdk-core/src/pollers/poll_buffer.rs +118 -19
  98. package/sdk-core/crates/sdk-core/src/protosext/mod.rs +2 -2
  99. package/sdk-core/crates/sdk-core/src/replay/mod.rs +14 -5
  100. package/sdk-core/crates/sdk-core/src/telemetry/metrics.rs +179 -196
  101. package/sdk-core/crates/sdk-core/src/telemetry/mod.rs +3 -280
  102. package/sdk-core/crates/sdk-core/src/test_help/integ_helpers.rs +6 -9
  103. package/sdk-core/crates/sdk-core/src/test_help/unit_helpers.rs +3 -6
  104. package/sdk-core/crates/sdk-core/src/worker/activities/local_activities.rs +11 -14
  105. package/sdk-core/crates/sdk-core/src/worker/activities.rs +16 -19
  106. package/sdk-core/crates/sdk-core/src/worker/client/mocks.rs +9 -5
  107. package/sdk-core/crates/sdk-core/src/worker/client.rs +103 -81
  108. package/sdk-core/crates/sdk-core/src/worker/heartbeat.rs +7 -11
  109. package/sdk-core/crates/sdk-core/src/worker/mod.rs +1124 -229
  110. package/sdk-core/crates/sdk-core/src/worker/nexus.rs +145 -23
  111. package/sdk-core/crates/sdk-core/src/worker/slot_provider.rs +2 -2
  112. package/sdk-core/crates/sdk-core/src/worker/tuner/fixed_size.rs +2 -2
  113. package/sdk-core/crates/sdk-core/src/worker/tuner/resource_based.rs +13 -13
  114. package/sdk-core/crates/sdk-core/src/worker/tuner.rs +28 -8
  115. package/sdk-core/crates/sdk-core/src/worker/workflow/driven_workflow.rs +9 -3
  116. package/sdk-core/crates/sdk-core/src/worker/workflow/machines/upsert_search_attributes_state_machine.rs +21 -22
  117. package/sdk-core/crates/sdk-core/src/worker/workflow/machines/workflow_machines.rs +19 -4
  118. package/sdk-core/crates/sdk-core/src/worker/workflow/managed_run.rs +14 -18
  119. package/sdk-core/crates/sdk-core/src/worker/workflow/mod.rs +4 -6
  120. package/sdk-core/crates/sdk-core/src/worker/workflow/run_cache.rs +4 -7
  121. package/sdk-core/crates/sdk-core/src/worker/workflow/wft_extraction.rs +2 -4
  122. package/sdk-core/crates/sdk-core/src/worker/workflow/wft_poller.rs +8 -9
  123. package/sdk-core/crates/sdk-core/src/worker/workflow/workflow_stream.rs +1 -3
  124. package/sdk-core/crates/sdk-core/tests/activities_procmacro.rs +6 -0
  125. package/sdk-core/crates/sdk-core/tests/activities_trybuild/basic_pass.rs +54 -0
  126. package/sdk-core/crates/sdk-core/tests/activities_trybuild/invalid_self_type_fail.rs +18 -0
  127. package/sdk-core/crates/sdk-core/tests/activities_trybuild/invalid_self_type_fail.stderr +5 -0
  128. package/sdk-core/crates/sdk-core/tests/activities_trybuild/missing_context_fail.rs +14 -0
  129. package/sdk-core/crates/sdk-core/tests/activities_trybuild/missing_context_fail.stderr +5 -0
  130. package/sdk-core/crates/sdk-core/tests/activities_trybuild/multi_arg_pass.rs +48 -0
  131. package/sdk-core/crates/sdk-core/tests/activities_trybuild/no_input_pass.rs +14 -0
  132. package/sdk-core/crates/sdk-core/tests/activities_trybuild/no_return_type_pass.rs +19 -0
  133. package/sdk-core/crates/sdk-core/tests/cloud_tests.rs +14 -5
  134. package/sdk-core/crates/sdk-core/tests/common/activity_functions.rs +55 -0
  135. package/sdk-core/crates/sdk-core/tests/common/mod.rs +241 -196
  136. package/sdk-core/crates/sdk-core/tests/common/workflows.rs +41 -28
  137. package/sdk-core/crates/sdk-core/tests/global_metric_tests.rs +3 -5
  138. package/sdk-core/crates/sdk-core/tests/heavy_tests/fuzzy_workflow.rs +73 -64
  139. package/sdk-core/crates/sdk-core/tests/heavy_tests.rs +298 -252
  140. package/sdk-core/crates/sdk-core/tests/integ_tests/async_activity_client_tests.rs +230 -0
  141. package/sdk-core/crates/sdk-core/tests/integ_tests/client_tests.rs +94 -57
  142. package/sdk-core/crates/sdk-core/tests/integ_tests/data_converter_tests.rs +381 -0
  143. package/sdk-core/crates/sdk-core/tests/integ_tests/ephemeral_server_tests.rs +16 -12
  144. package/sdk-core/crates/sdk-core/tests/integ_tests/heartbeat_tests.rs +48 -40
  145. package/sdk-core/crates/sdk-core/tests/integ_tests/metrics_tests.rs +327 -255
  146. package/sdk-core/crates/sdk-core/tests/integ_tests/pagination_tests.rs +50 -45
  147. package/sdk-core/crates/sdk-core/tests/integ_tests/polling_tests.rs +147 -126
  148. package/sdk-core/crates/sdk-core/tests/integ_tests/queries_tests.rs +103 -89
  149. package/sdk-core/crates/sdk-core/tests/integ_tests/update_tests.rs +609 -453
  150. package/sdk-core/crates/sdk-core/tests/integ_tests/visibility_tests.rs +80 -62
  151. package/sdk-core/crates/sdk-core/tests/integ_tests/worker_heartbeat_tests.rs +360 -231
  152. package/sdk-core/crates/sdk-core/tests/integ_tests/worker_tests.rs +248 -185
  153. package/sdk-core/crates/sdk-core/tests/integ_tests/worker_versioning_tests.rs +52 -43
  154. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_client_tests.rs +180 -0
  155. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/activities.rs +428 -315
  156. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/cancel_external.rs +82 -56
  157. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/cancel_wf.rs +56 -28
  158. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/child_workflows.rs +364 -243
  159. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/client_interactions.rs +552 -0
  160. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/continue_as_new.rs +101 -42
  161. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/determinism.rs +243 -147
  162. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/eager.rs +98 -28
  163. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/local_activities.rs +1475 -1036
  164. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/modify_wf_properties.rs +73 -41
  165. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/nexus.rs +397 -238
  166. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/patches.rs +414 -189
  167. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/queries.rs +415 -0
  168. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/replay.rs +96 -36
  169. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/resets.rs +154 -137
  170. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/signals.rs +183 -105
  171. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/stickyness.rs +85 -38
  172. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/timers.rs +142 -40
  173. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/upsert_search_attrs.rs +73 -54
  174. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests.rs +363 -226
  175. package/sdk-core/crates/sdk-core/tests/main.rs +17 -15
  176. package/sdk-core/crates/sdk-core/tests/manual_tests.rs +207 -152
  177. package/sdk-core/crates/sdk-core/tests/shared_tests/mod.rs +65 -34
  178. package/sdk-core/crates/sdk-core/tests/shared_tests/priority.rs +107 -84
  179. package/sdk-core/crates/sdk-core/tests/workflows_procmacro.rs +6 -0
  180. package/sdk-core/crates/sdk-core/tests/workflows_trybuild/async_query_fail.rs +26 -0
  181. package/sdk-core/crates/sdk-core/tests/workflows_trybuild/async_query_fail.stderr +5 -0
  182. package/sdk-core/crates/sdk-core/tests/workflows_trybuild/basic_pass.rs +49 -0
  183. package/sdk-core/crates/sdk-core/tests/workflows_trybuild/minimal_pass.rs +21 -0
  184. package/sdk-core/crates/sdk-core/tests/workflows_trybuild/mut_query_fail.rs +26 -0
  185. package/sdk-core/crates/sdk-core/tests/workflows_trybuild/mut_query_fail.stderr +5 -0
  186. package/sdk-core/crates/sdk-core/tests/workflows_trybuild/sync_run_fail.rs +21 -0
  187. package/sdk-core/crates/sdk-core/tests/workflows_trybuild/sync_run_fail.stderr +5 -0
  188. package/sdk-core/crates/sdk-core-c-bridge/Cargo.toml +7 -1
  189. package/sdk-core/crates/sdk-core-c-bridge/include/temporal-sdk-core-c-bridge.h +14 -14
  190. package/sdk-core/crates/sdk-core-c-bridge/src/client.rs +83 -74
  191. package/sdk-core/crates/sdk-core-c-bridge/src/metric.rs +9 -14
  192. package/sdk-core/crates/sdk-core-c-bridge/src/runtime.rs +1 -2
  193. package/sdk-core/crates/sdk-core-c-bridge/src/tests/context.rs +13 -13
  194. package/sdk-core/crates/sdk-core-c-bridge/src/tests/mod.rs +6 -6
  195. package/sdk-core/crates/sdk-core-c-bridge/src/tests/utils.rs +3 -4
  196. package/sdk-core/crates/sdk-core-c-bridge/src/worker.rs +62 -75
  197. package/sdk-core/rustfmt.toml +2 -1
  198. package/src/client.rs +205 -318
  199. package/src/metrics.rs +22 -30
  200. package/src/runtime.rs +4 -5
  201. package/src/worker.rs +16 -19
  202. package/ts/native.ts +1 -1
  203. package/sdk-core/crates/client/src/workflow_handle/mod.rs +0 -212
  204. package/sdk-core/crates/common/src/errors.rs +0 -85
  205. package/sdk-core/crates/common/tests/worker_task_types_test.rs +0 -129
  206. package/sdk-core/crates/sdk/src/activity_context.rs +0 -238
  207. package/sdk-core/crates/sdk/src/app_data.rs +0 -37
  208. package/sdk-core/crates/sdk-core/tests/integ_tests/activity_functions.rs +0 -5
  209. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/appdata_propagation.rs +0 -61
package/Cargo.lock CHANGED
@@ -372,6 +372,27 @@ dependencies = [
372
372
  "unicode-xid",
373
373
  ]
374
374
 
375
+ [[package]]
376
+ name = "dirs"
377
+ version = "6.0.0"
378
+ source = "registry+https://github.com/rust-lang/crates.io-index"
379
+ checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e"
380
+ dependencies = [
381
+ "dirs-sys",
382
+ ]
383
+
384
+ [[package]]
385
+ name = "dirs-sys"
386
+ version = "0.5.0"
387
+ source = "registry+https://github.com/rust-lang/crates.io-index"
388
+ checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab"
389
+ dependencies = [
390
+ "libc",
391
+ "option-ext",
392
+ "redox_users",
393
+ "windows-sys 0.60.2",
394
+ ]
395
+
375
396
  [[package]]
376
397
  name = "displaydoc"
377
398
  version = "0.2.5"
@@ -457,7 +478,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
457
478
  checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
458
479
  dependencies = [
459
480
  "libc",
460
- "windows-sys 0.61.2",
481
+ "windows-sys 0.52.0",
461
482
  ]
462
483
 
463
484
  [[package]]
@@ -1315,7 +1336,7 @@ version = "0.50.3"
1315
1336
  source = "registry+https://github.com/rust-lang/crates.io-index"
1316
1337
  checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5"
1317
1338
  dependencies = [
1318
- "windows-sys 0.61.2",
1339
+ "windows-sys 0.60.2",
1319
1340
  ]
1320
1341
 
1321
1342
  [[package]]
@@ -1368,7 +1389,7 @@ dependencies = [
1368
1389
  "futures-sink",
1369
1390
  "js-sys",
1370
1391
  "pin-project-lite",
1371
- "thiserror 2.0.18",
1392
+ "thiserror",
1372
1393
  "tracing",
1373
1394
  ]
1374
1395
 
@@ -1398,7 +1419,7 @@ dependencies = [
1398
1419
  "opentelemetry_sdk",
1399
1420
  "prost",
1400
1421
  "reqwest",
1401
- "thiserror 2.0.18",
1422
+ "thiserror",
1402
1423
  "tokio",
1403
1424
  "tonic",
1404
1425
  "tracing",
@@ -1429,11 +1450,17 @@ dependencies = [
1429
1450
  "opentelemetry",
1430
1451
  "percent-encoding",
1431
1452
  "rand 0.9.2",
1432
- "thiserror 2.0.18",
1453
+ "thiserror",
1433
1454
  "tokio",
1434
1455
  "tokio-stream",
1435
1456
  ]
1436
1457
 
1458
+ [[package]]
1459
+ name = "option-ext"
1460
+ version = "0.2.0"
1461
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1462
+ checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
1463
+
1437
1464
  [[package]]
1438
1465
  name = "os_pipe"
1439
1466
  version = "1.2.3"
@@ -1441,7 +1468,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1441
1468
  checksum = "7d8fae84b431384b68627d0f9b3b1245fcf9f46f6c0e3dc902e9dce64edd1967"
1442
1469
  dependencies = [
1443
1470
  "libc",
1444
- "windows-sys 0.61.2",
1471
+ "windows-sys 0.52.0",
1445
1472
  ]
1446
1473
 
1447
1474
  [[package]]
@@ -1467,6 +1494,43 @@ dependencies = [
1467
1494
  "windows-link 0.2.1",
1468
1495
  ]
1469
1496
 
1497
+ [[package]]
1498
+ name = "pbjson"
1499
+ version = "0.9.0"
1500
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1501
+ checksum = "e8edd1efdd8ab23ba9cb9ace3d9987a72663d5d7c9f74fa00b51d6213645cf6c"
1502
+ dependencies = [
1503
+ "base64",
1504
+ "serde",
1505
+ ]
1506
+
1507
+ [[package]]
1508
+ name = "pbjson-build"
1509
+ version = "0.9.0"
1510
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1511
+ checksum = "2ed4d5c6ae95e08ac768883c8401cf0e8deb4e6e1d6a4e1fd3d2ec4f0ec63200"
1512
+ dependencies = [
1513
+ "heck",
1514
+ "itertools",
1515
+ "prost",
1516
+ "prost-types",
1517
+ ]
1518
+
1519
+ [[package]]
1520
+ name = "pbjson-types"
1521
+ version = "0.9.0"
1522
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1523
+ checksum = "a14e2757d877c0f607a82ce1b8560e224370f159d66c5d52eb55ea187ef0350e"
1524
+ dependencies = [
1525
+ "bytes",
1526
+ "chrono",
1527
+ "pbjson",
1528
+ "pbjson-build",
1529
+ "prost",
1530
+ "prost-build",
1531
+ "serde",
1532
+ ]
1533
+
1470
1534
  [[package]]
1471
1535
  name = "percent-encoding"
1472
1536
  version = "2.3.2"
@@ -1620,8 +1684,7 @@ dependencies = [
1620
1684
  "lazy_static",
1621
1685
  "memchr",
1622
1686
  "parking_lot",
1623
- "protobuf",
1624
- "thiserror 2.0.18",
1687
+ "thiserror",
1625
1688
  ]
1626
1689
 
1627
1690
  [[package]]
@@ -1723,26 +1786,6 @@ dependencies = [
1723
1786
  "serde_json",
1724
1787
  ]
1725
1788
 
1726
- [[package]]
1727
- name = "protobuf"
1728
- version = "3.7.2"
1729
- source = "registry+https://github.com/rust-lang/crates.io-index"
1730
- checksum = "d65a1d4ddae7d8b5de68153b48f6aa3bba8cb002b243dbdbc55a5afbc98f99f4"
1731
- dependencies = [
1732
- "once_cell",
1733
- "protobuf-support",
1734
- "thiserror 1.0.69",
1735
- ]
1736
-
1737
- [[package]]
1738
- name = "protobuf-support"
1739
- version = "3.7.2"
1740
- source = "registry+https://github.com/rust-lang/crates.io-index"
1741
- checksum = "3e36c2f31e0a47f9280fb347ef5e461ffcd2c52dd520d8e216b52f93b0b0d7d6"
1742
- dependencies = [
1743
- "thiserror 1.0.69",
1744
- ]
1745
-
1746
1789
  [[package]]
1747
1790
  name = "pulldown-cmark"
1748
1791
  version = "0.13.0"
@@ -1792,7 +1835,7 @@ dependencies = [
1792
1835
  "rustc-hash",
1793
1836
  "rustls",
1794
1837
  "socket2",
1795
- "thiserror 2.0.18",
1838
+ "thiserror",
1796
1839
  "tokio",
1797
1840
  "tracing",
1798
1841
  "web-time",
@@ -1800,9 +1843,9 @@ dependencies = [
1800
1843
 
1801
1844
  [[package]]
1802
1845
  name = "quinn-proto"
1803
- version = "0.11.13"
1846
+ version = "0.11.14"
1804
1847
  source = "registry+https://github.com/rust-lang/crates.io-index"
1805
- checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31"
1848
+ checksum = "434b42fec591c96ef50e21e886936e66d3cc3f737104fdb9b737c40ffb94c098"
1806
1849
  dependencies = [
1807
1850
  "bytes",
1808
1851
  "getrandom 0.3.4",
@@ -1813,7 +1856,7 @@ dependencies = [
1813
1856
  "rustls",
1814
1857
  "rustls-pki-types",
1815
1858
  "slab",
1816
- "thiserror 2.0.18",
1859
+ "thiserror",
1817
1860
  "tinyvec",
1818
1861
  "tracing",
1819
1862
  "web-time",
@@ -1934,6 +1977,17 @@ dependencies = [
1934
1977
  "bitflags",
1935
1978
  ]
1936
1979
 
1980
+ [[package]]
1981
+ name = "redox_users"
1982
+ version = "0.5.2"
1983
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1984
+ checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac"
1985
+ dependencies = [
1986
+ "getrandom 0.2.17",
1987
+ "libredox",
1988
+ "thiserror",
1989
+ ]
1990
+
1937
1991
  [[package]]
1938
1992
  name = "regex"
1939
1993
  version = "1.12.3"
@@ -2055,7 +2109,7 @@ dependencies = [
2055
2109
  "errno",
2056
2110
  "libc",
2057
2111
  "linux-raw-sys",
2058
- "windows-sys 0.61.2",
2112
+ "windows-sys 0.52.0",
2059
2113
  ]
2060
2114
 
2061
2115
  [[package]]
@@ -2097,9 +2151,9 @@ dependencies = [
2097
2151
 
2098
2152
  [[package]]
2099
2153
  name = "rustls-webpki"
2100
- version = "0.103.9"
2154
+ version = "0.103.10"
2101
2155
  source = "registry+https://github.com/rust-lang/crates.io-index"
2102
- checksum = "d7df23109aa6c1567d1c575b9952556388da57401e4ace1d15f79eedad0d8f53"
2156
+ checksum = "df33b2b81ac578cabaf06b89b0631153a3f416b0a886e8a7a1707fb51abbd1ef"
2103
2157
  dependencies = [
2104
2158
  "ring",
2105
2159
  "rustls-pki-types",
@@ -2211,6 +2265,15 @@ dependencies = [
2211
2265
  "zmij",
2212
2266
  ]
2213
2267
 
2268
+ [[package]]
2269
+ name = "serde_spanned"
2270
+ version = "1.0.4"
2271
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2272
+ checksum = "f8bbf91e5a4d6315eee45e704372590b30e260ee83af6639d64557f51b067776"
2273
+ dependencies = [
2274
+ "serde_core",
2275
+ ]
2276
+
2214
2277
  [[package]]
2215
2278
  name = "serde_urlencoded"
2216
2279
  version = "0.7.1"
@@ -2365,9 +2428,9 @@ dependencies = [
2365
2428
 
2366
2429
  [[package]]
2367
2430
  name = "tar"
2368
- version = "0.4.44"
2431
+ version = "0.4.45"
2369
2432
  source = "registry+https://github.com/rust-lang/crates.io-index"
2370
- checksum = "1d863878d212c87a19c1a610eb53bb01fe12951c0501cf5a0d65f724914a667a"
2433
+ checksum = "22692a6476a21fa75fdfc11d452fda482af402c008cdbaf3476414e122040973"
2371
2434
  dependencies = [
2372
2435
  "filetime",
2373
2436
  "libc",
@@ -2384,7 +2447,7 @@ dependencies = [
2384
2447
  "getrandom 0.4.1",
2385
2448
  "once_cell",
2386
2449
  "rustix",
2387
- "windows-sys 0.61.2",
2450
+ "windows-sys 0.52.0",
2388
2451
  ]
2389
2452
 
2390
2453
  [[package]]
@@ -2406,7 +2469,7 @@ dependencies = [
2406
2469
  "temporalio-client",
2407
2470
  "temporalio-common",
2408
2471
  "temporalio-sdk-core",
2409
- "thiserror 2.0.18",
2472
+ "thiserror",
2410
2473
  "tokio",
2411
2474
  "tokio-stream",
2412
2475
  "tonic",
@@ -2436,7 +2499,7 @@ dependencies = [
2436
2499
  "rand 0.9.2",
2437
2500
  "slotmap",
2438
2501
  "temporalio-common",
2439
- "thiserror 2.0.18",
2502
+ "thiserror",
2440
2503
  "tokio",
2441
2504
  "tonic",
2442
2505
  "tower",
@@ -2453,20 +2516,40 @@ dependencies = [
2453
2516
  "async-trait",
2454
2517
  "base64",
2455
2518
  "bon",
2519
+ "crc32fast",
2456
2520
  "derive_more",
2521
+ "dirs",
2522
+ "erased-serde",
2523
+ "futures",
2524
+ "futures-channel",
2525
+ "http-body-util",
2526
+ "hyper",
2527
+ "hyper-util",
2457
2528
  "opentelemetry",
2529
+ "opentelemetry-otlp",
2530
+ "opentelemetry_sdk",
2531
+ "parking_lot",
2532
+ "pbjson",
2533
+ "pbjson-build",
2534
+ "pbjson-types",
2535
+ "prometheus",
2458
2536
  "prost",
2537
+ "prost-types",
2459
2538
  "prost-wkt",
2460
2539
  "prost-wkt-types",
2461
2540
  "rand 0.9.2",
2541
+ "ringbuf",
2462
2542
  "serde",
2463
2543
  "serde_json",
2464
- "thiserror 2.0.18",
2544
+ "thiserror",
2545
+ "tokio",
2546
+ "toml",
2465
2547
  "tonic",
2466
2548
  "tonic-prost",
2467
2549
  "tonic-prost-build",
2468
2550
  "tracing",
2469
2551
  "tracing-core",
2552
+ "tracing-subscriber",
2470
2553
  "url",
2471
2554
  "uuid",
2472
2555
  ]
@@ -2497,13 +2580,10 @@ dependencies = [
2497
2580
  "enum-iterator",
2498
2581
  "enum_dispatch",
2499
2582
  "flate2",
2500
- "futures-channel",
2583
+ "futures",
2501
2584
  "futures-util",
2502
2585
  "gethostname",
2503
2586
  "governor",
2504
- "http-body-util",
2505
- "hyper",
2506
- "hyper-util",
2507
2587
  "itertools",
2508
2588
  "lru",
2509
2589
  "mockall",
@@ -2513,12 +2593,10 @@ dependencies = [
2513
2593
  "parking_lot",
2514
2594
  "pid",
2515
2595
  "pin-project",
2516
- "prometheus",
2517
2596
  "prost",
2518
2597
  "prost-wkt-types",
2519
2598
  "rand 0.9.2",
2520
2599
  "reqwest",
2521
- "ringbuf",
2522
2600
  "serde",
2523
2601
  "serde_json",
2524
2602
  "siphasher",
@@ -2528,13 +2606,12 @@ dependencies = [
2528
2606
  "temporalio-client",
2529
2607
  "temporalio-common",
2530
2608
  "temporalio-macros",
2531
- "thiserror 2.0.18",
2609
+ "thiserror",
2532
2610
  "tokio",
2533
2611
  "tokio-stream",
2534
2612
  "tokio-util",
2535
2613
  "tonic",
2536
2614
  "tracing",
2537
- "tracing-subscriber",
2538
2615
  "url",
2539
2616
  "uuid",
2540
2617
  "zip",
@@ -2546,33 +2623,13 @@ version = "0.5.1"
2546
2623
  source = "registry+https://github.com/rust-lang/crates.io-index"
2547
2624
  checksum = "8f50febec83f5ee1df3015341d8bd429f2d1cc62bcba7ea2076759d315084683"
2548
2625
 
2549
- [[package]]
2550
- name = "thiserror"
2551
- version = "1.0.69"
2552
- source = "registry+https://github.com/rust-lang/crates.io-index"
2553
- checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52"
2554
- dependencies = [
2555
- "thiserror-impl 1.0.69",
2556
- ]
2557
-
2558
2626
  [[package]]
2559
2627
  name = "thiserror"
2560
2628
  version = "2.0.18"
2561
2629
  source = "registry+https://github.com/rust-lang/crates.io-index"
2562
2630
  checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4"
2563
2631
  dependencies = [
2564
- "thiserror-impl 2.0.18",
2565
- ]
2566
-
2567
- [[package]]
2568
- name = "thiserror-impl"
2569
- version = "1.0.69"
2570
- source = "registry+https://github.com/rust-lang/crates.io-index"
2571
- checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
2572
- dependencies = [
2573
- "proc-macro2",
2574
- "quote",
2575
- "syn",
2632
+ "thiserror-impl",
2576
2633
  ]
2577
2634
 
2578
2635
  [[package]]
@@ -2682,6 +2739,45 @@ dependencies = [
2682
2739
  "tokio",
2683
2740
  ]
2684
2741
 
2742
+ [[package]]
2743
+ name = "toml"
2744
+ version = "0.9.12+spec-1.1.0"
2745
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2746
+ checksum = "cf92845e79fc2e2def6a5d828f0801e29a2f8acc037becc5ab08595c7d5e9863"
2747
+ dependencies = [
2748
+ "indexmap",
2749
+ "serde_core",
2750
+ "serde_spanned",
2751
+ "toml_datetime",
2752
+ "toml_parser",
2753
+ "toml_writer",
2754
+ "winnow",
2755
+ ]
2756
+
2757
+ [[package]]
2758
+ name = "toml_datetime"
2759
+ version = "0.7.5+spec-1.1.0"
2760
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2761
+ checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347"
2762
+ dependencies = [
2763
+ "serde_core",
2764
+ ]
2765
+
2766
+ [[package]]
2767
+ name = "toml_parser"
2768
+ version = "1.0.9+spec-1.1.0"
2769
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2770
+ checksum = "702d4415e08923e7e1ef96cd5727c0dfed80b4d2fa25db9647fe5eb6f7c5a4c4"
2771
+ dependencies = [
2772
+ "winnow",
2773
+ ]
2774
+
2775
+ [[package]]
2776
+ name = "toml_writer"
2777
+ version = "1.0.6+spec-1.1.0"
2778
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2779
+ checksum = "ab16f14aed21ee8bfd8ec22513f7287cd4a91aa92e44edfe2c17ddd004e92607"
2780
+
2685
2781
  [[package]]
2686
2782
  name = "tonic"
2687
2783
  version = "0.14.3"
@@ -3411,6 +3507,12 @@ version = "0.53.1"
3411
3507
  source = "registry+https://github.com/rust-lang/crates.io-index"
3412
3508
  checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650"
3413
3509
 
3510
+ [[package]]
3511
+ name = "winnow"
3512
+ version = "0.7.14"
3513
+ source = "registry+https://github.com/rust-lang/crates.io-index"
3514
+ checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829"
3515
+
3414
3516
  [[package]]
3415
3517
  name = "wit-bindgen"
3416
3518
  version = "0.51.0"
package/lib/native.d.ts CHANGED
@@ -192,7 +192,7 @@ export type PollerBehavior = {
192
192
  export type WorkerDeploymentOptions = {
193
193
  version: WorkerDeploymentVersion;
194
194
  useWorkerVersioning: boolean;
195
- defaultVersioningBehavior: VersioningBehavior;
195
+ defaultVersioningBehavior: Option<VersioningBehavior>;
196
196
  };
197
197
  export type WorkerDeploymentVersion = {
198
198
  buildId: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@temporalio/core-bridge",
3
- "version": "1.15.0",
3
+ "version": "1.16.1",
4
4
  "description": "Temporal.io SDK Core<>Node bridge",
5
5
  "main": "index.js",
6
6
  "types": "lib/index.d.ts",
@@ -14,7 +14,7 @@
14
14
  "license": "MIT",
15
15
  "dependencies": {
16
16
  "@grpc/grpc-js": "^1.12.4",
17
- "@temporalio/common": "1.15.0"
17
+ "@temporalio/common": "1.16.1"
18
18
  },
19
19
  "devDependencies": {
20
20
  "arg": "^5.0.2",
@@ -25,7 +25,7 @@ jobs:
25
25
  submodules: recursive
26
26
  - uses: dtolnay/rust-toolchain@stable
27
27
  with:
28
- toolchain: 1.90.0
28
+ toolchain: 1.92.0
29
29
  - name: Install protoc
30
30
  uses: arduino/setup-protoc@v3
31
31
  with:
@@ -64,7 +64,7 @@ jobs:
64
64
  - uses: actions/checkout@v4
65
65
  - uses: dtolnay/rust-toolchain@stable
66
66
  with:
67
- toolchain: 1.90.0
67
+ toolchain: 1.92.0
68
68
  - name: Install protoc
69
69
  uses: arduino/setup-protoc@v3
70
70
  with:
@@ -143,7 +143,7 @@ jobs:
143
143
  - uses: actions/checkout@v4
144
144
  - uses: dtolnay/rust-toolchain@stable
145
145
  with:
146
- toolchain: 1.90.0
146
+ toolchain: 1.92.0
147
147
  - name: Install protoc
148
148
  uses: arduino/setup-protoc@v3
149
149
  with:
@@ -176,7 +176,7 @@ jobs:
176
176
  - uses: actions/checkout@v4
177
177
  - uses: dtolnay/rust-toolchain@stable
178
178
  with:
179
- toolchain: 1.90.0
179
+ toolchain: 1.92.0
180
180
  - name: Install protoc
181
181
  uses: arduino/setup-protoc@v3
182
182
  with:
@@ -201,7 +201,7 @@ jobs:
201
201
  - uses: actions/checkout@v4
202
202
  - uses: dtolnay/rust-toolchain@stable
203
203
  with:
204
- toolchain: 1.90.0
204
+ toolchain: 1.92.0
205
205
  - name: Install protoc
206
206
  uses: arduino/setup-protoc@v3
207
207
  with:
@@ -222,7 +222,7 @@ jobs:
222
222
  - uses: actions/checkout@v4
223
223
  - uses: dtolnay/rust-toolchain@stable
224
224
  with:
225
- toolchain: 1.90.0
225
+ toolchain: 1.92.0
226
226
  - name: Install protoc
227
227
  uses: arduino/setup-protoc@v3
228
228
  with:
@@ -3,51 +3,48 @@
3
3
  This repository provides a Rust workspace for the Temporal Core SDK and related crates. Use this
4
4
  document as your quick reference when submitting pull requests.
5
5
 
6
- ## Where Things Are
6
+ ## Requirements for coding agents
7
+
8
+ - Always use `cargo integ-test <test_name>` for running integration tests. Do not run them directly. If you have added `dbg!` or println statements, you must add `-- --nocapture` to see them.
9
+ - Unit tests may be run with `cargo test`. If you are about to run a test, you do not need to run
10
+ `cargo build` separately first. Just run the test, and it will build. Running `cargo build --test`
11
+ DOES NOT build integration tests. Use `cargo lint` for checking if integration tests compile
12
+ without running them.
13
+ - Always use `cargo lint` for checking lints / clippy. Do not use clippy directly.
14
+ - It is EXTREMELY IMPORTANT that any added comments should explain why something needs to be done,
15
+ rather than what it is. Comments that simply state a fact easily understood from type signatures
16
+ or other context should NEVER be added. Always prefer to avoid a comment unless it truly is
17
+ clarifying something nonobvious.
18
+ - Always make every attempt to avoid explicit sleeps in test code. Instead rely on synchronization
19
+ techniques like channels, Notify, etc.
20
+ - Rust compilation can take some time. Do not interrupt builds or tests unless they are taking more
21
+ than 5 minutes. When making changes that may break integration tests, after compiling, run
22
+ integration tests with `timeout 180`, as it is possible to introduce test hangs.
23
+ - DO NOT put use statements in function scope. Always put them at the top of the file, unless doing
24
+ so helps prevent ambiguous method resolution because of traits. Putting them at the top of a tests module is also acceptable.
7
25
 
8
- - `crates` - All crates in the workspace.
9
- - `crates/core/` – implementation of the core SDK
10
- - `crates/client/` – clients for communicating with Temporal clusters
11
- - `crates/common/` – protobuf definitions shared across crates
12
- - `crates/core-api/` – API definitions exposed by core
13
- - `crates/core-c-bridge/` – C interface for core
14
- - `crates/sdk/` – pre-alpha Rust SDK built on top of core (used mainly for tests)
15
- - `crates/fsm/` – state machine implementation and macros
16
- - `crates/core/tests/` – integration, heavy, and manual tests
17
- - `arch_docs/` – architectural design documents
18
- - Contributor guide: `README.md`
19
- - `target/` - This contains compiled files. You never need to look in here.
20
26
 
21
27
  ## Repo Specific Utilities
22
28
 
23
29
  - `.cargo/config.toml` defines useful cargo aliases:
24
- - `cargo lint` – run clippy on workspace crates
25
- - `cargo test-lint` – run clippy on tests
30
+ - `cargo lint` – run clippy on workspace crates and integration tests
31
+ - `cargo test-lint` – run clippy on unit tests
26
32
  - `cargo integ-test` – run the integration test runner
27
- - `etc` - Various helper scripts and configuration
28
- - `etc/docker` - Docker compose files to help with CI or more complex local testing
29
33
 
30
34
  ## Building and Testing
31
35
 
32
36
  The following commands are enforced for each pull request (see `README.md`):
33
37
 
34
38
  ```bash
35
- cargo build # build all crates
36
- cargo test # run unit tests
37
- cargo integ-test # integration tests (starts ephemeral server by default)
39
+ cargo fmt --all --check # ensure code is formatted
40
+ cargo build # build all crates
41
+ cargo lint # run lints
42
+ cargo test-lint # run lints on tests
43
+ cargo test # run unit tests
44
+ cargo integ-test # integration tests (starts ephemeral server by default)
38
45
  cargo test --test heavy_tests # load tests -- agents do not need to run this and should not
39
46
  ```
40
47
 
41
- Rust compilation can take some time. Do not interrupt builds or tests unless they are taking more
42
- than 10 minutes.
43
-
44
- Additional checks:
45
-
46
- ```bash
47
- cargo fmt --all # format code
48
- cargo clippy --all -- -D warnings # lint
49
- ```
50
-
51
48
  Documentation can be generated with `cargo doc`.
52
49
 
53
50
  ## Expectations for Pull Requests
@@ -70,6 +67,20 @@ Reviewers will look for:
70
67
  - Clear and concise code following existing style (see `README.md` for error handling guidance)
71
68
  - Documentation updates for any public API changes
72
69
 
70
+ ## Where Things Are
71
+
72
+ - `crates` - All crates in the workspace.
73
+ - `crates/client/` – clients for communicating with Temporal clusters
74
+ - `crates/common/` – Common functionality & protobuf definitions
75
+ - `crates/macros/` – procedural macro implementations
76
+ - `crates/sdk/` – Rust SDK built on top of core
77
+ - `crates/sdk-core/` – implementation of the core SDK
78
+ - `crates/sdk-core/tests/` – integration, heavy, and manual tests
79
+ - `crates/sdk-core-c-bridge/` – C interface for core
80
+ - `arch_docs/` – architectural design documents
81
+ - Contributor guide: `README.md`
82
+ - `target/` - This contains compiled files. You never need to look in here.
83
+
73
84
  ## Notes
74
85
 
75
86
  - Fetch workflow histories with `cargo run --bin histfetch <workflow_id> [run_id]` (binary lives in
@@ -30,6 +30,9 @@ tonic-prost-build = "0.14"
30
30
  opentelemetry = { version = "0.31", features = ["metrics"] }
31
31
  prost = "0.14"
32
32
  prost-types = { version = "0.7", package = "prost-wkt-types" }
33
+ pbjson = "0.9"
34
+ pbjson-types = "0.9"
35
+ pbjson-build = "0.9"
33
36
 
34
37
  [workspace.lints.rust]
35
38
  unreachable_pub = "warn"