Repository navigation
Conversation
dplyukhin
added this pull request to stack #207
September 30, 2026 14:42
dplyukhin
force-pushed
the
go-serialization-contexts
branch
from
October 7, 2026 20:25
78e7eb0 to
d8815a2
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Warning
Depends on temporalio/sdk-go#2721. The registry-based Go output requires the SDK APIs in that PR; the currently pinned transfer-types SDK revision is insufficient.
The registry rewrite emits system-operation metadata keyed by service and operation wire names and registers it with the Go SDK. The SDK selects the serialization context after outbound interceptors and owns the conversion scope, covering native-model calls that bypass generated wrappers. Generated code no longer injects context values or attaches serialization-policy methods to request models; operations sharing a model can have different policies.
This matches Python’s ownership boundary, not full system-payload parity. Go captures a selection once and keeps its existing Nexus envelope encoding; Python-style system-envelope marking and codec traversal remain out of scope. Raw protobuf inputs retain their existing behavior, and future-wrapping interceptors must explicitly forward the optional context carrier for eager result adapters.
Validation: 83 Go generator tests, selected Rust suites, Go sample race tests and vet, and reproducible Go generation passed. Full cargo validate remains blocked by TypeScript dependencies missing nexus-rpc.TransferTypeConverter, @temporalio/common.createPayloadValidationError, and OperationOptions.inputType.
The registry rewrite was pushed with explicit authorization to override the full-validation requirement for the known TypeScript dependency failures.