resetStaleClaimedJobs now uses $queryRaw with RETURNING so it can send pg_notify claude_job_status events per transitioned job. Jobs under the retry limit are re-queued with retry_count incremented; jobs at ≥2 retries are marked FAILED.
Verifies: claim writes plan_snapshot from task.implementation_plan; NULL plan becomes '' snapshot; no job returns null; stale reset SQL includes plan_snapshot = NULL; product_id scoping passes correct param. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>