fix: show clear toast when agent definition is missing

Surface missing agent definitions during delete
Avoid hiding delete errors behind generic failures
Add localized toast copy
This commit is contained in:
Bohdan Triapitsyn
2026-06-16 14:33:08 +03:00
parent 8f1da2f728
commit 3ba93c111e
11 changed files with 34 additions and 12 deletions
@@ -181,19 +181,31 @@ export const AgentsSidebar: React.FC<AgentsSidebarProps> = ({ onItemSelect }) =>
}
setIsConfirmActionPending(true);
const success = await deleteAgent(confirmActionAgent.name, (confirmActionAgent as Agent & { scope?: AgentScope }).scope);
try {
const success = await deleteAgent(confirmActionAgent.name, (confirmActionAgent as Agent & { scope?: AgentScope }).scope);
if (success) {
if (confirmActionType === 'delete') {
toast.success(t('settings.agents.sidebar.toast.agentDeleted', { name: confirmActionAgent.name }));
if (success) {
if (confirmActionType === 'delete') {
toast.success(t('settings.agents.sidebar.toast.agentDeleted', { name: confirmActionAgent.name }));
} else {
toast.success(t('settings.agents.sidebar.toast.agentReset', { name: confirmActionAgent.name }));
}
closeConfirmActionDialog();
} else if (confirmActionType === 'delete') {
toast.error(t('settings.agents.sidebar.toast.deleteFailed'));
} else {
toast.success(t('settings.agents.sidebar.toast.agentReset', { name: confirmActionAgent.name }));
toast.error(t('settings.agents.sidebar.toast.resetFailed'));
}
} catch (error) {
const message = error instanceof Error ? error.message : '';
const definitionMissing = /built-in|not deletable|not found/i.test(message);
if (confirmActionType === 'delete') {
toast.error(definitionMissing
? t('settings.agents.sidebar.toast.definitionNotFound')
: t('settings.agents.sidebar.toast.deleteFailed'));
} else {
toast.error(t('settings.agents.sidebar.toast.resetFailed'));
}
closeConfirmActionDialog();
} else if (confirmActionType === 'delete') {
toast.error(t('settings.agents.sidebar.toast.deleteFailed'));
} else {
toast.error(t('settings.agents.sidebar.toast.resetFailed'));
}
setIsConfirmActionPending(false);