17e9a7644d
A member session parked as blocked with focus on a terminal (or runnable, or vanished) review card kept the dispatcher skipping its runnable work items forever — the preempt-restore race leaves focus on an already-approved card and every existing self-heal only recognized the runnable/missing shapes. claim_runnable_tasks now converges such sessions to idle before the blocked-skip branch, and the skip log carries focused/focused_phase for forensics. (OBS-8; production-verified self-heal in the t4 campaign run.) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>