Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
393 commits
Select commit Hold shift + click to select a range
f219958
make test clear
open-junius May 13, 2026
ebee71b
add limit as 0 check
open-junius May 13, 2026
8093069
merge with devnet ready
open-junius May 20, 2026
58047d1
split lock storage cleanup process
open-junius May 20, 2026
5a8ea76
commit Cargo.lock
open-junius May 20, 2026
f32902d
commit Cargo.lock
open-junius May 20, 2026
54e2ecd
commit Cargo.lock
open-junius May 20, 2026
35d077f
fix unit test
open-junius May 20, 2026
a7f9c72
Merge branch 'devnet-ready' into benchmark-dissolve-network
open-junius May 22, 2026
eac6362
donot recycle the netuid
open-junius May 22, 2026
6421a6c
update unit test
open-junius May 22, 2026
2aacb0f
cargo clippy
open-junius May 22, 2026
1ced310
fix ai comments
open-junius May 22, 2026
17c1529
update comments
open-junius May 25, 2026
522f58c
fix ai comments
open-junius May 25, 2026
214be94
rename a variable
open-junius May 25, 2026
b5c3273
fix ai comment
open-junius May 25, 2026
3698470
cargo clippy
open-junius May 25, 2026
4cad05c
ignore one write weight
open-junius May 25, 2026
a5c329b
cargo clippy
open-junius May 25, 2026
b855af3
fix conflict
open-junius May 26, 2026
3c6c002
cargo fmt
open-junius May 26, 2026
6df5589
Merge branch 'devnet-ready' into benchmark-dissolve-network
open-junius May 28, 2026
2662630
merge with devnet-ready
open-junius May 29, 2026
508cf8b
fix conflict
open-junius Jun 2, 2026
74d1cd9
fix all unit tests
open-junius Jun 2, 2026
69ad447
commit Cargo.lock
open-junius Jun 2, 2026
442261d
fix conflict
open-junius Jun 3, 2026
503c31d
fix unit test
open-junius Jun 3, 2026
4fa605f
fix unit test
open-junius Jun 3, 2026
dee84e2
set weigth for all function ops
open-junius Jun 3, 2026
ee67422
merge with devnet ready
open-junius Jun 5, 2026
22cd7d4
remove cleanup for rate limiter
open-junius Jun 5, 2026
15e1db6
Merge branch 'devnet-ready' into benchmark-dissolve-network
open-junius Jun 5, 2026
557779a
commit Cargo.lock
open-junius Jun 5, 2026
6047135
fix unit tests
open-junius Jun 5, 2026
2ef4e5b
fix unit tests
open-junius Jun 5, 2026
1c10833
fix parameter error
open-junius Jun 5, 2026
b0cad27
commit Cargo.lock
open-junius Jun 5, 2026
265fc76
fix conflict
open-junius Jun 7, 2026
b179fcc
cargo clippy
open-junius Jun 7, 2026
ef36e94
clean deprecated functions
open-junius Jun 7, 2026
a8f2bd3
Merge branch 'devnet-ready' into benchmark-dissolve-network
open-junius Jun 8, 2026
baf979b
Clean rate limits for hotkey/coldkey swaps
Jun 8, 2026
1c0572e
fix basic comments
open-junius Jun 10, 2026
4910038
refactor according to the comments
open-junius Jun 10, 2026
3b3340f
fix unit tests
open-junius Jun 10, 2026
c7b2e95
cargo clippy
open-junius Jun 10, 2026
695b504
cargo fmt
open-junius Jun 10, 2026
3c07c24
failed if no available netuid in scope
open-junius Jun 10, 2026
7da9766
refactor network registration
open-junius Jun 11, 2026
27b4354
fix unit tests
open-junius Jun 11, 2026
b83efe5
cargo clippy
open-junius Jun 11, 2026
a1378ff
cargo fmt
open-junius Jun 11, 2026
3911188
more unit tests
open-junius Jun 11, 2026
5ffde0b
fix linter
open-junius Jun 11, 2026
2931ff8
cleanup code
open-junius Jun 11, 2026
a8d37c8
commit Cargo.lock
open-junius Jun 11, 2026
8dac5f7
update document index
open-junius Jun 11, 2026
e7c2a57
fix conflict
open-junius Jun 11, 2026
f40907f
commit Cargo.lock
open-junius Jun 11, 2026
e2b0c03
commit Cargo.lock
open-junius Jun 11, 2026
d9e5b42
commit Cargo.lock
open-junius Jun 11, 2026
e20b873
commit Cargo.lock
open-junius Jun 11, 2026
0c3eb19
fix all unit tests after merge devnet-ready
open-junius Jun 11, 2026
dbfa848
remove macro and use function instead
open-junius Jun 11, 2026
e00a9fb
make code nicer
open-junius Jun 11, 2026
03e454c
minor fix according to comments
open-junius Jun 12, 2026
3ebc4b6
remove an empty file
open-junius Jun 12, 2026
6d09b8b
commit Cargo.lock
open-junius Jun 12, 2026
f30674e
commit Cargo.lock
open-junius Jun 12, 2026
03c0d07
derive typeInfo for TestMaxFields
open-junius Jun 12, 2026
bd00dce
add more subnet exist check
open-junius Jun 12, 2026
4c527f2
add an unit test
open-junius Jun 12, 2026
a03b14f
add more netuid exists check
open-junius Jun 12, 2026
c079857
fix all unit tests
open-junius Jun 12, 2026
4cec05f
fix all tests
open-junius Jun 12, 2026
1177c28
fix conflict
open-junius Jun 12, 2026
c222820
fix benchmark test
open-junius Jun 12, 2026
89e9467
merge with devnet ready
open-junius Jun 18, 2026
9ea5fb6
some fix according to comment
open-junius Jun 19, 2026
0fe3718
add test for cleanup helper function
open-junius Jun 19, 2026
58879bd
refactor a function
open-junius Jun 19, 2026
20f9164
refactor the status of cleanup
open-junius Jun 19, 2026
cc11248
refactor and correct all unit tests
open-junius Jun 19, 2026
440e627
cargo clippy
open-junius Jun 19, 2026
f3ee244
cargo fix
open-junius Jun 19, 2026
1f536d7
cargo fmt
open-junius Jun 19, 2026
fdf06f5
commit Cargo.lock
open-junius Jun 19, 2026
e1541f0
fix the conflict
open-junius Jun 19, 2026
7494ba6
take the current cleanup network into length of queue
open-junius Jun 19, 2026
44c418b
auto-update benchmark weights
github-actions[bot] Jun 19, 2026
916158c
add freeze macro
open-junius Jun 19, 2026
7695b2f
auto-update benchmark weights
github-actions[bot] Jun 19, 2026
4855bf3
upgrade version and fix build
open-junius Jun 22, 2026
07ffd42
remove duplicate sudo_set_subnet_owner_hotkey
JohnReedV Jun 22, 2026
2c8a3fd
bump spec
JohnReedV Jun 22, 2026
f38c0db
deprecate `BlockEmission` & create rpc
JohnReedV Jun 22, 2026
23039e0
update deprecation note
JohnReedV Jun 22, 2026
3e606f0
chore: auditor auto-fix
Jun 22, 2026
7994692
auto-update benchmark weights
github-actions[bot] Jun 22, 2026
b37a197
Merge branch 'devnet-ready' into block-emission-rpc
JohnReedV Jun 23, 2026
bb71e41
Fix crowdloan reentrancy bug
l0r1s Jun 23, 2026
977d534
Update weights.rs
JohnReedV Jun 23, 2026
3ef6894
Merge branch 'devnet-ready' into block-emission-rpc
JohnReedV Jun 23, 2026
7d2c726
Merge branch 'devnet-ready' into block-emission-rpc
JohnReedV Jun 23, 2026
096a405
remove sudo_set_subnet_owner_hotkey everywhere
JohnReedV Jun 23, 2026
bff5760
Update weights.rs
JohnReedV Jun 23, 2026
612d546
Merge branch 'devnet-ready' into fix-crowdloan-reentrancy
l0r1s Jun 23, 2026
ab38313
Merge branch 'devnet-ready' into fix-crowdloan-reentrancy
l0r1s Jun 23, 2026
7c45c97
Trigger CI
l0r1s Jun 24, 2026
d141ec2
Check CrowdloanCurrentId in finalize
l0r1s Jun 24, 2026
8a4bad0
auto-update benchmark weights
github-actions[bot] Jun 24, 2026
fb5a4cd
Merge branch 'devnet-ready' into block-emission-rpc
JohnReedV Jun 24, 2026
0cee4d1
auto-update benchmark weights
github-actions[bot] Jun 24, 2026
069029f
bump spec
JohnReedV Jun 24, 2026
2303adc
Merge branch 'devnet-ready' into remove-duplicate-set-sn-owner-key
JohnReedV Jun 24, 2026
eb25e8f
Extract proxy related types
l0r1s Jun 24, 2026
59b467a
Rework define_proxy_filters into call_filter_group macro
l0r1s Jun 24, 2026
fd5e882
Fix compilation error
l0r1s Jun 24, 2026
00e256b
fix conflict
open-junius Jun 25, 2026
3eedbd5
fix unit test
open-junius Jun 25, 2026
75b7b79
fix unit test
open-junius Jun 25, 2026
9efcbe7
add 3 more Ink interface
open-junius Jun 25, 2026
d74b987
auto-update benchmark weights
github-actions[bot] Jun 25, 2026
6eb4031
update test case
open-junius Jun 25, 2026
51d5e04
fix unit tests
open-junius Jun 25, 2026
4bf9055
format ts code
open-junius Jun 25, 2026
2c73b8f
chore: auditor auto-fix
Jun 25, 2026
f2c7bea
format ts code
open-junius Jun 25, 2026
aeeefa5
format code
open-junius Jun 25, 2026
1a5da03
Merge pull request #2778 from opentensor/block-emission-rpc
JohnReedV Jun 25, 2026
fe25a01
Merge pull request #2777 from opentensor/remove-duplicate-set-sn-owne…
JohnReedV Jun 25, 2026
06032d5
Merge pull request #2769 from opentensor/testnet
sam0x17 Jun 25, 2026
265a501
Add initial call groups
l0r1s Jun 25, 2026
d4a6da2
fix bugs
open-junius Jun 25, 2026
5751675
cargo clippy
open-junius Jun 25, 2026
d370972
fix conflict
open-junius Jun 26, 2026
424efa4
fix several issue in the comments
open-junius Jun 26, 2026
539200b
try without patch
open-junius Jun 26, 2026
4ec382c
Revert "try without patch"
open-junius Jun 26, 2026
ffe705c
make the test stable
open-junius Jun 26, 2026
d1ae758
format code
open-junius Jun 26, 2026
aecf5a1
Merge branch 'devnet-ready' into fix-crowdloan-reentrancy
l0r1s Jun 26, 2026
2c82c55
Rework call groups + tests
l0r1s Jun 26, 2026
171b5e5
Rework call groups + more tests
l0r1s Jun 26, 2026
2841b5e
Merge branch 'devnet-ready' into proxy-deny-by-default
l0r1s Jun 26, 2026
e9050d4
Fix common Cargo.toml
l0r1s Jun 26, 2026
77e6bfc
Fix removed extrinsic
l0r1s Jun 26, 2026
14cd19c
reduce balancer exp precision from 1024 to 512
gztensor Jun 26, 2026
bc5c024
reduce balancer exp precision from 512 to 128
gztensor Jun 26, 2026
503170f
Increase fuzzy test output frequency
gztensor Jun 26, 2026
98151ec
cap exp_scaled at 1, set balancer exp precision to 256
gztensor Jun 26, 2026
593de8a
Forbid swaps that are too large compared to available liauidity
gztensor Jun 26, 2026
536c893
spec bump
gztensor Jun 26, 2026
c4c77a2
chore: auditor auto-fix
Jun 26, 2026
8bc8ef6
Merge branch 'fix/balancer-performance' of github.com:opentensor/subt…
gztensor Jun 26, 2026
566fb8c
Update pallets/swap/src/pallet/balancer.rs
gztensor Jun 26, 2026
d005de3
fix tests
gztensor Jun 26, 2026
132b9cc
Fix tests, enforce atomic add-stake recycle/burn operations by rollin…
gztensor Jun 26, 2026
1ad1688
Apply the 1000x swap input cap to simulations and limit-path max-amou…
gztensor Jun 26, 2026
bb51677
Merge pull request #2803 from opentensor/fix/balancer-performance
sam0x17 Jun 26, 2026
1490758
bump version
open-junius Jun 29, 2026
5cd2a57
Fix rust
l0r1s Jun 26, 2026
6d13cf3
Merge branch 'devnet-ready' into fix-crowdloan-reentrancy
l0r1s Jun 29, 2026
724bb84
Bump spec version to 424
l0r1s Jun 29, 2026
156eeca
Allow locked alpha transfers in coldkey swaps
gztensor Jun 29, 2026
a63880d
use StartCallNotReady
JohnReedV Jun 29, 2026
bf519d0
bump spec
JohnReedV Jun 29, 2026
559e62c
Merge branch 'devnet-ready' into chore/clean-rate-limits
Jun 29, 2026
f02efd6
clippy fix after merge conflict
Jun 29, 2026
e7f1bfd
spec version bump
Jun 29, 2026
34e1def
Merge pull request #2810 from opentensor/fix/coldkey-swap-locked-alpha
sam0x17 Jun 29, 2026
b749a63
Apply dispatch extension conditionally
l0r1s Jun 29, 2026
ebe1ac6
Apply subtensor extension conditionally
l0r1s Jun 29, 2026
6d81084
Merge pull request #2812 from opentensor/conditional-ext
sam0x17 Jun 29, 2026
cb26860
Merge branch 'main' into hotfixes-29-06-2026
l0r1s Jun 29, 2026
a36fc33
Added set_reject_locked_alpha to SubtensorCommonCalls
l0r1s Jun 30, 2026
992cfc6
Bump spec version to 424
l0r1s Jun 30, 2026
1cb69bd
Trigger CI
l0r1s Jun 30, 2026
1c305d6
Remove registry pallet cleanup migration
l0r1s Jun 30, 2026
a5202f6
Bump spec version to 424
l0r1s Jun 30, 2026
f6c858a
Use local try-runtime action
l0r1s Jun 30, 2026
612e09b
auto-update benchmark weights
github-actions[bot] Jun 30, 2026
08c1a21
isSubnetDissolving interface
open-junius Jun 30, 2026
7bdc3c0
fixed tests
Jun 30, 2026
1d5ccec
Merge pull request #2786 from opentensor/fix-crowdloan-reentrancy
l0r1s Jun 30, 2026
6c3c519
Merge pull request #2815 from opentensor/remove-registry-migration
l0r1s Jun 30, 2026
0caa50f
Merge pull request #2816 from opentensor/fix-ci-29-06-2026
l0r1s Jun 30, 2026
24f1d95
Merge branch 'devnet-ready' into proxy-deny-by-default
l0r1s Jun 30, 2026
e5b15ca
Fix import
l0r1s Jun 30, 2026
d9bfd08
Add missing faucet call
l0r1s Jun 30, 2026
531e042
Make is_superset explicit allowlist
l0r1s Jun 30, 2026
22842e4
Merge branch 'devnet-ready' into hotfixes-29-06-2026
l0r1s Jun 30, 2026
d340436
Enforce conviction, add test, bump spec
gztensor Jun 26, 2026
bb3591e
remove root prop from emission calculation
JohnReedV Jun 30, 2026
3b94406
test_get_shares_ignores_root_prop
JohnReedV Jun 30, 2026
2519652
Merge pull request #2814 from opentensor/hotfixes-29-06-2026
sam0x17 Jun 30, 2026
6506ac6
bump spec
JohnReedV Jun 30, 2026
14bc6f9
Merge pull request #2800 from opentensor/feat/enforce-conviction
sam0x17 Jun 30, 2026
5a06a94
fix the conflict
open-junius Jul 1, 2026
c4b8e77
fix unit test
open-junius Jul 1, 2026
12d04c0
Merge pull request #2727 from opentensor/chore/clean-rate-limits
open-junius Jul 1, 2026
c7fad8d
fix unit test
open-junius Jul 1, 2026
6b7222a
Merge pull request #2797 from opentensor/add-tests-for-new-query
open-junius Jul 1, 2026
6a4206f
Merge pull request #2802 from opentensor/proxy-deny-by-default
l0r1s Jul 1, 2026
a259fed
add finalize after contract deploy
open-junius Jul 2, 2026
5f2c452
add new case
open-junius Jul 3, 2026
e8ed66e
fix the issue of same identifier for same coldkey
open-junius Jul 3, 2026
0a6ebe6
cargo clippy
open-junius Jul 3, 2026
b75479d
commit Cargo.lock
open-junius Jul 3, 2026
6dc423b
commit Cargo.lock
open-junius Jul 3, 2026
5b74a6d
fix unit test
open-junius Jul 3, 2026
4dd460c
add block run
open-junius Jul 3, 2026
1bb29ac
Merge branch 'devnet-ready' into benchmark-dissolve-network
open-junius Jul 6, 2026
3200a6f
remove credit_subnet_account_shortfall
open-junius Jul 6, 2026
d10a8db
format code
open-junius Jul 6, 2026
19b8435
auto-update benchmark weights
github-actions[bot] Jul 6, 2026
e932dd4
Merge branch 'devnet-ready' into coldkey-pays-tx-fees-if-hotkey-origin
l0r1s Jul 6, 2026
177ffc7
Merge pull request #2820 from RaoFoundation/avoid-nonce-reuse-error
UnArbosThree Jul 6, 2026
57b8bc3
Added reverse index for AssociatedEvmAddress
l0r1s Jul 5, 2026
5c6de1f
upgrade cid package
open-junius Jul 7, 2026
6f8da13
Some refactoring
l0r1s Jul 7, 2026
4ae8304
Merge branch 'devnet-ready' into coldkey-pays-tx-fees-if-hotkey-origin
l0r1s Jul 7, 2026
bb676ae
Fix AI review
l0r1s Jul 7, 2026
e3a92aa
Drop tip for hotkey based origin
l0r1s Jul 7, 2026
f72d089
cargo fmt
l0r1s Jul 7, 2026
8f0e7d4
Fix tests
l0r1s Jul 7, 2026
e14e463
Fix AI review
l0r1s Jul 7, 2026
571848b
Fix AI review 2 + remove limit + update comment
l0r1s Jul 7, 2026
e072065
Merge pull request #2811 from RaoFoundation/fix-start-call-error
UnArbosSix Jul 7, 2026
4cb0523
chore: update repo URLs and crate metadata for RaoFoundation org move
Jul 7, 2026
45999f7
ci: point workflows and review tooling at RaoFoundation repos
Jul 7, 2026
d091d3a
ci: lowercase GHCR image names in docker publish workflows
Jul 7, 2026
621583e
docker: move image references to the ghcr.io/raofoundation namespace
Jul 7, 2026
7a8e436
deps: update frontier and bls git dependencies to RaoFoundation
Jul 7, 2026
22dd037
scripts: recognize RaoFoundation branch names in release notes
Jul 7, 2026
0c3d92d
Merge main into org-transfer to backport pending changes to devnet-ready
Jul 7, 2026
f0fa8ba
bump spec to 426
Jul 7, 2026
7dfd2a4
ci: fix invalid YAML in check-node-compat workflow
Jul 7, 2026
d084d43
Merge pull request #2834 from RaoFoundation/org-transfer
UnArbosThree Jul 7, 2026
f039a34
fix conflict
open-junius Jul 8, 2026
54e6d49
fix conflict
open-junius Jul 8, 2026
4f3d5ff
Merge pull request #2570 from RaoFoundation/coldkey-pays-tx-fees-if-h…
l0r1s Jul 8, 2026
8ab7f9c
Merge pull request #2830 from RaoFoundation/fix-uid-lookup
l0r1s Jul 8, 2026
820882a
fix conflict
open-junius Jul 8, 2026
45dbee4
clean up AssociatedUidsByEvmAddress
open-junius Jul 8, 2026
53eb334
update test case to check AssociatedUidsByEvmAddress cleanup
open-junius Jul 8, 2026
737e207
revert upgraded package
open-junius Jul 8, 2026
c192c06
Merge pull request #2412 from RaoFoundation/benchmark-dissolve-network
open-junius Jul 8, 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
99 changes: 99 additions & 0 deletions .github/actions/try-runtime/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
name: "Subtensor Try Runtime"
description: "Check Subtensor runtime migrations using try-runtime-cli"
author: "OpenTensor Foundation"
branding:
icon: "shield"
color: "green"

