Skip to content

Add opt-in header codec processing - #3165

Draft
Sushisource wants to merge 4 commits into
mainfrom
normalize-header-conversion
Draft

Sushisource wants to merge 4 commits into
mainfrom
normalize-header-conversion

Conversation

@Sushisource

@Sushisource Sushisource commented Oct 24, 2026 •

Copy link
Copy Markdown
Member

What was changed

  • Fix the CI-exposed activity shutdown continuation race: termination waiting now observes the existing shutdown chain before resource waits, within the same timeout budget and without blocking later forced-shutdown escalation.
  • Add explicit HeaderEncodingDataConverter, requiring combined converter/codec capability; ordinary CodecDataConverter constructors and defaults are unchanged.
  • Apply codec-only header processing at shared client/worker boundaries, with SDK wrapper forwarding, contextual validation, shared start/update decoding, and tracing serialization preserved.
  • Preserve schedule header round trips, activity header-presence behavior, child destination namespace, and external-storage ordering; avoid duplicate update-with-start processing.
  • Resolve/cache derived codecs once in consuming client constructors and use one recursive header-chain validation pass. Add focused tests, documentation, and changelog notes.

Breaking changes: None. Custom outer converter wrappers must forward the optional header capability or keep the header-encoding converter outermost.
Server PR: Not required.

Why?

Part of temporalio/features#850: normalize opt-in processing of user header payloads without reserializing Payload objects or changing existing defaults.

Checklist

  1. Related issue: Normalize Header Data Conversion across languages features#850 (this PR does not close the cross-SDK issue).
  2. How was this tested:
    • Converter opt-in/delegation, contextual codec validation, and SDK-wrapper forwarding.
    • Header propagation through client/worker boundaries, tracing, storage, schedules, and multioperations.
    • Shutdown-continuation, timeout/interruption, and graceful-to-forced escalation regressions.
  3. Any docs updates needed? README, public API documentation, and changelog included; migration guidance covers pre-codec header payloads, legacy decoders, and wrapper forwarding.

@Sushisource
Sushisource force-pushed the normalize-header-conversion branch from 296e4ff to 9846c0c Compare October 26, 2026 22:20

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant