Description
The anti-gaming check in issue discovery scoring (line 240 of scoring.py) uses issue.updated_at > pr.merged_at to detect post-merge edits. However, GitHub's updatedAt field reflects ANY activity on the issue — comments, label changes, and critically the closing event itself.
When a PR merges and closes an issue, the issue's updatedAt is automatically updated to the close timestamp, which is always >= merged_at. This means the check incorrectly penalizes nearly all legitimately solved issues, reclassifying them from solved_count to closed_count (hurting credibility).
Affected code
gittensor/validator/issue_discovery/scoring.py line 240
Fix
The Issue class already has a last_edited_at field (populated from GitHub's lastEditedAt GraphQL field) which specifically tracks body/title edits by the author. The check should use last_edited_at instead of updated_at.
Impact
This silently destroys issue discovery scores for most miners by incorrectly penalizing legitimate solved issues.
Description
The anti-gaming check in issue discovery scoring (line 240 of
scoring.py) usesissue.updated_at > pr.merged_atto detect post-merge edits. However, GitHub'supdatedAtfield reflects ANY activity on the issue — comments, label changes, and critically the closing event itself.When a PR merges and closes an issue, the issue's
updatedAtis automatically updated to the close timestamp, which is always >=merged_at. This means the check incorrectly penalizes nearly all legitimately solved issues, reclassifying them fromsolved_counttoclosed_count(hurting credibility).Affected code
gittensor/validator/issue_discovery/scoring.pyline 240Fix
The
Issueclass already has alast_edited_atfield (populated from GitHub'slastEditedAtGraphQL field) which specifically tracks body/title edits by the author. The check should uselast_edited_atinstead ofupdated_at.Impact
This silently destroys issue discovery scores for most miners by incorrectly penalizing legitimate solved issues.