inputs:
runtime-package:
description: "The runtime package name"
required: true
node-uri:
description: "URI of a node to scrape state"
required: true
checks:
description: "Types of checks to run."
default: "all"
blocktime:
description: "Block time in milliseconds to use for try-runtime checks."
default: "12000"
extra-args:
description: "Extra args to pass to the on-runtime-upgrade subcommand."
default: ""
cache-on-failure:
description: "Whether to save the Rust cache even if the job fails"
default: "false"

runs:
using: "composite"
steps:
- name: Download try-runtime-cli v0.10.1
run: |
TRY_RUNTIME_BIN="$RUNNER_TEMP/try-runtime"
curl --fail --silent --show-error --location \
"https://github.com/paritytech/try-runtime-cli/releases/download/v0.10.1/try-runtime-x86_64-unknown-linux-musl" \
--output "$TRY_RUNTIME_BIN"
chmod +x "$TRY_RUNTIME_BIN"
echo "TRY_RUNTIME_BIN=$TRY_RUNTIME_BIN" >> "$GITHUB_ENV"
shell: bash

- name: Install Protoc
uses: arduino/setup-protoc@v1.3.0
with:
version: "3.6.1"
repo-token: ${{ github.token }}

- name: Add wasm32-unknown-unknown target
run: rustup target add wasm32-unknown-unknown
shell: bash

