project-nomad/admin/inertia/components
chriscrosstalk 7a5a254dd5
feat(benchmark): Require full benchmark with AI for community sharing (#99)
* feat(benchmark): Require full benchmark with AI for community sharing

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(benchmark): UI improvements and GPU detection fix

- 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>

* fix(benchmark): Extract iGPU from AMD APU CPU name as fallback

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>

* feat(benchmark): Add Builder Tag system for community leaderboard

- 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>

* feat(benchmark): Add HMAC signing for leaderboard submissions

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>

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 00:24:31 -08:00
..
inputs feat: [wip] custom map and zim downloads 2025-12-02 08:25:09 -08:00
layout feat(Maps): enhance missing assets warnings 2026-01-15 15:54:59 -08:00
maps feat: [wip] new maps system 2025-11-30 22:29:16 -08:00
markdoc fix(Docs): documentation renderer fixes 2025-12-23 16:00:33 -08:00
systeminfo feat(benchmark): Require full benchmark with AI for community sharing (#99) 2026-01-25 00:24:31 -08:00
ActiveDownloads.tsx feat: [wip] easy setup wizard 2026-01-15 15:54:59 -08:00
Alert.tsx feat: [wip] easy setup wizard 2026-01-15 15:54:59 -08:00
AlertWithButton.tsx feat: [wip] new maps system 2025-11-30 22:29:16 -08:00
BouncingLogo.tsx feat: initial commit 2025-06-29 15:51:08 -07:00
BuilderTagSelector.tsx feat(benchmark): Require full benchmark with AI for community sharing (#99) 2026-01-25 00:24:31 -08:00
CategoryCard.tsx feat: Improve curated collections UX with persistent tier selection 2026-01-24 15:33:50 -08:00
CuratedCollectionCard.tsx feat: [wip] easy setup wizard 2026-01-15 15:54:59 -08:00
DownloadURLModal.tsx fix(Maps): custom pmtiles file downloads 2025-12-23 23:45:56 -08:00
DynamicIcon.tsx feat: curated zim collections 2025-12-05 15:47:22 -08:00
Footer.tsx fix: hide query devtools in prod 2025-12-02 08:39:58 -08:00
HorizontalBarChart.tsx feat: background job overhaul with bullmq 2025-12-06 23:59:01 -08:00
InfoTooltip.tsx feat(benchmark): Require full benchmark with AI for community sharing (#99) 2026-01-25 00:24:31 -08:00
InstallActivityFeed.tsx feat: easy setup wizard 2026-01-15 15:54:59 -08:00
LoadingSpinner.tsx feat: init app installation and documentation 2025-06-30 01:44:42 -07:00
MarkdocRenderer.tsx fix(Maps): custom pmtiles file downloads 2025-12-23 23:45:56 -08:00
ProgressBar.tsx feat(ZIM): improved ZIM downloading and auto-restart kiwix serve 2025-08-20 23:05:19 -07:00
Providers.tsx fix: hide query devtools in prod 2025-12-02 08:39:58 -08:00
StorageProjectionBar.tsx feat: Add storage projection bar to easy setup wizard 2026-01-19 10:15:20 -08:00
StyledButton.tsx feat: alert and button styles redesign 2025-11-30 23:32:16 -08:00
StyledModal.tsx fix(Maps): custom pmtiles file downloads 2025-12-23 23:45:56 -08:00
StyledSectionHeader.tsx feat: curated zim collections 2025-12-05 15:47:22 -08:00
StyledSidebar.tsx feat: version footer and fix CI version handlng 2025-11-18 15:51:45 -08:00
StyledTable.tsx feat(Open WebUI): manage models via Command Center 2026-01-19 22:15:52 -08:00
TierSelectionModal.tsx feat: Improve curated collections UX with persistent tier selection 2026-01-24 15:33:50 -08:00