Skip to content

feat(benchmark): Require full benchmark with AI for community sharing#99

Merged
chriscrosstalk merged 5 commits intomasterfrom
feat/benchmark-full-only-sharing
Jan 25, 2026
Merged

feat(benchmark): Require full benchmark with AI for community sharing#99
chriscrosstalk merged 5 commits intomasterfrom
feat/benchmark-full-only-sharing

Conversation

@chriscrosstalk
Copy link
Collaborator

Summary

  • Only allow benchmark results to be shared with the community leaderboard when the user has completed a full benchmark that includes AI performance data
  • Partial benchmarks (System Only, AI Only) show a "Partial Benchmark" info message instead of the Share button
  • Pre-flight check warns users when clicking "Run Full Benchmark" without AI Assistant installed
  • "AI Only" button is disabled when AI Assistant is not installed

Changes

Frontend (benchmark.tsx)

  • Added AI Assistant installation check via /api/system/services query
  • Added showAIRequiredAlert state for pre-flight warning
  • Added canShareBenchmark computed value to determine if results can be shared
  • Added handleFullBenchmarkClick function with pre-flight AI check
  • Updated "Run Full Benchmark" button to use pre-flight check
  • Disabled "AI Only" button when AI Assistant not installed
  • Added note below buttons when AI not installed with link to Apps page
  • Show "Partial Benchmark" info alert for non-shareable results
  • Only display "Share with Community" for full benchmarks with AI data

Backend (benchmark_service.ts)

  • Added validation in submitToRepository to reject non-full benchmarks
  • Added validation to require ai_tokens_per_second > 0 for submission
  • Clear error messages explaining the requirements

Test plan

  • Without AI Assistant installed:
    • "AI Only" button should be disabled
    • "Note: AI Assistant is not installed" message appears
    • Clicking "Run Full Benchmark" shows warning alert with link to install
  • With AI Assistant installed:
    • All buttons enabled
    • "Run Full Benchmark" starts immediately without warning
  • After running "System Only" or "AI Only" benchmark:
    • "Partial Benchmark" info alert appears
    • No "Share with Community" button visible
  • After running "Full Benchmark" with AI:
    • "Share with Community" button appears
    • Sharing works correctly

🤖 Generated with Claude Code

chriscrosstalk and others added 5 commits January 24, 2026 22:19
Only allow users to share benchmark results with the community leaderboard
when they have completed a full benchmark that includes AI performance data.

Frontend changes:
- Add AI Assistant installation check via service API query
- Show pre-flight warning when clicking Full Benchmark without AI installed
- Disable AI Only button when AI Assistant not installed
- Show "Partial Benchmark" info alert for non-shareable results
- Only display "Share with Community" for full benchmarks with AI data
- Add note about AI installation requirement with link to Apps page

Backend changes:
- Validate benchmark_type is 'full' before allowing submission
- Require ai_tokens_per_second > 0 for community submission
- Return clear error messages explaining requirements

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Fix GPU detection to properly identify AMD discrete GPUs
- Fix gauge colors (high scores now green, low scores red)
- Fix gauge centering (SVG size matches container)
- Add info tooltips for Tokens/sec and Time to First Token

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
When systeminformation doesn't detect graphics controllers (common on
headless Linux), extract the integrated GPU name from AMD APU CPU model
strings like "AMD Ryzen AI 9 HX 370 w/ Radeon 890M".

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add builder_tag column to benchmark_results table
- Create BuilderTagSelector component with word dropdowns + randomize
- Add 50 adjectives and 50 nouns for NOMAD-themed tags (e.g., Tactical-Llama-1234)
- Add anonymous sharing option checkbox
- Add builder tag display in Benchmark Details section
- Add Benchmark History section showing all past benchmarks
- Update submission API to accept anonymous flag
- Add /api/benchmark/builder-tag endpoint to update tags

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Sign benchmark submissions with HMAC-SHA256 to prevent casual API abuse.
Includes X-NOMAD-Timestamp and X-NOMAD-Signature headers.

Note: Since NOMAD is open source, a determined attacker could extract
the secret. This provides protection against casual abuse only.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@chriscrosstalk chriscrosstalk merged commit 7a5a254 into master Jan 25, 2026
@chriscrosstalk chriscrosstalk deleted the feat/benchmark-full-only-sharing branch January 25, 2026 08:24
@cosmistack-bot
Copy link
Collaborator

🎉 This PR is included in version 1.19.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants