diff --git a/README.md b/README.md
index e71a377..c3f0f7a 100644
--- a/README.md
+++ b/README.md
@@ -23,7 +23,7 @@ Bestätigung startet den Build. Audio Separator besitzt einen eigenen Installer
BS-/MelBand-RoFormer-Pakete werden einschließlich passender YAML-Konfiguration
geladen; ungeprüfte Hub-Dateien werden dadurch nicht freigeschaltet. Die einzelnen Laufzeiten stehen
nicht mehr separat in der Seitenleiste. Bibliothek und Profile verwenden
-kompakte, aufklappbare Zeilen: Details, API-Freigabe, Komponenten und Aktionen
+kompakte, aufklappbare Zeilen. Bibliotheken gruppieren die Dateien nach Hauptgewichten, Vision-/Audio-Projektoren, Textencodern, VAE, Konfigurationen und weiteren Zusatzkomponenten; nur vorhandene Gruppen werden angezeigt. Unbekannte Rollen bleiben separat sichtbar. In den Zeilen: Details, API-Freigabe, Komponenten und Aktionen
stehen in der geöffneten Zeile. Downloads behalten Fortschritt, Geschwindigkeit,
Restzeit und Warteschlangenaktionen. Der laufende Betrieb wird zentral unter
**Steuerung** angezeigt; Testbereiche behalten ihre jeweiligen Formulare.
diff --git a/catalog-ui.js b/catalog-ui.js
index 2adf72f..5098819 100644
--- a/catalog-ui.js
+++ b/catalog-ui.js
@@ -32,7 +32,12 @@ window.CatalogUI = (() => {
}
function renderLibrary() {
const openRows=new Set([...root.querySelectorAll('.detail-row[open]')].map(x=>x.dataset.rowId));
- el('hub-results').innerHTML = state.entries.filter(x => x.kind === kind).map(x => ` Quelle: ${escape(x.repo)} ${x.profile_eligible?'Modelldatei · über ein Profil verwenden':'Zusatzdatei · wird einem Modellprofil unter Komponenten zugeordnet'} Revision ${escape(x.revision)} ${x.upstream_hash_verified ? 'SHA-256 mit Quelle geprüft' : 'SHA-256 lokal erfasst; Größe mit Quelle geprüft'} Verwendet von Profil: ${x.used_by_profiles.map(p=>escape(p.name)).join(", ")}. Bitte zuerst das Profil löschen.${escape(x.file)}${escape(x.role_label)}${size(x.size)}${x.used_by_profiles?.length?`${x.used_by_profiles.length} Profil(e)`:'Nicht zugeordnet'}
Version und Integrität
Unter „Entdecken“ kannst du Dateien für diesen Bereich auswählen und herunterladen.
Quelle: ${escape(x.repo)}
${x.profile_eligible?'Modelldatei · über ein Profil verwenden':'Zusatzdatei · wird einem Modellprofil unter Komponenten zugeordnet'}
Revision ${escape(x.revision)}
${x.upstream_hash_verified ? 'SHA-256 mit Quelle geprüft' : 'SHA-256 lokal erfasst; Größe mit Quelle geprüft'}
Verwendet von Profil: ${x.used_by_profiles.map(p=>escape(p.name)).join(", ")}. Bitte zuerst das Profil löschen.
`:""}Unter „Entdecken“ kannst du Dateien für diesen Bereich auswählen und herunterladen.