Skip to content

fix: handle deleted label events when parsing PR timeline#553

Merged
anderdc merged 2 commits intoentrius:testfrom
reganbuilds:fix/guard-deleted-label-events
Apr 20, 2026
Merged

fix: handle deleted label events when parsing PR timeline#553
anderdc merged 2 commits intoentrius:testfrom
reganbuilds:fix/guard-deleted-label-events

Conversation

@reganbuilds
Copy link
Copy Markdown
Contributor

Summary

  • guard against LABELED_EVENT timeline nodes whose nested label is null
  • preserve PR parsing instead of raising on deleted labels
  • add a direct regression test for PullRequest.from_graphql_response

Fixes #536.

Validation

  • exercised PullRequest.from_graphql_response with a deleted-label timeline node
  • ran python3 -m py_compile gittensor/classes.py tests/test_classes.py

@anderdc anderdc merged commit ea06faf into entrius:test Apr 20, 2026
3 checks passed
@anderdc anderdc added the bug Something isn't working label Apr 21, 2026
anderdc added a commit that referenced this pull request Apr 25, 2026
End-of-phase cache stats give operators a single-line view of how the
solving-PR cache performed during a scoring round:

  Solving-PR cache: 47 hits | 5 misses (4 fetched OK, 1 fetch failures)

Hits = cache lookup (no HTTP). Misses = get_pr_files invocation. Fetch
failures = MirrorRequestError raised; issue counts toward credibility but
no discovery_earned_score awarded. Useful for tuning expectations
(maintainer-solved miner-issues are guaranteed cache misses since
maintainer PRs are dropped at OSS load time and never enter
mirror_merged_prs) and for spotting mirror flakiness without scraping the
warning lines.

Per-issue debug logs explain every classification + scoring decision so
operators can debug "why didn't UID X get credit for issue Y?" by setting
the log level to debug. Each gate logs its specific reason:

  issue #553 (entrius/gittensor): closed-not-solved (state_reason=NOT_PLANNED, need COMPLETED)
  issue #480 (entrius/gittensor-ui): same-account (discoverer == solver 218712309) — credibility only
  issue #621 (entrius/allways): one-issue-per-PR (PR #527 already scored an earlier issue) — credibility only
  issue #410 (entrius/gittensor): solving PR #399 token_score 2.50 < 5 — credibility only

All at debug level so they don't clutter normal info-level logs.

_score_miner_mirror_issues + _resolve_solving_pr_score gain a _CacheStats
parameter; callers updated. New TestCacheStats covers all three counter
paths (hit / fetch-success / fetch-failure).

Full suite: 618 passed.
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.

Label extraction crashes on deleted LABELED_EVENT timeline node — PR silently dropped

2 participants