Repository navigation
Conversation
Core now holds the stream runtime, so Python takes its stream protos, the record envelope among them, and the commit command that carries records. The visitor runs the codec on each record's body.
One bridge call carries each serialized request, so the typed StreamService stub is generated from Core's protos and a Worker takes the same store. A failed call crosses as Core's StreamFailure.
Stores now compare the batch digest lang takes before the codec, so an append must carry one. The pin also brings the topic closes a Workflow's output commit can carry.
Core now closes each topic a Workflow's commit closes once the commit's records are promoted, so a closed topic refuses appends after the task.
Core now holds a Python script for its cross-SDK tests, and mypy and basedpyright reached it through the submodule and failed on code that isn't this SDK's.
Core now closes a run chain only after the final task's topic closes land, so a closed topic's result is never overtaken by the chain's close.
The import check in poe lint reached Core's cross-SDK test script through the submodule, like mypy and basedpyright did.
Each connect builds its own service and store, and the tests rely on that, so the comment shouldn't call it process-wide.
The Core review fixes add the topic flag to the append script, keep stages on a NotFound completion and cap reads. Only proto comments and the envelope's Ruby package changed, so the regenerated files differ in docstrings.
C5b 5ae0ae71 only explains why a refused promotion is retried, so the final pin matches the Brook Core top.
moetemp
marked this pull request as draft
October 12, 2026 06:58
Core now reports a call-input mistake apart from a store refusal, so lang can raise it as ValueError. The pin also takes upstream Core main.
Core's changelog lost the start of one entry in a merge. The code is the same.
The Core pin moved by hand, so update-core never imported the entries from main's pin to the new one.
Owner
Author
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 changed?
This PR pins Core to the in-process stream service and reaches it from Python through a generated stub.
temporalio/bridge/sdk-corepoints at Core5ae0ae71. It has the output commit, the streams crate with its Redis store, Worker staging and promotion, and theStreamService.temporalio/bridge/src/streams.rsis about 60 lines of pyo3. Eachconnect_stream_storecall builds a store from a serializedStreamStoreConfigon the client's connection.scripts/gen_bridge_client.pygenerates a typedStreamServiceintostreams_generated.py, so no stream call is hand-written. A failed call raisesStreamCallFailurewith the parsedStreamFailure.WorkerConfiggainsstream_store. The payload visitor coversOutputRecord.bodyandOutputClose.result.Why?
The store runtime lives in Core now, so every Core-based SDK binds one copy of it (DD-86). Lang reaches it through one generated stub and one call (DD-88).
How did you test it?
Link to a test plan if any -
tests/bridge/test_stream_store.pyruns on the dev server with Core's memory store.