temporalio 1.10.0 → 1.11.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 (109) hide show
  1. checksums.yaml +4 -4
  2. data/Cargo.lock +763 -768
  3. data/Gemfile +3 -2
  4. data/ext/Cargo.toml +3 -3
  5. data/lib/temporalio/api/activity/v1/message.rb +1 -1
  6. data/lib/temporalio/api/common/v1/message.rb +2 -1
  7. data/lib/temporalio/api/schedule/v1/message.rb +1 -1
  8. data/lib/temporalio/api/taskqueue/v1/message.rb +2 -1
  9. data/lib/temporalio/api/worker/v1/message.rb +1 -1
  10. data/lib/temporalio/api/workflowservice/v1/request_response.rb +1 -1
  11. data/lib/temporalio/client/connection.rb +4 -4
  12. data/lib/temporalio/contrib/aws/s3_driver/aws_sdk_s3_storage_driver_client.rb +52 -0
  13. data/lib/temporalio/contrib/aws/s3_driver/s3_storage_driver.rb +211 -0
  14. data/lib/temporalio/contrib/aws/s3_driver/s3_storage_driver_client.rb +56 -0
  15. data/lib/temporalio/contrib/aws/s3_driver.rb +22 -0
  16. data/lib/temporalio/contrib/open_telemetry.rb +1 -1
  17. data/lib/temporalio/converters/external_storage_concurrency.rb +4 -6
  18. data/lib/temporalio/converters/payload_converter/binary_protobuf.rb +1 -1
  19. data/lib/temporalio/converters/payload_converter/json_protobuf.rb +1 -1
  20. data/lib/temporalio/converters/storage_driver_limiter.rb +6 -8
  21. data/lib/temporalio/converters/storage_driver_retrieve_context.rb +1 -2
  22. data/lib/temporalio/converters/storage_driver_store_context.rb +1 -2
  23. data/lib/temporalio/env_config.rb +89 -8
  24. data/lib/temporalio/internal/bridge/api/activity_result/activity_result.rb +2 -2
  25. data/lib/temporalio/internal/bridge/api/activity_task/activity_task.rb +3 -1
  26. data/lib/temporalio/internal/bridge/api/workflow_activation/workflow_activation.rb +2 -1
  27. data/lib/temporalio/internal/bridge/testing.rb +4 -2
  28. data/lib/temporalio/internal/worker/workflow_instance/child_workflow_handle.rb +2 -2
  29. data/lib/temporalio/internal/worker/workflow_instance/context.rb +35 -24
  30. data/lib/temporalio/internal/worker/workflow_instance/external_workflow_handle.rb +6 -4
  31. data/lib/temporalio/internal/worker/workflow_instance/nexus_client.rb +3 -2
  32. data/lib/temporalio/internal/worker/workflow_instance/outbound_implementation.rb +52 -19
  33. data/lib/temporalio/internal/worker/workflow_instance/scheduler.rb +8 -2
  34. data/lib/temporalio/internal/worker/workflow_instance.rb +47 -26
  35. data/lib/temporalio/internal/worker/workflow_worker.rb +1 -2
  36. data/lib/temporalio/search_attributes.rb +4 -2
  37. data/lib/temporalio/testing/workflow_environment.rb +10 -2
  38. data/lib/temporalio/version.rb +1 -1
  39. data/lib/temporalio/worker/interceptor.rb +16 -8
  40. data/lib/temporalio/worker/workflow_replayer.rb +1 -1
  41. data/lib/temporalio/worker.rb +19 -12
  42. data/lib/temporalio/workflow/child_workflow_handle.rb +4 -1
  43. data/lib/temporalio/workflow/event_group.rb +157 -0
  44. data/lib/temporalio/workflow/external_workflow_handle.rb +9 -2
  45. data/lib/temporalio/workflow/future.rb +1 -1
  46. data/lib/temporalio/workflow/info.rb +4 -0
  47. data/lib/temporalio/workflow/nexus_client.rb +11 -3
  48. data/lib/temporalio/workflow.rb +114 -22
  49. data/rbi/temporalio/api/activity/v1/message.rbi +71 -2
  50. data/rbi/temporalio/api/common/v1/message.rbi +95 -0
  51. data/rbi/temporalio/api/schedule/v1/message.rbi +44 -4
  52. data/rbi/temporalio/api/taskqueue/v1/message.rbi +67 -0
  53. data/rbi/temporalio/api/worker/v1/message.rbi +22 -2
  54. data/rbi/temporalio/api/workflowservice/v1/request_response.rbi +126 -12
  55. data/rbi/temporalio/contrib/aws/s3_driver/aws_sdk_s3_storage_driver_client.rbi +8 -0
  56. data/rbi/temporalio/contrib/aws/s3_driver/s3_storage_driver.rbi +27 -0
  57. data/rbi/temporalio/contrib/aws/s3_driver/s3_storage_driver_client.rbi +17 -0
  58. data/rbi/temporalio/contrib/aws/s3_driver.rbi +5 -0
  59. data/rbi/temporalio/env_config.rbi +39 -4
  60. data/rbi/temporalio/internal/bridge/api/activity_result/activity_result.rbi +0 -19
  61. data/rbi/temporalio/internal/bridge/api/activity_task/activity_task.rbi +213 -2
  62. data/rbi/temporalio/internal/bridge/api/workflow_activation/workflow_activation.rbi +50 -4
  63. data/rbi/temporalio/internal/bridge/testing.rbi +17 -4
  64. data/rbi/temporalio/internal/bridge/worker.rbi +4 -4
  65. data/rbi/temporalio/internal/worker/workflow_instance/context.rbi +33 -24
  66. data/rbi/temporalio/internal/worker/workflow_instance/nexus_client.rbi +4 -2
  67. data/rbi/temporalio/internal/worker/workflow_instance/outbound_implementation.rbi +17 -6
  68. data/rbi/temporalio/internal/worker/workflow_instance/scheduler.rbi +1 -1
  69. data/rbi/temporalio/internal/worker/workflow_instance.rbi +5 -2
  70. data/rbi/temporalio/testing/workflow_environment.rbi +4 -0
  71. data/rbi/temporalio/worker/interceptor.rbi +24 -0
  72. data/rbi/temporalio/worker.rbi +8 -8
  73. data/rbi/temporalio/workflow/child_workflow_handle.rbi +3 -2
  74. data/rbi/temporalio/workflow/event_group.rbi +104 -0
  75. data/rbi/temporalio/workflow/external_workflow_handle.rbi +5 -4
  76. data/rbi/temporalio/workflow/info.rbi +3 -0
  77. data/rbi/temporalio/workflow/nexus_client.rbi +8 -4
  78. data/rbi/temporalio/workflow.rbi +70 -21
  79. data/sig/temporalio/api/activity/v1/message.rbs +31 -0
  80. data/sig/temporalio/api/common/v1/message.rbs +35 -0
  81. data/sig/temporalio/api/schedule/v1/message.rbs +20 -0
  82. data/sig/temporalio/api/taskqueue/v1/message.rbs +24 -0
  83. data/sig/temporalio/api/worker/v1/message.rbs +10 -0
  84. data/sig/temporalio/api/workflowservice/v1/request_response.rbs +58 -0
  85. data/sig/temporalio/contrib/aws/s3_driver/aws_sdk_s3_storage_driver_client.rbs +13 -0
  86. data/sig/temporalio/contrib/aws/s3_driver/s3_storage_driver.rbs +68 -0
  87. data/sig/temporalio/contrib/aws/s3_driver/s3_storage_driver_client.rbs +14 -0
  88. data/sig/temporalio/contrib/aws/s3_driver.rbs +8 -0
  89. data/sig/temporalio/env_config.rbs +20 -2
  90. data/sig/temporalio/internal/bridge/api/activity_result/activity_result.rbs +6 -41
  91. data/sig/temporalio/internal/bridge/api/activity_task/activity_task.rbs +99 -0
  92. data/sig/temporalio/internal/bridge/api/workflow_activation/workflow_activation.rbs +22 -0
  93. data/sig/temporalio/internal/bridge/testing.rbs +7 -3
  94. data/sig/temporalio/internal/bridge/worker.rbs +4 -4
  95. data/sig/temporalio/internal/worker/workflow_instance/context.rbs +19 -13
  96. data/sig/temporalio/internal/worker/workflow_instance/nexus_client.rbs +2 -1
  97. data/sig/temporalio/internal/worker/workflow_instance/outbound_implementation.rbs +8 -5
  98. data/sig/temporalio/internal/worker/workflow_instance/scheduler.rbs +1 -1
  99. data/sig/temporalio/internal/worker/workflow_instance.rbs +2 -1
  100. data/sig/temporalio/testing/workflow_environment.rbs +8 -4
  101. data/sig/temporalio/worker/interceptor.rbs +24 -8
  102. data/sig/temporalio/worker.rbs +12 -12
  103. data/sig/temporalio/workflow/child_workflow_handle.rbs +2 -1
  104. data/sig/temporalio/workflow/event_group.rbs +37 -0
  105. data/sig/temporalio/workflow/external_workflow_handle.rbs +3 -2
  106. data/sig/temporalio/workflow/info.rbs +2 -0
  107. data/sig/temporalio/workflow/nexus_client.rbs +4 -2
  108. data/sig/temporalio/workflow.rbs +27 -11
  109. metadata +16 -1
