diff --git a/frontend/src/locale/en.json b/frontend/src/locale/en.json index 0f02d7bd..fb315b62 100644 --- a/frontend/src/locale/en.json +++ b/frontend/src/locale/en.json @@ -137,6 +137,7 @@ "retrieval": { "title": "Retrieval", "note": "These changes take effect immediately, no re-ingest needed.", + "tag": "live · no re-ingest", "chunks": "Chunks to retrieve (top-k)", "scoreThreshold": "Score threshold", "scoreThresholdPlaceholder": "None", @@ -165,6 +166,7 @@ "chunking": { "title": "Chunking", "note": "Ingest-time settings. Changing these requires re-ingesting the source.", + "tag": "re-ingest to apply", "strategy": "Chunking strategy", "strategies": { "classic_chunk": "Classic", diff --git a/frontend/src/settings/components/RetrievalOptions.tsx b/frontend/src/settings/components/RetrievalOptions.tsx index d7baebe3..b20ce13a 100644 --- a/frontend/src/settings/components/RetrievalOptions.tsx +++ b/frontend/src/settings/components/RetrievalOptions.tsx @@ -1,6 +1,8 @@ -import { useMemo, useState } from 'react'; +import { type ReactNode, useMemo, useState } from 'react'; import { useTranslation } from 'react-i18next'; +import { cn } from '@/lib/utils'; + import { Button } from '../../components/ui/button'; import { Input } from '../../components/ui/input'; import { Label } from '../../components/ui/label'; @@ -83,6 +85,64 @@ const CHUNKING_STRATEGIES: ChunkingStrategy[] = [ 'parent_child', ]; +/** + * Group eyebrow: an uppercase, tracked title with a normal-weight muted ` · tag` + * suffix. Reads as more prominent than the individual field labels below it. + */ +function GroupHeader({ title, tag }: { title: string; tag: string }) { + return ( +
{description}
+ ) : null} +- {tr('retrieval.note')} -
-- {tr('retrieval.scoreThresholdHint')} -
-- {tr('retrieval.exposureHint')} -
-- {tr('prescreen.warning')} -
- {value.retrieval.prescreen.enabled && ( -- {tr('chunking.note')} -
-