feat(cli): carry ResumeVersion and ForceStop on the IPC job DTOs [ROBO-5779] - #1838
Merged
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR updates the uipath CLI’s optional IPC runtime channel to match the updated uipath-ipc/.NET contract by introducing DTOs that carry ResumeVersion and ForceStop, and by renaming StartJob → RunJob to reflect the call’s “await to completion” semantics.
Changes:
- Renamed the IPC job execution method from
StartJobtoRunJoband updated result/DTO types accordingly. - Added IPC DTO fields (
ResumeVersion,ForceStop) to ensure the Python runtime receives the full stop/run identifiers and flags. - Expanded IPC tests to validate both DTO binding tolerance and actual field transit via a spy IPC server.
Reviewed changes
Copilot reviewed 4 out of 5 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| packages/uipath/uv.lock | Updates the locked uipath package version to 2.13.21. |
| packages/uipath/pyproject.toml | Bumps the uipath package version to 2.13.21. |
| packages/uipath/src/uipath/_cli/cli_server.py | Re-exports the renamed IPC contract types (RunJob*, StopJobRequest). |
| packages/uipath/src/uipath/_cli/cli_server_ipc.py | Implements the new IPC contract/DTOs and logs run identity using (JobKey, ResumeVersion). |
| packages/uipath/tests/cli/test_server_ipc.py | Updates IPC tests for RunJob/StopJob DTOs and adds spy-server assertions for field transit. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
eduard-dumitru
force-pushed
the
feat/ROBO-5779-runjob-stopjob-dtos
branch
from
July 31, 2026 14:13
c9a7753 to
cdc70a7
Compare
radu-mocanu
approved these changes
Jul 31, 2026
…BO-5779] The .NET handler tracks a run as (JobKey, ResumeVersion) — a resumed job reuses the same JobKey with an incremented version — but neither field ever reached the Python runtime, so StopJob could not tell one run of a job from another. The handler also holds forceStop and was discarding it. Rename StartJob to RunJob: it awaits the job and returns its result rather than dispatching it, so the old name described the wrong semantics. BREAKING CHANGE: the uipath-ipc contract changed. StartJob(PythonRunRequest) is now RunJob(RunJobRequest) and StopJob(jobKey) is now StopJob(StopJobRequest). Peers on the previous contract must be updated; the .NET side lands alongside. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
eduard-dumitru
force-pushed
the
feat/ROBO-5779-runjob-stopjob-dtos
branch
from
July 31, 2026 15:05
cdc70a7 to
5c5b6e9
Compare
|
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.



The .NET handler tracks a run as (JobKey, ResumeVersion) — a resumed job reuses the same JobKey with an incremented version — but neither field ever reached the Python runtime, so StopJob could not tell one run of a job from another. The handler also holds forceStop and was discarding it.
Rename StartJob to RunJob: it awaits the job and returns its result rather than dispatching it, so the old name described the wrong semantics.
BREAKING CHANGE: the uipath-ipc contract changed. StartJob(PythonRunRequest) is now RunJob(RunJobRequest) and StopJob(jobKey) is now StopJob(StopJobRequest). Peers on the previous contract must be updated; the .NET side lands alongside.