Skip to content

feat(sandbox): add buddy provider (@computesdk/buddy) - #484

Merged
kisernl merged 2 commits into
masterfrom
devin/1790772704-add-buddy-provider
Sep 30, 2026
Merged

kisernl merged 2 commits into
masterfrom
devin/1790772704-add-buddy-provider

Conversation

@kisernl

@kisernl kisernl commented Sep 30, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Adds the Buddy sandbox provider (@computesdk/buddy@1.0.6, https://www.npmjs.com/package/@computesdk/buddy) as a live provider across the sandbox benchmarks. The BUDDY_TOKEN / BUDDY_WORKSPACE / BUDDY_PROJECT secrets are in the Namespace vault.

The factory is buddy(config: BuddyConfig) and authenticates with token, workspace, and project, falling back to the matching env vars.

Changes:

  • package.json / pnpm-lock.yaml: add @computesdk/buddy@^1.0.6 (pulls in @buddy-works/sandbox-sdk).
  • benchmarks/.env.example: document the three BUDDY_* vars.
  • benchmarks/sandbox/providers.ts: import + providers[] entry with requiredEnvVars: ['BUDDY_TOKEN', 'BUDDY_WORKSPACE', 'BUDDY_PROJECT'].
  • .github/workflows/sandbox-{tti,dax,capabilities}-benchmarks.yml: buddy in the provider matrix; BUDDY_* added to the TTI/DAX vault-key regexes and the capabilities PROVIDER_KEYS case.

Link to Devin session: https://app.devin.ai/sessions/2f6db87a0465493e85b3d8998007e245
Open in Devin Desktop: https://app.devin.ai/desktop/session/2f6db87a0465493e85b3d8998007e245?variant=devin
Requested by: @kisernl

Add the Buddy provider (@computesdk/buddy@1.0.6) in staged form per the
repo convention: dependency installed, env vars documented, provider
entry and CI matrix lines all commented out until BUDDY_TOKEN,
BUDDY_WORKSPACE and BUDDY_PROJECT land in the vault.

Activation: add the three secrets to the Namespace vault, uncomment the
import + providers[] entry in providers.ts, the matrix lines in the
sandbox-tti/dax/capabilities workflows, and the PROVIDER_KEYS case in
sandbox-capabilities.yml.

Co-Authored-By: Noah Kiser <noah@computesdk.com>
@devin-ai-integration

Copy link
Copy Markdown
Contributor

I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".

  • Disable automatic comment, CI, and merge conflict monitoring

BUDDY_TOKEN, BUDDY_WORKSPACE and BUDDY_PROJECT are now in the vault, so
uncomment the staged provider: providers.ts import + entry, the matrix
lines in the sandbox-tti/dax/capabilities workflows, the PROVIDER_KEYS
case in capabilities, and the BUDDY_* vars in the TTI/DAX vault-key
regexes.

Co-Authored-By: Noah Kiser <noah@computesdk.com>
@devin-ai-integration devin-ai-integration Bot changed the title feat(sandbox): stage buddy provider (@computesdk/buddy) feat(sandbox): add buddy provider (@computesdk/buddy) Sep 30, 2026
@kisernl
kisernl marked this pull request as ready for review September 30, 2026 13:14
@open-cla

open-cla Bot commented Sep 30, 2026

Copy link
Copy Markdown

Contributor License Agreement

All contributors are covered by a CLA.

@devin-ai-integration devin-ai-integration Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

👀 1 finding needs your review

Devin reviewed the finding on 0ece013 and left it for you. Click a finding below to jump to its comment.

For your review (1)

View all findings in Devin Review

Devin Review

@kisernl
kisernl merged commit b6f33f6 into master Sep 30, 2026
7 checks passed

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Devin Review found 1 potential issue.

Devin Review

- arker
- beam
- blaxel
- buddy

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Buddy capabilities job cannot run

The new Buddy capabilities job fails before benchmarking because capabilities.bench.ts does not exist. The runner imports that module before selecting a provider, so it records no Buddy capabilities.

Learn more

The capabilities workflow invokes a benchmark module that is not tracked in the repository. The runner's module import resolves and imports that module before selecting a participant. Adding Buddy to this matrix schedules another job that fails there, regardless of whether its vault credentials load. The existing providers in this workflow are also affected; the new entry does not create the missing module.

Example: Dispatching the capabilities workflow with provider buddy loads the Buddy secrets, then attempts to import benchmarks/sandbox/capabilities.bench.ts. The import fails before any sandbox is created or result is written.

Recommended fix: Add a capabilities benchmark module with the expected config and task exports, or point the workflow to a tracked benchmark implementing capabilities. Verify the workflow for Buddy and the existing matrix entries.

Devin Review


Was this helpful? React with 👍 or 👎 to provide feedback.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Confirmed: benchmarks/sandbox/capabilities.bench.ts does not exist on master — it only exists on the unmerged branch devin/sandbox-capabilities-benchmark (added in 732e8a2). So this is accurate, but it's pre-existing and applies to every provider in this workflow's matrix, not just buddy: the whole sandbox-capabilities.yml workflow fails at module import on master today. Buddy's matrix entry matches all ~30 existing entries; once the capabilities bench file lands (via that branch or a port), every provider including buddy runs without further changes.

@github-actions

github-actions Bot commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

Sandbox Benchmark Results

Burst

# Provider Score Median TTI P95 P99 Status
1 isorun 99.5 0.04s 0.06s 0.06s 10/10
2 createos 98.9 0.10s 0.11s 0.11s 10/10
3 archil 98.5 0.13s 0.18s 0.18s 10/10
4 arker 98.2 0.17s 0.19s 0.19s 10/10
5 miosa 97.8 0.21s 0.23s 0.23s 10/10
6 daytona 97.5 0.19s 0.34s 0.34s 10/10
7 givemeanode 97.5 0.25s 0.26s 0.26s 10/10
8 superserve 97.3 0.26s 0.30s 0.30s 10/10
9 declaw 96.7 0.29s 0.39s 0.39s 10/10
10 blaxel 96.3 0.36s 0.39s 0.39s 10/10
11 vercel 96.1 0.38s 0.41s 0.41s 10/10
12 tenki 93.4 0.61s 0.73s 0.73s 10/10
13 buddy 92.7 0.69s 0.78s 0.78s 10/10
14 cloudflare 92.0 0.67s 0.99s 0.99s 10/10
15 freestyle 89.9 0.91s 1.16s 1.16s 10/10
16 mosaic 89.0 0.76s 1.59s 1.59s 10/10
17 upstash 87.0 1.29s 1.33s 1.33s 10/10
18 sail 83.9 1.53s 1.72s 1.72s 10/10
19 beam 83.7 1.62s 1.65s 1.65s 10/10
20 runloop 83.4 1.00s 2.65s 2.65s 10/10
21 sandbox0 81.5 1.68s 2.10s 2.10s 10/10
22 cloud-run 79.0 1.62s 2.81s 2.81s 10/10
23 microsandbox 74.5 2.31s 2.92s 2.92s 10/10
24 tensorlake 74.0 2.58s 2.64s 2.64s 10/10
25 modal 73.2 1.77s 4.06s 4.06s 10/10
26 e2b 67.0 1.06s 6.65s 6.65s 10/10
27 run-cloud 33.4 5.75s 8.01s 8.01s 10/10
28 codesandbox 0.0 31.74s 32.86s 32.86s 10/10
29 hopx 0.0 0.00s 0.00s 0.00s 0/10
30 northflank 0.0 0.00s 0.00s 0.00s 0/10

View full run · SVGs available as build artifacts

@github-actions

Copy link
Copy Markdown
Contributor

Sandbox Dax Benchmark Results

Provider Phases Total Prepare Clone Install Typecheck Status
archil 0/7 0.00s 0.00s 0.00s 0.00s 0.00s 0/1 OK
arker 7/7 64.73s 5.79s 2.22s 11.52s 40.52s 1/1 OK
beam 7/7 62.15s 18.04s 1.77s 9.94s 24.37s 1/1 OK
blaxel 7/7 45.36s 1.18s 1.79s 9.91s 24.31s 1/1 OK
buddy -- 0.00s 0.00s 0.00s 0.00s 0.00s 0/1 OK
cloud-run 2/7 0.93s 0.34s 0.00s 0.00s 0.00s 0/1 OK
cloudflare 2/7 120.69s 120.26s 0.00s 0.00s 0.00s 0/1 OK
codesandbox 0/7 0.00s 0.00s 0.00s 0.00s 0.00s 0/1 OK
createos 7/7 54.48s 4.63s 2.23s 12.15s 26.99s 1/1 OK
daytona 7/7 77.64s 5.89s 2.98s 14.24s 42.58s 1/1 OK
declaw 7/7 187.10s 5.55s 4.62s 29.65s 132.35s 1/1 OK
e2b 7/7 82.66s 11.43s 4.70s 17.81s 39.23s 1/1 OK
freestyle 0/7 0.00s 0.00s 0.00s 0.00s 0.00s 0/1 OK
givemeanode 7/7 41.61s 1.52s 1.29s 12.32s 23.47s 1/1 OK
hopx -- 0.00s 0.00s 0.00s 0.00s 0.00s 0/1 OK
isorun 7/7 33.03s 1.45s 1.05s 8.63s 18.54s 1/1 OK
microsandbox 7/7 49.19s 2.15s 2.05s 12.57s 24.85s 1/1 OK
miosa 0/7 0.00s 0.00s 0.00s 0.00s 0.00s 0/1 OK
modal 7/7 119.62s 3.25s 3.44s 24.06s 80.37s 1/1 OK
mosaic 7/7 57.75s 1.20s 2.43s 13.89s 28.51s 1/1 OK
namespace 7/7 43.15s 4.57s 1.26s 8.22s 22.26s 1/1 OK
northflank -- 0.00s 0.00s 0.00s 0.00s 0.00s 0/1 OK
opencomputer -- 0.00s 0.00s 0.00s 0.00s 0.00s 0/1 OK
run-cloud -- 0.00s 0.00s 0.00s 0.00s 0.00s 0/1 OK
runloop 7/7 104.52s 21.19s 9.99s 14.81s 52.37s 1/1 OK
sail 7/7 105.73s 6.78s 4.56s 19.42s 62.09s 1/1 OK
sandbox0 0/7 0.00s 0.00s 0.00s 0.00s 0.00s 0/1 OK
superserve 7/7 86.39s 8.11s 4.46s 15.60s 53.91s 1/1 OK
tenki 7/7 85.88s 6.33s 3.64s 22.36s 41.44s 1/1 OK
tensorlake 7/7 88.33s 19.11s 2.62s 18.09s 38.47s 1/1 OK
upstash 7/7 56.06s 4.51s 1.89s 12.56s 26.15s 1/1 OK
vercel 7/7 83.45s 13.95s 1.85s 12.20s 47.31s 1/1 OK

View full run

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