-
Notifications
You must be signed in to change notification settings - Fork 663
LLM Benchmarking #3486
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
LLM Benchmarking #3486
Conversation
…ain permissions Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> Signed-off-by: bradleyshep <148254416+bradleyshep@users.noreply.github.com>
Signed-off-by: bradleyshep <148254416+bradleyshep@users.noreply.github.com>
.github/workflows/ci.yml
Outdated
Check warning
Code scanning / CodeQL
Workflow does not contain permissions Medium
Show autofix suggestion
Hide autofix suggestion
Copilot Autofix
AI about 4 hours ago
In general, the fix is to add an explicit permissions block to the csharp-testsuite job (or at workflow root) to limit the default GITHUB_TOKEN permissions to the minimal set required, which in this case appears to be read-only repository contents. This prevents the job from inheriting broader default permissions such as write access.
The best targeted fix, without changing behavior, is to add permissions: contents: read directly under the csharp-testsuite job definition. Other jobs already have their own permission blocks, so setting it at the workflow root is unnecessary. Nothing in csharp-testsuite needs to write checks, statuses, or pull requests; it only checks out code and runs tests, so contents: read is sufficient and consistent with the CodeQL recommendation. Concretely, in .github/workflows/ci.yml, between line 650 (csharp-testsuite:) and line 651 (needs: [lints, llm_ci_check]), insert:
permissions:
contents: readNo additional imports, methods, or definitions are required since this is a configuration-only change in the workflow file.
-
Copy modified lines R651-R652
| @@ -648,6 +648,8 @@ | ||
| UNITY_SERIAL: ${{ secrets.UNITY_SERIAL }} | ||
|
|
||
| csharp-testsuite: | ||
| permissions: | ||
| contents: read | ||
| needs: [lints, llm_ci_check] | ||
| runs-on: spacetimedb-new-runner | ||
| container: |
Add retry logic for signal-killed processes (SIGSEGV) with up to 2 retries and 500ms delay between attempts. Also reduce C# build concurrency from 8 to 4 by default to prevent resource contention in dotnet/WASI SDK builds. The C# concurrency can be configured via LLM_BENCH_CSHARP_CONCURRENCY env var.
Set MSBUILDDISABLENODEREUSE=1 and DOTNET_CLI_USE_MSBUILD_SERVER=0 to prevent resource contention when running multiple dotnet publish commands in parallel on GitHub Actions runners. See: dotnet/msbuild#6657
LLM Benchmark Results (ci-quickfix)
Generated at: 2026-01-06T00:39:43.087Z |
|
I think we're okay to merge this now that |
Signed-off-by: John Detter <4099508+jdetter@users.noreply.github.com>
Signed-off-by: John Detter <4099508+jdetter@users.noreply.github.com>
Signed-off-by: John Detter <4099508+jdetter@users.noreply.github.com>
Signed-off-by: John Detter <4099508+jdetter@users.noreply.github.com>
Signed-off-by: John Detter <4099508+jdetter@users.noreply.github.com>
Signed-off-by: John Detter <4099508+jdetter@users.noreply.github.com>
Signed-off-by: John Detter <4099508+jdetter@users.noreply.github.com>
Signed-off-by: John Detter <4099508+jdetter@users.noreply.github.com>
Signed-off-by: John Detter <4099508+jdetter@users.noreply.github.com>
Description of Changes
Introduce a new LLM benchmarking app and supporting code.
llmwith subcommandsrun,routes list,diff,ci-check.--lang,--categories,--tasks,--providers,--models.provider:model) with HTTP LLM Vendor clients; env-driven keys/base URLs.DEVELOP.mdincludescargo llm …usage.This PR is the initial addition of the app and its modules (runner, config, routes, prompt/segmentation, scorers, schema/types, defaults/constants/paths/hashing/combine, publishers, spacetime guard, HTML stats viewer).
How it works
Pick what to run
--tasks 0,7,12), or a language (--lang rust|csharp), or categories (--categories basics,schema).--providers …,--models …).Resolve routes
openai:gpt-5).Build context
Execute calls
Score outputs
Update results file
API and ABI breaking changes
None. New application and modules; no existing public APIs/ABIs altered.
Expected complexity level and risk
4/5. New CLI, routing, evaluation, and artifact format.
LLM_BENCH_CONCURRENCY/LLM_BENCH_ROUTE_CONCURRENCY.Testing
I ran the full test matrix and generated results for every task against every vendor, model, and language (rust + C#). I also tested the CI check locally using act.
Please verify
llm run --tasks 0,1,2(explicitrun)llm run --lang rust --categories basics(filters)llm run --categories basics,schema(multiple categories)llm run --lang csharp(language switch)llm run --providers openai,anthropic --models "openai:gpt-5 anthropic:claude-sonnet-4-5"(provider/model limits)llm run --hash-only(dry integrity)llm run --goldens-only(test goldens only)llm run --force(skip hash check)llm ci-check