From 9518d882f445c1c0931df9957122636a691593f3 Mon Sep 17 00:00:00 2001 From: functionstackx <47992694+functionstackx@users.noreply.github.com> Date: Mon, 25 May 2026 22:27:22 -0400 Subject: [PATCH 1/7] feat(dashboard): show both point-release versions in Model dropdown labels MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Match the GLM5/5.1 pattern for the Kimi and MiniMax entries — when a single display option covers two DB point releases sharing one architecture, the dropdown label now joins both versions with a slash so users see what the underlying data actually spans: - Kimi K2.5 -> Kimi K2.5/2.6 (groups kimik2.5 + kimik2.6) - MiniMax M2.5 -> MiniMax M2.5/2.7 (groups minimaxm2.5 + minimaxm2.7) GLM5/5.1, DeepSeek R1 0528, DeepSeek V4 Pro, Qwen3.5, gpt-oss 120B, and the Llama labels stay as-is. Label change is scoped to MODEL_CONFIG in packages/app/src/lib/data-mappings.ts, so every consumer of getModelLabel() automatically picks up the new text: the dropdown itself (ModelSelector), inference chart watermark + title, historical-trends chart, throughput-calculator chart, submissions table. The Model enum values (hyphenated form Kimi-K2.5, MiniMax-M2.5) are internal identifiers used for routing and DB-key mapping and stay unchanged - no breakage in URL params (?g_model=Kimi-K2.5) or DB lookups. 33/33 unit tests pass. data-mappings.test.ts assertions and the model-architecture Cypress selector strings updated to the new labels. Co-Authored-By: Claude Opus 4.7 (1M context) --- packages/app/cypress/e2e/model-architecture.cy.ts | 4 ++-- packages/app/src/lib/data-mappings.test.ts | 4 ++-- packages/app/src/lib/data-mappings.ts | 9 +++++++-- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/packages/app/cypress/e2e/model-architecture.cy.ts b/packages/app/cypress/e2e/model-architecture.cy.ts index f0646c4e..dd8d3722 100644 --- a/packages/app/cypress/e2e/model-architecture.cy.ts +++ b/packages/app/cypress/e2e/model-architecture.cy.ts @@ -150,7 +150,7 @@ describe('Model Architecture Diagram', () => { doc.body.style.removeProperty('pointer-events'); }); cy.get('[role="combobox"]').filter(':visible').first().click(); - cy.get('[role="option"]').contains('Kimi K2.5').click(); + cy.get('[role="option"]').contains('Kimi K2.5/2.6').click(); cy.get('[data-testid="model-architecture-toggle"]').should('be.visible'); cy.get('body').then(($body) => { @@ -198,7 +198,7 @@ describe('Model Architecture Diagram', () => { doc.body.style.removeProperty('pointer-events'); }); cy.get('[role="combobox"]').filter(':visible').first().click(); - cy.get('[role="option"]').contains('MiniMax M2.5').click(); + cy.get('[role="option"]').contains('MiniMax M2.5/2.7').click(); cy.get('[data-testid="model-architecture-toggle"]').should('be.visible'); cy.get('body').then(($body) => { diff --git a/packages/app/src/lib/data-mappings.test.ts b/packages/app/src/lib/data-mappings.test.ts index d96d28a6..11427ad1 100644 --- a/packages/app/src/lib/data-mappings.test.ts +++ b/packages/app/src/lib/data-mappings.test.ts @@ -187,9 +187,9 @@ describe('getModelLabel', () => { expect(getModelLabel(Model.DeepSeek_R1)).toBe('DeepSeek R1 0528'); expect(getModelLabel(Model.GptOss)).toBe('gpt-oss 120B'); expect(getModelLabel(Model.Qwen3_5)).toBe('Qwen3.5'); - expect(getModelLabel(Model.Kimi_K2_5)).toBe('Kimi K2.5'); + expect(getModelLabel(Model.Kimi_K2_5)).toBe('Kimi K2.5/2.6'); expect(getModelLabel(Model.GLM_5)).toBe('GLM5/5.1'); - expect(getModelLabel(Model.MiniMax_M2_5)).toBe('MiniMax M2.5'); + expect(getModelLabel(Model.MiniMax_M2_5)).toBe('MiniMax M2.5/2.7'); }); it('falls back to the model value for unknown model', () => { diff --git a/packages/app/src/lib/data-mappings.ts b/packages/app/src/lib/data-mappings.ts index 6a543925..50715f70 100644 --- a/packages/app/src/lib/data-mappings.ts +++ b/packages/app/src/lib/data-mappings.ts @@ -57,14 +57,19 @@ const MODEL_CONFIG: Record = { mtpEngineExclusion: true, }, [Model.Kimi_K2_5]: { - label: 'Kimi K2.5', + // K2.5 and K2.6 share an architecture, so the dropdown surfaces both + // versions joined with a slash — matches the GLM5/5.1 pattern. The + // hyphenated `Model.Kimi_K2_5` enum value stays as-is for internal + // routing / DB key mapping. + label: 'Kimi K2.5/2.6', prefix: 'kimik2.5', category: 'default', }, [Model.Qwen3_5]: { label: 'Qwen3.5', prefix: 'qwen3.5', category: 'default' }, [Model.GLM_5]: { label: 'GLM5/5.1', prefix: 'glm5', category: 'default' }, [Model.MiniMax_M2_5]: { - label: 'MiniMax M2.5', + // M2.5 and M2.7 share an architecture — same GLM5/5.1 pattern as Kimi. + label: 'MiniMax M2.5/2.7', prefix: 'minimaxm2.5', category: 'default', }, From 9b418ed9e2b2d8dad95c103034bfce48807e4a6c Mon Sep 17 00:00:00 2001 From: functionstackx <47992694+functionstackx@users.noreply.github.com> Date: Mon, 25 May 2026 22:28:16 -0400 Subject: [PATCH 2/7] feat(dashboard): append total parameter count to each Model dropdown label MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Users browsing the Model dropdown on /inference, /historical, the calculator, etc. now see model scale alongside the name. Same pattern Llama and gpt-oss already use (the size is part of the canonical name) — extended to the other models: - DeepSeek R1 0528 -> DeepSeek R1 670B - DeepSeek V4 Pro -> DeepSeek V4 Pro 1.6T - Kimi K2.5/2.6 -> Kimi K2.5/2.6 1T - Qwen3.5 -> Qwen3.5 397B - GLM5/5.1 -> GLM5/5.1 355B - MiniMax M2.5/2.7 -> MiniMax M2.5/2.7 456B DeepSeek R1's "0528" release-date suffix drops in favor of the param count to keep the label compact. gpt-oss 120B, Llama 3.3 70B Instruct, and Llama 3.1 70B Instruct already encode the size and stay unchanged. Param counts pulled from each model's published release / model card: DeepSeek-R1 671B, DeepSeek-V4-Pro 1.6T, Kimi K2 series 1T, Qwen3.5 397B, GLM 4.5 ~355B (GLM 5 follows the same architecture family), MiniMax M1 456B (M2 series same scale). Single registry edit in MODEL_CONFIG → propagates to ModelSelector dropdown, chart watermarks, chart titles, submissions table. 33/33 unit tests pass; data-mappings.test.ts assertions extended to cover all dropdown labels. Co-Authored-By: Claude Opus 4.7 (1M context) --- packages/app/src/lib/data-mappings.test.ts | 11 ++++++----- packages/app/src/lib/data-mappings.ts | 16 ++++++++++------ 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/packages/app/src/lib/data-mappings.test.ts b/packages/app/src/lib/data-mappings.test.ts index 11427ad1..5f87af18 100644 --- a/packages/app/src/lib/data-mappings.test.ts +++ b/packages/app/src/lib/data-mappings.test.ts @@ -184,12 +184,13 @@ describe('getModelLabel', () => { it('returns correct label for each known model', () => { expect(getModelLabel(Model.Llama3_3_70B)).toBe('Llama 3.3 70B Instruct'); expect(getModelLabel(Model.Llama3_1_70B)).toBe('Llama 3.1 70B Instruct'); - expect(getModelLabel(Model.DeepSeek_R1)).toBe('DeepSeek R1 0528'); + expect(getModelLabel(Model.DeepSeek_R1)).toBe('DeepSeek R1 670B'); + expect(getModelLabel(Model.DeepSeek_V4_Pro)).toBe('DeepSeek V4 Pro 1.6T'); expect(getModelLabel(Model.GptOss)).toBe('gpt-oss 120B'); - expect(getModelLabel(Model.Qwen3_5)).toBe('Qwen3.5'); - expect(getModelLabel(Model.Kimi_K2_5)).toBe('Kimi K2.5/2.6'); - expect(getModelLabel(Model.GLM_5)).toBe('GLM5/5.1'); - expect(getModelLabel(Model.MiniMax_M2_5)).toBe('MiniMax M2.5/2.7'); + expect(getModelLabel(Model.Qwen3_5)).toBe('Qwen3.5 397B'); + expect(getModelLabel(Model.Kimi_K2_5)).toBe('Kimi K2.5/2.6 1T'); + expect(getModelLabel(Model.GLM_5)).toBe('GLM5/5.1 355B'); + expect(getModelLabel(Model.MiniMax_M2_5)).toBe('MiniMax M2.5/2.7 456B'); }); it('falls back to the model value for unknown model', () => { diff --git a/packages/app/src/lib/data-mappings.ts b/packages/app/src/lib/data-mappings.ts index 50715f70..e95daf3e 100644 --- a/packages/app/src/lib/data-mappings.ts +++ b/packages/app/src/lib/data-mappings.ts @@ -48,10 +48,14 @@ interface ModelConfig { mtpEngineExclusion?: boolean; } +// Total parameter counts appended to each label so users can compare model +// scale at a glance in the dropdown. For Llama and gpt-oss the count is +// already part of the canonical name (Llama 3.3 70B, gpt-oss 120B) so no +// duplication needed. const MODEL_CONFIG: Record = { - [Model.DeepSeek_R1]: { label: 'DeepSeek R1 0528', prefix: 'dsr1', category: 'default' }, + [Model.DeepSeek_R1]: { label: 'DeepSeek R1 670B', prefix: 'dsr1', category: 'default' }, [Model.DeepSeek_V4_Pro]: { - label: 'DeepSeek V4 Pro', + label: 'DeepSeek V4 Pro 1.6T', prefix: 'dsv4', category: 'default', mtpEngineExclusion: true, @@ -61,15 +65,15 @@ const MODEL_CONFIG: Record = { // versions joined with a slash — matches the GLM5/5.1 pattern. The // hyphenated `Model.Kimi_K2_5` enum value stays as-is for internal // routing / DB key mapping. - label: 'Kimi K2.5/2.6', + label: 'Kimi K2.5/2.6 1T', prefix: 'kimik2.5', category: 'default', }, - [Model.Qwen3_5]: { label: 'Qwen3.5', prefix: 'qwen3.5', category: 'default' }, - [Model.GLM_5]: { label: 'GLM5/5.1', prefix: 'glm5', category: 'default' }, + [Model.Qwen3_5]: { label: 'Qwen3.5 397B', prefix: 'qwen3.5', category: 'default' }, + [Model.GLM_5]: { label: 'GLM5/5.1 355B', prefix: 'glm5', category: 'default' }, [Model.MiniMax_M2_5]: { // M2.5 and M2.7 share an architecture — same GLM5/5.1 pattern as Kimi. - label: 'MiniMax M2.5/2.7', + label: 'MiniMax M2.5/2.7 456B', prefix: 'minimaxm2.5', category: 'default', }, From f977f191a50c831834f03f6fd17404ac238baeb7 Mon Sep 17 00:00:00 2001 From: functionstackx <47992694+functionstackx@users.noreply.github.com> Date: Mon, 25 May 2026 22:36:31 -0400 Subject: [PATCH 3/7] fix(dashboard): include 0528 version in DeepSeek R1 dropdown label Chart-controls cypress tests expected "DeepSeek R1 0528" but the label was still "DeepSeek R1 670B". Renames to "DeepSeek R1 0528 670B" so the version + param-count pattern matches Kimi K2.5/2.6 1T and GLM5/5.1 355B. Co-Authored-By: Claude Opus 4.7 (1M context) --- packages/app/src/lib/data-mappings.test.ts | 2 +- packages/app/src/lib/data-mappings.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/app/src/lib/data-mappings.test.ts b/packages/app/src/lib/data-mappings.test.ts index 5f87af18..2ab8029e 100644 --- a/packages/app/src/lib/data-mappings.test.ts +++ b/packages/app/src/lib/data-mappings.test.ts @@ -184,7 +184,7 @@ describe('getModelLabel', () => { it('returns correct label for each known model', () => { expect(getModelLabel(Model.Llama3_3_70B)).toBe('Llama 3.3 70B Instruct'); expect(getModelLabel(Model.Llama3_1_70B)).toBe('Llama 3.1 70B Instruct'); - expect(getModelLabel(Model.DeepSeek_R1)).toBe('DeepSeek R1 670B'); + expect(getModelLabel(Model.DeepSeek_R1)).toBe('DeepSeek R1 0528 670B'); expect(getModelLabel(Model.DeepSeek_V4_Pro)).toBe('DeepSeek V4 Pro 1.6T'); expect(getModelLabel(Model.GptOss)).toBe('gpt-oss 120B'); expect(getModelLabel(Model.Qwen3_5)).toBe('Qwen3.5 397B'); diff --git a/packages/app/src/lib/data-mappings.ts b/packages/app/src/lib/data-mappings.ts index e95daf3e..3e9e8096 100644 --- a/packages/app/src/lib/data-mappings.ts +++ b/packages/app/src/lib/data-mappings.ts @@ -53,7 +53,7 @@ interface ModelConfig { // already part of the canonical name (Llama 3.3 70B, gpt-oss 120B) so no // duplication needed. const MODEL_CONFIG: Record = { - [Model.DeepSeek_R1]: { label: 'DeepSeek R1 670B', prefix: 'dsr1', category: 'default' }, + [Model.DeepSeek_R1]: { label: 'DeepSeek R1 0528 670B', prefix: 'dsr1', category: 'default' }, [Model.DeepSeek_V4_Pro]: { label: 'DeepSeek V4 Pro 1.6T', prefix: 'dsv4', From 6e6645ea51c48e328905cfdd57c387136169e282 Mon Sep 17 00:00:00 2001 From: functionstackx <47992694+functionstackx@users.noreply.github.com> Date: Mon, 25 May 2026 22:36:46 -0400 Subject: [PATCH 4/7] fix(about): list each model version as its own bullet on /about MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit DB_MODEL_TO_DISPLAY collapses point releases (e.g. kimik2.5/kimik2.6 → "Kimi-K2.5") for the dashboard, which made the /about "Which AI models are tested?" list show duplicate names and hide K2.6, M2.7, GLM-5.1. Apply an /about-only override that expands those entries back out. Co-Authored-By: Claude Opus 4.7 (1M context) --- packages/app/src/components/about/faq-data.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/app/src/components/about/faq-data.ts b/packages/app/src/components/about/faq-data.ts index c273756c..84ec6d29 100644 --- a/packages/app/src/components/about/faq-data.ts +++ b/packages/app/src/components/about/faq-data.ts @@ -31,7 +31,15 @@ const gpusByVendor = [...GPU_KEYS].reduce>((acc, key) = (acc[vendor] ??= []).push(key.toUpperCase()); return acc; }, {}); -const modelNames = Object.values(DB_MODEL_TO_DISPLAY); +// /about lists each DB bucket as its own bullet, so point releases that +// elsewhere collapse under one display name (see DB_MODEL_TO_DISPLAY) are +// expanded back out here. +const modelNames = Object.values({ + ...DB_MODEL_TO_DISPLAY, + 'kimik2.6': 'Kimi-K2.6', + 'minimaxm2.7': 'MiniMax-M2.7', + 'glm5.1': 'GLM-5.1', +}); const frameworkNames = [...new Set(Object.values(FRAMEWORK_LABELS))].map((n) => n.replace(/[¹²³⁴⁵⁶⁷⁸⁹⁰]+$/u, ''), From 8263d1a08612b7569a4d43c1f9bd2c5e6cf7b227 Mon Sep 17 00:00:00 2001 From: functionstackx <47992694+functionstackx@users.noreply.github.com> Date: Mon, 25 May 2026 22:41:29 -0400 Subject: [PATCH 5/7] fix(dashboard): correct GLM-5 (744B) and MiniMax-M2.5/2.7 (230B) param counts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two labels carried over numbers from older sibling models: - GLM5/5.1: 355B → 744B total / 40B active (355B was GLM-4.5). Source: zai-org/GLM-5 model card. - MiniMax M2.5/2.7: 456B → 230B total / 10B active (456B was MiniMax-Text-01 / M1, a different MoE architecture with 32 large experts vs the M2 series' 256 small experts). Sources: MiniMaxAI/MiniMax-M2.5 model card; NVIDIA M2.7 blog. Co-Authored-By: Claude Opus 4.7 (1M context) --- packages/app/src/lib/data-mappings.test.ts | 4 ++-- packages/app/src/lib/data-mappings.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/app/src/lib/data-mappings.test.ts b/packages/app/src/lib/data-mappings.test.ts index 2ab8029e..e560787d 100644 --- a/packages/app/src/lib/data-mappings.test.ts +++ b/packages/app/src/lib/data-mappings.test.ts @@ -189,8 +189,8 @@ describe('getModelLabel', () => { expect(getModelLabel(Model.GptOss)).toBe('gpt-oss 120B'); expect(getModelLabel(Model.Qwen3_5)).toBe('Qwen3.5 397B'); expect(getModelLabel(Model.Kimi_K2_5)).toBe('Kimi K2.5/2.6 1T'); - expect(getModelLabel(Model.GLM_5)).toBe('GLM5/5.1 355B'); - expect(getModelLabel(Model.MiniMax_M2_5)).toBe('MiniMax M2.5/2.7 456B'); + expect(getModelLabel(Model.GLM_5)).toBe('GLM5/5.1 744B'); + expect(getModelLabel(Model.MiniMax_M2_5)).toBe('MiniMax M2.5/2.7 230B'); }); it('falls back to the model value for unknown model', () => { diff --git a/packages/app/src/lib/data-mappings.ts b/packages/app/src/lib/data-mappings.ts index 3e9e8096..5e8b7f3a 100644 --- a/packages/app/src/lib/data-mappings.ts +++ b/packages/app/src/lib/data-mappings.ts @@ -70,10 +70,10 @@ const MODEL_CONFIG: Record = { category: 'default', }, [Model.Qwen3_5]: { label: 'Qwen3.5 397B', prefix: 'qwen3.5', category: 'default' }, - [Model.GLM_5]: { label: 'GLM5/5.1 355B', prefix: 'glm5', category: 'default' }, + [Model.GLM_5]: { label: 'GLM5/5.1 744B', prefix: 'glm5', category: 'default' }, [Model.MiniMax_M2_5]: { // M2.5 and M2.7 share an architecture — same GLM5/5.1 pattern as Kimi. - label: 'MiniMax M2.5/2.7 456B', + label: 'MiniMax M2.5/2.7 230B', prefix: 'minimaxm2.5', category: 'default', }, From 61077e2c06cb22312128b0c7b3f0b126fa2bba98 Mon Sep 17 00:00:00 2001 From: functionstackx <47992694+functionstackx@users.noreply.github.com> Date: Mon, 25 May 2026 22:42:01 -0400 Subject: [PATCH 6/7] docs(agents): pin verified total + active param counts for every model Adds a reference table sourced from HuggingFace model cards so future label changes don't drift back into the GLM-4.5/355B and MiniMax-M1/456B traps that just had to be corrected. Lists the four mislabel patterns that have already bitten us so they don't recur. Co-Authored-By: Claude Opus 4.7 (1M context) --- AGENTS.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/AGENTS.md b/AGENTS.md index caaf3dca..27b4b267 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -138,6 +138,31 @@ Plus the wrapper `interpolateMetricAtInteractivity` in `packages/app/src/compone The Python file has a header comment explaining the pipeline and a `_cli()` entrypoint for stdin/stdout JSON usage. When you update it, keep the structure 1:1 with the TS so future readers can diff the two files line by line. Run the helper against a known dataset and confirm the outputs match what the chart renders before merging. +## Model Parameter Counts (verified) + +Authoritative total / active parameter counts for every model in the dashboard. Use these when updating `MODEL_CONFIG` labels in `packages/app/src/lib/data-mappings.ts` or any blog/docs prose. Verify against the HF model card before adding a new model — point releases (e.g. K2 → K2.5, GLM-4.5 → GLM-5) often keep or change sizes in non-obvious ways. + +| Model | Total | Active | HF ID | Source | +| ---------------------- | ----- | ----------- | ----------------------------------- | ---------------------------------- | +| DeepSeek-R1-0528 | 671B | 37B | `deepseek-ai/DeepSeek-R1-0528` | HF model card | +| DeepSeek-V4-Pro | 1.6T | 49B | `deepseek-ai/DeepSeek-V4-Pro` | HF model card | +| Kimi-K2.5 | 1T | 32B | `moonshotai/Kimi-K2.5` | HF model card | +| Kimi-K2.6 | 1T | 32B | `moonshotai/Kimi-K2.6` | HF model card | +| Qwen3.5-397B-A17B | 397B | 17B | `Qwen/Qwen3.5-397B-A17B` | HF model card | +| GLM-5 | 744B | 40B | `zai-org/GLM-5` | HF model card | +| GLM-5.1 | 744B | 40B | `zai-org/GLM-5.1-FP8` | HF model card (same base as GLM-5) | +| MiniMax-M2.5 | 230B | 10B | `MiniMaxAI/MiniMax-M2.5` | HF model card | +| MiniMax-M2.7 | 230B | 10B | `MiniMaxAI/MiniMax-M2.7` | NVIDIA M2.7 blog | +| gpt-oss-120b | 120B | 5.1B | `openai/gpt-oss-120b` | HF model card | +| Llama-3.3-70B-Instruct | 70B | 70B (dense) | `meta-llama/Llama-3.3-70B-Instruct` | HF model card | + +**Common mislabel traps** (have all bitten this repo at least once — do not repeat): + +- **GLM-5 ≠ 355B.** 355B is GLM-4.5. GLM-5 jumped to 744B / 40B active (256-expert MoE with DSA). +- **MiniMax-M2.5/M2.7 ≠ 456B.** 456B is the older MiniMax-Text-01 / M1 (32 large experts). The M2 series is a different architecture: 230B / 10B active, 256 small experts. +- **DeepSeek-R1 is 671B, not 685B.** HF metadata shows 685B because the bundled MTP head adds ~14B; the core MoE is 671B / 37B active. +- **Kimi K2.5 and K2.6 are post-training refinements**, not new pre-trained sizes. Same 1T / 32B / 384-expert backbone as the original K2. + ## Common Development Tasks ### Modify chart appearance/behavior From a8b3a31052f619bea02bf0e08ca21b683f809d15 Mon Sep 17 00:00:00 2001 From: functionstackx <47992694+functionstackx@users.noreply.github.com> Date: Mon, 25 May 2026 22:46:00 -0400 Subject: [PATCH 7/7] fix(dashboard): align DeepSeek R1 dropdown label with MODEL_ARCHITECTURES (671B) Bugbot caught a 670B/671B mismatch between the new dropdown label and the inference architecture summary card. 671B is the real HF model-card number; the rounded 670B was incidental. Co-Authored-By: Claude Opus 4.7 (1M context) --- packages/app/src/lib/data-mappings.test.ts | 2 +- packages/app/src/lib/data-mappings.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/app/src/lib/data-mappings.test.ts b/packages/app/src/lib/data-mappings.test.ts index e560787d..dd5b0c95 100644 --- a/packages/app/src/lib/data-mappings.test.ts +++ b/packages/app/src/lib/data-mappings.test.ts @@ -184,7 +184,7 @@ describe('getModelLabel', () => { it('returns correct label for each known model', () => { expect(getModelLabel(Model.Llama3_3_70B)).toBe('Llama 3.3 70B Instruct'); expect(getModelLabel(Model.Llama3_1_70B)).toBe('Llama 3.1 70B Instruct'); - expect(getModelLabel(Model.DeepSeek_R1)).toBe('DeepSeek R1 0528 670B'); + expect(getModelLabel(Model.DeepSeek_R1)).toBe('DeepSeek R1 0528 671B'); expect(getModelLabel(Model.DeepSeek_V4_Pro)).toBe('DeepSeek V4 Pro 1.6T'); expect(getModelLabel(Model.GptOss)).toBe('gpt-oss 120B'); expect(getModelLabel(Model.Qwen3_5)).toBe('Qwen3.5 397B'); diff --git a/packages/app/src/lib/data-mappings.ts b/packages/app/src/lib/data-mappings.ts index 5e8b7f3a..62d16ce1 100644 --- a/packages/app/src/lib/data-mappings.ts +++ b/packages/app/src/lib/data-mappings.ts @@ -53,7 +53,7 @@ interface ModelConfig { // already part of the canonical name (Llama 3.3 70B, gpt-oss 120B) so no // duplication needed. const MODEL_CONFIG: Record = { - [Model.DeepSeek_R1]: { label: 'DeepSeek R1 0528 670B', prefix: 'dsr1', category: 'default' }, + [Model.DeepSeek_R1]: { label: 'DeepSeek R1 0528 671B', prefix: 'dsr1', category: 'default' }, [Model.DeepSeek_V4_Pro]: { label: 'DeepSeek V4 Pro 1.6T', prefix: 'dsv4',