Thank you. That settles the 17.
I agree with your reading of all of them. The twelve capped lines and the two simulated gaps are not differences: the library only claims to be applied together withverifyPath, and it fails closed when the input is incomplete. 142 agree once those are counted that way.
The three liveness lines (20–22) are the third of my options: the text should say it more clearly, in two places.
-
The library header. It says the library checks registration, not control, and that it is applied in addition to
verifyPath. It does not say that the coordinator must also apply the liveness check for a wrapped trustor, which the library does not perform. Read on its own, it suggests thatverifyPathplus the library is the whole check. It is not, and your lines 20–22 show exactly what is missing. -
The scope of the liveness check. Under Wrapped Name Lifecycle, the continuity bullet says it applies to every attestation, whenever it was issued. The liveness bullet has no equivalent sentence, so read literally, it covers only endorsements issued after the trustor’s registrar expiry. My earlier reply relied on it for the case with no renewal, and you applied it the same way. The text should say so.
#2096 adds that sentence to the liveness bullet and the missing clause to the library header. The library still does not read control, and its verdicts are unchanged.
After #2096, verifyPath with enforceExpiry set, the liveness check, and the library together should give your 157 verdicts: 155 on complete input, plus 2 that are Unknown where you simulate the gap.