- name: Add rust-src component
run: rustup component add rust-src
shell: bash

- name: Fetch cache
uses: Swatinem/rust-cache@v2.7.0
with:
shared-key: try-runtime
cache-on-failure: ${{ inputs.cache-on-failure }}

- name: Build ${{ inputs.runtime-package }}
run: cargo build --profile production -p "$RUNTIME_PACKAGE" --features try-runtime -q --locked
shell: bash
env:
RUNTIME_PACKAGE: ${{ inputs.runtime-package }}

- name: Check migrations
run: |
RUNTIME_BLOB_NAME="${RUNTIME_PACKAGE//-/_}.compact.compressed.wasm"
RUNTIME_BLOB_PATH="./target/production/wbuild/$RUNTIME_PACKAGE/$RUNTIME_BLOB_NAME"
export RUST_LOG=remote-ext=debug,runtime=debug

command=(
"$TRY_RUNTIME_BIN"
--runtime "$RUNTIME_BLOB_PATH"
on-runtime-upgrade
"--checks=$CHECKS"
--blocktime
"$BLOCKTIME"
)

if [[ -n "$EXTRA_ARGS" ]]; then
read -r -a extra_args <<< "$EXTRA_ARGS"
command+=("${extra_args[@]}")
fi

command+=(live --uri "$NODE_URI")

