5f7bfb5890
The Block C check used `jq -r '.[0].Changelog' | grep -qE ...` to spot the **vX.Y.Z** marker. With `set -o pipefail`, grep -q closing stdin on the first match makes jq trip SIGPIPE on the rest of the multi-KB Changelog string, which the script then surfaces as a false-positive "Changelog missing **vX.Y.Z** subblock" failure. Interactive shells sometimes raced through fast enough to hide the issue, but the pre-push runner hit it reliably (saw it on the v1.4.10 release-cut push attempt). Switched the pipe to a process substitution so jq writes into a FIFO and SIGPIPE never enters the picture. Both directions of the marker check now stay deterministic.