diff --git a/apps/web/components/settings/company-brain-skills.tsx b/apps/web/components/settings/company-brain-skills.tsx index b546fc40..e97b57e8 100644 --- a/apps/web/components/settings/company-brain-skills.tsx +++ b/apps/web/components/settings/company-brain-skills.tsx @@ -335,7 +335,8 @@ function CompanyBrainSkillsContent({

- {SCOPE_HINTS[scopeFilter]} + {SCOPE_HINTS[scopeFilter]} Skills created through Company Brain + appear here automatically.

{uploadError ? ( diff --git a/apps/web/components/settings/company-brain-skills/domain.ts b/apps/web/components/settings/company-brain-skills/domain.ts index df45e085..8be045cb 100644 --- a/apps/web/components/settings/company-brain-skills/domain.ts +++ b/apps/web/components/settings/company-brain-skills/domain.ts @@ -13,6 +13,7 @@ export type SkillDraft = { export type SkillMarkdown = Pick export type NewSkillOrigin = "web" | "upload" +export type SkillOrigin = NewSkillOrigin | "slack" export type SkillAuthoringTarget = { canEdit: boolean @@ -51,6 +52,10 @@ export function emptySkillDraft(): SkillDraft { } } +export function skillOriginLabel(origin: SkillOrigin): string | null { + return origin === "slack" ? "Created by Company Brain" : null +} + export function setSkillDraftScope( draft: SkillDraft, scope: SkillScope, diff --git a/apps/web/components/settings/company-brain-skills/skill-row.tsx b/apps/web/components/settings/company-brain-skills/skill-row.tsx index a6ca7f0a..033127fa 100644 --- a/apps/web/components/settings/company-brain-skills/skill-row.tsx +++ b/apps/web/components/settings/company-brain-skills/skill-row.tsx @@ -3,6 +3,7 @@ import { cn } from "@lib/utils" import { formatDistanceToNow } from "date-fns" import { ChevronRight } from "lucide-react" +import { skillOriginLabel } from "@/components/settings/company-brain-skills/domain" import type { BrainSkill } from "@/hooks/use-brain-skills" import { dmSans125ClassName } from "@/lib/fonts" @@ -27,6 +28,16 @@ function ScopeBadge({ scope }: { scope: BrainSkill["scope"] }) { ) } +function OriginBadge({ origin }: { origin: BrainSkill["origin"] }) { + const label = skillOriginLabel(origin) + if (!label) return null + return ( + + {label} + + ) +} + export function SkillRow({ skill, onOpen, @@ -51,6 +62,7 @@ export function SkillRow({ {skill.name} + {skill.status === "disabled" ? ( Disabled diff --git a/apps/web/hooks/use-brain-skills.impl.ts b/apps/web/hooks/use-brain-skills.impl.ts index 1e8a85f1..ecbc8185 100644 --- a/apps/web/hooks/use-brain-skills.impl.ts +++ b/apps/web/hooks/use-brain-skills.impl.ts @@ -5,6 +5,7 @@ import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query" import type { NewSkillOrigin, SkillDraft, + SkillOrigin, SkillScope, } from "@/components/settings/company-brain-skills/domain" import { skillSaveRequestBody } from "@/components/settings/company-brain-skills/domain" @@ -23,6 +24,7 @@ export type BrainSkill = { scope: SkillScope status: BrainSkillStatus creatorUserId: string + origin: SkillOrigin canEdit: boolean canDelete: boolean version: number @@ -86,6 +88,9 @@ export function useBrainSkills() { queryFn: () => jsonRequest(`${BASE}/`, {}, "Couldn't load skills."), enabled: !!org?.id && !!user?.id, + staleTime: 0, + refetchOnWindowFocus: true, + refetchInterval: 15_000, }) }