Repository navigation
Conversation
|
@greptileai review |
[High impact] The updated head appears safe to merge, with no new blocking issues found. SummaryManaged experiments now supervise payloads and release rentals from the remote machine. The client collects final logs and exit codes, or records “Outcome unavailable.”
|
|
@greptileai review |
|
@greptileai review Please review current head |
|
@greptileai review Please review current head 2b1dda7. Both latest findings are fixed: the SQLite data directory and recovery directory are owner-only, recovery files are created 0600, and LOST no longer follows unacknowledged local cancel intent. Regression tests cover existing-directory permission hardening and acknowledged versus unacknowledged cancellation. Current main is integrated. Local checks: 1,155 Rust unit tests, 364 UI tests, clippy, UI build and a runnable CLI build passed. All four prior launch/cancellation/exit-code/live-count issues remain fixed. |
|
@greptileai review The latest finding is fixed: lost runs now enter the ready-wakeup query and send waiting agents an explicit Outcome unavailable notification with partial-local-log guidance. Added store regression plus exact wakeup text coverage; all 20 wakeup tests pass, clippy passes. Earlier capability permissions and cancellation fixes remain. Please review the new current head and report any remaining actionable findings. |
|
@greptileai review Additional capability hardening: public run serialization now removes the rental object. This covers ApiRun responses and StoredRun JSON/SSE from the legacy serve daemon; private SQLite/recovery descriptor serialization is unchanged. Regression test verifies modern and legacy JSON cannot contain the fixture token while the private descriptor retains it. API serialization test, clippy and locked build passed. Lost-run wakeup tests from the prior commit also passed. Please review the exact new head for remaining issues. |
|
@greptileai review Corrected the latest finding: public_backend removes rentalLease, the actual serialized field. The fixture now instantiates BackendDescriptor, sets its typed rental_lease, and uses to_json; both modern ApiRun and legacy StoredRun JSON/SSE are checked for absence of the token while the private descriptor retains it. Reproduced the previous leak using a synthetic rentalLease against the running preview. Corrected regression, clippy and locked build pass. Please review the exact new current head for any remaining actionable findings. |
|
@greptileai review A real RunPod end-to-end connected control found that the async |
Real-provider E2E results (preview service)Tested against service revision 3ef7b14f and client fix 81bf49c using real RunPod CPU instances:
The first healthy-client control exposed an SSH launcher pipe-retention bug; fixed in client 81bf49c and retested live. No service source change was needed. Temporary preview token revoked, test SSH registration removed and local credential state restored. Limits: laptop stayed awake; simulated per-process suspension rather than physical OS sleep. Unpublished remote supervisor staged from reviewed CI artifact; public release installer untested. No live provider-API outage injection. Logs/results remain directly between experiment and user machines. No production deployment or merge performed. |
|
@greptileai review Please review exact updated head 1fea532. Removed the package version bump at user request (no release on merge), pinned the general Linux check to Ubuntu 24.04 LTS after ubuntu-latest migrated to 26.04, and retained supervisor fixture stderr/metadata in timeout diagnostics. No tests disabled or assertions weakened. Full local locked Rust tests, build, clippy and formatting passed, including SSH/Slurm supervisor and logs_cli suites. Rental implementation unchanged from your 5/5 review; real-provider evidence remains on this PR. |
Summary
Managed experiments currently rely on a supervisor on the user's machine to delete their compute. Laptop sleep or SSH failure can strand the rental and continue billing.
Run the payload supervisor on the experiment machine, with a scoped billing capability, 30-second heartbeats and five-minute expiry. Final logs and exit status flow directly to the user machine; release follows its acknowledgment or 60 seconds of billed collection. A released rental whose final outcome was never received becomes “Outcome unavailable.” Standalone instances and other backends retain their existing lifecycle.
Requires companion service #657 and its migration before release. Keeps the existing package version; merging does not trigger a release. The remote supervisor must be included in the next client release before using the normal remote installer. Logs left only on a deleted machine remain best effort and can be lost.
Test plan
Real-provider verification
The connected control collected both log markers and exit code 0, then released about 6 seconds after its 120-second payload ended. Suspended-client and broken-SSH/failing-payload retests released after the 60-second collection window. Killing the remote supervisor with the client suspended triggered the natural five-minute lease expiry. Direct RunPod inventory confirmed all seven test instances absent; a capacity rejection created no instance and incurred zero charges.
The initial connected control exposed an SSH pipe retention bug in the background shell list; fixed by 81bf49c and covered by a captured-pipe regression and fresh live retests. The laptop itself stayed awake. Unpublished remote binary staged from reviewed CI; public release installation and provider-API outage remain untested live. Temporary test credentials revoked/removed.
CI follow-up pins the general Linux check to Ubuntu 24.04 LTS after ubuntu-latest moved to 26.04 and failed in SQLite/supervisor tests. Test timeouts retain fixture supervisor stderr and metadata for diagnosis; no tests are disabled. The service lease protocol is opt-in, so service-first deployment preserves older client behavior. Older clients do not gain the new cleanup guarantees.