Skip to content

chore: require uipath-runtime>=0.13.1 for the output-arguments split - #1858

Merged
eduard-dumitru merged 2 commits into
mainfrom
feat/output-args-memory-optimization
Aug 13, 2026
Merged

chore: require uipath-runtime>=0.13.1 for the output-arguments split#1858
eduard-dumitru merged 2 commits into
mainfrom
feat/output-args-memory-optimization

Conversation

@eduard-dumitru

@eduard-dumitru eduard-dumitru commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Why

uipath-runtime 0.13.1 added runtime.splitOutputArguments (uipath-runtime-python#159): when set, a job's output arguments are written to their own file and the result envelope carries an outputArgumentsFilePath pointer instead of the inline output value, so a consumer can stream the payload instead of materializing it. In Serverless that is the difference between an ~80 MB job completing and OOMing the handler.

An older runtime does not recognise the key and silently ignores it — the payload stays inline and the consumer gets exactly the blowup the split exists to avoid, with no error to explain it. Raising the floor turns that silent no-op into a resolution failure.

What

  • uipath-runtime>=0.13.0>=0.13.1
  • uipath 2.14.2 → 2.14.3
  • uv.lock regenerated (resolves uipath-runtime 0.13.1)

No source changes.

Also here: a Safe Chain exemption (3665a522)

Safe Chain 403'd the eight jobs that install uipath — the six Test (uipath, …) plus Lint uipath and the Lint gate — because 0.13.1 is under 48h old. pyproject.toml already exempts uipath-runtime from uv's own exclude-newer window, but Safe Chain runs outside the project and cannot see that. The two workflows now set SAFE_CHAIN_MINIMUM_PACKAGE_AGE_EXCLUSIONS: uipath-runtime, as uipath-agents-python and cli#2195 already do.

Scope, read from the upstream source and confirmed by running it:

  • it skips only the age gate — malware blocking runs earlier and independently, verified by installing Safe Chain's malware test package with that package itself excluded and still getting blocked
  • env exclusions are unioned with the config file, so this can add uipath-runtime but never remove anyone else's protection
  • the match is exact plus PEP 503 variants, so it covers uipath_runtime and nothing beyond

84d5d0d9 (bump only) failed on 403 … minimum package age (uipath_runtime@0.13.1); 3665a522 adds nothing but the two env: blocks and CI is green. Kept as its own commit so it can be dropped if you would rather wait the window out.

Keeping it in pyproject.toml instead was tried on this branch and does not work — same eight jobs, same 403. Safe Chain shims uv and blocks on the wheel download, so it never reads [tool.uv.exclude-newer-package]; its own error message names the env var as the remedy. That is why uipath-agents-python carries both: pyproject for uv's window, yml for Safe Chain's.

Testing

2375 passed, 1 skipped; uv lock --check, ruff and full mypy (324 files, src + tests) all clean.

Chain

This is 2 of 4. Each link can only open once the previous one publishes.

  1. uipath-runtime-python — the split itself (published as 0.13.1)
  2. this PR — raise the floor so the key is guaranteed present
  3. uipath-agents-python — three ceilings currently exclude both new versions
  4. hdens — consume the pointer and stream the file into the blob upload

Copilot AI lite review requested due to automatic review settings August 12, 2026 14:39

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR updates the uipath package’s dependency floor to require uipath-runtime>=0.13.1 (ensuring runtime.splitOutputArguments is available and not silently ignored), and bumps the uipath package patch version accordingly. It fits into the monorepo by adjusting the main SDK/CLI package’s published metadata and lockfile to align with the newer runtime behavior.

Changes:

  • Bump uipath version 2.14.22.14.3.
  • Raise uipath-runtime requirement >=0.13.0,<0.14.0>=0.13.1,<0.14.0.
  • Regenerate uv.lock to resolve uipath-runtime 0.13.1.

Reviewed changes

Copilot reviewed 1 out of 2 changed files in this pull request and generated no comments.

File Description
packages/uipath/pyproject.toml Bumps uipath version and raises the minimum uipath-runtime version to 0.13.1.
packages/uipath/uv.lock Updates the lockfile to reflect uipath 2.14.3 and resolve uipath-runtime 0.13.1.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

0.13.1 adds runtime.splitOutputArguments, which writes a job's output arguments
to their own file and leaves an outputArgumentsFilePath pointer in the result
envelope. Raising the floor guarantees the key is understood rather than silently
ignored by an older runtime, which would leave the payload inline and hand the
consumer the memory blowup the split exists to avoid.

Version-only change on top; no source touched.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@eduard-dumitru
eduard-dumitru force-pushed the feat/output-args-memory-optimization branch from b4377de to 84d5d0d Compare August 13, 2026 07:02
pyproject.toml already exempts uipath-runtime from uv's own 2-day
exclude-newer window ([tool.uv.exclude-newer-package]). Safe Chain runs outside
the project and does not see that, so a freshly published uipath-runtime is
blocked for being too new while the release train promotes it across repos.

Skips only the age gate; malware and every other Safe Chain check still run.
Same approach as uipath-agents-python and UiPath/cli#2195.

Separate commit so it can be dropped independently of the version bump.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@eduard-dumitru
eduard-dumitru force-pushed the feat/output-args-memory-optimization branch from f4e3125 to 3665a52 Compare August 13, 2026 08:45
@eduard-dumitru
eduard-dumitru force-pushed the feat/output-args-memory-optimization branch from 90db46b to 3665a52 Compare August 13, 2026 10:04
@sonarqubecloud

Copy link
Copy Markdown

@eduard-dumitru
eduard-dumitru merged commit 7544dbb into main Aug 13, 2026
201 of 202 checks passed
@eduard-dumitru
eduard-dumitru deleted the feat/output-args-memory-optimization branch August 13, 2026 10:33
eduard-dumitru added a commit that referenced this pull request Aug 13, 2026
… publish uipath 2.14.4 (#1861)

ci: exempt uipath-runtime from the Safe Chain age gate when building
#1858 added this to lint-packages.yml and test-packages.yml, but the CD path
builds through build-package.yml, which never got it. The post-merge run failed, so uipath 2.14.3 did not publish.

Skips only the age gate; malware and every other Safe Chain check still run.


- 2.14.3 never reached PyPI — its CD build died on the Safe Chain age gate that
the previous commit fixes. Publishing under a fresh version rather than
reusing 2.14.3 so that merging this PR touches packages/uipath/pyproject.toml
and therefore triggers CD on its own, instead of needing a manual dispatch.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants