Repository navigation
Release v1.1.20 - #99
roeai-release-bot[bot] wants to merge 1 commit into
Conversation
[Medium impact] The changes reach callers using the Roe SDK workflow feature. Do not merge until the SDK loads, workflow definitions can be read, and waiting runs avoid the timeout-and-retry failure.
|
| from roe._generated.api.sdk import ( | ||
| workflows_create, | ||
| workflows_destroy, | ||
| workflows_list, | ||
| workflows_partial_update, | ||
| workflows_retrieve, | ||
| workflows_runs_batch_create, | ||
| workflows_runs_create, | ||
| workflows_runs_list, | ||
| workflows_runs_retrieve, | ||
| workflows_versions_create, | ||
| workflows_versions_list, | ||
| workflows_versions_retrieve, | ||
| workflows_versions_set_current_create, |
There was a problem hiding this comment.
workflows.py imports endpoints from roe._generated.api.sdk, but the new files live under roe._generated.api.workflows. Also, workflows_create.py and workflows_versions_create.py are missing entirely. The registry loads this facade when RoeClient loads, so even from roe import RoeClient raises ImportError, including for users who never use workflows.
Fix the endpoint paths in openapi/wrappers.yml and regenerate all required endpoints.
Knowledge Base Used:
| def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: | ||
| from ..models.agent_step import AgentStep | ||
| from ..models.approval_block import ApprovalBlock | ||
| from ..models.connection_step import ConnectionStep |
There was a problem hiding this comment.
Workflow definitions cannot be read
WorkflowDefinition.from_dict() imports ConnectionStep, but connection_step.py is missing. AgentStep also imports the missing input_mapping.py. Any workflow version with a non-null definition therefore raises ModuleNotFoundError, even when it contains only agent steps. A successful server response becomes an error instead of a usable workflow.
Generate and include both models. Fixing the facade imports alone will not make workflow retrieval work.
Knowledge Base Used: Generated API integration
| resp = request_json( | ||
| self._raw, | ||
| workflows_runs_create, | ||
| workflow_id, | ||
| body=body, | ||
| organization_id=self._org_id, | ||
| ) |
There was a problem hiding this comment.
run(wait=True) lets the server wait for 60 seconds but keeps the client's default timeout at exactly 60 seconds. A run that reaches the full wait window can time out before its response arrives. RoeRetryTransport then retries the same POST up to three times, after the server may already have started the run.
Give this call enough time to receive the response and prevent an uncertain run request from being replayed without protection against duplicate runs.
Knowledge Base Used: Request transport and pagination
| def list( | ||
| self, | ||
| page: int | None = None, | ||
| page_size: int | None = None, | ||
| search: str | None = None, | ||
| ) -> PaginatedWorkflowList: |
There was a problem hiding this comment.
WorkflowsAPI.list() omits the documented agent_id filter. The API describes this filter as the way to find a workflow from its deprecated agent ID, but client.workflows.list(agent_id=...) raises TypeError. Callers must use the raw endpoint for this lookup.
Add the optional filter to openapi/wrappers.yml and regenerate the facade.
0fa82ae to
7c72661
Compare
This PR updates the Python SDK for release
1.1.20.Generated from:
1-1-35f5f02b5949e4136ba6da76b68f632d65095a171