09f2a7c036
Independent review: a nonexistent base ref under --strict reported zero drops and exited 0 (a mis-fetched CI job would look clean); the script now verifies both refs and the merge-base and exits 2 otherwise. And a method moved from a class into a mixin/base defined in the same module that the class still derives from was reported as removed although the attribute still resolves; public_methods now collects the methods REACHABLE on each class through its in-module bases. Replay of #102117 at open: 1,703 names / 341 modules and 126 test defs / 52 files unchanged; methods 1,000 -> 951 (the 49 were in-module mixin extractions, i.e. the false positives). Test: unresolvable ref -> exit 2 in both modes; a method extracted into an in-module base is not reported.