Skip to content

Add Stand Alone Nexus Operation Support#430

Open
Quinn-With-Two-Ns wants to merge 1 commit intotemporalio:mainfrom
Quinn-With-Two-Ns:stand-alone-nexus-operations
Open

Add Stand Alone Nexus Operation Support#430
Quinn-With-Two-Ns wants to merge 1 commit intotemporalio:mainfrom
Quinn-With-Two-Ns:stand-alone-nexus-operations

Conversation

@Quinn-With-Two-Ns
Copy link
Copy Markdown
Contributor

@Quinn-With-Two-Ns Quinn-With-Two-Ns commented May 9, 2026

What was changed

Add Stand Alone Nexus Operation Support

Why?

So users can stand Nexus Operations outside of workflows

Checklist

  1. Closes

  2. How was this tested:
    Integration tests using the latest dev server

  3. Any docs updates needed?

Note for reviewers: Just like Nexus Operations in workflow in Ruby we don't support calling by service interface since that has not been designed yet.


Note

Medium Risk
Adds new client-facing APIs and interceptor/RPC plumbing for starting and managing standalone Nexus operations, which can affect core client behavior and error handling. Risk is mitigated by being additive and covered by new integration tests, but it depends on server-side Nexus support and long-polling behavior.

Overview
Adds experimental standalone Nexus operations to the Ruby SDK client.

Introduces Client#create_nexus_client plus operation lifecycle APIs (start_operation/execute_operation, NexusOperationHandle#result/describe/cancel/terminate) and visibility helpers (list_nexus_operations, list_nexus_operation_page, count_nexus_operations). This includes new enums for ID reuse/conflict policies and new errors for already-started and failed operations.

Wires the feature through the client interceptor layer and internal gRPC implementation (including polling/long-poll retry semantics), adds RBS signatures, updates README docs, and adds integration tests; the test harness is updated to run a dev server build/config with standalone Nexus enabled.

Reviewed by Cursor Bugbot for commit 73807ea. Bugbot is set up for automated code reviews on this repo. Configure here.

@Quinn-With-Two-Ns Quinn-With-Two-Ns requested a review from a team as a code owner May 9, 2026 16:18
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 73807ea47b

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

end
rescue Error::RPCError => e
# Retry on deadline exceeded (long-poll timeout), propagate all others including cancellation
raise unless e.code == Error::RPCError::Code::DEADLINE_EXCEEDED
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Respect RPC deadlines when polling Nexus results

NexusOperationHandle#result currently retries forever on every DEADLINE_EXCEEDED, which means a caller-provided rpc_options.timeout can never terminate the wait and the call can hang indefinitely for long-running/stuck operations. This differs from other client wait APIs that surface deadline/cancel errors, so users who set explicit time limits will not get the expected timeout behavior.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant