Skip to content

Add Fystash cloud runtime provider (ContainerProvider)#1014

Open
fystash wants to merge 1 commit into
huggingface:mainfrom
fystash:add-fystash-provider
Open

Add Fystash cloud runtime provider (ContainerProvider)#1014
fystash wants to merge 1 commit into
huggingface:mainfrom
fystash:add-fystash-provider

Conversation

@fystash

@fystash fystash commented Jul 27, 2026

Copy link
Copy Markdown

Summary

Adds Fystash as an OpenEnv ContainerProvider (FystashProvider) and lists it on the Runtime Providers docs table next to Daytona / Modal / ACA.

Fystash runs warm Firecracker rooms. This provider:

  1. Creates a room with template_id=docker (default)
  2. docker pull + docker run of a registry OpenEnv server image
  3. Exposes port 8000 via Fystash preview URL as base_url
  4. Polls {base_url}/health in wait_for_ready

Usage

export FYSTASH_API_KEY=key-…   # https://fystash.ai/signup
export OPENENV_IMAGE=your-org/echo-env:latest
pip install 'openenv[fystash]'
PYTHONPATH=src python examples/fystash_echo_env.py
from openenv.core.containers.runtime.fystash_provider import FystashProvider

provider = FystashProvider(image="your-org/echo-env:latest")
base_url = provider.start_container()
provider.wait_for_ready(base_url, timeout_s=300)

Honesty / v1 scope

  • Registry image only — no image_from_dockerfile / snapshot build (same honesty bar as our Harbor first cut)
  • Preview URL path; full WebSocket//ws EnvClient sessions should be validated before dropping “experimental”
  • Nested-KVM production topology (topology=nested)

Links

Test plan

  • FYSTASH_API_KEY + published OpenEnv server image → start_container/health 200 → stop_container
  • Reject dockerfile: / snapshot: with clear ValueError
  • Docs table lists FystashProvider after merge

Made with Cursor

Register FystashProvider for warm Firecracker rooms via docker template + preview URL, and list it on the runtime-providers docs. v1 is registry-image only (no Dockerfile build).

Co-authored-by: Cursor <cursoragent@cursor.com>

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Want higher recall? High effort reviews run extra passes and find more bugs. A team admin can switch effort levels in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 617dd4f. Configure here.

self._api = api
room_id = _sanitize_room_id("oe")
self._room_id = room_id
guest_cid = _guest_cid(room_id)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Double start orphans Fystash room

High Severity

start_container overwrites _api and _room_id without checking for an active room. A second start before stop_container/close abandons the previous Firecracker room so it is never destroyed, leaking billable cloud resources. Peer cloud providers (ModalProvider, ACASandboxProvider, HFSandboxProvider) raise in this case for the same reason.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 617dd4f. Configure here.

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.

2 participants