fix(wechat): route scheduled task cancel and spec updates through Goose MCP

Pass cancel requests to Goose like create instead of inbound title matching,
and add scheduled_task_update_spec so format or execution constraints update
taskSpec without triggering page delivery guards.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
john
2026-08-29 09:47:39 +08:00
parent e13df82021
commit a1a921eba6
12 changed files with 265 additions and 36 deletions
+18
View File
@@ -33,6 +33,20 @@ export async function executeScheduledTaskCreateTool(args, {
return workerWarning ? { ...task, workerWarning } : task;
}
export async function executeScheduledTaskUpdateSpecTool(args, {
userId,
scheduledTaskService,
} = {}) {
if (!scheduledTaskService) throw new Error('scheduledTaskService 不可用');
return scheduledTaskService.updateTaskSpec({
userId,
taskId: args.taskId,
taskSpec: args.taskSpec ?? null,
title: args.title ?? null,
mergeTaskSpec: Boolean(args.mergeTaskSpec),
});
}
export async function executeScheduleCreateItemTool(args, {
userId,
scheduleService,
@@ -134,6 +148,10 @@ export async function commitAgentSideEffectTool(toolName, toolArgs, services) {
const task = await executeScheduledTaskCreateTool(toolArgs, services);
return { kind: 'scheduled_task', task };
}
if (name === 'scheduled_task_update_spec') {
const task = await executeScheduledTaskUpdateSpecTool(toolArgs, services);
return { kind: 'scheduled_task', task, updated: true };
}
if (name === 'schedule_create_item') {
const result = await executeScheduleCreateItemTool(toolArgs, services);
return { kind: 'schedule_item', ...result };