@@ -127,7 +127,9 @@ class Temporalio::Internal::Bridge::Api::ActivityTask::Start
127
127
  retry_policy: T.nilable(Temporalio::Api::Common::V1::RetryPolicy),
128
128
  priority: T.nilable(Temporalio::Api::Common::V1::Priority),
129
129
  is_local: T.nilable(T::Boolean),
130
- run_id: T.nilable(String)
130
+ run_id: T.nilable(String),
131
+ propagated_nexus_serialization_context: T.nilable(Temporalio::Api::Nexus::V1::PropagatedSerializationContext),
132
+ workflow_task: T.nilable(Temporalio::Internal::Bridge::Api::ActivityTask::WorkflowTaskAttempt)
131
133
  ).void
132
134
  end
133
135
  def initialize(
@@ -149,7 +151,9 @@ class Temporalio::Internal::Bridge::Api::ActivityTask::Start
149
151
  retry_policy: nil,
150
152
  priority: nil,
151
153
  is_local: false,
152
- run_id: ""
154
+ run_id: "",
155
+ propagated_nexus_serialization_context: nil,
156
+ workflow_task: nil
153
157
  )
154
158
  end
155
159
 
@@ -441,6 +445,45 @@ class Temporalio::Internal::Bridge::Api::ActivityTask::Start
441
445
  def clear_run_id
442
446
  end
443
447
 
