From 7647888b4f80dbaaadcc40df3750cfeca74572ec Mon Sep 17 00:00:00 2001
From: Vorflux AI <249966464+vorflux[bot]@users.noreply.github.com>
Date: Tue, 21 Jul 2026 11:15:47 +0000
Subject: [PATCH] feat(web): add workspace persona settings
---
apps/web/components/settings/account.tsx | 4 +-
apps/web/components/settings/org-context.tsx | 127 ------------------
.../components/settings/workspace-persona.tsx | 101 ++++++++++++++
apps/web/hooks/use-org-settings.ts | 2 +
4 files changed, 105 insertions(+), 129 deletions(-)
delete mode 100644 apps/web/components/settings/org-context.tsx
create mode 100644 apps/web/components/settings/workspace-persona.tsx
diff --git a/apps/web/components/settings/account.tsx b/apps/web/components/settings/account.tsx
index d054e608..9d61067b 100644
--- a/apps/web/components/settings/account.tsx
+++ b/apps/web/components/settings/account.tsx
@@ -40,7 +40,7 @@ import { useEffect, useMemo, useRef, useState } from "react"
import { toast } from "sonner"
import { useContainerTags } from "@/hooks/use-container-tags"
import { PopoverAnchor } from "@ui/components/popover"
-import { OrgContext } from "@/components/settings/org-context"
+import { WorkspacePersona } from "@/components/settings/workspace-persona"
import { OrgPlanBadge } from "@/components/org-plan-badge"
import { useTokenUsage } from "@/hooks/use-token-usage"
import { useOrgSummaries } from "@/hooks/use-org-summaries"
@@ -614,7 +614,7 @@ export default function Account() {
- {canManageTeam &&
- {children} -
- ) -} - -export function OrgContext() { - const { data: settings, isLoading, isError } = useOrgSettings() - const updateSettings = useUpdateOrgSettings() - const [prompt, setPrompt] = useState("") - - const enabled = settings?.shouldLLMFilter ?? false - const savedPrompt = settings?.filterPrompt ?? "" - const dirty = prompt.trim() !== savedPrompt.trim() - const settingsReady = !isLoading && !isError - - useEffect(() => { - setPrompt(settings?.filterPrompt ?? "") - }, [settings?.filterPrompt]) - - const handleToggle = (next: boolean) => { - updateSettings.mutate({ shouldLLMFilter: next }) - } - - const handleSave = () => { - updateSettings.mutate({ - shouldLLMFilter: true, - filterPrompt: prompt.trim() ? prompt.trim() : null, - }) - } - - return ( -- Guide how Supermemory processes and remembers your content. -
-+ {children} +
+ ) +} + +export function WorkspacePersona() { + const { data: settings, isLoading, isError } = useOrgSettings() + const updateSettings = useUpdateOrgSettings() + const [persona, setPersona] = useState("") + + const savedPersona = settings?.workspacePersona ?? "" + const dirty = persona.trim() !== savedPersona.trim() + const settingsReady = !isLoading && !isError + + useEffect(() => { + setPersona(settings?.workspacePersona ?? "") + }, [settings?.workspacePersona]) + + const handleSave = () => { + updateSettings.mutate({ + workspacePersona: persona.trim() ? persona.trim() : null, + }) + } + + return ( ++ Guide how Company Brain communicates and works with your workspace. +
+