fix(prod): dedupe scheduled tasks and reconcile orphan delivery contracts
Memind CI / Test, build, and release guards (push) Successful in 2m58s
Memind CI / Test, build, and release guards (push) Successful in 2m58s
Prevent duplicate active scheduled tasks, fail static preparing contracts when HTML is missing, raise MindSpace remote timeout default to 30s, and add 103 repair scripts for inspection follow-ups. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -140,6 +140,29 @@ test('reconcileStuckStaticPageDeliveryContracts releases materialized static pag
|
||||
assert.deepEqual(released, [relativePath]);
|
||||
});
|
||||
|
||||
test('reconcileStuckStaticPageDeliveryContracts fails orphan contracts without html', async () => {
|
||||
const dir = await fs.mkdtemp(path.join(os.tmpdir(), 'scheduled-task-orphan-'));
|
||||
const userId = 'user-1';
|
||||
const relativePath = 'public/missing.html';
|
||||
const pool = {
|
||||
async query(sql) {
|
||||
if (sql.includes('FROM h5_page_delivery_contracts')) {
|
||||
return [[{ user_id: userId, workspace_relative_path: relativePath }]];
|
||||
}
|
||||
if (sql.includes("SET status = 'failed'")) {
|
||||
return [{ affectedRows: 1 }];
|
||||
}
|
||||
return [[]];
|
||||
},
|
||||
};
|
||||
const released = await reconcileStuckStaticPageDeliveryContracts({
|
||||
pool,
|
||||
h5Root: dir,
|
||||
logger: { info() {} },
|
||||
});
|
||||
assert.deepEqual(released, []);
|
||||
});
|
||||
|
||||
test('extractScheduledTaskDeliveryText reads last assistant message', () => {
|
||||
const text = extractScheduledTaskDeliveryText([
|
||||
{ role: 'user', content: [{ type: 'text', text: 'hi' }] },
|
||||
|
||||
Reference in New Issue
Block a user