448
+ # Serialization context of the Nexus operation handler that started this activity, if any.
449
+ # Only set for standalone activities. Lang should use it to serialize the activity's result and
450
+ # failure, which are returned to the Nexus caller.
451
+ sig { returns(T.nilable(Temporalio::Api::Nexus::V1::PropagatedSerializationContext)) }
452
+ def propagated_nexus_serialization_context
453
+ end
454
+
455
+ # Serialization context of the Nexus operation handler that started this activity, if any.
456
+ # Only set for standalone activities. Lang should use it to serialize the activity's result and
457
+ # failure, which are returned to the Nexus caller.
458
+ sig { params(value: T.nilable(Temporalio::Api::Nexus::V1::PropagatedSerializationContext)).void }
459
+ def propagated_nexus_serialization_context=(value)
460
+ end
461
+
462
+ # Serialization context of the Nexus operation handler that started this activity, if any.
463
+ # Only set for standalone activities. Lang should use it to serialize the activity's result and
464
+ # failure, which are returned to the Nexus caller.
465
+ sig { void }
466
+ def clear_propagated_nexus_serialization_context
467
+ end
468
+
469
+ # For a local activity, the workflow task in which Core dispatched this execution. Retries that
470
+ # Core runs locally keep the value. Unset for other activities.
471
+ sig { returns(T.nilable(Temporalio::Internal::Bridge::Api::ActivityTask::WorkflowTaskAttempt)) }
472
+ def workflow_task
473
+ end
474
+
475
+ # For a local activity, the workflow task in which Core dispatched this execution. Retries that
476
+ # Core runs locally keep the value. Unset for other activities.
477
+ sig { params(value: T.nilable(Temporalio::Internal::Bridge::Api::ActivityTask::WorkflowTaskAttempt)).void }
478
+ def workflow_task=(value)
479
+ end
480
+
481
+ # For a local activity, the workflow task in which Core dispatched this execution. Retries that
482
+ # Core runs locally keep the value. Unset for other activities.
483
+ sig { void }
484
+ def clear_workflow_task
485
+ end
486
+
444
487
  sig { params(field: String).returns(T.untyped) }
445
488
  def [](field)
446
489
  end
@@ -474,6 +517,174 @@ class Temporalio::Internal::Bridge::Api::ActivityTask::Start
474
517
  end
475
518
  end
476
519
 
520
+ # One attempt of a workflow task, from the poll response and the history of that attempt.
521
+ class Temporalio::Internal::Bridge::Api::ActivityTask::WorkflowTaskAttempt
522
+ include ::Google::Protobuf::MessageExts
523
+ extend ::Google::Protobuf::MessageExts::ClassMethods
524
+
525
+ sig do
526
+ params(
527
+ started_event_id: T.nilable(Integer),
528
+ attempt: T.nilable(Integer),
529
+ started_time: T.nilable(Google::Protobuf::Timestamp),
530
+ previous_started_event_id: T.nilable(Integer),
531
+ failed_tasks: T.nilable(T::Array[Integer]),
532
+ previous_attempt: T.nilable(Integer),
533
+ previous_started_time: T.nilable(Google::Protobuf::Timestamp)
534
+ ).void
535
+ end
536
+ def initialize(
537
+ started_event_id: 0,
538
+ attempt: 0,
539
+ started_time: nil,
540
+ previous_started_event_id: 0,
541
+ failed_tasks: [],
542
+ previous_attempt: 0,
543
+ previous_started_time: nil
544
+ )
545
+ end
546
+
547
+ # The event id of the task's WorkflowTaskStarted event.
548
+ sig { returns(Integer) }
549
+ def started_event_id
550
+ end
551
+
552
+ # The event id of the task's WorkflowTaskStarted event.
553
+ sig { params(value: Integer).void }
554
+ def started_event_id=(value)
555
+ end
556
+
557
+ # The event id of the task's WorkflowTaskStarted event.
558
+ sig { void }
559
+ def clear_started_event_id
560
+ end
561
+
562
+ sig { returns(Integer) }
563
+ def attempt
564
+ end
565
+
566
+ sig { params(value: Integer).void }
567
+ def attempt=(value)
568
+ end
569
+
570
+ sig { void }
571
+ def clear_attempt
572
+ end
573
+
574
+ # When the server started the task.
575
+ sig { returns(T.nilable(Google::Protobuf::Timestamp)) }
576
+ def started_time
577
+ end
578
+
579
+ # When the server started the task.
580
+ sig { params(value: T.nilable(Google::Protobuf::Timestamp)).void }
581
+ def started_time=(value)
582
+ end
583
+
584
+ # When the server started the task.
585
+ sig { void }
586
+ def clear_started_time
587
+ end
588
+
589
+ # The started event id of the run's last completed workflow task, from the poll response.
590
+ # 0 when no task of the run has completed.
591
+ sig { returns(Integer) }
592
+ def previous_started_event_id
593
+ end
594
+
595
+ # The started event id of the run's last completed workflow task, from the poll response.
596
+ # 0 when no task of the run has completed.
597
+ sig { params(value: Integer).void }
598
+ def previous_started_event_id=(value)
599
+ end
600
+
601
+ # The started event id of the run's last completed workflow task, from the poll response.
602
+ # 0 when no task of the run has completed.
603
+ sig { void }
604
+ def clear_previous_started_event_id
605
+ end
606
+
607
+ # The started event ids of the run's last 100 failed and timed out workflow tasks in history,
608
+ # in event order. The cap keeps each start small. A transient attempt has no such event.
609
+ sig { returns(T::Array[Integer]) }
610
+ def failed_tasks
611
+ end
612
+
613
+ # The started event ids of the run's last 100 failed and timed out workflow tasks in history,
614
+ # in event order. The cap keeps each start small. A transient attempt has no such event.
615
+ sig { params(value: ::Google::Protobuf::RepeatedField).void }
616
+ def failed_tasks=(value)
617
+ end
618
+
619
+ # The started event ids of the run's last 100 failed and timed out workflow tasks in history,
620
+ # in event order. The cap keeps each start small. A transient attempt has no such event.
621
+ sig { void }
622
+ def clear_failed_tasks
623
+ end
624
+
625
+ # The attempt and the started time of the task at previous_started_event_id, from its
626
+ # WorkflowTaskScheduled and WorkflowTaskStarted events. Unset when no task has completed.
627
+ sig { returns(Integer) }
628
+ def previous_attempt
629
+ end
630
+
631
+ # The attempt and the started time of the task at previous_started_event_id, from its
632
+ # WorkflowTaskScheduled and WorkflowTaskStarted events. Unset when no task has completed.
633
+ sig { params(value: Integer).void }
634
+ def previous_attempt=(value)
635
+ end
636
+
637
+ # The attempt and the started time of the task at previous_started_event_id, from its
638
+ # WorkflowTaskScheduled and WorkflowTaskStarted events. Unset when no task has completed.
639
+ sig { void }
640
+ def clear_previous_attempt
641
+ end
642
+
643
+ sig { returns(T.nilable(Google::Protobuf::Timestamp)) }
644
+ def previous_started_time
645
+ end
646
+
647
+ sig { params(value: T.nilable(Google::Protobuf::Timestamp)).void }
648
+ def previous_started_time=(value)
649
+ end
650
+
651
+ sig { void }
652
+ def clear_previous_started_time
653
+ end
654
+
655
+ sig { params(field: String).returns(T.untyped) }
656
+ def [](field)
657
+ end
658
+
659
+ sig { params(field: String, value: T.untyped).void }
660
+ def []=(field, value)
661
+ end
662
+
663
+ sig { returns(T::Hash[Symbol, T.untyped]) }
664
+ def to_h
665
+ end
666
+
667
+ sig { params(str: String).returns(Temporalio::Internal::Bridge::Api::ActivityTask::WorkflowTaskAttempt) }
668
+ def self.decode(str)
669
+ end
670
+
671
+ sig { params(msg: Temporalio::Internal::Bridge::Api::ActivityTask::WorkflowTaskAttempt).returns(String) }
672
+ def self.encode(msg)
673
+ end
674
+
675
+ sig { params(str: String, kw: T.untyped).returns(Temporalio::Internal::Bridge::Api::ActivityTask::WorkflowTaskAttempt) }
676
+ def self.decode_json(str, **kw)
677
+ end
678
+
679
+ sig { params(msg: Temporalio::Internal::Bridge::Api::ActivityTask::WorkflowTaskAttempt, kw: T.untyped).returns(String) }
680
+ def self.encode_json(msg, **kw)
681
+ end
682
+
683
+ sig { returns(::Google::Protobuf::Descriptor) }
684
+ def self.descriptor
685
+ end
686
+ end
687
+
477
688
  # Attempt to cancel a running activity
