fix(wechat): guard ambiguous memory recall and scheduled task execution
Skip memory injection for short filler messages, demote page-workflow memory pollution, keep scheduled automation off page.generate, and fail scheduled tasks that only return clarification instead of deliverables. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -123,3 +123,55 @@ test('scheduled task worker marks failure after execution error', async () => {
|
||||
|
||||
assert.deepEqual(calls, ['failed:3:agent timeout', 'notify:scheduled_task_failed']);
|
||||
});
|
||||
|
||||
test('scheduled task worker marks failure when agent only asks for clarification', async () => {
|
||||
const calls = [];
|
||||
const task = {
|
||||
id: 'task-3',
|
||||
userId: 'user-3',
|
||||
title: '每日诗意清晨',
|
||||
recurrence: 'daily',
|
||||
notifyChannel: 'web',
|
||||
attempts: 1,
|
||||
};
|
||||
const worker = startScheduledTaskWorker({
|
||||
intervalMs: 60_000,
|
||||
userAuth: { id: 'user-auth' },
|
||||
tkmindProxy: { id: 'proxy' },
|
||||
scheduledTaskService: {
|
||||
async listDueTasks() {
|
||||
return [task];
|
||||
},
|
||||
async lockTask() {
|
||||
return task;
|
||||
},
|
||||
async markTaskRunning(input) {
|
||||
return input;
|
||||
},
|
||||
async markTaskSucceeded() {
|
||||
calls.push('success');
|
||||
},
|
||||
async markTaskFailed(input, err) {
|
||||
calls.push(`failed:${err.code}`);
|
||||
return { ...input, status: 'failed', lastError: err.message };
|
||||
},
|
||||
},
|
||||
scheduleService: {
|
||||
async createUserNotification(input) {
|
||||
calls.push(`notify:${input.notificationType}`);
|
||||
},
|
||||
},
|
||||
executeTask: async () => ({
|
||||
sessionId: 'session-3',
|
||||
requestId: 'req-3',
|
||||
deliveryText: '请问每天早上几点执行?',
|
||||
}),
|
||||
logger: { warn() {} },
|
||||
runOnStart: false,
|
||||
});
|
||||
|
||||
await worker.runOnce();
|
||||
worker.stop();
|
||||
|
||||
assert.deepEqual(calls, ['failed:SCHEDULED_TASK_NON_DELIVERY', 'notify:scheduled_task_failed']);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user