Update Rust crate temporalio-client to 9f83b7e#8415
Conversation
PR SummaryMedium Risk Overview The resolved client now pulls Reviewed by Cursor Bugbot for commit 08c770e. Bugbot is set up for automated code reviews on this repo. Configure here. |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.
🤖 Augment PR SummarySummary: This PR updates the Rust dependency on Changes:
Technical Notes: Only the 🤖 Was this summary useful? React with 👍 or 👎 |
| tarpc = { version = "0.36.0", default-features = false, git = "https://github.com/google/tarpc", rev = "f55f36d2d876b1868cfcf52f41d0456a60cf726c" } | ||
| temporalio-client = { git = "https://github.com/temporalio/sdk-core", rev = "231e21c" } | ||
| temporalio-client = { git = "https://github.com/temporalio/sdk-core", rev = "7ecb7c0542de829de7003b40eca2f95befeb0eae" } | ||
| temporalio-common = { git = "https://github.com/temporalio/sdk-core", rev = "231e21c" } |
There was a problem hiding this comment.
temporalio-client is bumped to a newer sdk-core revision, but temporalio-common is still pinned to the older 231e21c rev. Since both come from the same upstream repo, it’s worth double-checking that this mixed-rev combination is intentional/compatible (otherwise consider updating them in lockstep).
Severity: medium
🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #8415 +/- ##
=======================================
Coverage 59.61% 59.61%
=======================================
Files 1366 1366
Lines 132649 132687 +38
Branches 6044 6044
=======================================
+ Hits 79078 79105 +27
- Misses 52637 52648 +11
Partials 934 934
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Merging this PR will degrade performance by 15.38%
|
| Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|
| ❌ | bit_matrix/dense/iter_row[64] |
140.8 ns | 170 ns | -17.16% |
| ❌ | bit_matrix/dense/iter_row[200] |
185.8 ns | 215 ns | -13.57% |
Tip
Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.
Comparing deps/rs/temporalio-client-digest (08c770e) with main (98dd31f)2
Footnotes
-
24 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports. ↩
-
No successful run was found on
main(a07be79) during the generation of this report, so 98dd31f was used instead as the comparison base. There might be some changes unrelated to this pull request in this report. ↩
temporalio-client to 7ecb7c0temporalio-client to fb14d9c
ee5a29e to
85c6326
Compare
85c6326 to
6f5efb9
Compare
temporalio-client to fb14d9ctemporalio-client to 20a6817
temporalio-client to 20a6817temporalio-client to 12c656f
temporalio-client to dc127f5temporalio-client to 21e03c2
3ff08d2 to
2ee828a
Compare
temporalio-client to 21e03c2temporalio-client to 2014f31
2ee828a to
e3b3db1
Compare
e3b3db1 to
d43fd0b
Compare
temporalio-client to 2014f31temporalio-client to a0caec4
temporalio-client to a0caec4temporalio-client to 9d678b9
d43fd0b to
63c8ea8
Compare
temporalio-client to 9d678b9temporalio-client to 78a94de
| tachyonix = { version = "0.3.1", default-features = false } | ||
| tarpc = { version = "0.36.0", default-features = false, git = "https://github.com/google/tarpc", rev = "f55f36d2d876b1868cfcf52f41d0456a60cf726c" } | ||
| temporalio-client = { git = "https://github.com/temporalio/sdk-core", rev = "231e21c" } | ||
| temporalio-client = { git = "https://github.com/temporalio/sdk-core", rev = "9f83b7e307dc032b31ff3bd3811ef3438106f77a" } |
There was a problem hiding this comment.
🔴 Only temporalio-client was bumped to rev 9f83b7e (v0.5.0); temporalio-common on the next line is still pinned to rev 231e21c (v0.1.0). Because both crates come from the same sdk-core monorepo and libs/@local/temporal-client/src/ai.rs imports proto types from temporalio_common v0.1.0 while calling WorkflowService::start_workflow_execution from temporalio_client v0.5.0, the workspace no longer compiles — Cargo.lock now contains two coexisting versions of temporalio-common and Rust treats types across the two revs as distinct. Fix by bumping temporalio-common on line 259 to the same rev (9f83b7e307dc032b31ff3bd3811ef3438106f77a) and regenerating the lockfile.
Extended reasoning...
The bug
The workspace declaration in Cargo.toml pins both temporalio-client and temporalio-common to git revisions from the same upstream repo (github.com/temporalio/sdk-core). This PR bumps only the client:
temporalio-client = { git = "https://github.com/temporalio/sdk-core", rev = "9f83b7e307dc032b31ff3bd3811ef3438106f77a" } # v0.5.0
temporalio-common = { git = "https://github.com/temporalio/sdk-core", rev = "231e21c" } # v0.1.0The updated Cargo.lock confirms the split — two distinct temporalio-common packages coexist (0.1.0 at 231e21c and 0.5.0 at 9f83b7e), and hash-temporal-client still depends on the old temporalio-common 0.1.0 while the bumped temporalio-client 0.5.0 transitively pulls in temporalio-common 0.5.0.
Why this breaks compilation
libs/@local/temporal-client/src/ai.rs mixes the two:
// line 6 — resolves to temporalio_client 0.5.0
use temporalio_client::{NamespacedClient, WorkflowService, tonic::IntoRequest as _};
// lines 7-16 — resolves to temporalio_common 0.1.0 (per workspace pin)
use temporalio_common::protos::{
ENCODING_PAYLOAD_KEY, JSON_ENCODING_VAL,
coresdk::IntoPayloadsExt as _,
temporal::api::{
common::v1::{Header, Payload, WorkflowType},
enums::v1::TaskQueueKind,
taskqueue::v1::TaskQueue,
workflowservice::v1::StartWorkflowExecutionRequest,
},
};Rust nominal typing treats items from two different git revisions of the same crate as distinct types, even when the source is byte-identical. So StartWorkflowExecutionRequest from temporalio_common@0.1.0 is a different type than StartWorkflowExecutionRequest from temporalio_common@0.5.0 (which temporalio_client@0.5.0 now expects internally).
Step-by-step proof
ai.rsbuilds aStartWorkflowExecutionRequestusing types imported fromtemporalio_common— the workspace resolves this to v0.1.0 (rev231e21c).- That request is handed to
WorkflowService::start_workflow_execution(...)— a tonic-generated method ontemporalio_clientv0.5.0, whose signature isfn start_workflow_execution<R: IntoRequest<StartWorkflowExecutionRequest_v0_5_0>>(...). - Tonic's blanket
IntoRequestimpl only exists for the request type fromtemporalio_common@0.5.0(the onetemporalio_clientv0.5.0 was compiled against). - The compiler tries to unify
StartWorkflowExecutionRequest_v0_1_0withStartWorkflowExecutionRequest_v0_5_0and fails with an E0308 mismatch on theIntoRequesttrait bound.
Blast radius
hash-temporal-client is a direct dep of hash-graph (the default workspace member) and of libs/@local/graph/{api,store,postgres-store,type-fetcher}, so the whole workspace fails to build.
Fix
Bump line 259 in Cargo.toml to the same rev as the client and regenerate the lockfile:
temporalio-common = { git = "https://github.com/temporalio/sdk-core", rev = "9f83b7e307dc032b31ff3bd3811ef3438106f77a" }After regeneration only one version of temporalio-common should remain in Cargo.lock, and hash-temporal-client will depend on the same rev that temporalio-client was compiled against. Both the cursor bot and augmentcode bot flagged this on the PR as well.
🔬 also observed by cursor
This PR contains the following updates:
231e21c→9f83b7eWarning
Some dependencies could not be looked up. Check the Dependency Dashboard for more information.
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Renovate Bot.