75396963ef
The clearing rule sat below the reducer switch, so it ran for every event rather than for the correction it was written for. TaskReleased found the task unblocked and erased the contradiction, which is the rotation the reopen itself causes: the planning session launched one lease later and was told nothing again. Scoped to TaskCorrected, and the store test walks the real sequence (mismatch, reopen, release, lease) rather than reading the projection at the moment it is written. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CVbaKucEYBjMqVeUgJUsc1