You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
diff-check: rank items for review use, so the bug site makes the top 15 #737
From #733: diff_check failed because diff-check's leads rarely contain the real bug site. On a private holdout of 9 PRs whose bug lies outside the diff, the site was among the 15 shown leads in only 2. In 6 of the others, diff-check listed 14 to 172 more items than the cap shows. Where the site was the only lead, the finder caught it.
Measure first, for free. The 31 sealed PRs from #733 are kept locally. For each candidate ranking, count how many sealed sites enter the top 15. This needs no review spend. Candidate rankings:
distance from the changed lines;
key specificity;
callers of the changed symbol before key readers;
dropping items in the same file as the diff.
Done when: a ranking puts the site in the top 15 for at least half the outside-stratum PRs. Only then re-run the #733 protocol on a fresh holdout.
Data. The 9 outside PRs of the #733 holdout, the ones whose sealed bug site lies outside the diff. For each, diff-check is run uncapped on a data-key graph at the PR's merge commit. The data is local because the corpus is private, and only aggregates are reported here.
Measures.
Ceiling: is the sealed site in the uncapped list at all? A site counts as found when an item's site ends with the sealed symbol and its file matches.
For each ranking below: the site's rank, and whether it is in the top 15.
Rankings, fixed now. No new ones are added after looking.
R0, current: score, then the fixed kind order.
R1, calls first: caller and subclass items before key items, then R0.
R2, keys first: key items before callers, then R0.
R3, proximity: items in a directory that contains a changed file first, then the parent directory, then the rest; within each group, R0.
R4, one line per site: collapse items that share a site, keep each site's best item, then R0.
R5: R3 and R4 combined.
Decision.
A ranking is a candidate if it puts the site in the top 15 for ≥ 5 of 9 (current: 2 of 9).
Ceiling. In the uncapped diff-check list, the sealed site appears for 2 of 9 outside-diff PRs. No ordering can do better than that, and none did:
ranking
site in top 15
R0 current, R1 calls first, R3 proximity, R4 one line per site, R5 R3+R4
2 / 9
R2 keys first
1 / 9 (pushes one site from rank 2 to 28)
Uncapped list sizes were 0 to 187 items. I checked the misses by hand for matching errors: the site's file appears among the items for some, but the site's symbol never does.
This corrects my #733 note. There I read the misses as "cut by the cap". The uncapped run shows the sites are not in the list at all.
What the 7 missing sites are, as categories from the sealed mechanisms (details stay local):
category
n
what diff-check would need
reads a module-level name the PR changed: a constant, or a rebound logger
2
readers of a changed module-level assignment, as items
a sibling writer of a model that gained a field, still building it without that field
1
other constructors and writers of a model whose fields changed
handles a value set the PR extended (new event names reach a dispatch that does not know them)
1
sites that switch on or test membership in the changed set
a data reference the key layer does not model: a templated index name, or rows of a new shape read by an unchanged reader
2
f-string / templated index names; shape changes on the write side
lifecycle semantics outside the graph: a cascade delete strands external objects
1
none reasonable
Verdict, as registered. The ceiling is below 5 of 9, so no ranking is a candidate and nothing changes in diff-check's order. The leverage is in what diff-check finds at all.
The first two rows (3 of 7) are structural and testable without a model: a changed module-level name, and a model with new fields. They are filed as a follow-up.
Activity
zaebee commentedon Oct 22, 2026
Pre-registration (before any rank is looked at)
Data. The 9 outside PRs of the #733 holdout, the ones whose sealed bug site lies outside the diff. For each, diff-check is run uncapped on a data-key graph at the PR's merge commit. The data is local because the corpus is private, and only aggregates are reported here.
Measures.
siteends with the sealed symbol and its file matches.Rankings, fixed now. No new ones are added after looking.
Decision.
zaebee commentedon Oct 22, 2026
Result: ranking is not the bottleneck, recall is
Ceiling. In the uncapped diff-check list, the sealed site appears for 2 of 9 outside-diff PRs. No ordering can do better than that, and none did:
Uncapped list sizes were 0 to 187 items. I checked the misses by hand for matching errors: the site's file appears among the items for some, but the site's symbol never does.
This corrects my #733 note. There I read the misses as "cut by the cap". The uncapped run shows the sites are not in the list at all.
What the 7 missing sites are, as categories from the sealed mechanisms (details stay local):
Verdict, as registered. The ceiling is below 5 of 9, so no ranking is a candidate and nothing changes in diff-check's order. The leverage is in what diff-check finds at all.
The first two rows (3 of 7) are structural and testable without a model: a changed module-level name, and a model with new fields. They are filed as a follow-up.
zaebee commentedon Oct 22, 2026
Closed with the result above. Ranking cannot help: the ceiling is 2 of 9. Recall work continues in the follow-up.