diff --git a/gittensor/validator/issue_discovery/scan.py b/gittensor/validator/issue_discovery/scan.py index 8c0062ad..a6c4cd72 100644 --- a/gittensor/validator/issue_discovery/scan.py +++ b/gittensor/validator/issue_discovery/scan.py @@ -456,10 +456,6 @@ async def _score_miner_issues( ) continue - # Valid-solved gate: solving PR must meet the repo's token threshold. - if cached.token_score >= cfg.min_token_score_for_valid_issue: - acc.valid_solved += 1 - # Same-account: discoverer == solver gets credibility only, no score if issue.author_github_id == solving_pr.author_github_id: bt.logging.debug( @@ -477,6 +473,12 @@ async def _score_miner_issues( ) continue + # Valid-solved gate: solving PR must meet the repo's token threshold. + # Placed after exclusion guards so same-account and non-canonical issues + # do not inflate the counter and bypass the eligibility check. + if cached.token_score >= cfg.min_token_score_for_valid_issue: + acc.valid_solved += 1 + # Quality gate: below-threshold solving PRs add credibility only, no # discovery score. if cached.token_score < cfg.min_token_score_for_valid_issue: