Repository navigation
Conversation
A Stream closes only on a close call. Each script checks `closed` where the auto close step did, so a create on a closed Stream still answers closed, an append is refused and a close answers already.
A read writes nothing again, so a Reader needs read access only.
The revert touches only sdk-core, which the crate doesn't use.
…-auto-close The native Store sends no auto close and has no `Store::auto_close`, and a Workflow create still sends `close_with_run`. The crate pins sdk-rust Jetty c10.
A Local Activity writes before its Workflow Task commits, so its close could outlive a failed task and fail the retried task's create.
A filtered read waited for a new append though entries up to the newest one were never scanned, and max_records 1 made one Store call per entry.
The withdraw-only batch failed on such a Stream, so a retry that only reads it failed for good before user code ran.
A user with the documented ACLs couldn't connect or run the scripts. A test now runs each role with exactly the listed commands.
Redis and memory refuse an empty id. Only the native frontend assigns one.
The new c8 commits touch only the Core CHANGELOG and Core tests, which the crate doesn't use.
…-auto-close Takes the s23 review fixes. The new tests use the Jetty Store calls, and the crate pins sdk-rust Jetty c10.
The server keeps a sequence as an exact integer, so only the service refuses one past 2^53 - 1 there.
The server scans an empty filtered page to the end, while Redis and memory stop at the scan cap.
1 of 3 tasks
1 of 3 tasks
1 of 3 tasks
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.
This PR merges Brook #41 into the Jetty crate and removes the auto close from the native Store. It also fixes the native findings of an independent review.
Jetty's crate is Brook's crate plus a native Store, which calls the Stream service of the Temporal server. The SDK review dropped auto close at every layer, and the server dropped it in moetemp/temporal#102.
What changed?
auto_closeor sends it to the server, and itsStore::auto_closeis gone. A Workflow create still sendsclose_with_run.Review fixes on native.
FAILED_PRECONDITIONwith no Stream details or reason prefix maps toStorage. Every Stream error of the server has details, so only framework errors get this mapping.stream_already_existserror, which names the stored Retention, not the requested one.i64, so it would accept it.The PR also pins the Jetty Core, moetemp/sdk-rust#210, at
2de24aef.Please note that the native Store still doesn't send
defer_withdrawalor a close'swithdraw_run.Why?
The review found that native writes used the connection's deadline, and that a conflict named the wrong Retention. It also found that framework errors could map to a Stream reason. The merge of #41 applies the Brook crate fixes to Jetty.
How did you test it?
On
abd8955b,cargo test --workspacepasses on memory, on Redis 8.10.1 standalone and as a cluster, and on native against a server built from moetemp/temporal#103.tests/native_calls.rschecks the deadline and the create conflict on a fake server.cargo fmt --checkand clippy with-D warningspass. The two commits after it, a merge of the comment pass of #41 and this PR's comment pass, change only comments and docs. They pass the same suites on memory and Redis. The sdk-streams fork CI passes on the head. It has no native lane.The superproject branch
temporalio/internal-ai-prototypes2026/10/ai198-streamspinsabd8955b, the tested commit.