| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| 1.18.0 source code.tar.gz | 2026-08-13 | 1.7 MB | |
| 1.18.0 source code.zip | 2026-08-13 | 2.2 MB | |
| README.md | 2026-08-13 | 15.0 kB | |
| Totals: 3 Items | 3.9 MB | 0 | |
Notable Changes
:boom: Breaking Changes
- Removed the unused
NexusHandlerFailureException; Nexus handler failures are represented byNexusRpc.Handlers.HandlerException. The SDK-createdTemporalNexusClientimplementation is now internal; Nexus operation handlers continue to receive its publicITemporalNexusClientinterface. - By default, workers now proactively validate outbound payload/memo sizes before sending: a field
over the warn threshold is logged (
[TMPRL1103]atWARN) but still sent, while a task completion over the error limit is failed retryably ([TMPRL1103]atERROR) instead of sent. Previously these reached the server, which terminated the workflow or failed the activity non-retryably; failing retryably instead lets a corrected workflow or activity be redeployed and recover. Tune warn thresholds viaTemporalConnectionOptions.PayloadLimits. If you use a proxy between the worker and server that alters the size of payloads (e.g. compression, encryption, external storage), it is advised that you disable size enforcement by settingDisablePayloadErrorLimittotrueon the worker. - Activity failures now include the latest heartbeat details atomically instead of force-flushing a throttled heartbeat first. Temporal Server 1.16.0 or newer is required to guarantee those details are preserved on failure; workers warn when the server does not advertise support.
Added
- Added experimental SDK payload converter support for values and target types that expose Temporal transfer type conversion hooks. This lets hook-aware types delegate their wire representation to the configured payload converter, preserving SDK behavior such as serialization contexts.
- Added
TemporalWorkerOptions.MaxEagerActivityReservationsPerWorkflowTaskto configure the maximum number of activity slots reserved for eager execution per workflow task. Configured values must be positive; useDisableEagerActivityExecutionto disable eager execution. - Added
WorkflowEnvironment.CreateFromEnvConfigAsyncfor creating test workflow environments from client environment configuration. - Added the experimental
TemporalWorkerOptions.PatchActivationCallback, allowing workers to decide whether a first non-replayWorkflow.Patchedcall should activate a patch during rolling deployments. - Support standalone activities as Nexus operations.
ITemporalNexusClient.StartActivityAsyncbacks a Nexus operation with a standalone activity (async only). Cancellation of activity-execution operations can be customized by overridingTemporalOperationHandler<TInput, TResult>.CancelActivityExecutionAsync. - Worker heartbeats now report the hosting .NET runtime and its version. Set the new
TemporalRuntimeOptions.DisableEnvironmentInfoto omit all runtime, hosting, and platform information from heartbeats. - Workers are now automatically enrolled into poller autoscaling when the namespace advertises the
poller_autoscaling_auto_enrollcapability. This only applies to poller types left at their default (the worker set neither a fixed poller count nor a poller behavior); explicitly configured pollers are left unchanged. - Workers now log a [TMPRL1104] warning when a workflow task takes longer than 5 seconds. Set
TEMPORAL_WORKFLOW_TASK_DURATION_WARN_SECONDSto change the threshold.
Changed
- Nexus support for calling operations from workflows and handling workflow-backed operations with
WorkflowRunOperationHandleris now generally available (GA). Standalone Nexus Operation andTemporalOperationHandler, including workflow updates and standalone activities as Nexus operations, remains experimental. - User metadata fields (StaticSummary, StaticDetails, CurrentDetails, Activity Summary, Timer Summary) are no longer marked as experimental.
- Hardened read-only workflow context enforcement so queries, update validators, and patch activation callbacks cannot mutate handlers or workflow details, invoke patches, or schedule workflow work. Patch activation callbacks also cannot use workflow randomness or issue workflow commands.
- A
NexusRpc.Handlers.HandlerExceptionthrown by a payload codec or payload converter while decoding Nexus operation input is now propagated as-is instead of being wrapped in anInternal(codec) orBadRequest(converter) handler exception. This matches the existing pass-through behavior forApplicationFailureExceptionand lets codecs and converters control the resulting Nexus error type and retry behavior.
Fixed
- Workers no longer advertise a worker control task queue unless the namespace supports worker heartbeats and commands and the built-in Nexus command worker is running.
- Local activity resolutions are now delivered to workflows as each activity completes instead of waiting for every local activity in the workflow task. This allows sequences of short local activities to make progress while a long-running local activity executes in parallel, while preserving the resolution ordering recorded in existing histories during replay.
- Try-cancel child workflows no longer cause nondeterminism when they complete or fail after their cancellation was requested.
What's Changed
- chore: update baseline to 1.17.0 by @jmaeagle99 in https://github.com/temporalio/sdk-dotnet/pull/785
- Add Nexus Otel tracing instructions by @Quinn-With-Two-Ns in https://github.com/temporalio/sdk-dotnet/pull/793
- docs: update contributing guide by @tconley1428 in https://github.com/temporalio/sdk-dotnet/pull/786
- Add patch activation callback by @Sushisource in https://github.com/temporalio/sdk-dotnet/pull/782
- fix: checkout global.json for nuget-publish by @jmaeagle99 in https://github.com/temporalio/sdk-dotnet/pull/790
- fix(test): deflake ExecuteWorkflowAsync_HistoryInfo_IsAccurate by @jmaeagle99 in https://github.com/temporalio/sdk-dotnet/pull/792
- Remove experimental markers from user metadata fields by @laniehei in https://github.com/temporalio/sdk-dotnet/pull/796
- Add changelog CI gate workflow by @laniehei in https://github.com/temporalio/sdk-dotnet/pull/797
- Support Workflow Update as a Nexus Operation by @Evanthx in https://github.com/temporalio/sdk-dotnet/pull/783
- :boom: feature: payloads/memo size validation by @jmaeagle99 in https://github.com/temporalio/sdk-dotnet/pull/787
- Add Standalone Activities support to Temporal Nexus Operation Handler by @Quinn-With-Two-Ns in https://github.com/temporalio/sdk-dotnet/pull/748
- feat(testing): support envconfig in integration test harness by @THardy98 in https://github.com/temporalio/sdk-dotnet/pull/794
- Expose eager activity reservation limit by @Sushisource in https://github.com/temporalio/sdk-dotnet/pull/798
- build(deps): bump jdx/mise-action from 4.2.0 to 4.2.1 by @dependabot[bot] in https://github.com/temporalio/sdk-dotnet/pull/805
- build(deps): bump actions/checkout from 7.0.0 to 7.0.1 by @dependabot[bot] in https://github.com/temporalio/sdk-dotnet/pull/806
- build(deps): bump actions/setup-dotnet from 5.4.0 to 6.0.0 by @dependabot[bot] in https://github.com/temporalio/sdk-dotnet/pull/807
- Bump Microsoft.NET.Test.Sdk from 17.4.1 to 18.8.1 by @dependabot[bot] in https://github.com/temporalio/sdk-dotnet/pull/809
- Updating Temporal API protos by @Evanthx in https://github.com/temporalio/sdk-dotnet/pull/812
- Bump System.CommandLine from 2.0.8 to 2.0.10 by @dependabot[bot] in https://github.com/temporalio/sdk-dotnet/pull/811
- chore: pin tool versions and add mise tasks by @jmaeagle99 in https://github.com/temporalio/sdk-dotnet/pull/814
- build(deps): bump jdx/mise-action from 4.2.1 to 4.2.3 by @dependabot[bot] in https://github.com/temporalio/sdk-dotnet/pull/815
- fix: workaround dotnet tool install rid package issue by @jmaeagle99 in https://github.com/temporalio/sdk-dotnet/pull/817
- ci: extract shared build setup into a composite action by @jmaeagle99 in https://github.com/temporalio/sdk-dotnet/pull/818
- build(deps): bump actions/setup-dotnet from 5.2.0 to 6.0.0 in /.github/actions/smoke-test by @dependabot[bot] in https://github.com/temporalio/sdk-dotnet/pull/819
- :boom: Mark Nexus Support as GA by @Quinn-With-Two-Ns in https://github.com/temporalio/sdk-dotnet/pull/813
- Add NexusOperationHandler annotation by @Quinn-With-Two-Ns in https://github.com/temporalio/sdk-dotnet/pull/764
- Add transfer type payload conversion hooks by @tconley1428 in https://github.com/temporalio/sdk-dotnet/pull/795
- docs: clarify AI contribution expectations by @tconley1428 in https://github.com/temporalio/sdk-dotnet/pull/821
- Pass through Nexus handler exceptions in payload serializer by @bergundy in https://github.com/temporalio/sdk-dotnet/pull/829
- chore: update sdk-core submodule to latest by @jmaeagle99 in https://github.com/temporalio/sdk-dotnet/pull/824
- feat: report .NET runtime in heartbeats with opt-out option by @jmaeagle99 in https://github.com/temporalio/sdk-dotnet/pull/826
- chore: update sdk version to 1.18.0 by @jmaeagle99 in https://github.com/temporalio/sdk-dotnet/pull/828
- fix(ci): pin .NET 10 alpine image by @jmaeagle99 in https://github.com/temporalio/sdk-dotnet/pull/832
SDK Core Update
Updated from https://github.com/temporalio/sdk-rust/commit/95e97686a079dcfe6c42e3254b2f3f5e3d97408f to https://github.com/temporalio/sdk-rust/commit/78ac17e4bdaffdb54eb1c925a07d1fd40ce7b7f6
- Fix workflow executor cooperative budget livelock in https://github.com/temporalio/sdk-core/pull/1396
- docs: update contributing guide in https://github.com/temporalio/sdk-core/pull/1397
- chore: add dev tools to mise.toml, remove redundant CI installs in https://github.com/temporalio/sdk-core/pull/1386
- Fix task slots used metric in https://github.com/temporalio/sdk-core/pull/1391
- feat(sdk): remove remaining raw protos in APIs in https://github.com/temporalio/sdk-core/pull/1398
- feat(sdk): provide typed accessor for workflow count group in https://github.com/temporalio/sdk-core/pull/1410
- Allow resource controllers to be shared across tuners in https://github.com/temporalio/sdk-core/pull/1407
- :boom: feat: payload limit enforcement in https://github.com/temporalio/sdk-core/pull/1363
- chore: extract composite action for CI setup, add selective mise installs in https://github.com/temporalio/sdk-core/pull/1387
- chore(ci): use github backend for temporal cli in https://github.com/temporalio/sdk-core/pull/1414
- Add patch activation callback in https://github.com/temporalio/sdk-core/pull/1394
- Replace unmaintained backoff crate with backon in https://github.com/temporalio/sdk-core/pull/1411
- Only set worker control task queue field in polls when appropriate in https://github.com/temporalio/sdk-core/pull/1418
- feat(sdk): add
randomanduuid4in workflow context in https://github.com/temporalio/sdk-core/pull/1412 - fix(sdk): respect forced failure over completion in same poll in https://github.com/temporalio/sdk-core/pull/1417
- chore(sdk): rename start_activity to execute_activity in https://github.com/temporalio/sdk-core/pull/1416
- don't use versioning for internal nexus poller in https://github.com/temporalio/sdk-core/pull/1420
- Integrate Temporal API 1.63.4 in https://github.com/temporalio/sdk-core/pull/1423
- Make eager activity reservation limit configurable in https://github.com/temporalio/sdk-core/pull/1424
- feat(sdk): auto-enroll default pollers into autoscaling in https://github.com/temporalio/sdk-core/pull/1425
- Gate ResourceBasedTuner on anonymous memory instead of cgroup memory.current in https://github.com/temporalio/sdk-core/pull/1409
- Add
connect_timeoutoption toConnectionOptionsin https://github.com/temporalio/sdk-core/pull/1422 - feat(sdk): client interceptor in https://github.com/temporalio/sdk-core/pull/1426
- fix(sdk): make payload codec failable in https://github.com/temporalio/sdk-core/pull/1431
- feat(sdk): workflow interceptors in https://github.com/temporalio/sdk-core/pull/1401
- Flake fix investigation in https://github.com/temporalio/sdk-core/pull/1430
- feat(sdk): reexport core runtime from sdk in https://github.com/temporalio/sdk-core/pull/1437
- Updating Temporal API Protos in https://github.com/temporalio/sdk-core/pull/1441
- chore(sdk): release 0.6.0 in https://github.com/temporalio/sdk-core/pull/1447
- fix(sdk): CancelledFuture is no longer generic in https://github.com/temporalio/sdk-core/pull/1449
- Allow LAs to wake up workflow while another is still executing in https://github.com/temporalio/sdk-core/pull/1442
- chore(sdk): mark remaining
Optionstypes asnon_exhaustivein https://github.com/temporalio/sdk-core/pull/1450 - Fix NDEs when try-cancel children complete/fail after being cancelled in https://github.com/temporalio/sdk-core/pull/1455
- Add eager dispatch test for activity cancel via worker commands in https://github.com/temporalio/sdk-core/pull/1435
- feat(sdk): Add plugins in https://github.com/temporalio/sdk-core/pull/1436
- feat(sdk): add cancellation token in https://github.com/temporalio/sdk-core/pull/1451
- :boom: Use heartbeat details field on activity failure instead of force-flush in https://github.com/temporalio/sdk-core/pull/1456
- build(deps): bump hoverkraft-tech/compose-action from 2.5.0 to 2.6.0 in https://github.com/temporalio/sdk-core/pull/1284
- build(deps): bump actions/upload-artifact from 7.0.0 to 7.0.1 in https://github.com/temporalio/sdk-core/pull/1283
- Support dynamic client certificate resolution (ResolvesClientCert) in https://github.com/temporalio/sdk-core/pull/1340
- fix(sdk): reject updates when validators panic in https://github.com/temporalio/sdk-core/pull/1462
- Collect information about runtime environment in https://github.com/temporalio/sdk-core/pull/1457
- feat(core): emit workflow task duration logging in https://github.com/temporalio/sdk-core/pull/1433
- Add forward declarations to C bridge header to fix -Wvisibility warnings in https://github.com/temporalio/sdk-core/pull/1467
- docs: clarify AI contribution expectations in https://github.com/temporalio/sdk-core/pull/1472
- Properly pass the selected TLS implementation to reqwest in https://github.com/temporalio/sdk-core/pull/1458
- Use typed worker run errors in https://github.com/temporalio/sdk-core/pull/1459
- fix(core): delay zero-cache eviction until LA resolutions drain in https://github.com/temporalio/sdk-core/pull/1482
- docs: split sdk-core change log from the Rust SDK change log in https://github.com/temporalio/sdk-core/pull/1484
New Contributors
- @laniehei made their first contribution in https://github.com/temporalio/sdk-dotnet/pull/796
- @bergundy made their first contribution in https://github.com/temporalio/sdk-dotnet/pull/829
Full Changelog: https://github.com/temporalio/sdk-dotnet/compare/1.17.0...1.18.0