project-nomad/admin
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
..
app feat(benchmark): Require full benchmark with AI for community sharing (#99) 2026-01-25 00:24:31 -08:00
bin feat: initial commit 2025-06-29 15:51:08 -07:00
commands feat(Docker): container URL resolution util and networking improvs 2026-01-24 15:27:56 -08:00
config feat: background job overhaul with bullmq 2025-12-06 23:59:01 -08:00
database feat(benchmark): Require full benchmark with AI for community sharing (#99) 2026-01-25 00:24:31 -08:00
docs fix(docs): Remove broken service links that pointed to invalid routes 2026-01-22 16:32:03 -08:00
inertia feat(benchmark): Require full benchmark with AI for community sharing (#99) 2026-01-25 00:24:31 -08:00
providers fix(Maps): static path resolution 2026-01-23 14:17:25 -08:00
public fix(admin): add favicons 2026-01-13 06:58:05 -08:00
resources/views fix(admin): add favicons 2026-01-13 06:58:05 -08:00
start feat(benchmark): Require full benchmark with AI for community sharing (#99) 2026-01-25 00:24:31 -08:00
tests feat: initial commit 2025-06-29 15:51:08 -07:00
types feat(benchmark): Require full benchmark with AI for community sharing (#99) 2026-01-25 00:24:31 -08:00
util feat: background job overhaul with bullmq 2025-12-06 23:59:01 -08:00
views feat: initial commit 2025-06-29 15:51:08 -07:00
.editorconfig feat: initial commit 2025-06-29 15:51:08 -07:00
.env.example feat: Add Windows Docker Desktop support for local development 2026-01-19 10:29:24 -08:00
ace.js feat: initial commit 2025-06-29 15:51:08 -07:00
adonisrc.ts feat: background job overhaul with bullmq 2025-12-06 23:59:01 -08:00
eslint.config.js feat: openwebui+ollama and zim management 2025-07-09 09:08:21 -07:00
package-lock.json fix(Benchmark): use node:crypto IFO uuid package 2026-01-22 21:48:12 -08:00
package.json feat(Queues): support working all queues with single command 2026-01-23 11:07:47 -08:00
README.md feat: initial commit 2025-06-29 15:51:08 -07:00
tailwind.config.ts feat: initial commit 2025-06-29 15:51:08 -07:00
tsconfig.json feat: initial commit 2025-06-29 15:51:08 -07:00
vite.config.ts feat: initial commit 2025-06-29 15:51:08 -07:00

Docker container

docker run --rm -it -p 8080:8080 jturnercosmistack/projectnomad:admin-latest -e PORT=8080 -e HOST=0.0.0.0 -e APP_KEY=secretlongpasswordsecret -e LOG_LEVEL=debug -e DRIVE_DISK=fs