mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-10 13:22:14 +00:00
refactor(admin): consolidate assistant + feedback-quality into one Coach section
The ai-quality, assistant, and coach-feedback admin sections were three separate navigation entries for one coherent coach-quality concern. Fold them into a single "Coach" section that stacks the assistant surface toggles, the server-key + module-availability operator config, and both feedback-quality tables (Coach + Insights). Drop the three old slugs and their section copy; add admin.section.coach.* across all six locales.
This commit is contained in:
1 parent
930c4a75dd
commit
3a29387393
10 files changed
+45
-110
No files matched your search
+3
-11
@@ -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",
|
||||
|
||||
+3
-11
@@ -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",
|
||||
|
||||
+3
-11
@@ -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",
|
||||
|
||||
+3
-11
@@ -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",
|
||||
|
||||
+3
-11
@@ -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",
|
||||
|
||||
+3
-11
@@ -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",
|
||||
|
||||
@@ -90,33 +90,20 @@ export function AdminSectionRenderer({
|
||||
<IntegrationsGroupSection />
|
||||
</SectionFrame>
|
||||
);
|
||||
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 (
|
||||
<SectionFrame
|
||||
title={t("admin.section.ai-quality.title")}
|
||||
subtitle={t("admin.section.ai-quality.subtitle")}
|
||||
>
|
||||
<AiQualitySection />
|
||||
</SectionFrame>
|
||||
);
|
||||
case "assistant":
|
||||
return (
|
||||
<SectionFrame
|
||||
title={t("admin.section.assistant.title")}
|
||||
subtitle={t("admin.section.assistant.subtitle")}
|
||||
title={t("admin.section.coach.title")}
|
||||
subtitle={t("admin.section.coach.subtitle")}
|
||||
>
|
||||
<AssistantSection />
|
||||
<ModuleAvailabilitySection />
|
||||
<AiServerKeySection />
|
||||
</SectionFrame>
|
||||
);
|
||||
case "coach-feedback":
|
||||
return (
|
||||
<SectionFrame
|
||||
title={t("admin.section.coach-feedback.title")}
|
||||
subtitle={t("admin.section.coach-feedback.subtitle")}
|
||||
>
|
||||
<CoachFeedbackSection />
|
||||
<AiQualitySection />
|
||||
</SectionFrame>
|
||||
);
|
||||
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 <AboutSection />;
|
||||
// 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 <AboutSection hideTourReplay />;
|
||||
default:
|
||||
slug satisfies never;
|
||||
return null;
|
||||
|
||||
@@ -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");
|
||||
});
|
||||
});
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
Reference in new issue
Block a user