echo "Running command:"
printf '%q ' "${command[@]}"
printf '\n'
"${command[@]}"
shell: bash
env:
RUNTIME_PACKAGE: ${{ inputs.runtime-package }}
NODE_URI: ${{ inputs.node-uri }}
CHECKS: ${{ inputs.checks }}
BLOCKTIME: ${{ inputs.blocktime }}
EXTRA_ARGS: ${{ inputs.extra-args }}
8 changes: 4 additions & 4 deletions .github/ai-review/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ workflow will automatically use its token instead.

### Setup

1. Create a GitHub App under the `opentensor` org:
1. Create a GitHub App under the `RaoFoundation` org:
- Settings → Developer settings → GitHub Apps → New GitHub App.
- Webhook: not needed; disable.
- Repository permissions:
Expand All @@ -39,7 +39,7 @@ workflow will automatically use its token instead.
- **Metadata**: Read
- User permissions: none.
- "Where can this GitHub App be installed?": Only on this account.
2. Install the App on the `opentensor/subtensor` repo (only).
2. Install the App on the `RaoFoundation/subtensor` repo (only).
3. From the App settings page, generate a private key (`.pem` file).
4. In repo Settings → Secrets and variables → Actions:
- Variables tab: add `AI_REVIEW_APP_ID` = the App's numeric ID.
Expand Down Expand Up @@ -98,7 +98,7 @@ the PR number. `workflow_dispatch` runs in base context with secrets
available, performs the real review, and the required checks turn green.

