diff --git a/crates/host-core/src/rpc/scheduled_tools.rs b/crates/host-core/src/rpc/scheduled_tools.rs index 320330d3ce..3fb868516a 100644 --- a/crates/host-core/src/rpc/scheduled_tools.rs +++ b/crates/host-core/src/rpc/scheduled_tools.rs @@ -131,7 +131,13 @@ fn execute_inner(st: &AppState, p: &ToolsExecuteParams) -> Result Resulthost.call("tools.execute",{sessionId:session.id,toolName,args,mode:"agent",toolCallId:randomUUID()}); + for(const cadence of ["hourly","daily","weekly"]) { + const id=randomUUID();await host.call("scheduled.import",{tasks:[{id,title:"Legacy",prompt:"Old",cadence}]}); + for(const fields of [{title:"Renamed"},{prompt:"Updated"},{enabled:false},{cadence,enabled:false}]) assert.equal((await tool("ScheduledTaskUpdate",{id,...fields})).ok,true); + await host.restart();const saved=(await host.call("scheduled.list")).tasks.find(task=>task.id===id); + assert.equal(saved.title,"Renamed");assert.equal(saved.prompt,"Updated");assert.equal(saved.enabled,false);assert.equal(saved.schedule,undefined);assert.equal(saved.nextRunAt,undefined); + assert.equal((await tool("ScheduledTaskUpdate",{id,enabled:true})).errorCode,"INVALID_PARAMS"); + assert.equal((await tool("ScheduledTaskUpdate",{id,cadence,enabled:true,schedule:{hour:9,minute:15,weekday:0}})).ok,true); + assert.equal((await tool("ScheduledTaskDelete",{id})).ok,true); + console.log(`PASS ${cadence}: import, AI rename/prompt/pause, restart, guarded resume, configure and delete`); + } +} finally {await host.stop();}