478
689
  class Temporalio::Internal::Bridge::Api::ActivityTask::Cancel
479
690
  include ::Google::Protobuf::MessageExts
@@ -705,7 +705,8 @@ class Temporalio::Internal::Bridge::Api::WorkflowActivation::InitializeWorkflow
705
705
  start_time: T.nilable(Google::Protobuf::Timestamp),
706
706
  root_workflow: T.nilable(Temporalio::Api::Common::V1::WorkflowExecution),
707
707
  priority: T.nilable(Temporalio::Api::Common::V1::Priority),
708
- original_execution_run_id: T.nilable(String)
708
+ original_execution_run_id: T.nilable(String),
709
+ propagated_nexus_serialization_context: T.nilable(Temporalio::Api::Nexus::V1::PropagatedSerializationContext)
709
710
  ).void
710
711
  end
711
712
  def initialize(
@@ -734,7 +735,8 @@ class Temporalio::Internal::Bridge::Api::WorkflowActivation::InitializeWorkflow
734
735
  start_time: nil,
735
736
  root_workflow: nil,
736
737
  priority: nil,
737
- original_execution_run_id: ""
738
+ original_execution_run_id: "",
739
+ propagated_nexus_serialization_context: nil
738
740
  )
739
741
  end
740
742
 
@@ -1173,6 +1175,27 @@ class Temporalio::Internal::Bridge::Api::WorkflowActivation::InitializeWorkflow
1173
1175
  def clear_original_execution_run_id
1174
1176
  end
1175
1177
 
1178
+ # Serialization context of the Nexus operation handler that started this workflow, if any.
1179
+ # Lang should use it to serialize the workflow's result and failure, which are returned to the
1180
+ # Nexus caller.
1181
+ sig { returns(T.nilable(Temporalio::Api::Nexus::V1::PropagatedSerializationContext)) }
1182
+ def propagated_nexus_serialization_context
1183
+ end
1184
+
1185
+ # Serialization context of the Nexus operation handler that started this workflow, if any.
1186
+ # Lang should use it to serialize the workflow's result and failure, which are returned to the
1187
+ # Nexus caller.
1188
+ sig { params(value: T.nilable(Temporalio::Api::Nexus::V1::PropagatedSerializationContext)).void }
1189
+ def propagated_nexus_serialization_context=(value)
1190
+ end
1191
+
1192
+ # Serialization context of the Nexus operation handler that started this workflow, if any.
1193
+ # Lang should use it to serialize the workflow's result and failure, which are returned to the
1194
+ # Nexus caller.
1195
+ sig { void }
1196
+ def clear_propagated_nexus_serialization_context
1197
+ end
1198
+
1176
1199
  sig { params(field: String).returns(T.untyped) }
