Discover: Katalog auf Juli-2026-Stand + Badge-Alias-Fix

Katalog-Daten (models_catalog.json) waren teil-stale (Stand 27.06.):
- vision: Qwen3-VL-30B-A3B-Instruct ergaenzt (neue Augen, MoE 30B-A3B) — sonst
  empfahl der "Modelle finden"-Tab weiter das aeltere VL-8B (Downgrade).
- scout: gemma-4-26B/31B (laengst entfernt) durch das live genutzte GLM-4.6V-Flash
  ersetzt.
- version 2026-06-27 -> 2026-07-03.
Bewusst NICHT aufgenommen: Qwen3.6-27B dense — im 3-Wege-Bench (tg 12,7 vs 60-91
der MoE-Coder) als Coder-Worker unterlegen, keine Empfehlung.

Badge-Fix (Discover.tsx): installedModel matchte nur das primaere role-Feld; ein
Modell kann eine Kategorie aber ueber einen Alias bedienen (Qwen3.6 = role "hermes"
+ Alias "fast") -> Fast-Karte zeigte faelschlich "Frei". Jetzt Match per Rolle ODER
Alias. Live gegen die Box verifiziert: alle 5 Rollen-Karten "Aktiviert".

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Hitonabi
2026-07-03 23:39:26 +02:00
parent 494037dee5
commit 8e4aca9f5c
6 changed files with 20 additions and 16 deletions
+9 -9
View File
@@ -1,6 +1,6 @@
{
"_comment": "Kuratierter Modell-Katalog (Cookbook) für Strix Halo / Ryzen AI MAX+ 395 — 128GB unified, bandbreiten-limitiert (256 GB/s). MoE-first. EINE Quelle der Wahrheit für KORREKTE Metadaten (total/active params, moe, generation) → präzise Empfehlungen ohne Namens-Raterei. Inspiriert vom Odysseus-Cookbook (statischer, validierter Katalog statt Live-Scraping). Erweiterbar: neue Modelle hier eintragen. Felder: name (Match-Identifier), repo (HF org/name für Install), family (+Subtyp), generation (numerisch, für Upgrade-Vergleich), total_params_b, active_params_b (=total bei dense), moe, quant, ctx (empfohlen), tools, vision.",
"version": "2026-06-27",
"version": "2026-07-03",
"models": [
{
"role": "fast", "name": "Qwen3.6-35B-A3B", "repo": "Qwen/Qwen3.6-35B-A3B-GGUF",
@@ -35,6 +35,11 @@
"moe": true, "quant": "Q4_K_M", "ctx": 65536, "tools": true, "vision": false
},
{
"role": "vision", "name": "Qwen3-VL-30B-A3B-Instruct", "repo": "Qwen/Qwen3-VL-30B-A3B-Instruct-GGUF",
"family": "qwen-vl", "generation": 3.0, "total_params_b": 30, "active_params_b": 3,
"moe": true, "quant": "Q4_K_M", "ctx": 32768, "tools": false, "vision": true
},
{
"role": "vision", "name": "Qwen3-VL-8B-Instruct", "repo": "Qwen/Qwen3-VL-8B-Instruct-GGUF",
"family": "qwen-vl", "generation": 3.0, "total_params_b": 8, "active_params_b": 8,
@@ -47,14 +52,9 @@
},
{
"role": "scout", "name": "gemma-4-26B-A4B-it", "repo": "google/gemma-4-26B-A4B-it-GGUF",
"family": "gemma", "generation": 4.0, "total_params_b": 26, "active_params_b": 4,
"moe": true, "quant": "Q4_K_M", "ctx": 32768, "tools": false, "vision": true
},
{
"role": "scout", "name": "gemma-4-31B-it", "repo": "google/gemma-4-31B-it-GGUF",
"family": "gemma", "generation": 4.0, "total_params_b": 31, "active_params_b": 31,
"moe": false, "quant": "Q4_K_M", "ctx": 32768, "tools": false, "vision": true
"role": "scout", "name": "GLM-4.6V-Flash", "repo": "ggml-org/GLM-4.6V-Flash-GGUF",
"family": "glm", "generation": 4.6, "total_params_b": 9, "active_params_b": 3,
"moe": true, "quant": "Q4_K_M", "ctx": 32768, "tools": true, "vision": true
}
]
}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+2 -2
View File
@@ -7,8 +7,8 @@
<link rel="manifest" href="/manifest.webmanifest" />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<title>Mission Control 2.0</title>
<script type="module" crossorigin src="/assets/index-DZPeq_n9.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-BPiDiqMB.css">
<script type="module" crossorigin src="/assets/index-DRqLCVxW.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-CWAZq_3Z.css">
</head>
<body>
<div id="root"></div>
+6 -2
View File
@@ -113,8 +113,12 @@ export function Discover() {
}
const IconComponent = meta.icon
// Check if a model is installed for this role
const installedModel = models.find((m) => m.role === cat.role)
// Check if a model is installed for this role — per Rolle ODER Alias:
// ein Modell kann eine Kategorie über einen Alias bedienen (z.B. Qwen3.6 hat
// role="hermes" + Alias "fast" → sonst zeigte die Fast-Karte fälschlich „Frei").
const installedModel = models.find(
(m) => m.role === cat.role || (m.aliases || []).includes(cat.role),
)
// Check if an upgrade is available for this role
const hasUpgrade = updates?.model_list.find((u) => u.role === cat.role)