diff --git a/gittensor/validator/issue_discovery/scan.py b/gittensor/validator/issue_discovery/scan.py index c30a12e3..f7072755 100644 --- a/gittensor/validator/issue_discovery/scan.py +++ b/gittensor/validator/issue_discovery/scan.py @@ -463,10 +463,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( @@ -484,6 +480,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: