Skip to content

Commit 7b3e6f3

Browse files
author
XavierTrump
committed
fix(desktop): clean up Agent Profiles settings UI
- Split single crowded Panel into two independent Panels (Runtime Inventory + Agent Profile) - Remove 4 CapabilityCards showing dev status ("planned"/"in progress") - Remove 2 SettingRows with internal implementation details - Trim RuntimeInventoryCard meta from 4 to 1 item (remove redundant Ready/planned tags) - Trim LocalAgentProfileCard meta from 7 to 5 items (remove reasoning effort and config source)
1 parent e73cb6b commit 7b3e6f3

3 files changed

Lines changed: 20 additions & 58 deletions

File tree

app/desktop/src/components/settings/cards/LocalAgentProfileCard.tsx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -275,10 +275,8 @@ export default function LocalAgentProfileCard({
275275
<span>{t('settings.profileRuntime')}: {agent.id}</span>
276276
<span>{t('settings.profileModel')}: {route.model ?? t('prompt.routeAuto')}</span>
277277
<span>{t('settings.modelAliasProvider')}: {route.provider ?? t('prompt.routeAuto')}</span>
278-
<span>{t('settings.modelAliasReasoning')}: {route.reasoningEffort ?? t('prompt.routeAuto')}</span>
279278
{alias ? <span>{t('settings.profileAlias')}: {alias}</span> : null}
280279
<span>{t('settings.executionTargets')}: {t('settings.targetLocalEdge')}</span>
281-
<span>{t('settings.profileConfigSource')}: AGENTS.md / memory / skills</span>
282280
</div>
283281
<div className={styles.profileExpandArrow}>
284282
{expanded ? <ChevronUp size={15} /> : <ChevronDown size={15} />}

app/desktop/src/components/settings/cards/RuntimeInventoryCard.tsx

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,6 @@ export default function RuntimeInventoryCard({ agent }: { agent: AgentInfo }) {
2121
</div>
2222
<div className={styles.profileMeta}>
2323
<span>{t('settings.runtimeAdapter')}: {agent.id}</span>
24-
<span>{t('settings.profileRuntime')}: {t('settings.statusReady')}</span>
25-
<span>{t('settings.profileModel')}: {t('settings.statusPlanned')}</span>
26-
<span>{t('settings.profileConfig')}: {t('settings.statusPlanned')}</span>
2724
</div>
2825
</div>
2926
);

app/desktop/src/components/settings/sections/AgentProfilesSection.tsx

Lines changed: 20 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@ import { Bot, Cpu } from 'lucide-react';
33
import type { AgentInfo } from '@shared/types';
44
import type { ResolvedRunModelSettings } from '@/stores/modelSettingsStore';
55
import Panel from '../primitives/Panel';
6-
import SettingRow from '../primitives/SettingRow';
76
import SummaryCard from '../primitives/SummaryCard';
8-
import CapabilityCard from '../primitives/CapabilityCard';
97
import EmptyBlock from '../primitives/EmptyBlock';
108
import RuntimeInventoryCard from '../cards/RuntimeInventoryCard';
119
import LocalAgentProfileCard from '../cards/LocalAgentProfileCard';
@@ -21,25 +19,21 @@ export default function AgentProfilesSection({ agents, edgeOnline, runnerSummary
2119
const { t } = useTranslation();
2220
const availableRuntimes = agents.filter((agent) => agent.status === 'available').length;
2321
return (
24-
<Panel title={t('settings.agentProfiles')} description={t('settings.agentProfilesDesc')}>
25-
<div className="summaryGrid">
26-
<SummaryCard
27-
icon={<Bot size={18} />}
28-
label={t('settings.profileAvailable')}
29-
value={`${availableRuntimes}/${agents.length}`}
30-
detail={edgeOnline ? t('settings.runtimeInventoryDesc') : t('settings.edgeOffline')}
31-
/>
32-
<SummaryCard
33-
icon={<Cpu size={18} />}
34-
label={t('settings.profileRuntimeCoverage')}
35-
value={runnerSummary}
36-
detail={t('settings.profileRuntimeCoverageDesc')}
37-
/>
38-
</div>
39-
<div className="taskSection">
40-
<div className="taskSectionHeader">
41-
<strong>{t('settings.runtimeInventory')}</strong>
42-
<span>{t('settings.runtimeInventoryDesc')}</span>
22+
<>
23+
<Panel title={t('settings.runtimeInventory')} description={t('settings.runtimeInventoryDesc')}>
24+
<div className="summaryGrid">
25+
<SummaryCard
26+
icon={<Bot size={18} />}
27+
label={t('settings.profileAvailable')}
28+
value={`${availableRuntimes}/${agents.length}`}
29+
detail={edgeOnline ? t('settings.runtimeInventoryDesc') : t('settings.edgeOffline')}
30+
/>
31+
<SummaryCard
32+
icon={<Cpu size={18} />}
33+
label={t('settings.profileRuntimeCoverage')}
34+
value={runnerSummary}
35+
detail={t('settings.profileRuntimeCoverageDesc')}
36+
/>
4337
</div>
4438
{agents.length > 0 ? (
4539
<div className="profileGrid">
@@ -48,12 +42,9 @@ export default function AgentProfilesSection({ agents, edgeOnline, runnerSummary
4842
) : (
4943
<EmptyBlock title={t('settings.noRuntimes')} description={t('settings.noRuntimesDesc')} />
5044
)}
51-
</div>
52-
<div className="taskSection">
53-
<div className="taskSectionHeader">
54-
<strong>{t('settings.profileComposition')}</strong>
55-
<span>{t('settings.profileCompositionDesc')}</span>
56-
</div>
45+
</Panel>
46+
47+
<Panel title={t('settings.agentProfiles')} description={t('settings.profileCompositionDesc')}>
5748
{localAgentProfiles.length > 0 ? (
5849
<div className="profileGrid">
5950
{localAgentProfiles.map((profile) => (
@@ -69,31 +60,7 @@ export default function AgentProfilesSection({ agents, edgeOnline, runnerSummary
6960
) : (
7061
<EmptyBlock title={t('settings.noProfiles')} description={t('settings.noProfilesDesc')} />
7162
)}
72-
<div className="capabilityGrid">
73-
<CapabilityCard
74-
title={t('settings.profileRuntime')}
75-
description={t('settings.profileRuntimeDesc')}
76-
status={agents.length > 0 ? t('settings.statusReady') : t('settings.notConfigured')}
77-
/>
78-
<CapabilityCard
79-
title={t('settings.profileModel')}
80-
description={t('settings.profileModelDesc')}
81-
status={t('settings.statusInProgress')}
82-
/>
83-
<CapabilityCard
84-
title={t('settings.profileConfig')}
85-
description={t('settings.profileConfigDesc')}
86-
status={t('settings.statusInProgress')}
87-
/>
88-
<CapabilityCard
89-
title={t('settings.executionTargets')}
90-
description={t('settings.profileExecutionTargetDesc')}
91-
status={edgeOnline ? t('settings.statusReady') : t('settings.notConfigured')}
92-
/>
93-
</div>
94-
</div>
95-
<SettingRow title={t('settings.profileConfigSource')} description={t('settings.profileConfigSourceDesc')} value="AGENTS.md / memory / skills" />
96-
<SettingRow title={t('settings.profilePublish')} description={t('settings.profilePublishDesc')} value={t('settings.statusPlanned')} />
97-
</Panel>
63+
</Panel>
64+
</>
9865
);
9966
}

0 commit comments

Comments
 (0)