project-nomad/admin/app/models
Chris Sherwood 651df80dc8 feat(benchmark): Score v2 app client — raws, uncapped score, v2 payload + UI
Phase 4 of the NOMAD Score v2 effort (stacked on #1089). Captures the raw
channel values the leaderboard scores from, computes the uncapped v2 score
in-app (byte-matching the leaderboard's server-side recompute), submits the
v2 payload, and surfaces it in the benchmark UI.

- Capture raws: per-channel sysbench values + O_DIRECT disk (W4), single/multi
  thread CPU + memory, W6 consistency companions, and run-environment metadata
  (run_environment, storage_path_type, gpu_compute_detected, #1016).
- AI hardening: reference model llama3.1:8b, num_predict=256, VRAM eviction
  before the run + unload own model after, pre-flight disk check (~6.5GB, only
  when the model is uncached), median-of-3 run (W7).
- Score: _calculateNomadScoreV2 (uncapped, reference->1000) byte-matches the
  leaderboard recompute. nomad_score_v2 stays null unless a full run with AI.
- Payload: submitToRepository sends the v2 raws + score alongside legacy v1.
- UI: v2 headline score, legacy v1 as secondary, raws/env in details.
- Migration: 13 nullable columns; double (not knex float(8,2)) so millions-scale
  raws keep full precision and don't break the leaderboard byte-match.

Reference constant REFERENCE_SCORES_V2.ai_tokens_per_second is still the stale
40.5 placeholder (TODO in source); locking it to the measured 13.2 is a
follow-up gated on the AMD iGPU fix (#1074). Live prod v2 submit is separately
blocked by the leaderboard TTFT floor (tracked in the leaderboard follow-up).

Verified on NOMAD3 (RTX 5060) dev env: migration applies, raws recorded,
v2 score computed, backend + benchmark.tsx typecheck clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-13 10:40:24 -07:00
..
benchmark_result.ts feat(benchmark): Score v2 app client — raws, uncapped score, v2 payload + UI 2026-07-13 10:40:24 -07:00
benchmark_setting.ts feat: Add system benchmark feature with NOMAD Score 2026-01-22 21:48:12 -08:00
chat_message.ts fix(models): correct inverted belongsTo keys on ChatMessage.session (#921) 2026-05-20 10:16:00 -07:00
chat_session.ts feat: [wip] native AI chat interface 2026-01-31 20:39:49 -08:00
collection_manifest.ts feat: curated content system overhaul 2026-02-11 15:44:46 -08:00
custom_library_source.ts feat(Content): custom ZIM library sources with pre-seeded mirrors (#593) 2026-05-20 10:16:00 -07:00
installed_resource.ts feat(content): opt-in automatic updates for installed ZIM & map content 2026-06-23 04:47:01 +00:00
kb_ingest_state.ts feat(KB): per-file ingest state machine (Phase 1 of RFC #883) (#888) 2026-05-20 10:16:00 -07:00
kb_ratio_registry.ts fix(KB): stop partial_stall warning firing on atypical ZIMs (link-out/PDF-heavy) 2026-06-23 04:46:54 +00:00
kv_store.ts feat(AI Assistant): custom name option for AI Assistant 2026-03-04 20:05:14 -08:00
map_marker.ts feat(maps): add scale bar and location markers (#636) 2026-04-03 14:26:50 -07:00
service.ts feat: replace legacy Kolibri image default with latest v19 image (#1019) 2026-06-23 04:47:07 +00:00
wikipedia_selection.ts feat: Add dedicated Wikipedia Selector with smart package management 2026-01-31 21:00:51 -08:00