mirror of
https://github.com/block/buzz.git
synced 2026-11-07 01:41:06 +00:00
The coordinator exposed a single pre-commit validity check reaching only the late (fenced) boundary, but P26-C1 mandates TWO gates: an early gate under the held transition lock — before Mesh preflight and drain — so a task superseded while queued on the locks is rejected having done zero disruptive work, and the existing late gate held across the durable commit. A single FnOnce cannot cover both; without the early gate a cancelled phone-recovery would drain runtimes and revoke owner-identity durable capabilities before the late check rejected it, churning the fail-closed side uncompensated. Take two explicit checks (early_validity_check + late_validity_check). Normal import supplies always-Ok for both; pairing supplies two clones of the idempotent task-currency read. Collapse the mesh/non-mesh fork onto one manual workspace_transition acquisition and gate the mesh preflight call so the early gate sits at the same point under both feature configs. Co-authored-by: Will Pfleger <pfleger.will@gmail.com> Signed-off-by: Will Pfleger <pfleger.will@gmail.com>