diff --git a/studio/frontend/src/components/app-sidebar.tsx b/studio/frontend/src/components/app-sidebar.tsx
index 6d029a59bd..b1dc286df5 100644
--- a/studio/frontend/src/components/app-sidebar.tsx
+++ b/studio/frontend/src/components/app-sidebar.tsx
@@ -527,7 +527,7 @@ export function AppSidebar() {
className="!size-8"
/>
-
+
{displayTitle}
Studio
diff --git a/studio/frontend/src/components/assistant-ui/model-selector.tsx b/studio/frontend/src/components/assistant-ui/model-selector.tsx
index 679034c9fa..4fa39beff4 100644
--- a/studio/frontend/src/components/assistant-ui/model-selector.tsx
+++ b/studio/frontend/src/components/assistant-ui/model-selector.tsx
@@ -81,7 +81,7 @@ function ModelSelectorTrigger({
)}
-
+
{currentModel?.name ?? "Select model"}
{currentModel?.description && (
diff --git a/tests/studio/test_studio_text_descender_clipping.py b/tests/studio/test_studio_text_descender_clipping.py
new file mode 100644
index 0000000000..dd0df320bc
--- /dev/null
+++ b/tests/studio/test_studio_text_descender_clipping.py
@@ -0,0 +1,69 @@
+"""
+Regression guard: descender-prone text spans in Studio must not pair
+`leading-none` with `truncate` (overflow: hidden), which clips glyph
+descenders (g, p, q, y, j) in real user-visible labels.
+"""
+
+from __future__ import annotations
+
+import re
+from pathlib import Path
+
+
+WORKDIR = Path(__file__).resolve().parents[2]
+MODEL_SELECTOR = (
+ WORKDIR
+ / "studio"
+ / "frontend"
+ / "src"
+ / "components"
+ / "assistant-ui"
+ / "model-selector.tsx"
+)
+APP_SIDEBAR = WORKDIR / "studio" / "frontend" / "src" / "components" / "app-sidebar.tsx"
+
+
+def _read(path: Path) -> str:
+ assert path.exists(), f"missing source file: {path}"
+ return path.read_text()
+
+
+def test_model_selector_trigger_label_uses_leading_tight():
+ src = _read(MODEL_SELECTOR)
+ pattern = re.compile(
+ r'',
+ )
+ matches = pattern.findall(src)
+ assert matches, "could not find sidebar account-block parent div"
+ leading_classes = [m for m in matches if m.startswith("leading-")]
+ assert (
+ leading_classes
+ ), f"no leading-* class on sidebar account-block parent: {matches}"
+ for cls in leading_classes:
+ assert (
+ cls == "leading-tight"
+ ), f"sidebar account-block must use leading-tight, got: {cls}"
+
+
+def test_no_truncate_plus_leading_none_in_changed_files():
+ for path in (MODEL_SELECTOR, APP_SIDEBAR):
+ src = _read(path)
+ for line in src.splitlines():
+ if "truncate" in line and "leading-none" in line:
+ raise AssertionError(
+ f"{path.name}: same line uses truncate + leading-none, descenders will clip: {line.strip()}"
+ )