Skip to content

feat(runtime): add Python 3.14 and Rust RRT support#8

Open
WenYuLuo wants to merge 3 commits into
inclusionAI:mainfrom
WenYuLuo:agent/python-3.14-runtime
Open

feat(runtime): add Python 3.14 and Rust RRT support#8
WenYuLuo wants to merge 3 commits into
inclusionAI:mainfrom
WenYuLuo:agent/python-3.14-runtime

Conversation

@WenYuLuo

@WenYuLuo WenYuLuo commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

Summary

  • bundle CPython 3.14.6 alongside Python 3.10–3.13
  • register py314 and update the runtime selector
  • upgrade uv because the previous pin cannot resolve CPython 3.14.6
  • install the checksum-pinned openYuanRong 0.9.2 RRT binary
  • register the RRT-backed rust service
  • use OPEN_YR_VERSION for both the Python SDK and RRT download URL
  • route /api/sandbox and the RRT /direct fast path through Traefik
  • keep Helm and standalone Traefik sandbox routes covered by regression tests

Why uv changes

The previous uv==0.7.13 pin fails with:

error: No download found for request: cpython-3.14.6-linux-x86_64-gnu

uv==0.11.32 resolves and installs the pinned CPython 3.14.6 runtime. The upgrade is therefore required for the new managed interpreter rather than being an unrelated dependency refresh.

Version alignment

The RRT URL is built as:

${RRT_RUNTIME_BASE_URL}/${OPEN_YR_VERSION}/linux/amd64/rrt-runtime-amd64

With OPEN_YR_VERSION=0.9.2, both openyuanrong_sdk and the RRT binary use release 0.9.2. The artifact was downloaded and its pinned SHA-256 was verified.

Traefik routing

Both Helm and standalone deployments now register:

  • PathPrefix(/api/sandbox) on the frontend control router
  • a priority-100 router for PathPrefix(/direct/) || Path(/direct)

The /direct router targets the frontend rather than a dynamic sandbox service, allowing the frontend to resolve the sandbox and proxy the RRT fast path safely.

Validation

  • make sdk-check: 57 tests passed; Ruff and mypy passed
  • make deploy-script-check, including two Traefik route regression tests
  • helm lint with Traefik enabled
  • rendered and parsed Helm routes with frontend enabled and disabled
  • generated and parsed the standalone Traefik dynamic YAML
  • reproduced the uv 0.7.13 CPython 3.14.6 resolution failure
  • built the combined runtime-rootfs target using RRT 0.9.2
  • verified the RRT SHA-256 and executable bit
  • imported runtime dependencies under Python 3.10–3.14
  • validated both rrt and py314 service definitions
  • built the complete EROFS runtime image; build-time fsck.erofs passed
  • verified remote CPython 3.14.6 at /opt/python3.14 on the validation cluster
  • ran the maintained Sandbox SDK E2E from a Python 3.14.6 client
  • restored the validation cluster and confirmed all core workloads Ready

All commits use conventional subjects, prose bodies, DCO sign-offs, and commit-message lines no longer than 72 characters.

WenYuLuo added 2 commits July 26, 2026 20:39
Bundle CPython 3.14.6 in the shared runtime rootfs and register the
matching openYuanRong service and bootstrap selection.

Upgrade uv from 0.7.13 to 0.11.32 because the older release cannot
resolve the managed CPython 3.14.6 download. Advertise Python 3.14 in
SDK metadata and repository guidance.

Signed-off-by: robbluo <luo1442@gmail.com>
Ship the pinned openYuanRong RRT runtime in the shared EROFS rootfs and
register an RRT-backed service for Rust workloads.

Build the RRT download URL from OPEN_YR_VERSION. This keeps the runtime
binary and Python SDK on the same openYuanRong release. Keep the binary
checksum pinned and verify it during the image build.

Signed-off-by: robbluo <luo1442@gmail.com>
@WenYuLuo
WenYuLuo force-pushed the agent/python-3.14-runtime branch from e7b7e6c to 1a7f401 Compare July 26, 2026 12:39
@WenYuLuo
WenYuLuo marked this pull request as ready for review July 26, 2026 13:18
Route sandbox control API calls under /api/sandbox to the frontend.
Add a high-priority /direct router for the RRT fast path in both Helm
and standalone deployments.

Run route consistency tests as part of the deployment script check so
the two Traefik configurations cannot drift silently.

Signed-off-by: robbluo <luo1442@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant