@proompteng/temporal-bun-sdk 0.9.1 → 0.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.
- package/README.md +21 -6
- package/dist/agent-readiness.json +115 -13
- package/dist/production-readiness.json +391 -26
- package/dist/release-provenance.json +82 -0
- package/dist/src/activities/lifecycle.d.ts.map +1 -1
- package/dist/src/activities/lifecycle.js +27 -9
- package/dist/src/activities/lifecycle.js.map +1 -1
- package/dist/src/bin/lint-workflows-command.d.ts +3 -3
- package/dist/src/bin/lint-workflows-command.d.ts.map +1 -1
- package/dist/src/bin/lint-workflows-command.js +5 -0
- package/dist/src/bin/lint-workflows-command.js.map +1 -1
- package/dist/src/bin/replay-command.d.ts +2 -2
- package/dist/src/bin/replay-command.d.ts.map +1 -1
- package/dist/src/bin/replay-command.js +9 -5
- package/dist/src/bin/replay-command.js.map +1 -1
- package/dist/src/bin/temporal-bun.d.ts +2 -2
- package/dist/src/client/interceptors.d.ts.map +1 -1
- package/dist/src/client/interceptors.js +1 -1
- package/dist/src/client/interceptors.js.map +1 -1
- package/dist/src/client/retries.d.ts.map +1 -1
- package/dist/src/client/retries.js +12 -2
- package/dist/src/client/retries.js.map +1 -1
- package/dist/src/client.d.ts.map +1 -1
- package/dist/src/client.js +102 -35
- package/dist/src/client.js.map +1 -1
- package/dist/src/common/payloads/codecs.d.ts +4 -4
- package/dist/src/common/payloads/codecs.d.ts.map +1 -1
- package/dist/src/config.d.ts +10 -10
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/interceptors/types.d.ts.map +1 -1
- package/dist/src/interceptors/types.js +6 -4
- package/dist/src/interceptors/types.js.map +1 -1
- package/dist/src/otel/auto-instrumentations-node.d.ts +1 -1
- package/dist/src/otel/auto-instrumentations-node.d.ts.map +1 -1
- package/dist/src/proto/protoc-gen-openapiv2/options/annotations_pb.js +1 -1
- package/dist/src/proto/protoc-gen-openapiv2/options/openapiv2_pb.d.ts +14 -14
- package/dist/src/proto/protoc-gen-openapiv2/options/openapiv2_pb.d.ts.map +1 -1
- package/dist/src/proto/protoc-gen-openapiv2/options/openapiv2_pb.js +1 -1
- package/dist/src/proto/temporal/api/activity/v1/message_pb.d.ts +106 -35
- package/dist/src/proto/temporal/api/activity/v1/message_pb.d.ts.map +1 -1
- package/dist/src/proto/temporal/api/activity/v1/message_pb.js +18 -2
- package/dist/src/proto/temporal/api/activity/v1/message_pb.js.map +1 -1
- package/dist/src/proto/temporal/api/batch/v1/message_pb.d.ts +12 -12
- package/dist/src/proto/temporal/api/batch/v1/message_pb.d.ts.map +1 -1
- package/dist/src/proto/temporal/api/batch/v1/message_pb.js +1 -1
- package/dist/src/proto/temporal/api/callback/v1/message_pb.d.ts +72 -0
- package/dist/src/proto/temporal/api/callback/v1/message_pb.d.ts.map +1 -0
- package/dist/src/proto/temporal/api/callback/v1/message_pb.js +18 -0
- package/dist/src/proto/temporal/api/callback/v1/message_pb.js.map +1 -0
- package/dist/src/proto/temporal/api/cloud/account/v1/message_pb.d.ts +5 -5
- package/dist/src/proto/temporal/api/cloud/account/v1/message_pb.d.ts.map +1 -1
- package/dist/src/proto/temporal/api/cloud/account/v1/message_pb.js +1 -1
- package/dist/src/proto/temporal/api/cloud/auditlog/v1/message_pb.d.ts +3 -3
- package/dist/src/proto/temporal/api/cloud/auditlog/v1/message_pb.d.ts.map +1 -1
- package/dist/src/proto/temporal/api/cloud/auditlog/v1/message_pb.js +1 -1
- package/dist/src/proto/temporal/api/cloud/billing/v1/message_pb.d.ts +206 -0
- package/dist/src/proto/temporal/api/cloud/billing/v1/message_pb.d.ts.map +1 -0
- package/dist/src/proto/temporal/api/cloud/billing/v1/message_pb.js +95 -0
- package/dist/src/proto/temporal/api/cloud/billing/v1/message_pb.js.map +1 -0
- package/dist/src/proto/temporal/api/cloud/cloudservice/v1/request_response_pb.d.ts +462 -82
- package/dist/src/proto/temporal/api/cloud/cloudservice/v1/request_response_pb.d.ts.map +1 -1
- package/dist/src/proto/temporal/api/cloud/cloudservice/v1/request_response_pb.js +223 -132
- package/dist/src/proto/temporal/api/cloud/cloudservice/v1/request_response_pb.js.map +1 -1
- package/dist/src/proto/temporal/api/cloud/cloudservice/v1/service_pb.d.ts +95 -1
- package/dist/src/proto/temporal/api/cloud/cloudservice/v1/service_pb.d.ts.map +1 -1
- package/dist/src/proto/temporal/api/cloud/cloudservice/v1/service_pb.js +2 -2
- package/dist/src/proto/temporal/api/cloud/cloudservice/v1/service_pb.js.map +1 -1
- package/dist/src/proto/temporal/api/cloud/connectivityrule/v1/message_pb.d.ts +11 -3
- package/dist/src/proto/temporal/api/cloud/connectivityrule/v1/message_pb.d.ts.map +1 -1
- package/dist/src/proto/temporal/api/cloud/connectivityrule/v1/message_pb.js +2 -2
- package/dist/src/proto/temporal/api/cloud/connectivityrule/v1/message_pb.js.map +1 -1
- package/dist/src/proto/temporal/api/cloud/identity/v1/message_pb.d.ts +173 -24
- package/dist/src/proto/temporal/api/cloud/identity/v1/message_pb.d.ts.map +1 -1
- package/dist/src/proto/temporal/api/cloud/identity/v1/message_pb.js +22 -2
- package/dist/src/proto/temporal/api/cloud/identity/v1/message_pb.js.map +1 -1
- package/dist/src/proto/temporal/api/cloud/namespace/v1/message_pb.d.ts +325 -26
- package/dist/src/proto/temporal/api/cloud/namespace/v1/message_pb.d.ts.map +1 -1
- package/dist/src/proto/temporal/api/cloud/namespace/v1/message_pb.js +105 -22
- package/dist/src/proto/temporal/api/cloud/namespace/v1/message_pb.js.map +1 -1
- package/dist/src/proto/temporal/api/cloud/nexus/v1/message_pb.d.ts +5 -5
- package/dist/src/proto/temporal/api/cloud/nexus/v1/message_pb.d.ts.map +1 -1
- package/dist/src/proto/temporal/api/cloud/nexus/v1/message_pb.js +1 -1
- package/dist/src/proto/temporal/api/cloud/operation/v1/message_pb.d.ts +4 -4
- package/dist/src/proto/temporal/api/cloud/operation/v1/message_pb.d.ts.map +1 -1
- package/dist/src/proto/temporal/api/cloud/operation/v1/message_pb.js +1 -1
- package/dist/src/proto/temporal/api/cloud/region/v1/message_pb.js +1 -1
- package/dist/src/proto/temporal/api/cloud/resource/v1/message_pb.js +1 -1
- package/dist/src/proto/temporal/api/cloud/sink/v1/message_pb.js +1 -1
- package/dist/src/proto/temporal/api/cloud/usage/v1/message_pb.d.ts +2 -2
- package/dist/src/proto/temporal/api/cloud/usage/v1/message_pb.d.ts.map +1 -1
- package/dist/src/proto/temporal/api/cloud/usage/v1/message_pb.js +1 -1
- package/dist/src/proto/temporal/api/command/v1/message_pb.d.ts +61 -52
- package/dist/src/proto/temporal/api/command/v1/message_pb.d.ts.map +1 -1
- package/dist/src/proto/temporal/api/command/v1/message_pb.js +2 -2
- package/dist/src/proto/temporal/api/command/v1/message_pb.js.map +1 -1
- package/dist/src/proto/temporal/api/common/v1/message_pb.d.ts +118 -2
- package/dist/src/proto/temporal/api/common/v1/message_pb.d.ts.map +1 -1
- package/dist/src/proto/temporal/api/common/v1/message_pb.js +24 -4
- package/dist/src/proto/temporal/api/common/v1/message_pb.js.map +1 -1
- package/dist/src/proto/temporal/api/compute/v1/config_pb.d.ts +133 -0
- package/dist/src/proto/temporal/api/compute/v1/config_pb.d.ts.map +1 -0
- package/dist/src/proto/temporal/api/compute/v1/config_pb.js +38 -0
- package/dist/src/proto/temporal/api/compute/v1/config_pb.js.map +1 -0
- package/dist/src/proto/temporal/api/compute/v1/provider_pb.d.ts +49 -0
- package/dist/src/proto/temporal/api/compute/v1/provider_pb.d.ts.map +1 -0
- package/dist/src/proto/temporal/api/compute/v1/provider_pb.js +15 -0
- package/dist/src/proto/temporal/api/compute/v1/provider_pb.js.map +1 -0
- package/dist/src/proto/temporal/api/compute/v1/scaler_pb.d.ts +39 -0
- package/dist/src/proto/temporal/api/compute/v1/scaler_pb.d.ts.map +1 -0
- package/dist/src/proto/temporal/api/compute/v1/scaler_pb.js +15 -0
- package/dist/src/proto/temporal/api/compute/v1/scaler_pb.js.map +1 -0
- package/dist/src/proto/temporal/api/deployment/v1/message_pb.d.ts +76 -39
- package/dist/src/proto/temporal/api/deployment/v1/message_pb.d.ts.map +1 -1
- package/dist/src/proto/temporal/api/deployment/v1/message_pb.js +4 -2
- package/dist/src/proto/temporal/api/deployment/v1/message_pb.js.map +1 -1
- package/dist/src/proto/temporal/api/enums/v1/activity_pb.js +1 -1
- package/dist/src/proto/temporal/api/enums/v1/batch_operation_pb.js +1 -1
- package/dist/src/proto/temporal/api/enums/v1/command_type_pb.js +1 -1
- package/dist/src/proto/temporal/api/enums/v1/common_pb.js +1 -1
- package/dist/src/proto/temporal/api/enums/v1/deployment_pb.d.ts +8 -4
- package/dist/src/proto/temporal/api/enums/v1/deployment_pb.d.ts.map +1 -1
- package/dist/src/proto/temporal/api/enums/v1/deployment_pb.js +9 -5
- package/dist/src/proto/temporal/api/enums/v1/deployment_pb.js.map +1 -1
- package/dist/src/proto/temporal/api/enums/v1/event_type_pb.d.ts +7 -1
- package/dist/src/proto/temporal/api/enums/v1/event_type_pb.d.ts.map +1 -1
- package/dist/src/proto/temporal/api/enums/v1/event_type_pb.js +8 -2
- package/dist/src/proto/temporal/api/enums/v1/event_type_pb.js.map +1 -1
- package/dist/src/proto/temporal/api/enums/v1/failed_cause_pb.d.ts +7 -1
- package/dist/src/proto/temporal/api/enums/v1/failed_cause_pb.d.ts.map +1 -1
- package/dist/src/proto/temporal/api/enums/v1/failed_cause_pb.js +8 -2
- package/dist/src/proto/temporal/api/enums/v1/failed_cause_pb.js.map +1 -1
- package/dist/src/proto/temporal/api/enums/v1/namespace_pb.js +1 -1
- package/dist/src/proto/temporal/api/enums/v1/nexus_pb.d.ts +153 -0
- package/dist/src/proto/temporal/api/enums/v1/nexus_pb.d.ts.map +1 -1
- package/dist/src/proto/temporal/api/enums/v1/nexus_pb.js +159 -2
- package/dist/src/proto/temporal/api/enums/v1/nexus_pb.js.map +1 -1
- package/dist/src/proto/temporal/api/enums/v1/query_pb.js +1 -1
- package/dist/src/proto/temporal/api/enums/v1/reset_pb.js +1 -1
- package/dist/src/proto/temporal/api/enums/v1/schedule_pb.js +1 -1
- package/dist/src/proto/temporal/api/enums/v1/task_queue_pb.d.ts +10 -1
- package/dist/src/proto/temporal/api/enums/v1/task_queue_pb.d.ts.map +1 -1
- package/dist/src/proto/temporal/api/enums/v1/task_queue_pb.js +11 -2
- package/dist/src/proto/temporal/api/enums/v1/task_queue_pb.js.map +1 -1
- package/dist/src/proto/temporal/api/enums/v1/update_pb.js +1 -1
- package/dist/src/proto/temporal/api/enums/v1/workflow_pb.d.ts +24 -14
- package/dist/src/proto/temporal/api/enums/v1/workflow_pb.d.ts.map +1 -1
- package/dist/src/proto/temporal/api/enums/v1/workflow_pb.js +24 -14
- package/dist/src/proto/temporal/api/enums/v1/workflow_pb.js.map +1 -1
- package/dist/src/proto/temporal/api/errordetails/v1/message_pb.d.ts +24 -2
- package/dist/src/proto/temporal/api/errordetails/v1/message_pb.d.ts.map +1 -1
- package/dist/src/proto/temporal/api/errordetails/v1/message_pb.js +7 -2
- package/dist/src/proto/temporal/api/errordetails/v1/message_pb.js.map +1 -1
- package/dist/src/proto/temporal/api/export/v1/message_pb.d.ts +1 -1
- package/dist/src/proto/temporal/api/export/v1/message_pb.d.ts.map +1 -1
- package/dist/src/proto/temporal/api/export/v1/message_pb.js +1 -1
- package/dist/src/proto/temporal/api/failure/v1/message_pb.d.ts +26 -11
- package/dist/src/proto/temporal/api/failure/v1/message_pb.d.ts.map +1 -1
- package/dist/src/proto/temporal/api/failure/v1/message_pb.js +2 -2
- package/dist/src/proto/temporal/api/failure/v1/message_pb.js.map +1 -1
- package/dist/src/proto/temporal/api/filter/v1/message_pb.d.ts +2 -2
- package/dist/src/proto/temporal/api/filter/v1/message_pb.d.ts.map +1 -1
- package/dist/src/proto/temporal/api/filter/v1/message_pb.js +1 -1
- package/dist/src/proto/temporal/api/history/v1/message_pb.d.ts +278 -141
- package/dist/src/proto/temporal/api/history/v1/message_pb.d.ts.map +1 -1
- package/dist/src/proto/temporal/api/history/v1/message_pb.js +72 -62
- package/dist/src/proto/temporal/api/history/v1/message_pb.js.map +1 -1
- package/dist/src/proto/temporal/api/namespace/v1/message_pb.d.ts +39 -5
- package/dist/src/proto/temporal/api/namespace/v1/message_pb.d.ts.map +1 -1
- package/dist/src/proto/temporal/api/namespace/v1/message_pb.js +2 -2
- package/dist/src/proto/temporal/api/namespace/v1/message_pb.js.map +1 -1
- package/dist/src/proto/temporal/api/nexus/v1/message_pb.d.ts +386 -14
- package/dist/src/proto/temporal/api/nexus/v1/message_pb.d.ts.map +1 -1
- package/dist/src/proto/temporal/api/nexus/v1/message_pb.js +26 -3
- package/dist/src/proto/temporal/api/nexus/v1/message_pb.js.map +1 -1
- package/dist/src/proto/temporal/api/nexusservices/workerservice/v1/request_response_pb.d.ts +41 -0
- package/dist/src/proto/temporal/api/nexusservices/workerservice/v1/request_response_pb.d.ts.map +1 -0
- package/dist/src/proto/temporal/api/nexusservices/workerservice/v1/request_response_pb.js +20 -0
- package/dist/src/proto/temporal/api/nexusservices/workerservice/v1/request_response_pb.js.map +1 -0
- package/dist/src/proto/temporal/api/operatorservice/v1/request_response_pb.d.ts +6 -6
- package/dist/src/proto/temporal/api/operatorservice/v1/request_response_pb.d.ts.map +1 -1
- package/dist/src/proto/temporal/api/operatorservice/v1/request_response_pb.js +1 -1
- package/dist/src/proto/temporal/api/operatorservice/v1/service_pb.js +1 -1
- package/dist/src/proto/temporal/api/protocol/v1/message_pb.d.ts +1 -1
- package/dist/src/proto/temporal/api/protocol/v1/message_pb.d.ts.map +1 -1
- package/dist/src/proto/temporal/api/protocol/v1/message_pb.js +1 -1
- package/dist/src/proto/temporal/api/protometa/v1/annotations_pb.d.ts +46 -0
- package/dist/src/proto/temporal/api/protometa/v1/annotations_pb.d.ts.map +1 -0
- package/dist/src/proto/temporal/api/protometa/v1/annotations_pb.js +19 -0
- package/dist/src/proto/temporal/api/protometa/v1/annotations_pb.js.map +1 -0
- package/dist/src/proto/temporal/api/query/v1/message_pb.d.ts +4 -4
- package/dist/src/proto/temporal/api/query/v1/message_pb.d.ts.map +1 -1
- package/dist/src/proto/temporal/api/query/v1/message_pb.js +1 -1
- package/dist/src/proto/temporal/api/replication/v1/message_pb.d.ts +1 -1
- package/dist/src/proto/temporal/api/replication/v1/message_pb.d.ts.map +1 -1
- package/dist/src/proto/temporal/api/replication/v1/message_pb.js +1 -1
- package/dist/src/proto/temporal/api/rules/v1/message_pb.d.ts +3 -3
- package/dist/src/proto/temporal/api/rules/v1/message_pb.d.ts.map +1 -1
- package/dist/src/proto/temporal/api/rules/v1/message_pb.js +1 -1
- package/dist/src/proto/temporal/api/schedule/v1/message_pb.d.ts +24 -24
- package/dist/src/proto/temporal/api/schedule/v1/message_pb.d.ts.map +1 -1
- package/dist/src/proto/temporal/api/sdk/v1/enhanced_stack_trace_pb.d.ts +1 -1
- package/dist/src/proto/temporal/api/sdk/v1/enhanced_stack_trace_pb.d.ts.map +1 -1
- package/dist/src/proto/temporal/api/sdk/v1/enhanced_stack_trace_pb.js +1 -1
- package/dist/src/proto/temporal/api/sdk/v1/external_storage_pb.d.ts +35 -0
- package/dist/src/proto/temporal/api/sdk/v1/external_storage_pb.d.ts.map +1 -0
- package/dist/src/proto/temporal/api/sdk/v1/external_storage_pb.js +14 -0
- package/dist/src/proto/temporal/api/sdk/v1/external_storage_pb.js.map +1 -0
- package/dist/src/proto/temporal/api/sdk/v1/task_complete_metadata_pb.js +1 -1
- package/dist/src/proto/temporal/api/sdk/v1/user_metadata_pb.d.ts +2 -2
- package/dist/src/proto/temporal/api/sdk/v1/user_metadata_pb.d.ts.map +1 -1
- package/dist/src/proto/temporal/api/sdk/v1/user_metadata_pb.js +1 -1
- package/dist/src/proto/temporal/api/sdk/v1/worker_config_pb.js +1 -1
- package/dist/src/proto/temporal/api/sdk/v1/workflow_metadata_pb.d.ts +1 -1
- package/dist/src/proto/temporal/api/sdk/v1/workflow_metadata_pb.d.ts.map +1 -1
- package/dist/src/proto/temporal/api/sdk/v1/workflow_metadata_pb.js +1 -1
- package/dist/src/proto/temporal/api/taskqueue/v1/message_pb.d.ts +39 -23
- package/dist/src/proto/temporal/api/taskqueue/v1/message_pb.d.ts.map +1 -1
- package/dist/src/proto/temporal/api/taskqueue/v1/message_pb.js +12 -7
- package/dist/src/proto/temporal/api/taskqueue/v1/message_pb.js.map +1 -1
- package/dist/src/proto/temporal/api/update/v1/message_pb.d.ts +10 -10
- package/dist/src/proto/temporal/api/update/v1/message_pb.d.ts.map +1 -1
- package/dist/src/proto/temporal/api/update/v1/message_pb.js +1 -1
- package/dist/src/proto/temporal/api/version/v1/message_pb.d.ts +4 -4
- package/dist/src/proto/temporal/api/version/v1/message_pb.d.ts.map +1 -1
- package/dist/src/proto/temporal/api/version/v1/message_pb.js +1 -1
- package/dist/src/proto/temporal/api/worker/v1/message_pb.d.ts +208 -15
- package/dist/src/proto/temporal/api/worker/v1/message_pb.d.ts.map +1 -1
- package/dist/src/proto/temporal/api/worker/v1/message_pb.js +33 -3
- package/dist/src/proto/temporal/api/worker/v1/message_pb.js.map +1 -1
- package/dist/src/proto/temporal/api/workflow/v1/message_pb.d.ts +187 -96
- package/dist/src/proto/temporal/api/workflow/v1/message_pb.d.ts.map +1 -1
- package/dist/src/proto/temporal/api/workflow/v1/message_pb.js +16 -11
- package/dist/src/proto/temporal/api/workflow/v1/message_pb.js.map +1 -1
- package/dist/src/proto/temporal/api/workflowservice/v1/request_response_pb.d.ts +1884 -283
- package/dist/src/proto/temporal/api/workflowservice/v1/request_response_pb.d.ts.map +1 -1
- package/dist/src/proto/temporal/api/workflowservice/v1/request_response_pb.js +309 -127
- package/dist/src/proto/temporal/api/workflowservice/v1/request_response_pb.js.map +1 -1
- package/dist/src/proto/temporal/api/workflowservice/v1/service_pb.d.ts +232 -2
- package/dist/src/proto/temporal/api/workflowservice/v1/service_pb.d.ts.map +1 -1
- package/dist/src/proto/temporal/api/workflowservice/v1/service_pb.js +3 -2
- package/dist/src/proto/temporal/api/workflowservice/v1/service_pb.js.map +1 -1
- package/dist/src/runtime/effect-layers.d.ts +85 -0
- package/dist/src/runtime/effect-layers.d.ts.map +1 -1
- package/dist/src/worker/concurrency.d.ts.map +1 -1
- package/dist/src/worker/concurrency.js +12 -0
- package/dist/src/worker/concurrency.js.map +1 -1
- package/dist/src/worker/runtime.d.ts.map +1 -1
- package/dist/src/worker/runtime.js +169 -23
- package/dist/src/worker/runtime.js.map +1 -1
- package/dist/src/workflow/command-event-matrix.d.ts +13 -0
- package/dist/src/workflow/command-event-matrix.d.ts.map +1 -0
- package/dist/src/workflow/command-event-matrix.js +158 -0
- package/dist/src/workflow/command-event-matrix.js.map +1 -0
- package/dist/src/workflow/context.d.ts.map +1 -1
- package/dist/src/workflow/context.js +0 -11
- package/dist/src/workflow/context.js.map +1 -1
- package/dist/src/workflow/determinism.d.ts.map +1 -1
- package/dist/src/workflow/determinism.js +27 -1
- package/dist/src/workflow/determinism.js.map +1 -1
- package/dist/src/workflow/executor.d.ts.map +1 -1
- package/dist/src/workflow/executor.js +22 -21
- package/dist/src/workflow/executor.js.map +1 -1
- package/dist/src/workflow/guards.d.ts.map +1 -1
- package/dist/src/workflow/guards.js +141 -36
- package/dist/src/workflow/guards.js.map +1 -1
- package/dist/src/workflow/index.d.ts +1 -0
- package/dist/src/workflow/index.d.ts.map +1 -1
- package/dist/src/workflow/index.js +1 -0
- package/dist/src/workflow/index.js.map +1 -1
- package/docs/adoption-readiness.md +93 -0
- package/docs/agent-adoption-guide.md +25 -3
- package/docs/default-choice-hardening-plan.md +160 -0
- package/docs/feature-matrix.md +20 -20
- package/docs/production-design.md +3 -3
- package/docs/production-readiness-implementation-plan.md +66 -56
- package/docs/semantic-readiness.md +76 -15
- package/docs/support-policy.md +9 -5
- package/package.json +18 -10
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Temporal Bun SDK Production Readiness Implementation Plan
|
|
2
2
|
|
|
3
|
-
_Last updated: May
|
|
3
|
+
_Last updated: May 14, 2026_
|
|
4
4
|
|
|
5
5
|
## Goal
|
|
6
6
|
|
|
@@ -41,18 +41,18 @@ work is to convert private confidence into public, machine-checkable evidence.
|
|
|
41
41
|
|
|
42
42
|
## Code Read Findings
|
|
43
43
|
|
|
44
|
-
| Surface | Current implementation
|
|
45
|
-
| -------------------- |
|
|
46
|
-
| Package boundary | `packages/temporal-bun-sdk/package.json` ships `dist`, `docs`, `skills`, and `README.md`; runtime dependencies are `@bufbuild/protobuf`, Connect, Effect, and TypeScript. `verify:production` runs `tests/packaging/manifest-packaging.test.ts`.
|
|
47
|
-
| Worker runtime | `src/worker/runtime.ts` owns config load, WorkflowService transport, workflow/activity pollers, sticky queues, deployment/build IDs, scheduler, metrics, plugins, graceful shutdown, determinism marker emission, and activity task lifecycle.
|
|
48
|
-
| Workflow execution | `src/workflow/executor.ts` runs registered workflows through Effect, creates `WorkflowCommandContext`, evaluates queries, processes updates, and materializes success/failure commands.
|
|
49
|
-
| Determinism guard | `src/workflow/determinism.ts` records command, random, time, signal, query, and update streams and throws `WorkflowNondeterminismError` on replay mismatch.
|
|
50
|
-
| Runtime guards | `src/workflow/guards.ts` patches `Date`, `Date.now`, `Math.random`, `crypto.randomUUID`, `crypto.getRandomValues`, `fetch`, timers, `performance.now`, `WebSocket`, `Bun.spawn`, and `Bun.
|
|
51
|
-
| Static workflow lint | `src/bin/lint-workflows-command.ts` walks workflow import graphs and denies unsafe imports/globals/member expressions. Tests cover `fetch`, `process.env`, captured `Date.now`, and importing client APIs from workflows.
|
|
52
|
-
| Replay | `src/workflow/replay.ts` ingests real histories, applies full/delta determinism markers, reconstructs command history, tracks updates, and diffs mismatch metadata. Stored fixtures
|
|
53
|
-
| Integration | `tests/integration/**` covers history replay, activity lifecycle, query-only workflows, signal/query, workflow updates, payload codecs, client resilience, worker ops, schedules, and worker runtime behavior behind `TEMPORAL_INTEGRATION_TESTS=1`.
|
|
54
|
-
| Load | `tests/integration/load/**` submits CPU, activity, and update workflows, checks throughput, sticky hit ratio, and poll p95 latency, and writes JSONL/report artifacts.
|
|
55
|
-
| CI | `.github/workflows/temporal-bun-sdk.yml` builds, lints, tests, runs replay-corpus, async-fuzz, load,
|
|
44
|
+
| Surface | Current implementation | Production gap to close |
|
|
45
|
+
| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
46
|
+
| Package boundary | `packages/temporal-bun-sdk/package.json` ships `dist`, `docs`, `skills`, and `README.md`; runtime dependencies are `@bufbuild/protobuf`, Connect, Effect, and TypeScript. `verify:production` runs `tests/packaging/manifest-packaging.test.ts`. | Keep this as a release gate and publish the result in a release manifest so agents can prove the package is not a Node/native wrapper. |
|
|
47
|
+
| Worker runtime | `src/worker/runtime.ts` owns config load, WorkflowService transport, workflow/activity pollers, sticky queues, deployment/build IDs, scheduler, metrics, plugins, graceful shutdown, determinism marker emission, and activity task lifecycle. | Keep restart, cancellation, sticky cache, and shutdown behavior covered by focused integration and load evidence. |
|
|
48
|
+
| Workflow execution | `src/workflow/executor.ts` runs registered workflows through Effect, creates `WorkflowCommandContext`, evaluates queries, processes updates, and materializes success/failure commands. | Add protocol golden tests that compare emitted commands and update protocol messages against captured histories and expected server-visible events. |
|
|
49
|
+
| Determinism guard | `src/workflow/determinism.ts` records command, random, time, signal, query, and update streams and throws `WorkflowNondeterminismError` on replay mismatch. | Add async interleaving fuzz tests and query-mode negative tests. Query handlers must never read live time/randomness as a hidden side channel. |
|
|
50
|
+
| Runtime guards | `src/workflow/guards.ts` patches `Date`, `Date.now`, `Math.random`, `crypto.randomUUID`, `crypto.getRandomValues`, `fetch`, timers, `performance.now`, `WebSocket`, `process.env`, `Bun.env`, `Bun.spawn`, `Bun.nanoseconds`, `Bun.sleep`, `Bun.file`, `Bun.write`, `Bun.connect`, and `Bun.serve`; `WorkflowExecutor` requires strict guards in production. | Release gate includes runtime guard tests, query guard matrix, workflow lint tests, async fuzz artifacts, and semantic-readiness evidence for Bun async/runtime behavior. |
|
|
51
|
+
| Static workflow lint | `src/bin/lint-workflows-command.ts` walks workflow import graphs and denies unsafe imports/globals/member expressions. Tests cover `fetch`, `process.env`, `Bun.env`, Bun timer/file/socket APIs, captured `Date.now`, and importing client APIs from workflows. | Add rules for timers captured through aliases and keep expanding adversarial workflow-isolation cases as Bun exposes new runtime APIs. Make release CI fail if configured workflow entries are missing. |
|
|
52
|
+
| Replay | `src/workflow/replay.ts` ingests real histories, applies full/delta determinism markers, reconstructs command history, tracks updates, and diffs mismatch metadata. Stored fixtures now cover the required replay feature tags, including signal/query/update, cancellation, search attributes, side effects, versioning, and workflow-task failure. | Scale from the current gate-passing replay corpus to a larger versioned corpus that covers every supported command/event pair, sticky replay variants, old SDK versions, and additional Temporal Server/Bun/platform rows. |
|
|
53
|
+
| Integration | `tests/integration/**` covers history replay, activity lifecycle, query-only workflows, signal/query, workflow updates, payload codecs, client resilience, worker ops, schedules, and worker runtime behavior behind `TEMPORAL_INTEGRATION_TESTS=1`. | Split optional service-unavailable skips from release-blocking skips. In release CI, a missing dev server or unimplemented critical endpoint must fail instead of silently reducing coverage. |
|
|
54
|
+
| Load | `tests/integration/load/**` submits CPU, activity, and update workflows, checks throughput, sticky hit ratio, and poll p95 latency, and writes JSONL/report artifacts. | Keep release blocking on the CI load report and add targeted failure-injection tests instead of long release validation. |
|
|
55
|
+
| CI | `.github/workflows/temporal-bun-sdk.yml` builds, lints, tests, runs replay-corpus, async-fuzz, load, semantic production verification, and uploads release artifacts. | Keep the publish path short enough to release directly. |
|
|
56
56
|
|
|
57
57
|
## Production Bar
|
|
58
58
|
|
|
@@ -65,8 +65,8 @@ single production-readiness artifact containing:
|
|
|
65
65
|
matrix, and mismatch diagnostics samples.
|
|
66
66
|
- Protocol proof: command/update/query/signal/activity golden tests by Temporal
|
|
67
67
|
Server version and SDK version.
|
|
68
|
-
- Operations proof: load
|
|
69
|
-
|
|
68
|
+
- Operations proof: load reports with throughput, latency, sticky cache ratio,
|
|
69
|
+
heartbeat retries/failures, worker failures, memory slope, and restart
|
|
70
70
|
outcomes.
|
|
71
71
|
- Compatibility proof: supported Bun, Temporal Server, Temporal Cloud, TLS/mTLS,
|
|
72
72
|
payload codec, and deployment/versioning matrix.
|
|
@@ -124,8 +124,8 @@ Implementation:
|
|
|
124
124
|
- `Effect.tryPromise` and `Effect.promise` in workflow handlers unless called
|
|
125
125
|
through SDK-provided deterministic adapters;
|
|
126
126
|
- captured unsafe globals through aliases;
|
|
127
|
-
- `eval`, `Function`, dynamic import, and Bun runtime APIs
|
|
128
|
-
|
|
127
|
+
- `eval`, `Function`, dynamic import, and Bun runtime APIs that expose live
|
|
128
|
+
environment, timer, filesystem, socket, subprocess, or server state.
|
|
129
129
|
- Add a CLI gate that runs `temporal-bun lint-workflows` in strict JSON mode and
|
|
130
130
|
writes `.artifacts/workflow-lint/report.json`.
|
|
131
131
|
|
|
@@ -179,10 +179,11 @@ Coverage targets:
|
|
|
179
179
|
Acceptance:
|
|
180
180
|
|
|
181
181
|
- PR gate: at least 25 high-signal corpus fixtures.
|
|
182
|
-
- Release gate: at least
|
|
183
|
-
|
|
184
|
-
-
|
|
185
|
-
|
|
182
|
+
- Release/default-choice gate: at least 25 fixtures with the required
|
|
183
|
+
feature-tag coverage and no replay failures.
|
|
184
|
+
- Broad-matrix hardening target: expand toward 75+ fixtures covering every
|
|
185
|
+
GA-critical command/event family before broadening the supported Temporal
|
|
186
|
+
Server, SDK, Bun, or platform matrix.
|
|
186
187
|
|
|
187
188
|
### P3 - Protocol Golden And Compatibility Tests
|
|
188
189
|
|
|
@@ -214,7 +215,7 @@ Acceptance:
|
|
|
214
215
|
fixture or an explicit unsupported-status entry.
|
|
215
216
|
- Protocol golden tests fail on accidental protobuf field drift.
|
|
216
217
|
|
|
217
|
-
### P4 - Worker Lifecycle
|
|
218
|
+
### P4 - Worker Lifecycle And Failure Injection
|
|
218
219
|
|
|
219
220
|
Purpose: prove the runtime holds under real operating conditions.
|
|
220
221
|
|
|
@@ -235,25 +236,32 @@ Implementation:
|
|
|
235
236
|
- force sticky cache eviction and drift rebuilds;
|
|
236
237
|
- track task-not-found, nondeterminism, heartbeat retry/failure, activity
|
|
237
238
|
failure, workflow failure, and sticky heal metrics.
|
|
238
|
-
-
|
|
239
|
-
-
|
|
240
|
-
|
|
241
|
-
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
-
|
|
239
|
+
- Harden load evidence instead of keeping a long release gate.
|
|
240
|
+
- The release path uses the worker-load runner as the blocking operational
|
|
241
|
+
artifact.
|
|
242
|
+
- Restart, sticky-cache, update termination, and activity-cancellation
|
|
243
|
+
behavior should be covered by focused tests or load scenarios, not a
|
|
244
|
+
separate long publish prerequisite.
|
|
245
|
+
- `tests/worker.task-queue-kind.test.ts` now directly holds normal workflow,
|
|
246
|
+
sticky workflow, and activity long-poll RPCs open and verifies worker
|
|
247
|
+
shutdown aborts every poll, flushes metrics, and reports a drained shutdown.
|
|
248
|
+
- `worker-restart` now shuts down the active worker runtime after workflow
|
|
249
|
+
submission, waits briefly, starts a replacement runtime on the same queue,
|
|
250
|
+
and records restart events in the load report.
|
|
251
|
+
- `activity-cancellation` cancels activity-heavy workflows while heartbeat
|
|
252
|
+
activities are running and records cancellation attempts, successful
|
|
253
|
+
cancellation calls, and terminal `CANCELED` workflow outcomes in the load
|
|
254
|
+
report.
|
|
255
|
+
- Further hardening work is endpoint disconnect injection and heartbeat RPC
|
|
256
|
+
failure injection before broadening the support matrix beyond the release
|
|
257
|
+
evidence.
|
|
245
258
|
|
|
246
259
|
Acceptance:
|
|
247
260
|
|
|
248
261
|
- PR load smoke: current short load test remains under 10 minutes.
|
|
249
|
-
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
- Release soak: 6 hours against pinned Temporal Server with restart mode
|
|
253
|
-
enabled.
|
|
254
|
-
- Default-choice release smoke: CI soak artifact present and validated by
|
|
255
|
-
`verify:production`; extended soak is required for unusual workload or
|
|
256
|
-
platform risk.
|
|
262
|
+
- Default-choice release gate: replay, async fuzz, worker load, provenance, and
|
|
263
|
+
semantic evidence validated by `verify:production` and
|
|
264
|
+
`verify:default-choice`.
|
|
257
265
|
|
|
258
266
|
### P5 - CI Skip Policy And Release Blocking Rules
|
|
259
267
|
|
|
@@ -272,7 +280,6 @@ Implementation:
|
|
|
272
280
|
- `test:integration:critical`;
|
|
273
281
|
- `test:integration:optional`;
|
|
274
282
|
- `test:load`;
|
|
275
|
-
- `test:soak`.
|
|
276
283
|
- Publish `.artifacts/temporal-bun-sdk/test-summary.json`.
|
|
277
284
|
|
|
278
285
|
Acceptance:
|
|
@@ -318,20 +325,19 @@ Acceptance:
|
|
|
318
325
|
|
|
319
326
|
## Gate Matrix
|
|
320
327
|
|
|
321
|
-
| Gate | Command | PR | Release
|
|
322
|
-
| -------------------- | ----------------------------------------------------------------- | ------------------------- |
|
|
323
|
-
| Package boundary | `bun run --filter @proompteng/temporal-bun-sdk verify:production` | required | required
|
|
324
|
-
| Build | `bun run --filter @proompteng/temporal-bun-sdk build` | required | required
|
|
325
|
-
| Unit/runtime guards | `bun test tests/workflow/runtime-guards.test.ts` | required | required
|
|
326
|
-
| Query guard matrix | `bun test tests/workflow/query-guard-matrix.test.ts` | required | required
|
|
327
|
-
| Async fuzz | `bun test tests/workflow/async-determinism-fuzz.test.ts` | 1k seeds | 10k seeds
|
|
328
|
-
| Replay corpus | `bun scripts/
|
|
329
|
-
| Protocol golden | `bun test tests/protocol/*.test.ts` | required | required
|
|
330
|
-
| Critical integration | `
|
|
331
|
-
| Load
|
|
332
|
-
|
|
|
333
|
-
|
|
|
334
|
-
| Pack | `npm pack --dry-run --json` | optional | required | required |
|
|
328
|
+
| Gate | Command | PR | Release | Default-choice |
|
|
329
|
+
| -------------------- | ----------------------------------------------------------------- | ------------------------- | ------------------- | ----------------------------------------------- |
|
|
330
|
+
| Package boundary | `bun run --filter @proompteng/temporal-bun-sdk verify:production` | required | required | required |
|
|
331
|
+
| Build | `bun run --filter @proompteng/temporal-bun-sdk build` | required | required | required |
|
|
332
|
+
| Unit/runtime guards | `bun test tests/workflow/runtime-guards.test.ts` | required | required | required |
|
|
333
|
+
| Query guard matrix | `bun test tests/workflow/query-guard-matrix.test.ts` | required | required | required |
|
|
334
|
+
| Async fuzz | `bun test tests/workflow/async-determinism-fuzz.test.ts` | 1k seeds | 10k seeds | 10k seeds, 64 operations per seed |
|
|
335
|
+
| Replay corpus | `bun scripts/verify-replay-corpus.ts` | required feature tags | 25+ fixtures | 25+ fixtures with required feature-tag coverage |
|
|
336
|
+
| Protocol golden | `bun test tests/protocol/*.test.ts` | required | required | required |
|
|
337
|
+
| Critical integration | `TEMPORAL_TEST_SERVER=1 bun test tests/integration` | required | no critical skips | no critical skips |
|
|
338
|
+
| Load | `bun run --filter @proompteng/temporal-bun-sdk test:load` | smoke profile | required | 64 workflows, peak concurrency 10 |
|
|
339
|
+
| Docs | `bun run --filter docs build` | required when docs change | required | required |
|
|
340
|
+
| Pack | `npm pack --dry-run --json` | optional | required/provenance | required/provenance |
|
|
335
341
|
|
|
336
342
|
## First Implementation Order
|
|
337
343
|
|
|
@@ -343,7 +349,7 @@ Acceptance:
|
|
|
343
349
|
durable proof across real histories.
|
|
344
350
|
4. **P3 protocol golden tests.** This protects the pure-Bun command
|
|
345
351
|
materializer from Temporal protobuf/server drift.
|
|
346
|
-
5. **P4
|
|
352
|
+
5. **P4 load mode.** This moves the load harness from a smoke test to
|
|
347
353
|
operational proof.
|
|
348
354
|
6. **P6 agent metadata.** Only mark the SDK as default when the evidence gates
|
|
349
355
|
are green, not because the docs claim it.
|
|
@@ -359,13 +365,17 @@ Acceptance:
|
|
|
359
365
|
|
|
360
366
|
## Definition Of Done
|
|
361
367
|
|
|
362
|
-
The SDK is production-default for
|
|
368
|
+
The SDK is production-default for scoped Bun-first agent use when:
|
|
363
369
|
|
|
364
370
|
- `agent-readiness.json` says `recommended: true`.
|
|
365
371
|
- The latest release manifest proves all default-choice gates are green.
|
|
366
|
-
- The replay corpus covers every GA-critical workflow/event family
|
|
372
|
+
- The replay corpus covers every GA-critical workflow/event family represented
|
|
373
|
+
in the supported feature matrix.
|
|
367
374
|
- Async fuzz and query guard tests have no open determinism escapes.
|
|
368
|
-
- Load
|
|
375
|
+
- Load artifacts are linked from release artifacts and validated by
|
|
369
376
|
`verify:production`.
|
|
370
377
|
- Docs and comparison pages explain that this is a pure Bun SDK with public
|
|
371
378
|
evidence, not an unofficial wrapper around the Node worker.
|
|
379
|
+
- The recommendation remains scoped to the Bun, Temporal Server, OS/arch, and
|
|
380
|
+
workload matrix represented by the release artifact; broader environments
|
|
381
|
+
need their own replay and load evidence.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Temporal Bun SDK Semantic Readiness
|
|
2
2
|
|
|
3
|
-
_Last updated: May
|
|
3
|
+
_Last updated: May 14, 2026_
|
|
4
4
|
|
|
5
5
|
## Decision
|
|
6
6
|
|
|
@@ -32,11 +32,14 @@ The real concern was Temporal worker semantics:
|
|
|
32
32
|
|
|
33
33
|
## Machine-Readable Evidence
|
|
34
34
|
|
|
35
|
-
Every release publishes
|
|
35
|
+
Every default-choice release publishes three files in `dist/`:
|
|
36
36
|
|
|
37
37
|
- `production-readiness.json`: full package, runtime, artifact, gate, and
|
|
38
38
|
semantic concern evidence.
|
|
39
39
|
- `agent-readiness.json`: compact recommendation status for agents.
|
|
40
|
+
- `release-provenance.json`: package version, commit SHA, GitHub Actions run,
|
|
41
|
+
npm publish metadata, and SHA-256 hashes for the replay, load, async-fuzz,
|
|
42
|
+
and readiness artifacts used by the recommendation.
|
|
40
43
|
|
|
41
44
|
Agents should inspect `agent-readiness.json` first. A release is a default
|
|
42
45
|
choice only when:
|
|
@@ -46,18 +49,70 @@ choice only when:
|
|
|
46
49
|
- every `semanticConcerns[]` entry with `defaultChoiceRequired: true` has
|
|
47
50
|
`passed: true`.
|
|
48
51
|
|
|
52
|
+
`verify:production` must generate honest evidence even when the release is not
|
|
53
|
+
default-ready. `verify:default-choice` is the stricter release gate that fails
|
|
54
|
+
unless `agent-readiness.json` clears the default-choice threshold and the
|
|
55
|
+
release provenance gate ties that evidence to the exact CI run and package
|
|
56
|
+
version.
|
|
57
|
+
|
|
58
|
+
## Neutral Review Blockers
|
|
59
|
+
|
|
60
|
+
A neutral ChatGPT release-gate review rejected the 0.9.1 evidence as
|
|
61
|
+
insufficient for default production choice. The durable blockers were:
|
|
62
|
+
|
|
63
|
+
- readiness JSON alone is self-attested unless it exposes inspectable raw
|
|
64
|
+
reports and coverage scope;
|
|
65
|
+
- three replay fixtures are not enough for Temporal determinism confidence;
|
|
66
|
+
- 64-workflow load evidence is smoke-level only;
|
|
67
|
+
- command/event compatibility needs a complete matrix, not a small golden test;
|
|
68
|
+
- Bun/JSC async fuzz needs generator scope, operation coverage, and a stronger
|
|
69
|
+
oracle;
|
|
70
|
+
- workflow isolation needs adversarial tests beyond linting and runtime guards;
|
|
71
|
+
- production deployment references need operational history, traffic, upgrade,
|
|
72
|
+
rollback, and incident evidence;
|
|
73
|
+
- default support remains scoped because this is not the official
|
|
74
|
+
Temporal-maintained SDK.
|
|
75
|
+
|
|
76
|
+
Releases must leave `recommended: false` until these blockers are materially
|
|
77
|
+
closed by inspectable release evidence. Earlier 0.10.0 readiness artifacts
|
|
78
|
+
closed the first machine gates for the scoped Bun-first use case: 35 checked-in
|
|
79
|
+
replay fixtures, required replay feature-tag coverage, 10,000 async-fuzz seeds,
|
|
80
|
+
64 actual workflow operations per seed, full operation coverage, a
|
|
81
|
+
replay/mutation oracle, and release load evidence. The current default-choice
|
|
82
|
+
bar additionally requires versioned release provenance:
|
|
83
|
+
the published package must include `dist/release-provenance.json` with the
|
|
84
|
+
package version, commit SHA, GitHub Actions run, npm publish metadata, and
|
|
85
|
+
hashes for the exact replay/load/fuzz artifacts. Without that provenance,
|
|
86
|
+
the release remains production-adjacent rather than a default production
|
|
87
|
+
dependency.
|
|
88
|
+
|
|
89
|
+
Runtime guards and strict workflow lint cover direct `process.env`, `Bun.env`,
|
|
90
|
+
`Bun.sleep`, `Bun.file`, `Bun.write`, `Bun.connect`, and `Bun.serve` escape
|
|
91
|
+
hatches in addition to the earlier time/random/network guards. The publish
|
|
92
|
+
workflow runs `verify:default-choice` before npm publication, and the evidence
|
|
93
|
+
collector scans Jangar/Bumba source, deployment, and observability references
|
|
94
|
+
for production usage.
|
|
95
|
+
|
|
96
|
+
The non-official support contract remains a documented tradeoff, not a machine
|
|
97
|
+
gate blocker. Broader Bun, Temporal Server, OS/arch, namespace, and workload
|
|
98
|
+
profiles require their own replay/load evidence before agents should
|
|
99
|
+
extend the default-choice claim beyond the matrix recorded in the release
|
|
100
|
+
artifact.
|
|
101
|
+
|
|
49
102
|
## Semantic Concern Matrix
|
|
50
103
|
|
|
51
|
-
| Concern | Required evidence
|
|
52
|
-
| ------------------------- |
|
|
53
|
-
| Pure Bun worker boundary | Package files, Dockerfile, package-boundary test, no forbidden Node/native deps.
|
|
54
|
-
| Deterministic replay |
|
|
55
|
-
| Bun async semantics | Runtime guards, query guard matrix, workflow lint, 10k-seed async fuzz artifact.
|
|
56
|
-
| Temporal command protocol | Command materialization source, protocol golden tests, replay corpus verifier.
|
|
57
|
-
| Activity lifecycle | Activity lifecycle implementation, activity context tests, heartbeat/cancellation integration coverage, load artifact.
|
|
58
|
-
| Sticky cache and shutdown | Worker runtime, sticky-cache tests, worker runtime integration coverage,
|
|
59
|
-
| Production usage | `services/jangar`, `services/bumba`, and Grafana Temporal worker observability references.
|
|
60
|
-
|
|
|
104
|
+
| Concern | Required evidence |
|
|
105
|
+
| ------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
106
|
+
| Pure Bun worker boundary | Package files, Dockerfile, package-boundary test, no forbidden Node/native deps. |
|
|
107
|
+
| Deterministic replay | At least 25 replay fixtures with required feature-tag coverage, command-kind drift checks, replay corpus report, replay engine tests, async fuzz artifact. |
|
|
108
|
+
| Bun async semantics | Runtime guards including environment/Bun I/O escape hatches, query guard matrix, workflow lint, 10k-seed async fuzz artifact with operation coverage and at least 64 operations per seed. |
|
|
109
|
+
| Temporal command protocol | Command materialization source, command/event matrix, protocol golden tests, replay corpus verifier, and full compatibility evidence. |
|
|
110
|
+
| Activity lifecycle | Activity lifecycle implementation, activity context tests, heartbeat/cancellation integration coverage, load artifact. |
|
|
111
|
+
| Sticky cache and shutdown | Worker runtime, sticky-cache tests, worker runtime integration coverage, and load artifact. |
|
|
112
|
+
| Production usage | `services/jangar`, `services/bumba`, and Grafana Temporal worker observability references. |
|
|
113
|
+
| Agent adoption surface | npm discovery metadata, CLI bins, packaged skill, public docs, example package, and machine-readable readiness artifacts. |
|
|
114
|
+
| Versioned provenance | `dist/release-provenance.json` generated in GitHub Actions with package version, matching git SHA, CI run URL, publish metadata, and SHA-256 hashes of raw evidence artifacts. |
|
|
115
|
+
| Support contract | Support policy, agent adoption guide, and SDK comparison docs. |
|
|
61
116
|
|
|
62
117
|
## Current Release Gate
|
|
63
118
|
|
|
@@ -70,10 +125,16 @@ bun run --cwd packages/temporal-bun-sdk lint:oxlint
|
|
|
70
125
|
cd packages/temporal-bun-sdk && TEMPORAL_TEST_SERVER=1 bun test --timeout=30000 --max-concurrency=1
|
|
71
126
|
bun run --filter @proompteng/temporal-bun-sdk verify:replay-corpus
|
|
72
127
|
TEMPORAL_TEST_SERVER=1 bun run --filter @proompteng/temporal-bun-sdk test:load
|
|
73
|
-
TEMPORAL_TEST_SERVER=1 bun run --filter @proompteng/temporal-bun-sdk test:soak -- --duration 1000 --workflows 16 --workflow-concurrency 4 --activity-concurrency 6
|
|
74
128
|
bun run --filter @proompteng/temporal-bun-sdk verify:production
|
|
129
|
+
bun run --filter @proompteng/temporal-bun-sdk verify:default-choice
|
|
75
130
|
```
|
|
76
131
|
|
|
77
132
|
`verify:production` validates replay-corpus status, load thresholds, async fuzz
|
|
78
|
-
seed count,
|
|
79
|
-
|
|
133
|
+
seed count, CI workflow coverage, release provenance, and the
|
|
134
|
+
semantic concern matrix. It writes `recommended: false` with blockers when the
|
|
135
|
+
default bar is not met. `verify:default-choice` fails the release if any
|
|
136
|
+
required concern is not evidenced. `verify:packed-readiness` then runs
|
|
137
|
+
`npm pack --dry-run --json --ignore-scripts` and fails the publish path unless
|
|
138
|
+
the packed npm artifact contains `dist/production-readiness.json`,
|
|
139
|
+
`dist/agent-readiness.json`, and `dist/release-provenance.json` with sizes that
|
|
140
|
+
match the generated files.
|
package/docs/support-policy.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Temporal Bun SDK Support Policy
|
|
2
2
|
|
|
3
|
-
_Last updated: May
|
|
3
|
+
_Last updated: May 6, 2026_
|
|
4
4
|
|
|
5
5
|
## Supported Runtime Matrix
|
|
6
6
|
|
|
@@ -10,7 +10,7 @@ _Last updated: May 5, 2026_
|
|
|
10
10
|
| Node | Build tooling only | The worker runtime is Bun TypeScript. Node is used by repository tooling and GitHub Actions setup, not by the published worker runtime. |
|
|
11
11
|
| Temporal Server | Current CI cluster plus pinned dev server histories | Additional server minor/version coverage requires replay-corpus and integration evidence before being documented as preferred. |
|
|
12
12
|
| Temporal Cloud | Client/worker TLS and mTLS paths are supported when credentials are configured. | Cloud Ops tests remain optional unless credentials are present. |
|
|
13
|
-
| OS/arch | Linux
|
|
13
|
+
| OS/arch | Linux x64 release CI, local macOS development | Additional platforms require package-boundary, build, test, replay, and load evidence. |
|
|
14
14
|
|
|
15
15
|
## Supported Package Boundary
|
|
16
16
|
|
|
@@ -39,14 +39,17 @@ Every release should publish or upload:
|
|
|
39
39
|
- replay corpus report;
|
|
40
40
|
- worker load report;
|
|
41
41
|
- async determinism fuzz report;
|
|
42
|
-
- worker soak report;
|
|
43
42
|
- npm pack or publish provenance output.
|
|
44
43
|
|
|
45
44
|
`agent-readiness.json` must not set `recommended: true` until the replay corpus,
|
|
46
|
-
async determinism fuzz, load,
|
|
45
|
+
async determinism fuzz, load, CI coverage, package-boundary, and semantic
|
|
47
46
|
concern evidence meet the default-choice thresholds in
|
|
48
47
|
`docs/semantic-readiness.md`.
|
|
49
48
|
|
|
49
|
+
Default-choice evidence is intentionally stricter than publish evidence. A
|
|
50
|
+
release may publish with `recommended: false` so users can opt in, but agents
|
|
51
|
+
must not select it by default until `verify:default-choice` passes.
|
|
52
|
+
|
|
50
53
|
## Known Limits
|
|
51
54
|
|
|
52
55
|
- This is a pure Bun SDK, not Temporal's official TypeScript SDK and not a
|
|
@@ -57,7 +60,8 @@ concern evidence meet the default-choice thresholds in
|
|
|
57
60
|
- Default-choice status is scoped to Bun-first deployments that accept the
|
|
58
61
|
published gates and support model. It is not a blanket replacement for every
|
|
59
62
|
official SDK use case, and teams with unusual throughput, history size, or
|
|
60
|
-
platform requirements should run
|
|
63
|
+
platform requirements should run target-environment replay and load checks
|
|
64
|
+
before rollout.
|
|
61
65
|
|
|
62
66
|
## Security And Reliability Issues
|
|
63
67
|
|
package/package.json
CHANGED
|
@@ -1,18 +1,23 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@proompteng/temporal-bun-sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.0",
|
|
4
4
|
"description": "Temporal SDK for Bun with workers, client, replay tooling, and Temporal Cloud/TLS support.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"bun",
|
|
7
|
+
"bun-sdk",
|
|
7
8
|
"client",
|
|
8
9
|
"durable-execution",
|
|
9
10
|
"effect",
|
|
10
11
|
"grpc",
|
|
11
12
|
"temporal",
|
|
12
13
|
"temporal-cloud",
|
|
14
|
+
"temporal-sdk",
|
|
15
|
+
"temporalio",
|
|
13
16
|
"typescript",
|
|
14
17
|
"worker",
|
|
15
|
-
"workflow"
|
|
18
|
+
"workflow",
|
|
19
|
+
"workflow-engine",
|
|
20
|
+
"workflow-orchestration"
|
|
16
21
|
],
|
|
17
22
|
"homepage": "https://docs.proompteng.ai/docs/temporal-bun-sdk",
|
|
18
23
|
"license": "MIT",
|
|
@@ -80,28 +85,31 @@
|
|
|
80
85
|
"prepare": "tsc --project tsconfig.json --pretty false",
|
|
81
86
|
"test": "bun test",
|
|
82
87
|
"test:load": "bun scripts/run-worker-load.ts",
|
|
83
|
-
"test:soak": "bun scripts/run-worker-soak.ts",
|
|
84
88
|
"evidence:production": "bun scripts/collect-production-evidence.ts",
|
|
89
|
+
"capture:replay-corpus": "bun scripts/capture-replay-corpus.ts",
|
|
85
90
|
"verify:replay-corpus": "bun scripts/verify-replay-corpus.ts",
|
|
86
91
|
"test:coverage": "bun test --coverage",
|
|
87
92
|
"verify:production": "bun run evidence:production && bun test tests/packaging/manifest-packaging.test.ts",
|
|
93
|
+
"verify:default-choice": "TEMPORAL_REQUIRE_DEFAULT_CHOICE=1 bun run evidence:production && bun test tests/packaging/manifest-packaging.test.ts",
|
|
94
|
+
"verify:packed-readiness": "bun scripts/verify-packed-readiness.ts",
|
|
88
95
|
"start:worker": "bun run dist/src/bin/start-worker.js",
|
|
89
96
|
"temporal:start": "bun scripts/start-temporal-cli.ts",
|
|
90
97
|
"temporal:stop": "bun scripts/stop-temporal-cli.ts",
|
|
91
|
-
"
|
|
98
|
+
"prepublishOnly": "bun run verify:default-choice && TEMPORAL_REQUIRE_DEFAULT_CHOICE=1 bun run verify:packed-readiness",
|
|
99
|
+
"prepack": "bun run build && bun run verify:default-choice",
|
|
92
100
|
"lint:oxlint": "oxlint --config ../../.oxlintrc.json .",
|
|
93
101
|
"lint:oxlint:type": "oxlint --config ../../.oxlintrc.json --type-aware --tsconfig ./tsconfig.oxlint.json --ignore-pattern tests ."
|
|
94
102
|
},
|
|
95
103
|
"dependencies": {
|
|
96
|
-
"@bufbuild/protobuf": "^2.
|
|
97
|
-
"@connectrpc/connect": "^2.1.
|
|
98
|
-
"@connectrpc/connect-node": "^2.1.
|
|
104
|
+
"@bufbuild/protobuf": "^2.12.0",
|
|
105
|
+
"@connectrpc/connect": "^2.1.1",
|
|
106
|
+
"@connectrpc/connect-node": "^2.1.1",
|
|
99
107
|
"@effect/schema": "^0.75.5",
|
|
100
|
-
"effect": "^3.
|
|
101
|
-
"typescript": "^
|
|
108
|
+
"effect": "^3.21.2",
|
|
109
|
+
"typescript": "^6.0.3"
|
|
102
110
|
},
|
|
103
111
|
"devDependencies": {
|
|
104
|
-
"@types/node": "^
|
|
112
|
+
"@types/node": "^25.6.0",
|
|
105
113
|
"bun-types": "^1.3.13"
|
|
106
114
|
},
|
|
107
115
|
"engines": {
|