Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
d4815ff
improved error logging and file extension extraction (#312)
anderdc Mar 20, 2026
c790e93
add entrius/allways and entrius/allways-ui to master repositories (#317)
anderdc Mar 26, 2026
8e94f01
Remove `nushell/nushell` from whitelist (#316)
cptpiepmatz Mar 26, 2026
c70a24c
chore: add additional acceptable branches to traefik repos (#315)
Desel72 Mar 26, 2026
629cb66
fix: liveweb-arena weight (#320)
bittoby Mar 30, 2026
b920647
Remove `astral-sh/ruff` from whitelist (#322)
bittoby Mar 30, 2026
21b416c
address requested removals (#325)
anderdc Apr 1, 2026
8a74f90
fix: detect inline tests in languages like Rust, Zig, and D for accur…
bitloi Apr 1, 2026
08732e5
chore: update transferred GitHub repo names (#332)
it-education-md Apr 1, 2026
63582be
Update the agcli repo name which was moved to unarbos (#333)
bittoby Apr 2, 2026
087e6e2
Remove astropy/astropy (#334)
pllim Apr 2, 2026
d4ae0aa
address removals (#337)
anderdc Apr 2, 2026
ad759cd
fix: issues list --json --id returns null instead of structured error…
bitloi Apr 2, 2026
ec3a822
Revamp (#348)
anderdc Apr 7, 2026
9004ba9
fix: split GraphQL file content fetches into batches of 50 to prevent…
bittoby Apr 7, 2026
29d55a3
Deactivate autoppia repos (deregistered) (#347)
eureka0928 Apr 7, 2026
04f1300
Improve CLI help output and shared option decorators (#341)
it-education-md Apr 7, 2026
ae64b04
fix: use merge-base for tree-diff scoring to avoid inflated token sco…
MkDev11 Apr 7, 2026
cbb4956
fix: clean up stale miner data when hotkey re-links to new GitHub acc…
tmimmanuel Apr 9, 2026
a54c755
chore: accept async-substrate-interface PRs merged to staging (#351)
it-education-md Apr 9, 2026
95d7d05
Issue discovery (#356)
anderdc Apr 9, 2026
fb20af0
docs: Add Issue Discovery section to README
ClawdiaHedgehog Apr 11, 2026
f230f35
fix: use last_edited_at instead of updated_at for post-merge edit det…
Apr 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ data/
logs/
*.log

# Documentation (not needed in container, except README.md for setup.py)
# Documentation (not needed in container)
docs/

# Tests (not needed in production)
Expand Down
7 changes: 1 addition & 6 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,11 @@ HOTKEY_NAME=default
# Weights & Biases API key for logging
# Signup https://wandb.ai/site for a key
WANDB_API_KEY=
# for issue bounties api calls
# GitHub PAT for validator API calls
GITTENSOR_VALIDATOR_PAT=
# Optional custom name for wandb logging
WANDB_VALIDATOR_NAME=vali

# ******* MINER VARIABLES *******
# GitHub Personal Access Token
# https://github.com/settings/personal-access-tokens
GITTENSOR_MINER_PAT=

# validator database settings (for gittensor validator/dashboard)
STORE_DB_RESULTS=false
# DB_HOST=
Expand Down
26 changes: 13 additions & 13 deletions .github/PULL_REQUEST_TEMPLATE/weight_adjustment.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,28 +2,28 @@

### Changes Summary

| Metric | Gold | Silver | Bronze | Total |
| -------------------- | ---- | ------ | ------ | ----- |
| Repositories Added | 0 | 0 | 0 | 0 |
| Repositories Removed | 0 | 0 | 0 | 0 |
| Weights Modified | 0 | 0 | 0 | 0 |
| Net Weight Change | 0 | 0 | 0 | 0 |
| Metric | Total |
| -------------------- | ----- |
| Repositories Added | 0 |
| Repositories Removed | 0 |
| Weights Modified | 0 |
| Net Weight Change | 0 |

### Added Repositories

<!-- Delete this section if none -->

| Repository | Tier | Branch | Weight |
| ---------- | ------ | ------ | ------ |
| owner/repo | silver | main | 20.00 |
| Repository | Branch | Weight |
| ---------- | ------ | ------ |
| owner/repo | main | 20.00 |

### Removed Repositories

<!-- Delete this section if none -->

| Repository | Tier | Reason |
| ---------- | ------ | ------ |
| owner/repo | silver | — |
| Repository | Reason |
| ---------- | ------ |
| owner/repo | — |

### Justification

Expand All @@ -49,4 +49,4 @@ Example:

- [ ] Changes summary table is filled in accurately
- [ ] Net weight changes are justified in the Justification section
- [ ] Added repositories have correct tier, branch, and initial weight
- [ ] Added repositories have correct branch and initial weight
14 changes: 6 additions & 8 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,14 @@ jobs:
- name: Checkout code
uses: actions/checkout@v4

- name: Install uv
uses: astral-sh/setup-uv@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
cache: 'pip'
run: uv python install 3.12

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
run: uv sync --extra dev

- name: Run tests
run: pytest tests/ -v
run: uv run pytest tests/ -v
23 changes: 23 additions & 0 deletions .github/workflows/typecheck.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: Type Check

on:
pull_request:
branches: [main, test]

jobs:
pyright:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Install uv
uses: astral-sh/setup-uv@v4

- name: Set up Python
run: uv python install 3.12

- name: Install dependencies
run: uv sync --extra dev

- name: Run pyright
run: uv run pyright
10 changes: 5 additions & 5 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,8 @@ wandb

*.log

# Merge predictions local DB
merge-prediction-data/
gt-merge-preds.db
gt-merge-preds.db-wal
gt-merge-preds.db-shm
# Validator data directory (contains sensitive miner PATs)
data/

CLAUDE.md
.claude/
Expand All @@ -30,3 +27,6 @@ CLAUDE.md
target/
**/*.rs.bk
*.lock
!uv.lock

**/.venv/
16 changes: 7 additions & 9 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,13 @@ RUN pip install --break-system-packages uv

WORKDIR /app

# Copy dependency files
COPY pyproject.toml uv.lock ./
# Copy dependency files first (for Docker layer caching)
COPY pyproject.toml uv.lock README.md ./

# Create venv and sync dependencies
ENV VENV_DIR=/opt/venv
ENV VIRTUAL_ENV=$VENV_DIR
ENV PATH="$VENV_DIR/bin:$PATH"
RUN uv venv --python python3 $VENV_DIR && uv sync
# Install dependencies only (no project install yet — source code not copied)
ENV PATH="/app/.venv/bin:$PATH"
RUN uv sync --no-install-project

# Copy application code and install
# Copy application code and install the project
COPY . .
RUN uv pip install -e .
RUN uv sync
67 changes: 58 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,22 +32,71 @@ The result: a sustainable incentive layer that channels resources toward buildin

---

## Miners
## Issue Discovery (Beta)

Gittensor also rewards miners for **discovering issues** that lead to merged PRs. When you find a bug or identify a needed feature in a whitelisted repository and someone else solves it with a merged PR, you earn issue discovery rewards.

### How It Works

1. **Register a GitHub issue** on any whitelisted repository
2. **Someone solves it** with a merged PR
3. **Earn issue discovery score** based on the quality of the solving PR

### Credibility System

Issue discovery uses a separate credibility score from PR contributions:

```
issue_credibility = solved_issues / (solved_issues + closed_issues)
```

- **Solved issue**: Closed via a merged PR — counts toward credibility
- **Closed issue**: Closed without a merged PR — counts against credibility
- **Transferred issue**: Treated as failed — prevents gaming via repo transfers

### Qualification Gates

To be eligible for issue discovery rewards:
- Minimum **7 valid solved issues** (solving PR must have token_score ≥ 5)
- Minimum **80% issue credibility**
- One credibility mulligan (mirrors OSS contribution rules)

### Scoring

**Recommended: Deploy with Docker**
- **Base score** = base score of the solving PR
- **Contribution bonus** = passes through from PR quality (threshold: 2000)
- **Review quality multiplier** = applies to both solver and discoverer equally
- **No double dipping** = same account as PR author earns 0 discovery score (but issue still counts for credibility)

> [!NOTE]
> The port in .env must be accessible by the public.
### Emission Split

- OSS contributions: 30%
- **Issue discovery: 30%**
- Issue treasury: 15%
- Recycle: 25%

See full specification in [issue_discovery/issue-discovery-rewards.md](issue_discovery/issue-discovery-rewards.md).

---

## Miners

No miner neuron required — just register your GitHub PAT with validators using the CLI.

```bash
# Quick start
# Install
git clone https://github.com/entrius/gittensor.git
cd gittensor
cp .env.example .env
# Edit .env with proper values
nano .env
uv sync

# Set your GitHub PAT
export GITTENSOR_MINER_PAT=ghp_your_token_here

# Broadcast PAT to validators
gitt miner post --wallet <name> --hotkey <hotkey>

docker-compose -f docker-compose.miner.yml up -d
# Check which validators have your PAT stored
gitt miner check --wallet <name> --hotkey <hotkey>
```

See full guide **[here](https://docs.gittensor.io/miner.html)**
Expand Down
15 changes: 0 additions & 15 deletions docker-compose.miner.yml

This file was deleted.

2 changes: 1 addition & 1 deletion docker-compose.vali.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ services:
volumes:
# 'ro' = readonly
- ${WALLET_PATH}:/root/.bittensor/wallets:ro
- ./merge-prediction-data:/app/data
- ./data:/app/data
# optional: uncomment this if you are running validator database
# networks:
# - gittensor_network
Expand Down
Loading