1177
1200
  def [](field)
1178
1201
  end
@@ -2413,7 +2436,8 @@ class Temporalio::Internal::Bridge::Api::WorkflowActivation::DoUpdate
2413
2436
  input: T.nilable(T::Array[T.nilable(Temporalio::Api::Common::V1::Payload)]),
2414
2437
  headers: T.nilable(T::Hash[String, T.nilable(Temporalio::Api::Common::V1::Payload)]),
2415
2438
  meta: T.nilable(Temporalio::Api::Update::V1::Meta),
2416
- run_validator: T.nilable(T::Boolean)
2439
+ run_validator: T.nilable(T::Boolean),
2440
+ propagated_nexus_serialization_context: T.nilable(Temporalio::Api::Nexus::V1::PropagatedSerializationContext)
2417
2441
  ).void
2418
2442
  end
2419
2443
  def initialize(
@@ -2423,7 +2447,8 @@ class Temporalio::Internal::Bridge::Api::WorkflowActivation::DoUpdate
2423
2447
  input: [],
2424
2448
  headers: ::Google::Protobuf::Map.new(:string, :message, Temporalio::Api::Common::V1::Payload),
2425
2449
  meta: nil,
2426
- run_validator: false
2450
+ run_validator: false,
2451
+ propagated_nexus_serialization_context: nil
2427
2452
  )
2428
2453
  end
2429
2454
 
@@ -2541,6 +2566,27 @@ class Temporalio::Internal::Bridge::Api::WorkflowActivation::DoUpdate
2541
2566
  def clear_run_validator
2542
2567
  end
2543
2568
 
2569
+ # Serialization context of the Nexus operation handler that sent this update, if any. Lang
2570
+ # should use it to serialize the update's result and failure, which are returned to the Nexus
2571
+ # caller.
2572
+ sig { returns(T.nilable(Temporalio::Api::Nexus::V1::PropagatedSerializationContext)) }
2573
+ def propagated_nexus_serialization_context
2574
+ end
2575
+
2576
+ # Serialization context of the Nexus operation handler that sent this update, if any. Lang
2577
+ # should use it to serialize the update's result and failure, which are returned to the Nexus
2578
+ # caller.
2579
+ sig { params(value: T.nilable(Temporalio::Api::Nexus::V1::PropagatedSerializationContext)).void }
2580
+ def propagated_nexus_serialization_context=(value)
2581
+ end
2582
+
2583
+ # Serialization context of the Nexus operation handler that sent this update, if any. Lang
2584
+ # should use it to serialize the update's result and failure, which are returned to the Nexus
2585
+ # caller.
2586
+ sig { void }
2587
+ def clear_propagated_nexus_serialization_context
2588
+ end
2589
+
2544
2590
  sig { params(field: String).returns(T.untyped) }
2545
2591
  def [](field)
2546
2592
  end
@@ -68,7 +68,8 @@ class Temporalio::Internal::Bridge::Testing::EphemeralServer::StartDevServerOpti
68
68
  log_format: String,
69
69
  log_level: String,
70
70
  extra_args: T::Array[String],
71
- download_ttl: T.nilable(T.any(Integer, Float))
71
+ download_ttl: T.nilable(T.any(Integer, Float)),
72
+ startup_timeout: T.nilable(T.any(Integer, Float))
72
73
  ).void
73
74
  end
74
75
  def initialize(
@@ -86,7 +87,8 @@ class Temporalio::Internal::Bridge::Testing::EphemeralServer::StartDevServerOpti
86
87
  log_format,
87
88
  log_level,
88
89
  extra_args,
89
- download_ttl
90
+ download_ttl,
91
+ startup_timeout
90
92
  ); end
91
93
  end
92
94
 
@@ -102,8 +104,19 @@ class Temporalio::Internal::Bridge::Testing::EphemeralServer::StartTestServerOpt
102
104
  download_dest_dir: T.nilable(String),
103
105
  port: T.nilable(Integer),
104
106
  extra_args: T::Array[String],
105
- download_ttl: T.nilable(T.any(Integer, Float))
107
+ download_ttl: T.nilable(T.any(Integer, Float)),
108
+ startup_timeout: T.nilable(T.any(Integer, Float))
106
109
  ).void
107
110
  end
108
- def initialize(existing_path, sdk_name, sdk_version, download_version, download_dest_dir, port, extra_args, download_ttl); end
111
+ def initialize(
112
+ existing_path,
113
+ sdk_name,
114
+ sdk_version,
115
+ download_version,
116
+ download_dest_dir,
117
+ port,
118
+ extra_args,
119
+ download_ttl,
120
+ startup_timeout
121
+ ); end
109
122
  end
@@ -58,15 +58,15 @@ class Temporalio::Internal::Bridge::Worker::Options < ::Struct
58
58
  tuner: Temporalio::Internal::Bridge::Worker::TunerOptions,
59
59
  identity_override: T.nilable(String),
60
60
  max_cached_workflows: Integer,
