Add Runloop rollout processor integration#454
Conversation
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 2 potential issues.
Reviewed by Cursor Bugbot for commit d0d1ce2. Configure here.
| poll_interval=self._poll_interval, | ||
| timeout_seconds=self._timeout_seconds, | ||
| include_payloads=self._include_payloads, | ||
| ) |
There was a problem hiding this comment.
Partial setup leaks Devboxes
Medium Severity
setup only skips work when _remote_processor is set, so a failed run can leave an owned Devbox running and a retry can call create_from_blueprint_id again. @evaluation_test calls setup before its acleanup finally, so startup errors (e.g. TimeoutError from _wait_for_server_startup) often never trigger cleanup.
Reviewed by Cursor Bugbot for commit d0d1ce2. Configure here.
| response.read(1) | ||
| return | ||
| except urllib.error.HTTPError: | ||
| return |
There was a problem hiding this comment.
Startup treats HTTP errors ready
Medium Severity
_wait_for_server_startup returns immediately on any urllib.error.HTTPError, including 502/503 from the Runloop tunnel before the rollout server responds. Setup can finish while the app is still down, so later /init calls fail after the startup wait already succeeded.
Reviewed by Cursor Bugbot for commit d0d1ce2. Configure here.
ScopeRunloop rollout processor integration, focused on Cursor Bugbot findings and the Runloop blueprint setup path. Fixed
Tests added
Verification:
Live Runloop smoke still not run because FIREWORKS_API_KEY and RUNLOOP_BLUEPRINT_ID are not set in this environment. |
Use the correct blueprint build_context type and add narrowing assertions in new test coverage. Co-authored-by: Cursor <cursoragent@cursor.com>
Keep the branch focused on Runloop rollout changes only. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Verification:
ScopeAdd Runloop rollout processor integration (from PR #454 title/body). Fixed
Tests added
Skipped / deferred
|


Summary
Notes
Verification
Live smoke test not run: FIREWORKS_API_KEY and RUNLOOP_BLUEPRINT_ID are not set in this environment.
Note
Low Risk
New optional integration behind an extra dependency; rollout execution still delegates to RemoteRolloutProcessor without changing default processors.
Overview
Adds Runloop as an optional rollout path: a new
RunloopRolloutProcessorprovisions or attaches to a Runloop Devbox, tunnels a user-supplied server command, then hands off to the existingRemoteRolloutProcessorso/initand Fireworks tracing behavior stay unchanged.Install via
eval-protocol[runloop](runloop-api-client). Public exports,.env.example, integration docs, unit tests, and a minimal FastAPI example (optional live smoke whenRUNLOOP_BLUEPRINT_IDis set) document the flow. Devboxes created from a blueprint can shut down on cleanup; attached devboxes are left running.Reviewed by Cursor Bugbot for commit d0d1ce2. Bugbot is set up for automated code reviews on this repo. Configure here.