diff --git a/src/components/settings/coach-memory-section.tsx b/src/components/settings/coach-memory-section.tsx index 81f7a2f1a..dde6912bf 100644 --- a/src/components/settings/coach-memory-section.tsx +++ b/src/components/settings/coach-memory-section.tsx @@ -251,10 +251,26 @@ export function CoachMemorySection({ size="sm" data-testid="settings-coach-memory-forget" aria-label={t("settings.ai.coachMemory.forgetAria")} - disabled={!isAuthenticated || forgetOne.isPending} + // v1.11.2 — per-id pending: only the row being + // deleted disables/spins. `forgetOne.variables` holds + // the id passed to the in-flight `mutate()`, so a + // single shared mutation no longer greys out every + // other row's forget button during one delete. + disabled={ + !isAuthenticated || + (forgetOne.isPending && forgetOne.variables === fact.id) + } onClick={() => forgetOne.mutate(fact.id)} > - + {forgetOne.isPending && + forgetOne.variables === fact.id ? ( + + ) : ( + + )} {t("settings.ai.coachMemory.forget")}