61
- workflow_task_poller_behavior: T.any(
61
+ workflow_task_poller_behavior: T.nilable(T.any(
62
62
  Temporalio::Internal::Bridge::Worker::PollerBehaviorSimpleMaximum,
63
63
  Temporalio::Internal::Bridge::Worker::PollerBehaviorAutoscaling
64
- ),
64
+ )),
65
65
  nonsticky_to_sticky_poll_ratio: T.any(Integer, Float),
66
- activity_task_poller_behavior: T.any(
66
+ activity_task_poller_behavior: T.nilable(T.any(
67
67
  Temporalio::Internal::Bridge::Worker::PollerBehaviorSimpleMaximum,
68
68
  Temporalio::Internal::Bridge::Worker::PollerBehaviorAutoscaling
69
- ),
69
+ )),
70
70
  enable_workflows: T::Boolean,
71
71
  enable_local_activities: T::Boolean,
72
72
  enable_remote_activities: T::Boolean,
@@ -42,8 +42,8 @@ class Temporalio::Internal::Worker::WorkflowInstance::Context
42
42
  sig { returns(T.nilable(Temporalio::Workflow::UpdateInfo)) }
43
43
  def current_update_info; end
44
44
 
45
- sig { params(patch_id: T.any(Symbol, String)).void }
46
- def deprecate_patch(patch_id); end
45
+ sig { params(patch_id: T.any(Symbol, String), event_groups: T.nilable(T::Array[Temporalio::Workflow::EventGroup])).void }
46
+ def deprecate_patch(patch_id, event_groups:); end
47
47
 
48
48
  sig { type_parameters(:T).params(block: T.proc.returns(T.type_parameter(:T))).returns(T.type_parameter(:T)) }
49
49
  def durable_scheduler_disabled(&block); end
@@ -65,7 +65,8 @@ class Temporalio::Internal::Worker::WorkflowInstance::Context
65
65
  disable_eager_execution: T::Boolean,
66
66
  priority: Temporalio::Priority,
67
67
  arg_hints: T.nilable(T::Array[Object]),
68
- result_hint: T.nilable(Object)
68
+ result_hint: T.nilable(Object),
69
+ event_groups: T.nilable(T::Array[Temporalio::Workflow::EventGroup])
69
70
  ).returns(T.nilable(Object))
70
71
  end
71
72
  def execute_activity(
@@ -84,7 +85,8 @@ class Temporalio::Internal::Worker::WorkflowInstance::Context
84
85
  disable_eager_execution:,
85
86
  priority:,
86
87
  arg_hints:,
87
- result_hint:
88
+ result_hint:,
89
+ event_groups:
88
90
  ); end
89
91
 
90
92
  sig do
@@ -101,7 +103,8 @@ class Temporalio::Internal::Worker::WorkflowInstance::Context
101
103
  cancellation_type: Integer,
102
104
  activity_id: T.nilable(String),
103
105
  arg_hints: T.nilable(T::Array[Object]),
104
- result_hint: T.nilable(Object)
106
+ result_hint: T.nilable(Object),
107
+ event_groups: T.nilable(T::Array[Temporalio::Workflow::EventGroup])
105
108
  ).returns(T.nilable(Object))
106
109
  end
107
110
  def execute_local_activity(
@@ -117,7 +120,8 @@ class Temporalio::Internal::Worker::WorkflowInstance::Context
117
120
  cancellation_type:,
118
121
  activity_id:,
119
122
  arg_hints:,
120
- result_hint:
123
+ result_hint:,
124
+ event_groups:
121
125
  ); end
122
126
 
123
127
  sig do
@@ -153,8 +157,8 @@ class Temporalio::Internal::Worker::WorkflowInstance::Context
153
157
  sig { returns(Time) }
154
158
  def now; end
155
159
 
156
- sig { params(patch_id: T.any(Symbol, String)).returns(T::Boolean) }
157
- def patched(patch_id); end
160
+ sig { params(patch_id: T.any(Symbol, String), event_groups: T.nilable(T::Array[Temporalio::Workflow::EventGroup])).returns(T::Boolean) }
161
+ def patched(patch_id, event_groups:); end
158
162
 
159
163
  sig { returns(Temporalio::Converters::PayloadConverter) }
160
164
  def payload_converter; end
@@ -177,8 +181,8 @@ class Temporalio::Internal::Worker::WorkflowInstance::Context
177
181
  sig { returns(Temporalio::Internal::Worker::WorkflowInstance::HandlerHash) }
178
182
  def signal_handlers; end
179
183
 
180
- sig { params(duration: T.nilable(T.any(Integer, Float)), summary: T.nilable(String), cancellation: Temporalio::Cancellation).void }
181
- def sleep(duration, summary:, cancellation:); end
184
+ sig { params(duration: T.nilable(T.any(Integer, Float)), summary: T.nilable(String), cancellation: Temporalio::Cancellation, event_groups: T.nilable(T::Array[Temporalio::Workflow::EventGroup])).void }
185
+ def sleep(duration, summary:, cancellation:, event_groups:); end
182
186
 
183
187
  sig do
184
188
  params(
@@ -202,7 +206,8 @@ class Temporalio::Internal::Worker::WorkflowInstance::Context
202
206
  priority: Temporalio::Priority,
203
207
  versioning_override: T.nilable(Temporalio::VersioningOverride),
204
208
  arg_hints: T.nilable(T::Array[Object]),
205
- result_hint: T.nilable(Object)
209
+ result_hint: T.nilable(Object),
210
+ event_groups: T.nilable(T::Array[Temporalio::Workflow::EventGroup])
206
211
  ).returns(Temporalio::Internal::Worker::WorkflowInstance::ChildWorkflowHandle)