```bash
gh workflow run ai-review.yml --repo opentensor/subtensor -f pr_number=<N>
gh workflow run ai-review.yml --repo RaoFoundation/subtensor -f pr_number=<N>
```

## Required-checks setup
Expand All @@ -114,7 +114,7 @@ After the first successful run, add these to branch protection on `devnet-ready`
Manual trigger:

```bash
gh workflow run ai-review-index-gittensor.yml --repo opentensor/subtensor
gh workflow run ai-review-index-gittensor.yml --repo RaoFoundation/subtensor
```

Daily cron is already configured (06:17 UTC). The indexer opens a PR with any
Expand Down
2 changes: 1 addition & 1 deletion .github/ai-review/auditor.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ Look up the PR author's gittensor association:

1. Read `.github/ai-review/known-gittensor-accounts.json` (auto-maintained from on-chain bounty data).
2. Read `.github/ai-review/gittensor-accounts.txt` (nucleus-curated supplement).
3. If neither matches, apply the heuristic: ≥70% of the author's recent merged PRs are to gittensor-whitelisted repos (subtensor / opentensor / latent-to / etc.) AND average PR size is small. If so, classify as `LIKELY`.
3. If neither matches, apply the heuristic: ≥70% of the author's recent merged PRs are to gittensor-whitelisted repos (subtensor / RaoFoundation / opentensor / latent-to / etc.) AND average PR size is small. If so, classify as `LIKELY`.

