Repository navigation
Conversation
moetemp
force-pushed
the
moe/brook/review/s1-stream-protos
branch
2 times, most recently
from
October 27, 2026 09:07
3b5246f to
92725de
Compare
The Stream service messages come from the API repo, and the runtime messages from the `temporalio-streams` crate. `poe gen-protos-docker` copies the Streams output too.
moetemp
force-pushed
the
moe/brook/review/s1-stream-protos
branch
from
October 28, 2026 01:33
92725de to
7afb312
Compare
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.
What was changed
This PR vendors the Stream service and Stream runtime protos and adds their generated code. No hand-written code uses them yet.
482ec01, byte equal to the crate's copies.temporal.api.stream.v1(the messages) andtemporal.api.streamservice.v1(requests and responses) get their own packages undertemporalio.api. The enums intemporal.api.enums.v1(StreamProducerKind,StreamCloseStatus,StreamReadStart,StreamStatus,StreamErrorReason) are generated into the Core-generatedtemporalio/api/enums/v1/, so its__init__.pyexports them too. No Core enum has these names.oneofof data, superseded and close inStreamRecord, with no Topic.StreamErrorDetails.reasonis theStreamErrorReasonenum.runtime.protois the crate's wire contract at K107bb4e727, andredis.protohas the Redis runtime's config at R36e3ee499. Both are generated intotemporalio/common/_streams/proto/. The memory runtime's config shares the field numbers of the Redis one.Depends on G1 (#367), A1 (
temporalio/api#895), K10 (moetemp/sdk-rust#220) and R1 (temporal-community/sdk-streams#1). No changelog fragment, since S9 has the Streams entry.Part of the Brook review series.
Why?
S2's bindings and S3 to S9 import these modules. They're generated, so they get their own PR, first in the stack.
Open question. The Stream packages are generated into the public
temporalio.apinamespace, from vendored copies until A1 is intemporalio/apiand the Core submodule. The Core bump that brings A1 must delete the three vendored files, since protoc refuses two files with one import path. Should they go undertemporalio.common._streamsuntil then?Checklist
poe gen-protos-dockerleaves no diff, andpoe lintandpoe gen-docspass.