207
212
  end
208
213
  def start_child_workflow(
@@ -226,7 +231,8 @@ class Temporalio::Internal::Worker::WorkflowInstance::Context
226
231
  priority:,
227
232
  versioning_override:,
228
233
  arg_hints:,
229
- result_hint:
234
+ result_hint:,
235
+ event_groups:
230
236
  ); end
231
237
 
232
238
  sig { returns(T::Hash[Object, Object]) }
@@ -236,23 +242,24 @@ class Temporalio::Internal::Worker::WorkflowInstance::Context
236
242
  type_parameters(:T)
237
243
  .params(
238
244
  duration: T.nilable(T.any(Integer, Float)),
239
- exception_class: T.class_of(Exception),
245
+ exception_class: T.any(T.class_of(Exception), Exception),
240
246
  exception_args: T.nilable(Object),
241
247
  summary: T.nilable(String),
248
+ event_groups: T.nilable(T::Array[Temporalio::Workflow::EventGroup]),
242
249
  block: T.proc.returns(T.type_parameter(:T))
243
250
  )
244
251
  .returns(T.type_parameter(:T))
245
252
  end
246
- def timeout(duration, exception_class, *exception_args, summary:, &block); end
253
+ def timeout(duration, exception_class, *exception_args, summary:, event_groups:, &block); end
247
254
 
248
255
  sig { returns(Temporalio::Internal::Worker::WorkflowInstance::HandlerHash) }
249
256
  def update_handlers; end
250
257
 
251
- sig { params(hash: T::Hash[T.any(Symbol, String), T.nilable(Object)]).void }
252
- def upsert_memo(hash); end
258
+ sig { params(hash: T::Hash[T.any(Symbol, String), T.nilable(Object)], event_groups: T.nilable(T::Array[Temporalio::Workflow::EventGroup])).void }
259
+ def upsert_memo(hash, event_groups:); end
253
260
 
254
- sig { params(updates: Temporalio::SearchAttributes::Update).void }
255
- def upsert_search_attributes(*updates); end
261
+ sig { params(updates: Temporalio::SearchAttributes::Update, event_groups: T.nilable(T::Array[Temporalio::Workflow::EventGroup])).void }
262
+ def upsert_search_attributes(*updates, event_groups:); end
256
263
 
257
264
  sig do
258
265
  type_parameters(:T)
@@ -261,8 +268,8 @@ class Temporalio::Internal::Worker::WorkflowInstance::Context
261
268
  end
262
269
  def wait_condition(cancellation:, &block); end
263
270
 
264
- sig { params(id: String, run_id: T.nilable(String)).void }
265
- def _cancel_external_workflow(id:, run_id:); end
271
+ sig { params(id: String, run_id: T.nilable(String), event_groups: T.nilable(T::Array[Temporalio::Workflow::EventGroup])).void }
272
+ def _cancel_external_workflow(id:, run_id:, event_groups:); end
266
273
 
267
274
  sig { params(outbound: Temporalio::Worker::Interceptor::Workflow::Outbound).void }
268
275
  def _outbound=(outbound); end
@@ -273,10 +280,11 @@ class Temporalio::Internal::Worker::WorkflowInstance::Context
273
280
  signal: T.any(Temporalio::Workflow::Definition::Signal, Symbol, String),
274
281
  args: T::Array[T.nilable(Object)],
275
282
  cancellation: Temporalio::Cancellation,
276
- arg_hints: T.nilable(T::Array[Object])
283
+ arg_hints: T.nilable(T::Array[Object]),
284
+ event_groups: T.nilable(T::Array[Temporalio::Workflow::EventGroup])
277
285
  ).void
278
286
  end
279
- def _signal_child_workflow(id:, signal:, args:, cancellation:, arg_hints:); end
287
+ def _signal_child_workflow(id:, signal:, args:, cancellation:, arg_hints:, event_groups:); end
280
288
 
281
289
  sig do
282
290
  params(
@@ -285,8 +293,9 @@ class Temporalio::Internal::Worker::WorkflowInstance::Context
285
293
  signal: T.any(Temporalio::Workflow::Definition::Signal, Symbol, String),
286
294
  args: T::Array[T.nilable(Object)],
287
295
  cancellation: Temporalio::Cancellation,
288
- arg_hints: T.nilable(T::Array[Object])
296
+ arg_hints: T.nilable(T::Array[Object]),
297
+ event_groups: T.nilable(T::Array[Temporalio::Workflow::EventGroup])
289
298
  ).void
290
299
  end
291
- def _signal_external_workflow(id:, run_id:, signal:, args:, cancellation:, arg_hints:); end
300
+ def _signal_external_workflow(id:, run_id:, signal:, args:, cancellation:, arg_hints:, event_groups:); end
292
301
  end
@@ -29,7 +29,8 @@ class Temporalio::Internal::Worker::WorkflowInstance::NexusClient < Temporalio::
29
29
  summary: T.nilable(String),
30
30
  cancellation: Temporalio::Cancellation,
31
31
  arg_hint: T.nilable(Object),
32
- result_hint: T.nilable(Object)
32
+ result_hint: T.nilable(Object),
33
+ event_groups: T.nilable(T::Array[Temporalio::Workflow::EventGroup])
33
34
  ).returns(Temporalio::Workflow::NexusOperationHandle)
