diff --git a/app/src/components/intelligence/IntelligenceTasksTab.tsx b/app/src/components/intelligence/IntelligenceTasksTab.tsx index 4620c6dc6..6d780d33b 100644 --- a/app/src/components/intelligence/IntelligenceTasksTab.tsx +++ b/app/src/components/intelligence/IntelligenceTasksTab.tsx @@ -799,7 +799,7 @@ function TaskSourceTaskList({
{description}
- )} - -+ {t('autonomy.invalidIntegerMsg')} +
+ )} + {isValid && parsed === UNLIMITED && ( ++ {t('autonomy.unlimitedNote')} +
+ )} + +- {t('autonomy.invalidIntegerMsg')} -
- )} - {isValid && parsed === UNLIMITED && ( -- {t('autonomy.unlimitedNote')} -
- )} - -- {t('settings.billing.openingBrowser')} -
- )} - {status === 'idle' && ( -- {t('settings.billing.browserNotOpen')} -
- )} - {status === 'error' && ( -- {t('settings.billing.browserOpenFailed')} -
- )} diff --git a/app/src/components/settings/panels/DevicesComingSoonPanel.tsx b/app/src/components/settings/panels/DevicesComingSoonPanel.tsx deleted file mode 100644 index a2f76fca9..000000000 --- a/app/src/components/settings/panels/DevicesComingSoonPanel.tsx +++ /dev/null @@ -1,52 +0,0 @@ -import { useT } from '../../../lib/i18n/I18nContext'; -import EmptyStateCard from '../../EmptyStateCard'; -import SettingsHeader from '../components/SettingsHeader'; -import { useSettingsNavigation } from '../hooks/useSettingsNavigation'; - -const DevicesComingSoonPanel = () => { - const { t } = useT(); - const { navigateBack, breadcrumbs } = useSettingsNavigation(); - - return ( -{t('brain.subtitle')}
-+ {t('brain.subtitle')} +
- {t('chat.noLabelThreads').replace('{label}', selectedLabelDisplay)} -
- ) : ( - sortedThreads.map(thread => ( -+ {t('chat.noLabelThreads').replace('{label}', selectedLabelDisplay)} +
+ ) : ( + visibleThreads.map(thread => ( +-
- {resolveThreadDisplayTitle(thread.id)} -
-+ {t('chat.failedToLoadMessages')} +
++ {messagesError} +
+- {t('chat.failedToLoadMessages')} -
-- {messagesError} -
-- {formatRelativeTime(msg.createdAt)} -
- )} -- {formatRelativeTime(msg.createdAt)} -
- )} -+ {formatRelativeTime(msg.createdAt)} +
+ )} ++ {formatRelativeTime(msg.createdAt)} +
+ )} +
+ {selectedStreamingAssistant.thinking.slice(-STREAMING_PREVIEW_CHARS)}
+
+ + {selectedStreamingAssistant.content.length > STREAMING_PREVIEW_CHARS && ( + … + )} + {selectedStreamingAssistant.content.slice(-STREAMING_PREVIEW_CHARS)} + +
+
- {selectedStreamingAssistant.thinking.slice(-STREAMING_PREVIEW_CHARS)}
-
- - {selectedStreamingAssistant.content.length > - STREAMING_PREVIEW_CHARS && ( + {branch.content.length > STREAMING_PREVIEW_CHARS && ( … )} - {selectedStreamingAssistant.content.slice(-STREAMING_PREVIEW_CHARS)} + {branch.content.slice(-STREAMING_PREVIEW_CHARS)}
- {branch.content.length > STREAMING_PREVIEW_CHARS && ( - … - )} - {branch.content.slice(-STREAMING_PREVIEW_CHARS)} - -
-{t('chat.noMessages')}
-- {teamUsage.cycleBudgetUsd > 0 - ? `${t('chat.weeklyLimitHit')}${teamUsage.cycleEndsAt ? ` ${t('chat.resets')} ${formatResetTime(teamUsage.cycleEndsAt)}.` : ''} ${t('chat.topUpToContinue')}` - : t('chat.budgetComplete')} -
-- {sendAdvisory} -
-- {attachError.message} -
-- {sendError.message} -
-{t('chat.noMessages')}
++ {teamUsage.cycleBudgetUsd > 0 + ? `${t('chat.weeklyLimitHit')}${teamUsage.cycleEndsAt ? ` ${t('chat.resets')} ${formatResetTime(teamUsage.cycleEndsAt)}.` : ''} ${t('chat.topUpToContinue')}` + : t('chat.budgetComplete')} +
+- {voiceStatus ?? - (isPlayingReply && replyMode === 'voice' - ? t('chat.playingVoiceReply') - : canUseMicrophoneApi - ? t('chat.voiceHint') - : t('chat.micUnavailable'))} -
+ {openRouterStatus === 'error' && ( ++ {sendAdvisory} +
++ {attachError.message} +
++ {sendError.message} +
++ {voiceStatus ?? + (isPlayingReply && replyMode === 'voice' + ? t('chat.playingVoiceReply') + : canUseMicrophoneApi + ? t('chat.voiceHint') + : t('chat.micUnavailable'))} +
+{t('skills.integrationsSubtitle')}