task_run_logs.task_id references scheduled_tasks.id, not paired_tasks.id, so the previous deletion (keyed by paired task ids) left orphaned run-log rows behind — with foreign_keys OFF nothing cleaned them up. Delete task_run_logs by the chat's scheduled_tasks ids before removing the scheduled_tasks rows. Also auto-back up the DB to /home/claude/ejclaw-db-backup-<ts>.db before the irreversible purge (skippable with --no-backup). Verified end-to-end in a sandboxed DB copy: a seeded room's scheduled task + 3 run logs, paired data, work items, sessions, and router cursor are all removed, disk folders deleted, while chats/messages and unrelated rooms stay intact. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
9.5 KiB
9.5 KiB