Endpoint
+
—
diff --git a/static/js/settings.js b/static/js/settings.js
index 0e058484d..c5c23390d 100644
--- a/static/js/settings.js
+++ b/static/js/settings.js
@@ -239,6 +239,7 @@ function _fillEndpointSelect(selectEl, endpoints, selected, keepBlank) {
} else if (blankText !== null) {
selectEl.value = '';
}
+ _syncEndpointLogo(selectEl);
}
// Mirror the selected model's provider logo into a sibling .
@@ -256,6 +257,25 @@ function _syncModelLogo(selectEl) {
}
}
+// Same idea but for endpoint dropdowns where the
+// is an opaque endpoint UUID — fall back to the option's text label
+// so providerLogo() can pattern-match (Anthropic, OpenAI, Ollama, …).
+function _syncEndpointLogo(selectEl) {
+ if (!selectEl) return;
+ const logoEl = document.getElementById(selectEl.id + '-logo');
+ if (!logoEl) return;
+ const apply = () => {
+ const opt = selectEl.options[selectEl.selectedIndex];
+ const label = (opt && opt.textContent) || selectEl.value || '';
+ logoEl.innerHTML = providerLogo(label) || '';
+ };
+ apply();
+ if (!selectEl.dataset.epLogoSync) {
+ selectEl.dataset.epLogoSync = '1';
+ selectEl.addEventListener('change', apply);
+ }
+}
+
function _fillModelSelect(selectEl, models, selected, keepBlank) {
if (!selectEl) return;
const previous = selected !== undefined ? selected : selectEl.value;
diff --git a/static/style.css b/static/style.css
index 274e6a734..cc0409f1f 100644
--- a/static/style.css
+++ b/static/style.css
@@ -14379,6 +14379,17 @@ body:has(.doc-version-panel:not(.hidden)) .hamburger-btn {
flex-shrink: 0; color: var(--fg); opacity: 0.85;
}
.adm-provider-logo svg { width: 14px; height: 14px; }
+/* Constrain logo SVGs in settings dropdown chips. Many provider
+ icons in providers.js declare only viewBox (no width/height),
+ so without this rule the browser falls back to 300x150 and
+ blows up the row. */
+.settings-fallback-row > span[style*="width:18px"] svg:not([width]),
+.settings-row > span[style*="width:18px"] svg:not([width]),
+span[id$="-logo"] svg:not([width]) {
+ width: 100%;
+ height: 100%;
+ display: block;
+}
.adm-provider-logo:empty {
background: color-mix(in srgb, var(--fg) 12%, transparent);
border-radius: 50%;