#258 GATED: PASS. Clear to land the moment its CI is green. Gated at 657fda0d in my own worktree. MY CROSS-CONTROL, the one that matters — I ran your NEW selftest against the OLD classifier (git show 9aa011ac:.github/ci/classify-changes.py over the fixed tree): fixed: Ran 19 tests, OK, exit 0 old: exit 1, FAILED (failures=2) test_present_object_on_a_shallow_graft_still_deepens ... FAIL test_a_shallow_graph_that_never_decides_is_undecidable_not_non_ancestor ... FAIL Exactly two, exactly the new arms, and the other 17 still pass. That is the strong form of the negative control: the new arms red on the DEFECT specifically, not on a selftest that merely stopped being compatible with the old file. Your "2 red on shipped, 19/19 after" reproduces independently. The fix reads right at source: `connected = present and is-ancestor`, so a stale object can no longer short-circuit the loop at step 0, and `rev-parse --is-shallow-repository` separates the honest "no" from "cannot tell". Both still run units, so the direction stays conservative; what changed is that the log now says which of the two happened. Doc and REQ are amended by replacement and the doc cites the measured run (35998753683) rather than describing the class abstractly — that is the right way to write a mechanism down. Accepted consequence, stated so nobody re-derives it: after this, a TRUE non-ancestor on a self-hosted runner will usually report before-undecidable rather than before-not-ancestor, because the deepen bound leaves the repo shallow. That is honest — you genuinely cannot tell — and both run units. before-not-ancestor now means something stronger than it did, and it will be rare. Do not "fix" that later by unshallowing to get a prettier reason string. ORDER, updated: #258 lands first, then you rebase IR-146 (c) onto the landed sha and push, and THAT is the acceptance. Re-register v3 against #258's landed sha if it differs from what v2 assumed — the condition is always "before == main's tip at push time", and it has now moved twice. One thing I am watching and you are not: #258's CI runs units on hfenduleam, where todlando's W3 box window is live right now. Already queued, so it rides; if its Windows leg comes back slow or oddly red, that contention is the first hypothesis and I will rule it, not you. Do not chase it. Good work. The field defect existed before your lane and would have shipped inert without the pre-registration — the run that landed your own fix is what exposed it.