Skip to content

ci: unbreak benchmark result commits after the pnpm migration - #265

Merged
HeyGarrison merged 2 commits into
masterfrom
devin/1785496729-fix-bench-commit-step
Jul 31, 2026
Merged

ci: unbreak benchmark result commits after the pnpm migration#265
HeyGarrison merged 2 commits into
masterfrom
devin/1785496729-fix-bench-commit-step

Conversation

@devin-ai-integration

@devin-ai-integration devin-ai-integration Bot commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

Summary

No benchmark results have been committed since 2026-07-24, so computesdk.com/benchmarks/* is stale. Two independent breakages in the "Commit and push" step, both hit again in today's scheduled runs:

  1. The pnpm workspace migration (feat(benchmarks): pnpm workspace + port SDK + switch consumers #207) deleted package-lock.json, but 5 workflows still stage it:
-git add package.json package-lock.json results.svg *_tti.svg pricing.svg results/
+git add package.json results.svg *_tti.svg pricing.svg results/

git add on a missing pathspec is fatal (fatal: pathspec 'package-lock.json' did not match any files), killing sandbox-tti, storage, browser, browser-throughput and snapshot-fork before the push.

  1. Workflows that stage only their own results dir (dax, ai-gateway) commit fine, then die on error: cannot rebase: You have unstaged changes because the run leaves other tracked files dirty. Every rebase in the retry loop now autostashes:
-git rebase "origin/${branch}" || { git rebase --abort; exit 1; }
+git rebase --autostash "origin/${branch}" || { git rebase --abort; exit 1; }

Applied to all workflows with the retry loop so the sandbox-* ones don't reintroduce it.

Not addressed here: the 11 sandbox-* workflows registered in #? on 2026-07-29 (memory, disk, system, cpu-node, pgbench, network-*, dns, download, latency, realworld) fail earlier — pnpm run build:bundles and pnpm run generate-<mode>-svg don't exist in package.json — which is a separate fix.

Link to Devin session: https://app.devin.ai/sessions/707b6c6fe3c24b5caf22cdb19eafedf2
Requested by: @HeyGarrison


Open in Devin Review

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
@HeyGarrison HeyGarrison self-assigned this Jul 31, 2026
@devin-ai-integration

Copy link
Copy Markdown
Contributor Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment, CI, and merge conflict monitoring

@open-cla

open-cla Bot commented Jul 31, 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 Author

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.

Open in Devin Review

git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add package.json package-lock.json results.svg *_tti.svg pricing.svg results/
git add package.json results.svg *_tti.svg pricing.svg results/

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

🟡 Weekly dependency refreshes are silently thrown away instead of being recorded

The updated dependency lock file is no longer included in the automatic commit (git add package.json ... at .github/workflows/sandbox-tti-benchmarks.yml:302) after the weekly run refreshes dependencies, so the refreshed versions are discarded and the repository keeps recording old ones.

Impact: Scheduled runs benchmark newer provider SDK versions than the repository records, and the dependency refresh never lands, so the recorded versions drift permanently out of date.

Why removing the lock-file pathspec loses the pnpm update result

The collect jobs run pnpm update on schedule events (.github/workflows/sandbox-tti-benchmarks.yml:164-169), which rewrites pnpm-lock.yaml in the working tree. Before the pnpm migration the equivalent npm update output was persisted via git add package.json package-lock.json .... The PR removes the now-nonexistent package-lock.json pathspec but does not substitute pnpm-lock.yaml, so the modified lock file stays unstaged. Combined with the new git rebase --autostash, the dirty lock file is stashed/reapplied and then dropped when the runner is torn down. The same omission applies to .github/workflows/browser-benchmarks.yml:226, .github/workflows/browser-throughput-benchmarks.yml:273, .github/workflows/snapshot-fork-benchmarks.yml:284 and .github/workflows/storage-benchmarks.yml:260.

Suggested change
git add package.json results.svg *_tti.svg pricing.svg results/
git add package.json pnpm-lock.yaml results.svg *_tti.svg pricing.svg results/
Open in Devin Review

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

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Good catch — staged pnpm-lock.yaml in all 5 workflows so the scheduled pnpm update result is recorded again.

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
@HeyGarrison
HeyGarrison merged commit 2401148 into master Jul 31, 2026
6 checks passed
@github-actions

Copy link
Copy Markdown
Contributor

Sandbox Dax Benchmark Results

Provider Phases Total Prepare Clone Install Typecheck Status
archil 6/7 47.03s 4.81s 2.14s 17.46s 0.00s 0/1 OK
beam 0/7 0.00s 0.00s 0.00s 0.00s 0.00s 0/1 OK
blaxel 6/7 42.29s 1.93s 2.13s 10.68s 0.00s 0/1 OK
cloud-run 2/7 1.20s 0.39s 0.00s 0.00s 0.00s 0/1 OK
cloudflare 0/7 0.00s 0.00s 0.00s 0.00s 0.00s 0/1 OK
codesandbox -- 0.00s 0.00s 0.00s 0.00s 0.00s 0/1 OK
createos 7/7 48.72s 3.28s 2.31s 11.51s 26.45s 1/1 OK
daytona 7/7 73.54s 2.99s 3.53s 14.23s 38.80s 1/1 OK
declaw 7/7 175.12s 8.61s 6.43s 14.79s 132.48s 1/1 OK
e2b 7/7 66.60s 7.77s 2.87s 8.75s 38.93s 1/1 OK
hopx -- 0.00s 0.00s 0.00s 0.00s 0.00s 0/1 OK
isorun 7/7 95.41s 0.97s 1.45s 10.58s 28.62s 1/1 OK
lightning 7/7 41.01s 4.95s 2.61s 12.69s 15.59s 1/1 OK
modal 7/7 90.72s 4.32s 2.38s 14.21s 61.77s 1/1 OK
namespace 7/7 38.83s 4.86s 1.08s 7.52s 19.85s 1/1 OK
northflank -- 0.00s 0.00s 0.00s 0.00s 0.00s 0/1 OK
opencomputer 6/7 23.70s 3.61s 1.70s 16.13s 0.00s 0/1 OK
runloop 2/7 91.43s 0.00s 0.00s 21.16s 38.62s 1/1 OK
sandbox0 7/7 191.06s 4.44s 7.81s 72.95s 86.45s 1/1 OK
superserve 7/7 89.52s 4.99s 5.60s 19.64s 55.12s 1/1 OK
tenki 7/7 52.28s 2.85s 6.90s 11.54s 24.32s 1/1 OK
tensorlake 7/7 51.14s 9.67s 1.40s 9.54s 26.23s 1/1 OK
upstash 7/7 50.94s 3.62s 1.60s 10.16s 25.25s 1/1 OK
vercel 7/7 74.44s 16.36s 1.90s 11.76s 37.64s 1/1 OK

View full run

@github-actions

Copy link
Copy Markdown
Contributor

AI Gateway Benchmark Results

# Gateway Score Cold E2E Warm TTFT Tok/sec Status
1 LLM Gateway 90.4 783ms 632ms 86.8 20/20
2 Anthropic (direct) 90.2 562ms 509ms 89.7 20/20
3 OpenRouter 90.1 637ms 545ms 88.6 20/20
4 Vercel AI Gateway 90.0 684ms 646ms 90.9 20/20
5 Pydantic AI Gateway 89.9 751ms 638ms 87.3 20/20
6 Cloudflare AI Gateway 89.8 594ms 554ms 89.5 20/20
7 Concentrate AI 85.4 826ms 783ms 0.0 20/20

View full run · SVG available as a build artifact

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