Skip to content

feat(cli): serve the pre-warmed runtime over uipath-ipc alongside HTTP [ROBO-5779]#1809

Draft
eduard-dumitru wants to merge 1 commit into
mainfrom
feat/ROBO-5779-server-ipc-transport
Draft

feat(cli): serve the pre-warmed runtime over uipath-ipc alongside HTTP [ROBO-5779]#1809
eduard-dumitru wants to merge 1 commit into
mainfrom
feat/ROBO-5779-server-ipc-transport

Conversation

@eduard-dumitru

@eduard-dumitru eduard-dumitru commented Jul 13, 2026

Copy link
Copy Markdown

Adds a uipath-ipc named-pipe transport to uipath server, served alongside the existing HTTP-over-socket path (ROBO-5779).

What

  • uipath server serves both channels concurrently: HTTP (aiohttp over a Unix socket, or TCP on Windows) and — when --server-socket is given — a uipath-ipc named pipe. HTTP is never torn down; the IPC pipe name is the socket's basename, so the executor spawns the server the same way regardless of channel.
  • IPC hosts IPythonRuntimeServer (StartJob / StopJob) via NamedPipeServerTransport; both edges run jobs through one env/cwd-isolated core (_run_command_isolated).
  • Contract DTOs are typed dataclasses (PythonRunRequest / PythonRunResult) mirroring the .NET side. StopJob returns a bool so CoreIPC treats it as request/response, not fire-and-forget — cancellation itself is a no-op for now (Phase 1).
  • Adds uipath-ipc>=2.5.1 (internal Azure Artifacts feed for now — see the pyproject note; a public-PyPI uipath-ipc release is a prerequisite for a public pip install uipath).
  • Tests: test_server_ipc.py (IPC server) and test_server_transport.py (channel composition / _run_server arg resolution / CLI wiring).

Notes

  • Which transport a given job uses is decided on the .NET Handler side (the PythonRuntimePreferIpc FPS feature flag, Low-Code only) — separate PR in UiPath/hdens.
  • Rebased onto current main; pending green CI (cross-tests + Sonar) before ready.

🤖 Generated with Claude Code

@github-actions github-actions Bot added test:uipath-langchain Triggers tests in the uipath-langchain-python repository test:uipath-runtime test:uipath-integrations labels Jul 13, 2026
…P [ROBO-5779]

`uipath server` serves an HTTP channel and, when --server-socket is given, a
uipath-ipc named-pipe channel concurrently — both behind one env/cwd-isolated job
core. Adds the IPythonRuntimeServer contract (StartJob/StopJob) with typed
PythonRunRequest/PythonRunResult dataclasses mirroring the .NET side, plus tests.
Adds uipath-ipc as a dependency.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@eduard-dumitru
eduard-dumitru force-pushed the feat/ROBO-5779-server-ipc-transport branch from 72b8383 to 952d047 Compare July 21, 2026 11:08
@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
80.2% Coverage on New Code (required ≥ 90%)

See analysis details on SonarQube Cloud

@eduard-dumitru eduard-dumitru changed the title feat(cli): add opt-in uipath-ipc transport to uipath server [ROBO-5779] feat(cli): serve the pre-warmed runtime over uipath-ipc alongside HTTP [ROBO-5779] Jul 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

test:uipath-integrations test:uipath-langchain Triggers tests in the uipath-langchain-python repository test:uipath-runtime

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant