Symptom

UX audit flagged that the “+Add Server” CTA button in the empty-dashboard / server-search bubble uses a pill/capsule shape that is not backed by a CommonLayout token — relying on Material3’s default ButtonDefaults.shape (RoundedCornerShape(50%)) instead of an explicitly named constant.

Root cause

Material3 Button composable defaults to a full-pill shape without requiring a shape = argument. Nothing in code review catches “implicit pill” vs “token-backed pill”; the intent is invisible at the call site.

Fix

Added CORNER_RADIUS_PILL = 50.dp to CommonLayout (resolves to a full pill for any standard button height via RoundedCornerShape clamping). Passed shape = RoundedCornerShape(CommonLayout.CORNER_RADIUS_PILL) explicitly to the Button in ServerSearchBubbleContent. Net zero visual change — the pill shape is intentional — but the intent is now named.

Prevention

When adding a new Button (or any shaped Surface), always pass an explicit shape = drawn from CommonLayout. If the desired shape has no token yet, add one before the call site — never rely on the Material3 default silently. Code review: any Button { … } without a shape = argument should be questioned.