Merged
Conversation
Collaborator
anderdc
commented
Apr 9, 2026
- MVP framework for rewarding issue creators along with (already rewarded) PR creators
- pruned repository list to capture more value/signal through developer work (also fixes Remove python-pillow #342)
Removed (no active PRs): pytest-dev/pytest, cython/cython, PyGithub/PyGithub, PyQt5/PyQt, pymc-devs/pymc Inactivated (have active PRs): pyca/cryptography, ipython/ipython
Miners can no longer swap GitHub accounts on the same hotkey to reset credibility. The validator now stores github_id in miner_pats.json and rejects PAT broadcasts that change the GitHub identity for an existing registration. To change GitHub accounts, miners must deregister and re-register on the subnet. Allowed: PAT rotation (same GitHub user, new token), new miner on a recycled UID (different hotkey).
…o 90% Replace age-based sqrt scaling (MAX_ISSUE_AGE_BONUS, MAX_ISSUE_AGE_FOR_MAX_SCORE) with flat multipliers: 1.33x standard, 1.66x maintainer-created issues. Raise MIN_CREDIBILITY from 0.75 to 0.90 to increase the runway required for eligibility and reduce low-quality PR spam.
Normalize all weights to 0-1 range with ~30x spread using Pareto distribution, replacing the previous 0.1-100 range (1000x spread).
Issue: author_github_id, is_transferred, updated_at, 5 discovery multipliers MinerEvaluation: issue_discovery_score, issue_credibility, is_issue_eligible, total_solved_issues, total_closed_issues, total_open_issues Updates BULK_UPSERT_ISSUES, BULK_UPSERT_MINER_EVALUATION, and repository value tuples to match new schema.
…hor ID Phase 1 of issue discovery implementation: - Add issue discovery constants: eligibility gate (7 solved, 80% credibility), cliff model review quality (1.1 clean bonus, 0.15 penalty), open issue spam threshold (base 5), repo scan caps (300/repo, 1500 global) - Add hardcoded emission splits: 30% OSS, 30% issue discovery, 15% treasury, 25% recycle - GraphQL: add databaseId + updatedAt to closingIssuesReferences, add issues(OPEN) totalCount - Populate author_github_id and updated_at on Issue from GraphQL response - Populate total_open_issues on MinerEvaluation from User node
Phase 2 of issue discovery implementation: - scoring.py: credibility calculation with mulligan, eligibility gate (7 solved, 80% credibility), cliff-model review quality multiplier (1.1 clean, -0.15/round), open issue spam threshold, time decay reuse, same-account double-dip prevention, post-merge edit protection, one-issue-per-PR rule (earliest-created wins) - normalize.py: independent normalization for issue discovery reward pool - score_discovered_issues() orchestrator collects issues from PR data + scan results, classifies solved/closed, applies all multipliers, populates MinerEvaluation fields
Phase 3: Scans tracked repos for miner-authored closed issues not linked to any miner's PR. Classifies as solved-by-non-miner (case 2, positive credibility) or closed-without-PR (case 3, negative credibility) via find_solver_from_cross_references. Rate limited: per-repo cap 300, global cap 1500 solver lookups per round, 2 concurrent async lookups. Repos processed in descending weight order.
Phase 4: Pipeline integration for issue discovery. - Delete dynamic_emissions.py (exponential unlock curves removed) - reward.py: get_rewards() returns 3-tuple (rewards, evals, cached_uids), no longer calls dynamic emissions or bulk_store_evaluation - forward.py: complete rewrite of emission blending - 30% OSS contributions (normalized independently) - 30% issue discovery (normalized independently) - 15% issue treasury (flat to UID 111) - 25% recycle (flat to UID 0) - Integrates full issue discovery pipeline: repo scan → scoring → normalize - Moves bulk_store_evaluation to forward.py (after issue discovery populates fields)
- Fix undefined RepositoryConfig reference in forward.py - Remove unused miner_login_to_github_id in repo_scan.py - Remove unused PullRequest import in scoring.py - Fix pyright BaseException narrowing in repo_scan.py - Auto-format with ruff
Tracks solved issues where the solving PR has token_score >= 5 separately from total solved. Eligibility gate now checks valid count (not total).
… pagination limit
…x 404 logging - Empty OSS/discovery pools now route their share to recycle UID 0 - Remove chrishayuk/mcp-ragdocs (deleted from GitHub) - Treat 404 responses as debug (not warning) in repo scan
LandynDev
approved these changes
Apr 9, 2026
anderdc
added a commit
that referenced
this pull request
Apr 10, 2026
Co-authored-by: anderdc <me@alexanderdc.com>
Merged
anderdc
added a commit
that referenced
this pull request
Apr 10, 2026
Co-authored-by: anderdc <me@alexanderdc.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.