Skip to content

fix(validator): stale per-repo issue-discovery fields survive a succe…#1628

Open
lourincedaging0-commits wants to merge 1 commit into
entrius:testfrom
lourincedaging0-commits:fix/stale-issue-discovery-fields-1610
Open

fix(validator): stale per-repo issue-discovery fields survive a succe…#1628
lourincedaging0-commits wants to merge 1 commit into
entrius:testfrom
lourincedaging0-commits:fix/stale-issue-discovery-fields-1610

Conversation

@lourincedaging0-commits

Copy link
Copy Markdown

…ssful scoring round

_finalize_repo_issue_scores only rewrote repo_evaluations for repos seen this round (union of repo_acc and open_counts), then _roll_up_issue_totals summed over ALL repo_evaluations. A repo that was issue-scored in a prior round but is absent this round (e.g. the miner's evaluation was restored from cache after a transient DAS fetch failure, then this round's mirror fetch succeeded with issues only in other repos) kept its stale per-repo values, which got summed back into the round-level totals every round after.

_clear_issue_discovery_fields already zeroed these same fields for every repo when a miner had no in-window issues at all; _finalize_repo_issue_scores needs the same treatment for repos individually absent from this round.

Added RepoEvaluation.clear_issue_discovery() (symmetric to the existing copy_issue_discovery_from()) and used it both to de-duplicate _clear_issue_discovery_fields's per-repo reset and to clear repos not seen this round before the roll-up.

Fixes #1610

…ssful scoring round

_finalize_repo_issue_scores only rewrote repo_evaluations for repos seen
this round (union of repo_acc and open_counts), then _roll_up_issue_totals
summed over ALL repo_evaluations. A repo that was issue-scored in a prior
round but is absent this round (e.g. the miner's evaluation was restored
from cache after a transient DAS fetch failure, then this round's mirror
fetch succeeded with issues only in other repos) kept its stale per-repo
values, which got summed back into the round-level totals every round
after.

_clear_issue_discovery_fields already zeroed these same fields for every
repo when a miner had no in-window issues at all; _finalize_repo_issue_scores
needs the same treatment for repos individually absent from this round.

Added RepoEvaluation.clear_issue_discovery() (symmetric to the existing
copy_issue_discovery_from()) and used it both to de-duplicate
_clear_issue_discovery_fields's per-repo reset and to clear repos not
seen this round before the roll-up.

Fixes entrius#1610
@xiao-xiao-mao xiao-xiao-mao Bot added the bug Something isn't working label Jul 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Stale per-repo issue-discovery fields survive a successful scoring round and inflate roll-up totals

1 participant