@@ -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 列表加载后可选择执行归属。'}
-
-
-
+
-
+
{!useCustom ? (
{SCHEDULE_PRESETS.map((preset) => {
@@ -1674,12 +1616,12 @@ function CronTaskDialog({
-
发送方式
-
任务可以只执行,也可以在完成后把结果发送到指定渠道和目标。
+
投递设置
+
选择仅在 NIANXX 内保留结果,或把最终结果推送到外部通道。
{[
- { key: 'none', title: '仅执行任务', desc: '不额外推送到渠道' },
- { key: 'announce', title: '执行并发送', desc: '选择渠道账号与目标收件人' },
+ { key: 'none', title: '仅在NIANXX内', desc: '任务照常运行,结果只保留在应用内。' },
+ { key: 'announce', title: '发送到外部通道', desc: '将最终结果投递到已配置的消息通道。' },
].map((item) => {
const active = deliveryMode === item.key;
return (
@@ -1802,7 +1744,7 @@ function CronTaskDialog({
立即启用
-
保存后按当前计划自动进入调度。
+
创建后立即开始运行此任务。
@@ -2153,7 +2095,7 @@ export default function CronPage() {
还没有定时任务
- 现在创建的任务可以直接绑定执行 Agent,并预留好渠道账号和发送目标。
+ 现在可以创建任务并预留好渠道账号和发送目标。