conductor-oss / conductor-oss/ruby-sdk

Missing TaskType constants and DSL methods: NOOP, EXCLUSIVE_JOIN, AGENT, GET_AGENT_CARD, CANCEL_AGENT, PULL_WORKFLOW_MESSAGES

Open
#25 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Ruby
Stars
1
Forks
0
PR merge metrics
No merged PRs in 30d

Description

## Summary

Several Conductor server task types are missing from the Ruby SDK — either absent from `TaskType` constants, missing a DSL method in `workflow_builder.rb`, or both.

Tested against: **Conductor OSS 3.32.0-rc.9**

## Missing

| Task Type | Constant | DSL method | Notes |
|-----------|---------|-----------|-------|
| `NOOP` | ✗ | ✗ | No-op task; completes immediately. Core OSS type. |
| `EXCLUSIVE_JOIN` | ✓ | ✗ | Constant exists in `task_type.rb`; no `exclusive_join()` method; `defaultExclusiveJoinTask` unreachable. |
| `AGENT` | ✗ | ✗ | New in Conductor OSS 3.32.0-rc.9 (server PR #1288). |
| `GET_AGENT_CARD` | ✗ | ✗ | New in 3.32.0-rc.9. |
| `CANCEL_AGENT` | ✗ | ✗ | New in 3.32.0-rc.9. |
| `PULL_WORKFLOW_MESSAGES` | ✗ | ✗ | |

## Server Acceptance

NOOP and EXCLUSIVE_JOIN accepted by Conductor OSS 3.32.0-rc.9 — confirmed in Java SDK (#130, #133) and JavaScript SDK (#136, #137) audits against the same server. AGENT confirmed in JavaScript SDK audit (#140).

## Suggested Additions

```ruby
# task_type.rb
NOOP = 'NOOP'
AGENT = 'AGENT'
GET_AGENT_CARD = 'GET_AGENT_CARD'
CANCEL_AGENT = 'CANCEL_AGENT'
PULL_WORKFLOW_MESSAGES = 'PULL_WORKFLOW_MESSAGES'

# workflow_builder.rb
def noop(task_name = 'noop', **options)
add_task(task_name, TaskType::NOOP, {}, options)
end

def exclusive_join(task_name, join_on:, default_join_on: [], **options)
add_task(
task_name,
TaskType::EXCLUSIVE_JOIN,
{},
{ join_on: join_on, default_exclusive_join_task: default_join_on }.merge(options)
)
end
```

DSL methods for AGENT, GET_AGENT_CARD, CANCEL_AGENT, PULL_WORKFLOW_MESSAGES should follow once the agent task API stabilizes.

Related: Java SDK [#130](https://github.com/conductor-oss/conductor-java-sdk/issues/130) (NOOP), Go SDK [#265](https://github.com/conductor-oss/go-sdk/issues/265), C# SDK [#160](https://github.com/conductor-oss/csharp-sdk/issues/160)

Contributor guide

Open the contributing guide

Research direction

Start by reading task_type.rb and workflow_builder.rb, then compare existing task constants and DSL methods with the requested NOOP and EXCLUSIVE_JOIN additions. Verify the builder options match Conductor’s accepted names and inspect the existing test layout before adding coverage. Done means the missing constants and stable DSL methods are supported; agent DSL methods remain deferred until that API stabilizes.

Written by the indexing model from the issue text.

Assessment

Tech stack
ruby
Domain
backend-api-design, developer-experience
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
67/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.