const { DatabaseSync } = require('node:sqlite'); const db = new DatabaseSync('C:/Users/maidou/.workbuddy/workbuddy.db', { readOnly: true }); const fmt = (ms) => ms ? new Date(ms).toLocaleString('zh-CN') : '-'; console.log('=== automation_runs 最近 15 条 ==='); const rows = db.prepare('SELECT thread_id, automation_id, status, thread_title, source_cwd, result_success, created_at, updated_at FROM automation_runs ORDER BY updated_at DESC LIMIT 15').all(); rows.forEach(r => { console.log(String(r.thread_id || '').slice(0, 20), '|', r.automation_id, '|', r.status, '|', String(r.thread_title || '').slice(0, 22), '| succ:', r.result_success, '|', fmt(r.created_at), '->', fmt(r.updated_at)); }); console.log('\n=== automations 6 任务 ==='); const ids = ['automation-1788249381425','automation-1788249384444','automation-1788249387466','automation-1788249390480','automation-1788249393493','automation-1788249396520']; const q = db.prepare('SELECT id, name, status, schedule_type, scheduled_at, next_run_at, last_run_at, created_at, updated_at FROM automations WHERE id=?'); for (const id of ids) { const r = q.get(id); if (!r) { console.log('NOT FOUND', id); continue; } console.log(r.id, '|', r.name, '|', r.status, '|', r.schedule_type, '| sched=', r.scheduled_at, '| next=', r.next_run_at, '| last=', r.last_run_at, '| created=', fmt(r.created_at), '| updated=', fmt(r.updated_at)); }