pre-squash-backup
substrate-interface is intentionally not a direct dep (see pyproject.toml note — it conflicts with the scalecodec namespace bittensor>=10 needs). The runtime modules already import Keypair from bittensor_wallet first and fall back; the e2e test was the one place still hard-importing substrateinterface, which broke CI test collection. Same Keypair class — bittensor_wallet re-exports it. 412 tests pass.