de18f372d3
F65, found live on run 20. A plan mismatch asking for a human decision recorded its observation, then failed to block the task: Store.Append fences every lifecycle event on a leased task against the current owner and epoch, and this TaskBlocked carried neither. The task kept implementing while the contradiction sat durable in the log, and the agent was told its report was refused. The trajectory gate had the same omission. The human-decision path already did this correctly and explained why in a comment. That comment is now a helper all three call. The tests could not have caught it. planWith never leased its task, so every plan test ran in a state no agent can be in, which is exactly what the lease helper's own comment warns against. It leases now, and the mismatch block test fails without the fence. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CVbaKucEYBjMqVeUgJUsc1