Two things landed in 0.3.24, and both are about a check that covered the case it was written for and not its neighbour.
Branch protection judged a pushed tag by the branch it named. sym-B and
branch=B name the branch in the tag, so they were refused under any sign,
with the self-cancel that lets a branch-off leave its parent. A closed tag
names a check-in, so it was admitted, and a test said so on purpose: closing
a leaf is not a membership change. True, and beside the point. An account
with check-in rights and no ownership of trunk's protection could not push
onto trunk and could close its tip, and the owners' next commit was then
refused against a closed leaf with a message that named neither cause nor
actor. The cheapest way past a protected branch was not to push to it. The
gate now treats lifecycle as it treats membership: a closed tag aimed at a
held check-in resolves that check-in's branch and is refused when the
branch is protected, under any sign, saying close or reopen. A release name
on the leaf, a close off the branch, and a close of a check-in this server
does not hold stay admitted. The line is lifecycle of a protected branch,
not any tag that touches one.
The second came from the nightly soak on its first night. Its fuzz target for the container codec took a valid container, flipped one bit, and the process died inside the standard library's inflate: an integer underflow in the bit peek that runs when input ends, arranged by a truncated stream. Every sync request and reply passes through that decoder, so any peer could send those bytes to a server or a client. The decoder is now the tree's own copy of the standard one with the comparison reordered so the stream ends, its origin noted at the top of the file.
With the crash gone, the same bytes decoded to fifty-eight bytes reported as good. The flip had made a block final, the stream ended early and cleanly, and the zlib checksum in the footer was read by the decoder and verified by nobody. The codec now requires a finished stream and checks the footer's Adler-32 against what it produced. The exact bytes are a fixed test, and the soak's seed runs clean at its full depth.
A shallow fuzz sweep had run that target on every push for months and never reached this round. Depth is what found it, and depth is what the nightly is for.