34
35
  end
35
36
  def start_operation(
@@ -42,6 +43,7 @@ class Temporalio::Internal::Worker::WorkflowInstance::NexusClient < Temporalio::
42
43
  summary: T.unsafe(nil),
43
44
  cancellation: T.unsafe(nil),
44
45
  arg_hint: T.unsafe(nil),
45
- result_hint: T.unsafe(nil)
46
+ result_hint: T.unsafe(nil),
47
+ event_groups: T.unsafe(nil)
46
48
  ); end
47
49
  end
@@ -11,10 +11,14 @@ class Temporalio::Internal::Worker::WorkflowInstance::OutboundImplementation < T
11
11
  local: T::Boolean,
12
12
  cancellation: Temporalio::Cancellation,
13
13
  result_hint: T.nilable(Object),
14
- block: T.proc.params(arg0: T.nilable(Object)).returns(Integer)
14
+ event_groups: T.nilable(T::Array[Temporalio::Workflow::EventGroup]),
15
+ block: T.proc.params(
16
+ arg0: T.nilable(Object),
17
+ arg1: T::Array[Temporalio::Api::Sdk::V1::EventGroupMarker]
18
+ ).returns(Integer)
15
19
  ).returns(T.nilable(Object))
16
20
  end
17
- def execute_activity_with_local_backoffs(local:, cancellation:, result_hint:, &block); end
21
+ def execute_activity_with_local_backoffs(local:, cancellation:, result_hint:, event_groups:, &block); end
18
22
 
19
23
  sig do
20
24
  params(
@@ -22,10 +26,15 @@ class Temporalio::Internal::Worker::WorkflowInstance::OutboundImplementation < T
22
26
  cancellation: Temporalio::Cancellation,
23
27
  last_local_backoff: T.nilable(Object),
24
28
  result_hint: T.nilable(Object),
25
- block: T.proc.params(arg0: T.nilable(Object)).returns(Integer)
29
+ event_group_markers: T::Array[Temporalio::Api::Sdk::V1::EventGroupMarker],
30
+ block: T.proc.params(
31
+ arg0: T.nilable(Object),
32
+ arg1: T::Array[Temporalio::Api::Sdk::V1::EventGroupMarker]
33
+ ).returns(Integer)
26
34
  ).returns(T.nilable(Object))
27
35
  end
28
- def execute_activity_once(local:, cancellation:, last_local_backoff:, result_hint:, &block); end
36
+ def execute_activity_once(local:, cancellation:, last_local_backoff:, result_hint:, event_group_markers:,
37
+ &block); end
29
38
 
30
39
  sig do
31
40
  params(
@@ -36,8 +45,10 @@ class Temporalio::Internal::Worker::WorkflowInstance::OutboundImplementation < T
36
45
  args: T::Array[T.nilable(Object)],
37
46
  cancellation: Temporalio::Cancellation,
38
47
  arg_hints: T.nilable(T::Array[Object]),
39
- headers: T::Hash[String, T.nilable(Object)]
48
+ headers: T::Hash[String, T.nilable(Object)],
49
+ event_groups: T.nilable(T::Array[Temporalio::Workflow::EventGroup])
40
50
  ).void
41
51
  end
42
- def _signal_external_workflow(id:, run_id:, child:, signal:, args:, cancellation:, arg_hints:, headers:); end
52
+ def _signal_external_workflow(id:, run_id:, child:, signal:, args:, cancellation:, arg_hints:, headers:,
53
+ event_groups:); end
43
54
  end
@@ -26,7 +26,7 @@ class Temporalio::Internal::Worker::WorkflowInstance::Scheduler
26
26
  type_parameters(:T)
27
27
  .params(
28
28
  duration: T.nilable(T.any(Integer, Float)),
29
- exception_class: T.class_of(Exception),
29
+ exception_class: T.any(T.class_of(Exception), Exception),
30
30
  exception_arguments: T.nilable(Object),
31
31
  block: T.proc.returns(T.type_parameter(:T))
32
32
  )
@@ -112,6 +112,9 @@ class Temporalio::Internal::Worker::WorkflowInstance
112
112
  sig { returns(T.nilable(T.proc.params(input: Temporalio::Worker::PatchActivationInput).returns(T::Boolean))) }
113
113
  attr_reader :patch_activation_callback
114
114
 
115
+ sig { returns(T::Boolean) }
116
+ attr_reader :check_conditions
117
+
115
118
  sig { returns(T::Boolean) }
116
119
  attr_accessor :io_enabled
117
120
 
@@ -142,8 +145,8 @@ class Temporalio::Internal::Worker::WorkflowInstance
142
145
  sig { type_parameters(:T).params(block: T.proc.returns(T.type_parameter(:T))).returns(T.type_parameter(:T)) }
143
146
  def illegal_call_tracing_disabled(&block); end
144
147
 
145
- sig { params(patch_id: T.any(Symbol, String), deprecated: T::Boolean).returns(T::Boolean) }
146
- def patch(patch_id:, deprecated:); end
148
+ sig { params(patch_id: T.any(Symbol, String), deprecated: T::Boolean, event_groups: T.nilable(T::Array[Temporalio::Workflow::EventGroup])).returns(T::Boolean) }
149
+ def patch(patch_id:, deprecated:, event_groups: T.unsafe(nil)); end
147
150
 
148
151
  sig { params(patch_id: String).returns(T::Boolean) }
149
152
  def patch_activated?(patch_id); end