diff --git a/messages/de.json b/messages/de.json
index 0a4f06172..07a4a2c61 100644
--- a/messages/de.json
+++ b/messages/de.json
@@ -5274,17 +5274,9 @@
"title": "Integrationen",
"subtitle": "Umami, GlitchTip, Web Push und Bug-Reports konfigurieren."
},
- "ai-quality": {
- "title": "Auswertungs-Qualität",
- "subtitle": "Hilfreichkeit nach Schweregrad und Provider — Nutzer-Feedback der letzten 30 Tage."
- },
- "assistant": {
- "title": "Assistenz-Oberflächen",
- "subtitle": "Jede modellgestützte Oberfläche separat ein- oder ausschalten, ohne die Provider-Konfiguration zu entfernen."
- },
- "coach-feedback": {
- "title": "Coach-Feedback",
- "subtitle": "Hilfreich-Quote pro Coach-Prompt-Version, Tonfall und Ausführlichkeit der letzten 30 Tage."
+ "coach": {
+ "title": "Coach",
+ "subtitle": "Assistenz-Oberflächen, Server-Schlüssel sowie die Feedback-Qualitäts-Tabellen für Coach und Auswertungen an einem Ort."
},
"feedback": {
"title": "Feedback",
diff --git a/messages/en.json b/messages/en.json
index a9fcbab85..15216e66b 100644
--- a/messages/en.json
+++ b/messages/en.json
@@ -5274,17 +5274,9 @@
"title": "Integrations",
"subtitle": "Configure Umami, GlitchTip, Web Push, and bug reports."
},
- "ai-quality": {
- "title": "Insights Quality",
- "subtitle": "Helpfulness scores grouped by severity and provider, from the last 30 days of user feedback."
- },
- "assistant": {
- "title": "Assistant Surfaces",
- "subtitle": "Toggle each model-driven surface on or off without removing the provider configuration."
- },
- "coach-feedback": {
- "title": "Coach Feedback",
- "subtitle": "Helpful-rate per Coach prompt version, tone, and verbosity from the last 30 days."
+ "coach": {
+ "title": "Coach",
+ "subtitle": "Assistant surfaces, server key, and the Coach and Insights feedback-quality tables in one place."
},
"feedback": {
"title": "Feedback",
diff --git a/messages/es.json b/messages/es.json
index e7e8e81e2..a0eb54b27 100644
--- a/messages/es.json
+++ b/messages/es.json
@@ -5274,17 +5274,9 @@
"title": "Integraciones",
"subtitle": "Configura Umami, GlitchTip, Web Push e informes de errores."
},
- "ai-quality": {
- "title": "Calidad de los análisis",
- "subtitle": "Puntuaciones de utilidad agrupadas por gravedad y proveedor, de los últimos 30 días de comentarios de usuarios."
- },
- "assistant": {
- "title": "Superficies del asistente",
- "subtitle": "Activa o desactiva cada superficie impulsada por el modelo sin retirar la configuración del proveedor."
- },
- "coach-feedback": {
- "title": "Comentarios del Coach",
- "subtitle": "Tasa de utilidad por versión de prompt, tono y nivel de detalle del Coach de los últimos 30 días."
+ "coach": {
+ "title": "Coach",
+ "subtitle": "Superficies del asistente, clave del servidor y las tablas de calidad de comentarios del Coach y de los análisis, en un solo lugar."
},
"feedback": {
"title": "Comentarios",
diff --git a/messages/fr.json b/messages/fr.json
index 1320cc4c2..8c9aacbf8 100644
--- a/messages/fr.json
+++ b/messages/fr.json
@@ -5274,17 +5274,9 @@
"title": "Intégrations",
"subtitle": "Configurez Umami, GlitchTip, Web Push et les rapports de bug."
},
- "ai-quality": {
- "title": "Qualité des analyses",
- "subtitle": "Scores d'utilité regroupés par gravité et fournisseur, sur les 30 derniers jours de retours utilisateurs."
- },
- "assistant": {
- "title": "Surfaces d'assistance",
- "subtitle": "Activer ou désactiver chaque surface pilotée par le modèle sans supprimer la configuration du fournisseur."
- },
- "coach-feedback": {
- "title": "Retours sur le Coach",
- "subtitle": "Taux d'utilité par version de prompt, ton et niveau de détail du Coach sur les 30 derniers jours."
+ "coach": {
+ "title": "Coach",
+ "subtitle": "Surfaces d'assistance, clé du serveur et les tableaux de qualité des retours du Coach et des analyses, au même endroit."
},
"feedback": {
"title": "Retours",
diff --git a/messages/it.json b/messages/it.json
index a643e7671..26ec4adb6 100644
--- a/messages/it.json
+++ b/messages/it.json
@@ -5274,17 +5274,9 @@
"title": "Integrazioni",
"subtitle": "Configura Umami, GlitchTip, Web Push e le segnalazioni di bug."
},
- "ai-quality": {
- "title": "Qualità delle analisi",
- "subtitle": "Punteggi di utilità raggruppati per gravità e provider, dagli ultimi 30 giorni di feedback degli utenti."
- },
- "assistant": {
- "title": "Superfici dell'assistente",
- "subtitle": "Attiva o disattiva ciascuna superficie guidata dal modello senza rimuovere la configurazione del provider."
- },
- "coach-feedback": {
- "title": "Feedback del Coach",
- "subtitle": "Tasso di utilità per versione del prompt, tono e livello di dettaglio del Coach degli ultimi 30 giorni."
+ "coach": {
+ "title": "Coach",
+ "subtitle": "Superfici dell'assistente, chiave del server e le tabelle di qualità del feedback di Coach e analisi, in un unico posto."
},
"feedback": {
"title": "Feedback",
diff --git a/messages/pl.json b/messages/pl.json
index 0b1792274..85040a3c2 100644
--- a/messages/pl.json
+++ b/messages/pl.json
@@ -5274,17 +5274,9 @@
"title": "Integracje",
"subtitle": "Skonfiguruj Umami, GlitchTip, Web Push i zgłoszenia błędów."
},
- "ai-quality": {
- "title": "Jakość analiz",
- "subtitle": "Oceny przydatności pogrupowane według ważności i dostawcy, z ostatnich 30 dni opinii użytkowników."
- },
- "assistant": {
- "title": "Powierzchnie asystenta",
- "subtitle": "Włącz lub wyłącz każdą powierzchnię opartą na modelu bez usuwania konfiguracji dostawcy."
- },
- "coach-feedback": {
- "title": "Opinie o Coachu",
- "subtitle": "Wskaźnik przydatności według wersji promptu, tonu i szczegółowości Coacha z ostatnich 30 dni."
+ "coach": {
+ "title": "Coach",
+ "subtitle": "Powierzchnie asystenta, klucz serwera oraz tabele jakości opinii Coacha i analiz w jednym miejscu."
},
"feedback": {
"title": "Opinie",
diff --git a/src/app/admin/[section]/renderer.tsx b/src/app/admin/[section]/renderer.tsx
index d1e4db387..8bd9e34be 100644
--- a/src/app/admin/[section]/renderer.tsx
+++ b/src/app/admin/[section]/renderer.tsx
@@ -90,33 +90,20 @@ export function AdminSectionRenderer({
);
- case "ai-quality":
+ case "coach":
+ // v1.18.1 — the former ai-quality, assistant, and coach-feedback
+ // sections fold into one Coach area: surface toggles + operator
+ // config first, then the two feedback-quality tables.
return (
-
-
- );
- case "assistant":
- return (
-
-
- );
- case "coach-feedback":
- return (
-
+
);
case "feedback":
@@ -207,7 +194,9 @@ export function AdminSectionRenderer({
// v1.4.36 W4e — About section reused as-is from the settings
// surface. The component owns its own heading + cards layout
// so no SectionFrame wrapper.
- return ;
+ // v1.18.1 E5 — hide the onboarding "Replay tour" card on the admin
+ // surface; it's a user-facing affordance with no admin-side use.
+ return ;
default:
slug satisfies never;
return null;
diff --git a/src/components/admin/__tests__/sections.test.tsx b/src/components/admin/__tests__/sections.test.tsx
index 4127ed94c..c5b9ba1da 100644
--- a/src/components/admin/__tests__/sections.test.tsx
+++ b/src/components/admin/__tests__/sections.test.tsx
@@ -155,7 +155,10 @@ describe("admin sections — SSR smoke", () => {
expect(html).toContain("No feedback yet");
});
- it("admin slug list contains ai-quality (renderer parity)", () => {
- expect(ADMIN_SECTION_SLUGS).toContain("ai-quality");
+ it("admin slug list contains coach (renderer parity)", () => {
+ // v1.18.1 — ai-quality / assistant / coach-feedback folded into one
+ // "coach" section. The standalone component still renders above; the
+ // slug parity assertion tracks the consolidated nav entry.
+ expect(ADMIN_SECTION_SLUGS).toContain("coach");
});
});
diff --git a/src/components/admin/admin-shell.tsx b/src/components/admin/admin-shell.tsx
index c8ce68f90..70924d726 100644
--- a/src/components/admin/admin-shell.tsx
+++ b/src/components/admin/admin-shell.tsx
@@ -23,14 +23,12 @@ import {
Info,
KeyRound,
Inbox,
- MessageSquare,
Plug,
Radio,
ScrollText,
Server,
Settings,
ShieldAlert,
- SlidersHorizontal,
Sparkles,
Ticket,
Users,
@@ -76,21 +74,14 @@ export const ADMIN_SECTIONS: readonly AdminSection[] = [
titleKey: "admin.section.integrations.title",
icon: Plug,
},
+ // v1.18.1 — single "Coach" entry replacing the former ai-quality,
+ // assistant, and coach-feedback trio. The section body stacks all
+ // three surfaces so the coach-quality picture lives in one place.
{
- slug: "ai-quality",
- titleKey: "admin.section.ai-quality.title",
+ slug: "coach",
+ titleKey: "admin.section.coach.title",
icon: Sparkles,
},
- {
- slug: "assistant",
- titleKey: "admin.section.assistant.title",
- icon: SlidersHorizontal,
- },
- {
- slug: "coach-feedback",
- titleKey: "admin.section.coach-feedback.title",
- icon: MessageSquare,
- },
{
slug: "feedback",
titleKey: "admin.section.feedback.title",
diff --git a/src/components/admin/section-slugs.ts b/src/components/admin/section-slugs.ts
index 8581cd072..9fa94f773 100644
--- a/src/components/admin/section-slugs.ts
+++ b/src/components/admin/section-slugs.ts
@@ -14,13 +14,13 @@ export const ADMIN_SECTION_SLUGS = [
"general",
"services",
"integrations",
- "ai-quality",
- // v1.4.31 — operator-side assistant feature-flag toggles. Sits
- // between `ai-quality` (provider config) and `coach-feedback`
- // (in-app feedback inbox) per
- // `.planning/research/v15-assistant-optional.md` Part B.
- "assistant",
- "coach-feedback",
+ // v1.18.1 — the former `ai-quality`, `assistant`, and `coach-feedback`
+ // sections collapse into one "Coach" area. It holds the assistant
+ // surface toggles, the server-key + module-availability operator
+ // config, and both feedback-quality tables (Coach + Insights). Three
+ // navigation entries for one coherent coach-quality concern read as
+ // clutter; one card opens the full picture.
+ "coach",
"feedback",
"reminders",
"users",