diff --git a/apps/server/src/modules/schedules/registry.ts b/apps/server/src/modules/schedules/registry.ts index 9f409a9b..ec265981 100644 --- a/apps/server/src/modules/schedules/registry.ts +++ b/apps/server/src/modules/schedules/registry.ts @@ -42,7 +42,7 @@ export interface JobRunResult { agentRunId?: string | null; } -export type JobRunFn = (c: JobRunContext) => Promise; +export type JobRunFn = (c: JobRunContext) => Promise; export interface ScheduledJobDef { /** 稳定 key(表主键),如 feeds.poll */ diff --git a/apps/server/test/schedules/schedules.test.ts b/apps/server/test/schedules/schedules.test.ts index 4e7beb2b..c1e9136a 100644 --- a/apps/server/test/schedules/schedules.test.ts +++ b/apps/server/test/schedules/schedules.test.ts @@ -209,6 +209,7 @@ describe.skipIf(!hasPg)("定时任务注册表(真实 PG)", () => { defaults: { name: "锁", group: "maintain", schedule: { type: "interval", everyMs: 1 } }, run: async () => { ran.push(name); + return {}; }, }); } diff --git a/apps/web/app/components/schedules/agent-check-dialog.tsx b/apps/web/app/components/schedules/agent-check-dialog.tsx index 2e8022aa..6112e0b6 100644 --- a/apps/web/app/components/schedules/agent-check-dialog.tsx +++ b/apps/web/app/components/schedules/agent-check-dialog.tsx @@ -93,7 +93,7 @@ export function AgentCheckDialog({ const submit = () => { const e: Record = {}; - if ((!job || !job.builtin) && !d.name.trim()) e.name = "名称不能为空"; + if (!job?.builtin && !d.name.trim()) e.name = "名称不能为空"; const everyMs = Math.round(Number(d.every) * UNIT_MS[d.unit]); if (!cronJob && (!Number.isFinite(everyMs) || everyMs < MIN_INTERVAL_MS)) e.every = "填正数"; const tools = Number(d.maxToolCalls); diff --git a/packages/contracts/test/schemas.test.ts b/packages/contracts/test/schemas.test.ts index 633870fb..65e85130 100644 --- a/packages/contracts/test/schemas.test.ts +++ b/packages/contracts/test/schemas.test.ts @@ -34,6 +34,7 @@ const STRING_CANDIDATES = [ "测试 Test", "123456", `lib:${UUID}`, + "30 3 * * *", ]; const NUMBER_CANDIDATES = [1, 50, 2024, 0.5, 0, 4096, 128000];