Tier the author:
- **KNOWN** (on-chain or curated): high confidence gittensor miner.
Expand Down
2 changes: 1 addition & 1 deletion .github/ai-review/common.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Subtensor AI Review — Shared Context

You are reviewing a pull request to **opentensor/subtensor**, the Substrate-based runtime for the Bittensor blockchain (~$4B market cap). Lives and livelihoods depend on the security and correctness of this code. Be thorough, precise, and uncompromising on safety.
You are reviewing a pull request to **RaoFoundation/subtensor**, the Substrate-based runtime for the Bittensor blockchain (~$4B market cap). Lives and livelihoods depend on the security and correctness of this code. Be thorough, precise, and uncompromising on safety.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[HIGH] AI review trusted files are modified in this PR

This PR changes .github/ai-review/* files relative to the trusted base (README.md, auditor.md, common.md, post_review.py, prefetch.sh, and skeptic.md). The operating instructions for this review explicitly require flagging PR-side changes to .github/ai-review/* as HIGH or CRITICAL. Even if these lines are intended as an org rename, changes to review prompts and posting/prefetch scripts should be separated and reviewed against the trusted copies before a deployment fast-forward consumes them.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[HIGH] AI review trusted files are modified in this PR

This PR changes .github/ai-review/* relative to the trusted base copies. The review operating instructions require these changes to be flagged because PR-side prompt/tooling edits can affect later AI-review behavior once merged. Keep AI-review instruction/tooling changes out of a deployment fast-forward or land them through a separately scrutinized trusted-base update.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[HIGH] AI review trusted files are modified in this PR

The operating instructions for this run explicitly require flagging PR-side changes to .github/ai-review/* as HIGH or CRITICAL when they differ from the trusted base copies. This PR still modifies multiple AI-review files, including the shared trusted context here, so the review system’s instructions/prompts remain part of the diff being reviewed.


## Repository topology

Expand Down
2 changes: 1 addition & 1 deletion .github/ai-review/post_review.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@

Usage:
GH_TOKEN=... python3 post_review.py \
--persona skeptic --pr 2668 --repo opentensor/subtensor \
--persona skeptic --pr 2668 --repo RaoFoundation/subtensor \
--commit-sha <sha> --input-file skeptic-output.json
"""

Expand Down
2 changes: 1 addition & 1 deletion .github/ai-review/prefetch.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
set -euo pipefail

: "${PR_NUMBER:?PR_NUMBER required}"
: "${REPO:?REPO required (e.g. opentensor/subtensor)}"
: "${REPO:?REPO required (e.g. RaoFoundation/subtensor)}"
: "${GH_TOKEN:?GH_TOKEN required (used here only — NOT passed to Codex)}"
OUTPUT_DIR="${OUTPUT_DIR:-/tmp/ai-review-context}"

Expand Down
4 changes: 2 additions & 2 deletions .github/ai-review/skeptic.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ diff from a HIGH-risk contributor tips toward `[VULNERABLE]`.
**Account-age + contribution-graph tiers** (apply before reading the diff):

- **VERY HIGH scrutiny**: account < 30 days old, OR < 10 lifetime contributions, OR < 3 public repos. Treat any non-trivial change as suspicious until proven otherwise. A `[SAFE]` verdict here requires the diff to be small, mechanical, and obviously correct.
- **HIGH scrutiny**: account < 90 days old, OR < 50 lifetime contributions, OR no contribution history outside of subtensor / opentensor.
- **HIGH scrutiny**: account < 90 days old, OR < 50 lifetime contributions, OR no contribution history outside of subtensor / RaoFoundation / opentensor (the org's former name).
- **MEDIUM scrutiny**: account 90 days – 1 year old with modest contribution history, OR established account whose contribution pattern recently pivoted heavily toward subtensor / gittensor-whitelisted repos.
- **BASELINE scrutiny**: account > 1 year old with substantive non-subtensor history, OR known nucleus member.

Expand All @@ -73,7 +73,7 @@ diff from a HIGH-risk contributor tips toward `[VULNERABLE]`.
**Patterns that lower risk**:

- Established contributor with a long history of substantive merged PRs to this repo.
- "Nucleus" team member: `gh api repos/opentensor/subtensor/collaborators/$AUTHOR/permission` — `admin` or `write` permission.
- "Nucleus" team member: `gh api repos/RaoFoundation/subtensor/collaborators/$AUTHOR/permission` — `admin` or `write` permission.
- Substantive contribution history to unrelated reputable open-source projects.

## Step 2 — Diff analysis
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/ai-review.yml
Original file line number Diff line number Diff line change
Expand Up @@ -252,7 +252,7 @@ jobs:
output-schema-file: /tmp/ai-review-trusted/codex-output-schema.json
prompt: |
You are running as the **Skeptic** persona reviewing PR #${{ needs.decide.outputs.pr_number }}
in the opentensor/subtensor repository.
in the RaoFoundation/subtensor repository.

Branch: `${{ needs.decide.outputs.head_ref }}` -> `${{ needs.decide.outputs.base_ref }}`
Author: `${{ needs.decide.outputs.author }}`
Expand Down Expand Up @@ -469,7 +469,7 @@ jobs:
output-schema-file: /tmp/ai-review-trusted/codex-output-schema.json
prompt: |
You are running as the **Auditor** persona reviewing PR #${{ needs.decide.outputs.pr_number }}
in the opentensor/subtensor repository.
in the RaoFoundation/subtensor repository.

Branch: `${{ needs.decide.outputs.head_ref }}` -> `${{ needs.decide.outputs.base_ref }}`
Author: `${{ needs.decide.outputs.author }}`
Expand Down
16 changes: 10 additions & 6 deletions .github/workflows/check-bittensor-e2e-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,10 @@ on:
env:
CARGO_TERM_COLOR: always
VERBOSE: ${{ github.event.inputs.verbose }}
# Name the locally built localnet image under the RaoFoundation namespace
# (lowercase — Docker requires it). The bittensor/btcli e2e harnesses read
# LOCALNET_IMAGE_NAME from the environment, overriding their built-in default.
LOCALNET_IMAGE_NAME: ghcr.io/raofoundation/subtensor-localnet:devnet-ready

jobs:
check-label:
Expand Down Expand Up @@ -75,7 +79,7 @@ jobs:

- name: Research preparation
working-directory: ${{ github.workspace }}
run: git clone https://github.com/opentensor/btcli.git
run: git clone https://github.com/RaoFoundation/btcli.git

- name: Checkout
working-directory: ${{ github.workspace }}/btcli
Expand Down Expand Up @@ -135,7 +139,7 @@ jobs:

- name: Research preparation
working-directory: ${{ github.workspace }}
run: git clone https://github.com/opentensor/bittensor.git
run: git clone https://github.com/RaoFoundation/bittensor.git

- name: Checkout
working-directory: ${{ github.workspace }}/bittensor
Expand Down Expand Up @@ -340,7 +344,7 @@ jobs:

- name: Clone Bittensor CLI repo
working-directory: ${{ github.workspace }}
run: git clone https://github.com/opentensor/btcli.git
run: git clone https://github.com/RaoFoundation/btcli.git

- name: Setup Bittensor-cli from cloned repo
working-directory: ${{ github.workspace }}/btcli
Expand All @@ -361,7 +365,7 @@ jobs:
run: docker load -i subtensor-localnet.tar

- name: Retag Docker Image
run: docker tag localnet ghcr.io/opentensor/subtensor-localnet:devnet-ready
run: docker tag localnet "$LOCALNET_IMAGE_NAME"

- name: Run with retry
working-directory: ${{ github.workspace }}/btcli
Expand Down Expand Up @@ -421,7 +425,7 @@ jobs:

- name: Clone Bittensor SDK repo
working-directory: ${{ github.workspace }}
run: git clone https://github.com/opentensor/bittensor.git
run: git clone https://github.com/RaoFoundation/bittensor.git

- name: Setup Bittensor SDK from cloned repo
working-directory: ${{ github.workspace }}/bittensor
Expand All @@ -442,7 +446,7 @@ jobs:
run: docker load -i subtensor-localnet.tar

- name: Retag Docker Image
run: docker tag localnet ghcr.io/opentensor/subtensor-localnet:devnet-ready
run: docker tag localnet "$LOCALNET_IMAGE_NAME"

- name: Run with retry
working-directory: ${{ github.workspace }}/bittensor
Expand Down
6 changes: 4 additions & 2 deletions .github/workflows/check-node-compat.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,10 @@ jobs:
strategy:
matrix:
version:
- { name: old, ref: devnet-ready }
- { name: new, ref: ${{ github.head_ref }} }
- name: old
ref: devnet-ready
- name: new
ref: ${{ github.head_ref }}

steps:
- name: Install dependencies
Expand Down
8 changes: 6 additions & 2 deletions .github/workflows/docker-localnet.yml
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,10 @@ jobs:
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Determine image name
# Docker requires lowercase image names; github.repository is RaoFoundation/subtensor
run: echo "image=ghcr.io/${GITHUB_REPOSITORY,,}-localnet" >> $GITHUB_ENV

- name: Build and push Docker image
uses: docker/build-push-action@v6
with:
Expand All @@ -211,5 +215,5 @@ jobs:
push: true
platforms: linux/amd64,linux/arm64
tags: |
ghcr.io/${{ github.repository }}-localnet:${{ needs.setup.outputs.tag }}
${{ needs.setup.outputs.latest_tag == 'true' && format('ghcr.io/{0}-localnet:latest', github.repository) || '' }}
${{ env.image }}:${{ needs.setup.outputs.tag }}
${{ needs.setup.outputs.latest_tag == 'true' && format('{0}:latest', env.image) || '' }}
8 changes: 6 additions & 2 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,10 @@ jobs:
echo "latest_tag=false" >> $GITHUB_ENV
fi

- name: Determine image name
# Docker requires lowercase image names; github.repository is RaoFoundation/subtensor
run: echo "image=ghcr.io/${GITHUB_REPOSITORY,,}" >> $GITHUB_ENV

- name: Checkout code
uses: actions/checkout@v4
with:
Expand All @@ -70,5 +74,5 @@ jobs:
push: true
platforms: linux/amd64,linux/arm64
tags: |
ghcr.io/${{ github.repository }}:${{ env.tag }}
${{ env.latest_tag == 'true' && format('ghcr.io/{0}:latest', github.repository) || '' }}
${{ env.image }}:${{ env.tag }}
${{ env.latest_tag == 'true' && format('{0}:latest', env.image) || '' }}
2 changes: 1 addition & 1 deletion .github/workflows/label-triggers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,5 @@ jobs:
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: '@opentensor/cerebrum / @opentensor/gyrus / @opentensor/cortex breaking change detected! Please prepare accordingly!'
body: '@RaoFoundation/arbos breaking change detected! Please prepare accordingly!'
})
26 changes: 7 additions & 19 deletions .github/workflows/try-runtime.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,17 +29,13 @@ jobs:
with:
toolchain: stable

- name: Utilize Shared Rust Cache
uses: Swatinem/rust-cache@v2
with:
key: "try-runtime"

- name: Run Try Runtime Checks
uses: "paritytech/try-runtime-gha@v0.1.0"
uses: ./.github/actions/try-runtime

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[HIGH] Local action is loaded from the PR checkout on pull_request

This pull_request workflow checks out the PR worktree and then executes ./.github/actions/try-runtime. After this lands, any future approved PR can modify .github/actions/try-runtime/action.yml and have arbitrary shell run on the self-hosted try-runtime runners before the runtime checks. The nucleus approval gate reduces drive-by risk, but this is a steady-state PR-controlled CI execution path. Load the action from a trusted ref/path, or keep using a pinned external action instead of executing the local action from the PR checkout.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[HIGH] Local action is loaded from the PR checkout on pull_request

This pull_request workflow checks out the PR head and then executes uses: ./.github/actions/try-runtime. After this merges, any future approved PR can modify that local composite action and have the self-hosted try-runtime runner execute arbitrary shell once CI is approved. This is a steady-state issue, not bootstrap-only. Use a pinned external action or execute the composite action from a trusted base/ref checkout instead of the PR worktree.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[HIGH] Local action is loaded from the PR checkout on pull_request

This pull_request workflow checks out the PR code and then loads ./.github/actions/try-runtime from that checkout. After this merges, any future approved PR can modify .github/actions/try-runtime/action.yml and have its composite action body execute on the self-hosted try-runtime runners. The same pattern is repeated in the other try-runtime jobs. Load the action from a trusted base-branch checkout/path, or keep using a separately reviewed pinned external action, instead of resolving the composite action from contributor-controlled workspace contents.

with:
runtime-package: "node-subtensor-runtime"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[HIGH] Local action is loaded from the PR checkout on pull_request

This workflow checks out the PR head and then runs ./.github/actions/try-runtime from that same worktree. Because the trigger is pull_request, the workflow file comes from the trusted base branch, but the local action implementation comes from the untrusted PR checkout. After this merges, any future PR that changes .github/actions/try-runtime/action.yml can get arbitrary shell executed on the self-hosted fireactions-tryruntime runners once CI is approved, without needing to modify the workflow itself. Keep the workflow anchored to trusted code by checking out the base ref/SHA for the local action in a separate path and invoking that copy, or avoid local actions for pull-request jobs that run on self-hosted runners.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[HIGH] Local action is loaded from the PR checkout on pull_request

This workflow runs on pull_request, checks out the PR contents, then executes ./.github/actions/try-runtime. Local actions are loaded from the checked-out worktree, so after this merges any future PR that edits .github/actions/try-runtime/action.yml can run arbitrary composite-action shell on the self-hosted try-runtime runners once CI is approved. This is a steady-state trust-boundary issue, not just bootstrap risk. Use a pinned external action, or split the workflow so the trusted action definition is checked out from a protected base ref before executing it.

node-uri: "wss://dev.chain.opentensor.ai:443"
checks: "all"
blocktime: "12000"
extra-args: "--disable-spec-version-check --no-weight-warnings"

check-testnet:
Expand All @@ -60,17 +56,13 @@ jobs:
with:
toolchain: stable

- name: Utilize Shared Rust Cache
uses: Swatinem/rust-cache@v2
with:
key: "try-runtime"

- name: Run Try Runtime Checks
uses: "paritytech/try-runtime-gha@v0.1.0"
uses: ./.github/actions/try-runtime
with:
runtime-package: "node-subtensor-runtime"
node-uri: "wss://archive.dev.opentensor.ai:8443"
checks: "all"
blocktime: "12000"
extra-args: "--disable-spec-version-check --no-weight-warnings"

check-finney:
Expand All @@ -91,16 +83,12 @@ jobs:
with:
toolchain: stable

- name: Utilize Shared Rust Cache
uses: Swatinem/rust-cache@v2
with:
key: try-runtime
cache-on-failure: true

- name: Run Try Runtime Checks
uses: "paritytech/try-runtime-gha@v0.1.0"
uses: ./.github/actions/try-runtime
with:
runtime-package: "node-subtensor-runtime"
node-uri: "wss://archive.dev.opentensor.ai:443"
checks: "all"
blocktime: "12000"
extra-args: "--disable-spec-version-check --no-weight-warnings"
cache-on-failure: "true"
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
## Lifecycle of a Pull Request

1. Individuals wishing to contribute to subtensor should develop their change/feature/fix in a
[Pull Request](https://github.com/opentensor/subtensor/compare) (PR) targeting the `devnet-ready`
[Pull Request](https://github.com/RaoFoundation/subtensor/compare) (PR) targeting the `devnet-ready`
branch of the subtensor GitHub repository. It is recommended to start your pull request as a
draft initially until you are ready to have other developers actively look at it. Any
changes to pallet/runtime code should be accompanied by integration and/or unit tests fully
Expand Down
Loading