{"id":"agent-ephemeral-ci","slug":"agent-ephemeral-ci","name":"Ephemeral CI runners for agent jobs","shortName":"Agent CI runners","problemStatement":"Spin isolated CPU/GPU sandboxes per CI job to run agent integration tests, tool mocks, and eval suites that need real browsers or kernels.","whenNotTopPick":"Need browser-native sandboxes (E2B), Fly Machines already in mesh, or Upstash Box when GA fits.","categoryIds":["cat-cpu-compute"],"depotPickProviderId":"modal","depotPickRationale":"Serverless GPU/CPU job DX for CI. Confidence: high for Modal; Box still preview.","runnersUpIds":["e2b","fly-machines","daytona","upstash-box"],"weights":{"capabilityFit":0.22,"pricePerformance":0.14,"latencyReliability":0.14,"developerDx":0.28,"privacyPosture":0.08,"lockInRisk":0.06,"maturity":0.08},"methodologyNotes":"Serverless GPU/CPU job DX for CI. Confidence: high for Modal; Box still preview.","tags":["ci","sandbox","serverless","agents"],"depth":{"whenNotToUse":{"text":"Need browser-native sandboxes (E2B), Fly Machines already in mesh, or Upstash Box when GA fits.","source":"editorial `whenNotTopPick` (data/jtbds.json)"},"whenNotToUseReason":null,"runnerUp":{"providerId":"e2b","name":"E2B","overallForJob":8.7,"pickOverallForJob":8.63,"beatsPickOn":["capabilityFit","privacyPosture","lockInRisk"],"source":"first resolvable entry of the job's editorially ranked `runnersUpIds`; scores are stored job-weighted scores"},"runnerUpReason":null,"lockIn":{"pickLockInRisk":4.5,"runnerUpLockInRisk":4,"scale":"0–10 stored curated estimate; higher = more lock-in (worse)","pickExitSignals":[],"runnerUpExitSignals":[],"pickNotes":[],"selfHostFallback":[{"id":"dagger","name":"Dagger","license":"Apache-2.0","sourceUrl":"https://raw.githubusercontent.com/dagger/dagger/main/LICENSE"}],"migration":"Runner-up E2B has lower stored lock-in risk (4 vs 4.5, 0–10, higher = more lock-in). Self-host fallback listed for this job: Dagger.","migrationReason":null,"derivedFrom":"stored lockInRisk scores, provider tags (oss, self-host, openai-compat, open-models), free rows that list this job, and verbatim provider notes. No migration guide was invented."}},"freshness":{"pick":{"score":{"asOf":"2026-10-19","ageDays":8,"stale":false,"staleAfterDays":30,"reason":null},"lastReviewed":{"asOf":"2026-10-19","ageDays":8,"stale":false,"staleAfterDays":30,"reason":null},"sourceCheck":{"checkedAt":"2026-10-27","sourceUrls":2,"sourcesReachable":2,"pricingRows":18,"pricingRowsReconfirmed":18,"note":"A source re-check confirms the page is reachable and, for pricing rows, that the stored amount and SKU name appear on it. It does not re-derive or change the score.","reason":null}}}}