diff --git a/packages/ui/src/components/chat/ModelControls.tsx b/packages/ui/src/components/chat/ModelControls.tsx index 262664b9..e235025a 100644 --- a/packages/ui/src/components/chat/ModelControls.tsx +++ b/packages/ui/src/components/chat/ModelControls.tsx @@ -57,6 +57,28 @@ type MobileVariantTarget = { providerId: string; modelId: string }; const buildModelRefKey = (providerID: string, modelID: string) => `${providerID}:${modelID}`; const MAX_INLINE_MOBILE_VARIANT_OPTIONS = 6; +const AgentDescriptionTooltip: React.FC<{ + description?: string; + children: React.ReactElement; +}> = ({ description, children }) => { + if (!description) { + return children; + } + + return ( + + {children} + + {description} + + + ); +}; + const asPermissionRuleset = (value: unknown): PermissionRule[] | null => { if (!Array.isArray(value)) { return null; @@ -2316,6 +2338,7 @@ export const ModelControls: React.FC = ({ = ({ - + {t('chat.modelControls.thinking')} handleVariantSelect(undefined)}>
@@ -2708,7 +2731,7 @@ export const ModelControls: React.FC = ({
- +
@@ -2746,12 +2769,11 @@ export const ModelControls: React.FC = ({
) : ( sortedAndFilteredAgents.map((agent) => ( - handleAgentChange(agent.name)} - > -
+ + handleAgentChange(agent.name)} + >
= ({ )} /> {capitalizeAgentName(agent.name)}
- {agent.description && ( - - {agent.description} - - )} -
-
+ +
)) )}
diff --git a/packages/ui/src/components/chat/composer/ui/ComposerAttachmentControls.tsx b/packages/ui/src/components/chat/composer/ui/ComposerAttachmentControls.tsx index 85788b5b..52b8716b 100644 --- a/packages/ui/src/components/chat/composer/ui/ComposerAttachmentControls.tsx +++ b/packages/ui/src/components/chat/composer/ui/ComposerAttachmentControls.tsx @@ -89,7 +89,7 @@ export const ComposerAttachmentControls = React.memo(function ComposerAttachment - + { requestAnimationFrame(handlePickLocalFiles); diff --git a/packages/ui/src/components/chat/composer/ui/DraftTargetSelectors.tsx b/packages/ui/src/components/chat/composer/ui/DraftTargetSelectors.tsx index 35072c6c..cb8c6259 100644 --- a/packages/ui/src/components/chat/composer/ui/DraftTargetSelectors.tsx +++ b/packages/ui/src/components/chat/composer/ui/DraftTargetSelectors.tsx @@ -122,7 +122,7 @@ export function DraftTargetSelectors(props: DraftTargetProps) { : } - + {projects.map((project) => ( @@ -144,7 +144,7 @@ export function DraftTargetSelectors(props: DraftTargetProps) { {selectedBranchLabel ?? t('chat.chatInput.branch')} - + {projectRootBranchOption ? ( {t('chat.chatInput.projectRoot')} diff --git a/packages/ui/src/components/sections/openchamber/DefaultsSettings.tsx b/packages/ui/src/components/sections/openchamber/DefaultsSettings.tsx index 72db4ddd..9aba89c4 100644 --- a/packages/ui/src/components/sections/openchamber/DefaultsSettings.tsx +++ b/packages/ui/src/components/sections/openchamber/DefaultsSettings.tsx @@ -21,6 +21,7 @@ import { getRegisteredRuntimeAPIs } from '@/contexts/runtimeAPIRegistry'; import { useI18n } from '@/lib/i18n'; import { parseModelIdentifier } from '@/lib/modelIdentifier'; import { runtimeFetch } from '@/lib/runtime-fetch'; +import { isPrimaryMode } from '@/components/chat/mobileControlsUtils'; const getDisplayModel = ( storedModel: string | undefined @@ -390,6 +391,7 @@ export const DefaultsSettings: React.FC = () => { isPrimaryMode(agent.mode)} className={SETTINGS_CUSTOM_TRIGGER_CLASS} />