diff --git a/src/pages/Cron/index.tsx b/src/pages/Cron/index.tsx index 38ad3e3..f7106bd 100644 --- a/src/pages/Cron/index.tsx +++ b/src/pages/Cron/index.tsx @@ -21,7 +21,7 @@ import type { CronJobCreateInput, CronJobDelivery, } from '../../lib/cron-types'; -import { agentsStore, chatStore, useAgentsStore } from '../../stores'; +import { agentsStore, useAgentsStore } from '../../stores'; type FeedbackTone = 'success' | 'error' | 'info' | 'warning'; @@ -34,7 +34,6 @@ type DialogProps = { open: boolean; job: CronJob | null; saving: boolean; - agents: AgentSummary[]; defaultAgentId: string; channelGroups: CronDeliveryChannelGroup[]; channelsLoading: boolean; @@ -1097,7 +1096,7 @@ function StatCard({ label, value, tone, icon: Icon }: StatCardProps) { : 'bg-[#E8E6DE] text-[#7A7668] dark:bg-[#2a2a2d] dark:text-gray-400'; return ( -
+
@@ -1269,29 +1268,10 @@ function CronJobCard({ ); } -function getSuggestedAgentId(agents: AgentSummary[], defaultAgentId: string, currentJob: CronJob | null): string { - const jobAgentId = getString(currentJob?.agentId); - if (jobAgentId) return normalizeAgentId(jobAgentId); - - const currentChatAgentId = getString(chatStore.getState().currentAgentId); - const normalizedCurrentChatAgentId = normalizeAgentId(currentChatAgentId || defaultAgentId || DEFAULT_AGENT_ID); - - if (agents.some((agent) => agent.id === normalizedCurrentChatAgentId)) { - return normalizedCurrentChatAgentId; - } - - if (agents.some((agent) => agent.id === normalizeAgentId(defaultAgentId))) { - return normalizeAgentId(defaultAgentId); - } - - return agents[0]?.id || normalizeAgentId(defaultAgentId || DEFAULT_AGENT_ID); -} - function CronTaskDialog({ open, job, saving, - agents, defaultAgentId, channelGroups, channelsLoading, @@ -1300,7 +1280,6 @@ function CronTaskDialog({ onSave, }: DialogProps) { const [name, setName] = useState(''); - const [selectedAgentId, setSelectedAgentId] = useState(normalizeAgentId(defaultAgentId || DEFAULT_AGENT_ID)); const [message, setMessage] = useState(''); const [schedule, setSchedule] = useState('0 9 * * *'); const [enabled, setEnabled] = useState(true); @@ -1336,9 +1315,8 @@ function CronTaskDialog({ setTargetsLoading(false); setTargetsError(null); setDeliveryTargetScopeKey(''); - setSelectedAgentId(getSuggestedAgentId(agents, defaultAgentId, job)); setValidationError(null); - }, [agents, defaultAgentId, job, open]); + }, [job, open]); const availableChannelGroups = useMemo( () => ensureChannelGroupSelection(channelGroups, deliveryChannel, selectedDeliveryAccountId), @@ -1387,13 +1365,6 @@ function CronTaskDialog({ } }, [deliveryMode, open, selectedChannelGroup, selectedDeliveryAccountId]); - useEffect(() => { - if (!open) return; - if (agents.length === 0) return; - if (agents.some((agent) => agent.id === selectedAgentId)) return; - setSelectedAgentId(getSuggestedAgentId(agents, defaultAgentId, job)); - }, [agents, defaultAgentId, job, open, selectedAgentId]); - useEffect(() => { if (!open || deliveryMode !== 'announce') { setDeliveryTargetScopeKey(''); @@ -1477,8 +1448,7 @@ function CronTaskDialog({ const finalSchedule = useCustom ? customSchedule.trim() : schedule; const nextRunPreview = finalSchedule ? estimateNextRun(finalSchedule) : null; - const hasSelectableAgents = agents.length > 0; - const selectedAgent = agents.find((agent) => agent.id === selectedAgentId); + const resolvedAgentId = normalizeAgentId(getString(job?.agentId) || defaultAgentId || DEFAULT_AGENT_ID); const selectedAccount = selectedChannelGroup?.accounts.find((account) => account.accountId === selectedDeliveryAccountId); const deliveryPreview = deliveryMode === 'announce' @@ -1499,11 +1469,6 @@ function CronTaskDialog({ return; } - if (!selectedAgentId.trim()) { - setValidationError('请先选择要执行任务的 Agent。'); - return; - } - if (!message.trim()) { setValidationError('请填写提醒内容。'); return; @@ -1530,7 +1495,7 @@ function CronTaskDialog({ await onSave({ name: name.trim(), - agentId: normalizeAgentId(selectedAgentId), + agentId: resolvedAgentId, message: message.trim(), schedule: finalSchedule, enabled, @@ -1549,7 +1514,7 @@ function CronTaskDialog({ return (
-
+

- 现在可以为任务指定 Agent、发送渠道和目标收件人,和 ClawX 的调度职责保持一致。 + 现在可以为任务配置发送渠道和目标收件人,和 ClawX 的调度职责保持一致。

-
+
-
+
- -
- - setSelectedAgentId(event.target.value)} - disabled={!hasSelectableAgents} - > - {hasSelectableAgents ? ( - agents.map((agent) => ( - - )) - ) : ( - - )} - -

- {selectedAgent ? getAgentDetail(selectedAgent.id, new Map(agents.map((agent) => [agent.id, agent])), defaultAgentId) : 'Agent 列表加载后可选择执行归属。'} -

-
- +