diff --git a/packages/kilo-vscode/webview-ui/src/components/chat/KiloNotifications.tsx b/packages/kilo-vscode/webview-ui/src/components/chat/KiloNotifications.tsx
index e0d01ef86e6..27045be7aa3 100644
--- a/packages/kilo-vscode/webview-ui/src/components/chat/KiloNotifications.tsx
+++ b/packages/kilo-vscode/webview-ui/src/components/chat/KiloNotifications.tsx
@@ -62,12 +62,21 @@ export const KiloNotifications: Component = () => {
return true
})
+ /** Max display-name length before falling back to generic "Try Model" label.
+ * Based on the Kilo Gateway catalog (~336 models as of 2025-07): 97% of
+ * stripped names are under 30 chars. The handful above 30 are verbose
+ * edge-cases (e.g. "Nano Banana 2 (Gemini 3.1 Flash Image Preview)" at 46).
+ */
+ const MAX_NAME = 30
+
const suggestedName = createMemo(() => {
const suggestion = suggestedModel()
if (!suggestion) return undefined
const model = provider.findModel(suggestion)
if (!model?.name) return undefined
- return stripSubProviderPrefix(model.name)
+ const name = stripSubProviderPrefix(model.name)
+ if (name.length > MAX_NAME) return undefined
+ return name
})
const handleTryModel = () => {
@@ -98,7 +107,9 @@ export const KiloNotifications: Component = () => {
diff --git a/packages/kilo-vscode/webview-ui/src/i18n/ar.ts b/packages/kilo-vscode/webview-ui/src/i18n/ar.ts
index 5da7fb66400..21be5743f8b 100644
--- a/packages/kilo-vscode/webview-ui/src/i18n/ar.ts
+++ b/packages/kilo-vscode/webview-ui/src/i18n/ar.ts
@@ -1286,4 +1286,5 @@ export const dict = {
"notifications.action.next": "التالي",
"notifications.action.close": "إغلاق",
"notifications.action.tryModel": "جرّب {{model}}",
+ "notifications.action.tryModelGeneric": "جرّب النموذج",
}
diff --git a/packages/kilo-vscode/webview-ui/src/i18n/br.ts b/packages/kilo-vscode/webview-ui/src/i18n/br.ts
index 69702b2a2b3..8bd01b26b79 100644
--- a/packages/kilo-vscode/webview-ui/src/i18n/br.ts
+++ b/packages/kilo-vscode/webview-ui/src/i18n/br.ts
@@ -1315,4 +1315,5 @@ export const dict = {
"notifications.action.next": "Próximo",
"notifications.action.close": "Fechar",
"notifications.action.tryModel": "Experimentar {{model}}",
+ "notifications.action.tryModelGeneric": "Experimentar modelo",
}
diff --git a/packages/kilo-vscode/webview-ui/src/i18n/bs.ts b/packages/kilo-vscode/webview-ui/src/i18n/bs.ts
index 7d2eae99486..0c7d435aa69 100644
--- a/packages/kilo-vscode/webview-ui/src/i18n/bs.ts
+++ b/packages/kilo-vscode/webview-ui/src/i18n/bs.ts
@@ -1311,4 +1311,5 @@ export const dict = {
"notifications.action.next": "Sljedeći",
"notifications.action.close": "Zatvori",
"notifications.action.tryModel": "Probaj {{model}}",
+ "notifications.action.tryModelGeneric": "Probaj model",
}
diff --git a/packages/kilo-vscode/webview-ui/src/i18n/da.ts b/packages/kilo-vscode/webview-ui/src/i18n/da.ts
index 3de9e50261d..d04f6f9fdd5 100644
--- a/packages/kilo-vscode/webview-ui/src/i18n/da.ts
+++ b/packages/kilo-vscode/webview-ui/src/i18n/da.ts
@@ -1302,4 +1302,5 @@ export const dict = {
"notifications.action.next": "Næste",
"notifications.action.close": "Luk",
"notifications.action.tryModel": "Prøv {{model}}",
+ "notifications.action.tryModelGeneric": "Prøv model",
}
diff --git a/packages/kilo-vscode/webview-ui/src/i18n/de.ts b/packages/kilo-vscode/webview-ui/src/i18n/de.ts
index ac2ddbe21ff..99f0fc83b58 100644
--- a/packages/kilo-vscode/webview-ui/src/i18n/de.ts
+++ b/packages/kilo-vscode/webview-ui/src/i18n/de.ts
@@ -1329,4 +1329,5 @@ export const dict = {
"notifications.action.next": "Weiter",
"notifications.action.close": "Schließen",
"notifications.action.tryModel": "{{model}} ausprobieren",
+ "notifications.action.tryModelGeneric": "Modell ausprobieren",
} satisfies Partial>
diff --git a/packages/kilo-vscode/webview-ui/src/i18n/en.ts b/packages/kilo-vscode/webview-ui/src/i18n/en.ts
index 52e1f8216c1..bf9cf0596ce 100644
--- a/packages/kilo-vscode/webview-ui/src/i18n/en.ts
+++ b/packages/kilo-vscode/webview-ui/src/i18n/en.ts
@@ -1314,4 +1314,5 @@ export const dict = {
"notifications.action.next": "Next",
"notifications.action.close": "Close",
"notifications.action.tryModel": "Try {{model}}",
+ "notifications.action.tryModelGeneric": "Try Model",
}
diff --git a/packages/kilo-vscode/webview-ui/src/i18n/es.ts b/packages/kilo-vscode/webview-ui/src/i18n/es.ts
index f06ea5f57cc..2628a545777 100644
--- a/packages/kilo-vscode/webview-ui/src/i18n/es.ts
+++ b/packages/kilo-vscode/webview-ui/src/i18n/es.ts
@@ -1319,4 +1319,5 @@ export const dict = {
"notifications.action.next": "Siguiente",
"notifications.action.close": "Cerrar",
"notifications.action.tryModel": "Probar {{model}}",
+ "notifications.action.tryModelGeneric": "Probar modelo",
}
diff --git a/packages/kilo-vscode/webview-ui/src/i18n/fr.ts b/packages/kilo-vscode/webview-ui/src/i18n/fr.ts
index cd3384534e7..8b4b49b4f50 100644
--- a/packages/kilo-vscode/webview-ui/src/i18n/fr.ts
+++ b/packages/kilo-vscode/webview-ui/src/i18n/fr.ts
@@ -1332,4 +1332,5 @@ export const dict = {
"notifications.action.next": "Suivant",
"notifications.action.close": "Fermer",
"notifications.action.tryModel": "Essayer {{model}}",
+ "notifications.action.tryModelGeneric": "Essayer le modèle",
}
diff --git a/packages/kilo-vscode/webview-ui/src/i18n/ja.ts b/packages/kilo-vscode/webview-ui/src/i18n/ja.ts
index ae71f95c77a..bc96e04f509 100644
--- a/packages/kilo-vscode/webview-ui/src/i18n/ja.ts
+++ b/packages/kilo-vscode/webview-ui/src/i18n/ja.ts
@@ -1301,4 +1301,5 @@ export const dict = {
"notifications.action.next": "次へ",
"notifications.action.close": "閉じる",
"notifications.action.tryModel": "{{model}}を試す",
+ "notifications.action.tryModelGeneric": "モデルを試す",
}
diff --git a/packages/kilo-vscode/webview-ui/src/i18n/ko.ts b/packages/kilo-vscode/webview-ui/src/i18n/ko.ts
index 5f5230d6ce7..565a7b0a430 100644
--- a/packages/kilo-vscode/webview-ui/src/i18n/ko.ts
+++ b/packages/kilo-vscode/webview-ui/src/i18n/ko.ts
@@ -1289,4 +1289,5 @@ export const dict = {
"notifications.action.next": "다음",
"notifications.action.close": "닫기",
"notifications.action.tryModel": "{{model}} 시도",
+ "notifications.action.tryModelGeneric": "모델 시도",
}
diff --git a/packages/kilo-vscode/webview-ui/src/i18n/nl.ts b/packages/kilo-vscode/webview-ui/src/i18n/nl.ts
index 90d29ffd81e..6cf8bb83f72 100644
--- a/packages/kilo-vscode/webview-ui/src/i18n/nl.ts
+++ b/packages/kilo-vscode/webview-ui/src/i18n/nl.ts
@@ -1307,4 +1307,5 @@ export const dict = {
"notifications.action.next": "Volgende",
"notifications.action.close": "Sluiten",
"notifications.action.tryModel": "Probeer {{model}}",
+ "notifications.action.tryModelGeneric": "Probeer model",
}
diff --git a/packages/kilo-vscode/webview-ui/src/i18n/no.ts b/packages/kilo-vscode/webview-ui/src/i18n/no.ts
index 04ad8c62d0d..2ba71a72bc7 100644
--- a/packages/kilo-vscode/webview-ui/src/i18n/no.ts
+++ b/packages/kilo-vscode/webview-ui/src/i18n/no.ts
@@ -1300,4 +1300,5 @@ export const dict = {
"notifications.action.next": "Neste",
"notifications.action.close": "Lukk",
"notifications.action.tryModel": "Prøv {{model}}",
+ "notifications.action.tryModelGeneric": "Prøv modell",
} satisfies Partial>
diff --git a/packages/kilo-vscode/webview-ui/src/i18n/pl.ts b/packages/kilo-vscode/webview-ui/src/i18n/pl.ts
index 8a9b5bc6b8b..aa869dd9c29 100644
--- a/packages/kilo-vscode/webview-ui/src/i18n/pl.ts
+++ b/packages/kilo-vscode/webview-ui/src/i18n/pl.ts
@@ -1310,4 +1310,5 @@ export const dict = {
"notifications.action.next": "Następny",
"notifications.action.close": "Zamknij",
"notifications.action.tryModel": "Wypróbuj {{model}}",
+ "notifications.action.tryModelGeneric": "Wypróbuj model",
}
diff --git a/packages/kilo-vscode/webview-ui/src/i18n/ru.ts b/packages/kilo-vscode/webview-ui/src/i18n/ru.ts
index 84c0c77da63..fc916a87c05 100644
--- a/packages/kilo-vscode/webview-ui/src/i18n/ru.ts
+++ b/packages/kilo-vscode/webview-ui/src/i18n/ru.ts
@@ -1309,4 +1309,5 @@ export const dict = {
"notifications.action.next": "Далее",
"notifications.action.close": "Закрыть",
"notifications.action.tryModel": "Попробовать {{model}}",
+ "notifications.action.tryModelGeneric": "Попробовать модель",
}
diff --git a/packages/kilo-vscode/webview-ui/src/i18n/th.ts b/packages/kilo-vscode/webview-ui/src/i18n/th.ts
index 7157d028a2f..2a323e3cd0e 100644
--- a/packages/kilo-vscode/webview-ui/src/i18n/th.ts
+++ b/packages/kilo-vscode/webview-ui/src/i18n/th.ts
@@ -1285,4 +1285,5 @@ export const dict = {
"notifications.action.next": "ถัดไป",
"notifications.action.close": "ปิด",
"notifications.action.tryModel": "ลองใช้ {{model}}",
+ "notifications.action.tryModelGeneric": "ลองใช้โมเดล",
}
diff --git a/packages/kilo-vscode/webview-ui/src/i18n/tr.ts b/packages/kilo-vscode/webview-ui/src/i18n/tr.ts
index ee0a4add8d9..be19ad87e12 100644
--- a/packages/kilo-vscode/webview-ui/src/i18n/tr.ts
+++ b/packages/kilo-vscode/webview-ui/src/i18n/tr.ts
@@ -1300,4 +1300,5 @@ export const dict = {
"notifications.action.next": "Sonraki",
"notifications.action.close": "Kapat",
"notifications.action.tryModel": "Dene {{model}}",
+ "notifications.action.tryModelGeneric": "Modeli Dene",
}
diff --git a/packages/kilo-vscode/webview-ui/src/i18n/zh.ts b/packages/kilo-vscode/webview-ui/src/i18n/zh.ts
index 5ee824f5842..9f70cbee0c0 100644
--- a/packages/kilo-vscode/webview-ui/src/i18n/zh.ts
+++ b/packages/kilo-vscode/webview-ui/src/i18n/zh.ts
@@ -1262,4 +1262,5 @@ export const dict = {
"notifications.action.next": "下一个",
"notifications.action.close": "关闭",
"notifications.action.tryModel": "尝试 {{model}}",
+ "notifications.action.tryModelGeneric": "尝试模型",
} satisfies Partial>
diff --git a/packages/kilo-vscode/webview-ui/src/i18n/zht.ts b/packages/kilo-vscode/webview-ui/src/i18n/zht.ts
index 809a47d8ef7..50761e5c247 100644
--- a/packages/kilo-vscode/webview-ui/src/i18n/zht.ts
+++ b/packages/kilo-vscode/webview-ui/src/i18n/zht.ts
@@ -1265,4 +1265,5 @@ export const dict = {
"notifications.action.next": "下一個",
"notifications.action.close": "關閉",
"notifications.action.tryModel": "嘗試 {{model}}",
+ "notifications.action.tryModelGeneric": "嘗試模型",
} satisfies Partial>