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 && }
+ {canManageTeam && }
diff --git a/apps/web/components/settings/org-context.tsx b/apps/web/components/settings/org-context.tsx
deleted file mode 100644
index 0aeb7c9f..00000000
--- a/apps/web/components/settings/org-context.tsx
+++ /dev/null
@@ -1,127 +0,0 @@
-"use client"
-
-import { useEffect, useState } from "react"
-import { LoaderIcon } from "lucide-react"
-import { dmSans125ClassName, dmSansClassName } from "@/lib/fonts"
-import { useOrgSettings, useUpdateOrgSettings } from "@/hooks/use-org-settings"
-import { cn } from "@lib/utils"
-
-function SectionTitle({ children }: { children: React.ReactNode }) {
- return (
-
- {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 (
-
-
-
-
Organization Context
-
- Guide how Supermemory processes and remembers your content.
-
-
-
-
-
- {enabled && (
-
- )}
-
- )
-}
diff --git a/apps/web/components/settings/workspace-persona.tsx b/apps/web/components/settings/workspace-persona.tsx
new file mode 100644
index 00000000..c1f29f5f
--- /dev/null
+++ b/apps/web/components/settings/workspace-persona.tsx
@@ -0,0 +1,101 @@
+"use client"
+
+import { LoaderIcon } from "lucide-react"
+import { useEffect, useState } from "react"
+import { useOrgSettings, useUpdateOrgSettings } from "@/hooks/use-org-settings"
+import { dmSans125ClassName, dmSansClassName } from "@/lib/fonts"
+import { cn } from "@lib/utils"
+
+function SectionTitle({ children }: { children: React.ReactNode }) {
+ return (
+
+ {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 (
+
+
+
Workspace Persona
+
+ Guide how Company Brain communicates and works with your workspace.
+
+
+
+
+
+ )
+}
diff --git a/apps/web/hooks/use-org-settings.ts b/apps/web/hooks/use-org-settings.ts
index dc415ff1..39f21d3c 100644
--- a/apps/web/hooks/use-org-settings.ts
+++ b/apps/web/hooks/use-org-settings.ts
@@ -8,6 +8,7 @@ const API_BASE = `${process.env.NEXT_PUBLIC_BACKEND_URL ?? "https://api.supermem
export type OrgSettings = {
shouldLLMFilter: boolean
filterPrompt: string | null
+ workspacePersona: string | null
includeItems?: string[] | null
excludeItems?: string[] | null
}
@@ -34,6 +35,7 @@ export function useOrgSettings() {
return {
shouldLLMFilter: settings.shouldLLMFilter ?? false,
filterPrompt: settings.filterPrompt ?? null,
+ workspacePersona: settings.workspacePersona ?? null,
includeItems: settings.includeItems ?? null,
excludeItems: settings.excludeItems ?? null,
}