Skip to content

Conversation

@github-actions
Copy link
Contributor

@github-actions github-actions bot commented Feb 3, 2026

🤖 I have created a release beep boop

0.3.0 (2026-02-05)

⚠ BREAKING CHANGES

  • Platform is now fully P2P
  • Production validators now require the broker by default.

Features

  • add --no-bootnode flag and improve bootnode reconnection (c1045a6)
  • add bridge API to proxy submissions to term-challenge (85c30da)
  • add challenge custom events for WebSocket broadcast (39b0ccf)
  • add challenge integration infrastructure with checkpoint persistence (#2) (b50ce52)
  • add container broker to platform-server (4772327)
  • add Custom P2P message type for challenge-specific protocols (00ebeec)
  • add decentralized P2P consensus system for validator networking (#1) (8c89a10)
  • add docker-compose for bootnode deployment (d0f3f1e)
  • Add dynamic route discovery via /.well-known/routes (106681f)
  • add infinite retry loop (30s) for platform-server connection in validator-node (d8e28b6)
  • add keypair to RpcHandler for webhook P2P broadcast (0f4eb83)
  • add P2P message forwarding to challenge containers (8abeda7)
  • add periodic cleanup of stale task containers (4b26cf4)
  • add periodic validator sync to challenge containers (cff55d7)
  • add persistent data volume for challenge containers (1b5463b)
  • add platform-server (central API) with PostgreSQL, Data API, Claim/Lease (6bd057d)
  • add secure-container-runtime crate with powerful helpers (38862c4)
  • Add Sentry error monitoring (enabled by default) (fdd0f65)
  • add tempo fetching from Bittensor chain (e455e29)
  • add verbose logging option to docker-compose.server.yml (57e17e6)
  • add WebSocket event listener for distributed evaluation (54057fd)
  • add WebSocket transport to secure-container-runtime (004f60c)
  • add WsContainerClient for WebSocket broker access (58c8618)
  • authenticated WebSocket + validator whitelist endpoint (f18b74b)
  • auto-convert hotkeys to UIDs in weight submission (319f92d)
  • auto-create Docker network and connect validator (e8de0ce)
  • auto-generate random BROKER_JWT_SECRET if not provided (d7be22b)
  • auto-pull docker images and add refresh challenges command (3b9f9f2)
  • auto-pull images in broker when creating containers (f0ef63d)
  • Auto-retry bootstrap peer connection every 30 seconds (326b8a6)
  • auto-start challenge containers from platform-server registry (4362a3c)
  • broker: add image build support via Build command (6da49e2)
  • centralized LLM review with miner API key (39e72c1)
  • challenge-sdk: add P2P chain storage module (8bac6e9)
  • CI publish HTML test coverage report to GitHub Pages (299d25a)
  • CI publish HTML test coverage report to GitHub Pages (1155c72)
  • consensus: Add stake-based governance with bootstrap period (7dc4e3f)
  • csudo: complete CLI refactoring with beautiful interactive mode (60b115c)
  • Derive libp2p peer ID from validator keypair for stable identity (e64b1c6)
  • DEVELOPMENT_MODE support for local Docker images (71a8086)
  • distributed-storage: add ChallengeStore, SQL-like queries, and comprehensive tests (#3) (eaaf4ad)
  • Docker-in-Docker support with named volumes and CopyFrom/CopyTo protocol (e56a639)
  • emission-based weight distribution with UID 0 burn (169ac1b)
  • enable debug logging for challenges and broker (1db95e6)
  • generic bridge API for multi-challenge support (686c44f)
  • Hardcode default bootnode address (9f270af)
  • immediate stake validation via identify protocol (d38b39b)
  • implement sr25519 signature verification for agent submissions (6fb3820)
  • Improve auto-updater coverage and fix CI coverage command (d9183f2)
  • Improve auto-updater coverage and fix CI coverage command (19a6e0d)
  • integrate container broker into validator node (1a0592f)
  • Major platform improvements and bittensor-rs Subtensor API integration (db6cd10)
  • make secure broker the default container backend (e50e1df)
  • orchestrator: add ContainerBackend abstraction for secure mode (5e729c9)
  • orchestrator: use Docker named volume for persistent challenge data (c1db0ed)
  • p2p: add decentralized P2P mode with Bittensor block linking (#2) (7a9ecec)
  • pass BROADCAST_SECRET to challenge containers (a5d7505)
  • pass EXTRA_* env vars to challenge containers (509178d)
  • pass VERBOSE env var to challenge containers for debug logging (2c6cb55)
  • platform-server: dynamic challenge orchestration (55686f0)
  • real sr25519 signatures + binary evaluation in Docker (353aff3)
  • remove image whitelist by default, allow all public images (0d30bfa)
  • sdk: add P2P messages for real-time progress sharing (b524581)
  • security: add stake-weighted PBFT, merkle sync verification, and hotkey rate limiting (27353a0)
  • security: implement authenticated P2P communication with challenge containers (5e48ea2)
  • sentry: improve error tracking with hotkey context (1039741)
  • server: add submissions and evaluations API routes (88e9d4a)
  • sr25519 crypto + Docker image whitelist security (b723820)
  • state: add versioned state serialization with automatic migration (1fe787b)
  • storage: add anti-corruption protections for RocksDB (f45d41c)
  • sync metagraph at startup for validator stake lookup (c155fe4)
  • unified metadata system with blockchain-like properties for challenge storage validation (#4) (b8d3bad)
  • unified platform binary with server/validator modes (5036425)
  • validate miner_hotkey is SS58 format in /submit endpoint (972161d)
  • validator metrics reporting (CPU/RAM) with 5s interval and in-memory cache (f06e67d)
  • validator-node: authenticate WebSocket connection with signature (5934e7d)
  • validator-node: handle ChallengeStopped WebSocket event (f3d52d0)
  • validator: add periodic challenge refresh + apply emission_weight (3cfbd77)
  • validator: add periodic metagraph refresh every 5 minutes (22c9f57)
  • validator: convert hotkey weights to UIDs using metagraph (630990c)
  • validator: integrate with platform-server for centralized weights (1c5b77a)
  • validator: submit weights on startup if missed (f8771fe)
  • validator: sync validators to challenge containers on startup (94f72c5)
  • weights: Add CRv4 timelock encryption support (475126d)
  • weights: add persistence for commit-reveal state (53dd4dd)

Bug Fixes

  • add 30s delay before crash exit to allow Watchtower updates (1635a16)
  • add bootnode retry timer to validator event loop (007b920)
  • add bridge routes to unified platform binary (ce04921)
  • add cache bind mount for Docker-in-Docker path mapping (107b064)
  • add challenge to ChainState when receiving P2P Proposal (0ab4c2e)
  • add DNS servers to docker-compose.server.yml (ef47913)
  • add eval logs bind mount for Docker-in-Docker (1b29e3d)
  • add events/broadcast route to platform bin + secure with BROADCAST_SECRET (ebb468f)
  • add logging for P2P outbox message processing (aef5359)
  • Add peer ID to bootstrap peer address (2be994d)
  • add PLATFORM_PUBLIC_URL to validator docker-compose (c70f755)
  • Add SSE streaming support to bridge proxy (b223979)
  • add whitelist route and metagraph sync to platform bin server mode (c09cd79)
  • allow all ghcr.io/platformnetwork/ images in agent runner whitelist (9ed64b3)
  • allow custom DATABASE_URL (Supabase, etc.) (f543705)
  • auto-detect validator network for challenge containers (5bf156f)
  • auto-reconnect Bittensor on 'restart required' with exponential backoff (b24aac5)
  • auto-recover from corrupted distributed-db and state (332f75d)
  • bittensor: update to bittensor-rs f79759e with DRAND fix (11cfe4a)
  • bridge: route root-level endpoints without /api/v1 prefix (b5102e5)
  • broadcast ChallengeStarted event to validators (9047616)
  • broadcast ChallengeStopped event to validators in platform bin server (b99e43d)
  • challenge-sdk: fix consensus test math (8aa071f)
  • change stale container cleanup to 2 hours (8f4592d)
  • ci: move -E filter before -- in cargo llvm-cov nextest (c91e830)
  • ci: properly use cargo cache across jobs (14bc231)
  • ci: separate cache keys for release and debug builds (a2149e4)
  • ci: separate coverage job to prevent cancellation (8cd7b3e)
  • clippy warnings and add mandatory CI hooks (9a9c395)
  • clippy: resolve all clippy warnings for CI (e8829bd)
  • comprehensive security and reliability improvements (#4) (68a4052)
  • connect validator container to platform-network on startup (41d9d8b)
  • consensus: correct test expectations for 33% default threshold (d621eb8)
  • consensus: improve P2P mesh stability and reduce quorum threshold (34f65a0)
  • consensus: improve test accuracy for zero-stake scenarios (de9d492)
  • correct netuid_index calculation and salt serialization (c2ba34b)
  • correct sled corruption recovery to remove actual db files (00df049)
  • db: strip trailing database name from URL (19d4298)
  • default PLATFORM_PUBLIC_URL to chain.platform.network (a980e47)
  • Derive peer ID from hotkey (public key) not seed (39f578d)
  • docker: add clang/libclang-dev for zstd-sys bindgen (650d5f7)
  • docker: default to validator-node for backward compatibility (4d6f210)
  • docker: use external network to avoid compose label conflict (8056f50)
  • docker: use ubuntu:24.04 for glibc 2.39 compatibility (af00fac)
  • don't cleanup challenge containers with different suffixes (f433704)
  • export VALIDATOR_HOTKEY and VALIDATOR_SECRET_KEY as env vars (eb3065c)
  • force exact network name 'platform-network' (27071de)
  • gossipsub: resolve empty mesh issue by removing add_explicit_peer calls (375ce2e)
  • handle auth message even when JWT validation is disabled (19e9d1f)
  • implement targeted P2P send (broadcasts to all) (121d5f0)
  • include challenge_configs in chain_getState RPC response (00690e7)
  • increase broker JWT TTL to 10 years to prevent ExpiredSignature errors (94682da)
  • increase container limits and add startup cleanup (9387864)
  • integer overflow in calculation (138fbf9)
  • integer overflow in calculation (534c7f9)
  • merge weights by mechanism_id before submitting (a6af2d5)
  • migrate remaining ed25519 to sr25519 + add mandatory CI hooks (65bd1e8)
  • network: add mesh repair mechanism for gossipsub (bad9b34)
  • network: add mesh repair mechanism for gossipsub (b171ff4)
  • network: handle gossipsub Subscribed event for proper mesh membership (f8efbd6)
  • network: improve gossipsub mesh stability for bootnodes (381ae26)
  • orchestrator: pass PORT=8080 env var to challenge containers (ab4782e)
  • Pass bootstrap-peer argument directly in docker-compose (d3ac865)
  • pass CHALLENGE_UUID env var for broker authentication (d88bfe5)
  • pass real challenge config values in ChallengeStarted event (06dc544)
  • pass VALIDATOR_SECRET_KEY to challenge containers (44e1dce)
  • populate registered_hotkeys from metagraph sync (aff29f3)
  • Preserve original headers in SSE streaming passthrough (0cd2759)
  • remove obsolete version from docker-compose.bootnode.yml (3ba56f2)
  • remove restrictive cap_drop from container broker, add user field (372641c)
  • reorder validator routes - static paths before :hotkey parameter (6ffb7ca)
  • resolve CI lint and clippy warnings (c470b4c)
  • reveal mechanism weights when internal epoch manager detects reveal phase (3291318)
  • skip stake validation in no-bittensor mode for PeerIdentified event (f6ff0a2)
  • tests: avoid clippy approx_constant lint in test assertions (#5) (d7a46e3)
  • trigger commit/reveal on Subtensor timing windows in tests (fa85fea)
  • Update bittensor-rs to 3fc7ab5 and export sync_metagraph (c328831)
  • Update bittensor-rs to a1a4558 and fix clippy warnings (b9bc10c)
  • Update bittensor-rs to db10a19 - fix commit-reveal detection (80f10e5)
  • update challenge endpoints for P2P and dev mode containers (9ee7c7a)
  • update coverage badge generation to use peaceiris/actions-gh-pages (347daba)
  • update release-please config for workspace (c6ff25c)
  • update tests to use strict() policy for image whitelist tests (fb63e63)
  • use actual hostname as fallback for broker URL (351b657)
  • use challenge name (not UUID) for CHALLENGE_ID env var (b5bd205)
  • use challenge name (not UUID) for JWT token generation (8ecab04)
  • use container ID for challenge container naming suffix (39e4724)
  • use container name for challenge endpoint instead of 127.0.0.1 (f04d4fa)
  • use correct salt type for reveal_weights (41e0a05)
  • use effective stake (alpha + root) for validator validation (cb30a93)
  • use orchestrator endpoint instead of hardcoded URL for challenge containers (bd4c349)
  • use PLATFORM_PUBLIC_URL for validator challenge containers (7ce3b24)
  • Use proper Substrate SR25519 derivation for peer ID (95321e5)
  • use real container endpoints for P2P outbox polling (ae9250d)
  • use simple release type for workspace (60c3078)
  • use simple release type with manifest config (ba79252)
  • use stake_weight for validator stake validation (be15cdc)
  • use stored endpoints for challenge container URLs (2adda1a)
  • use total_stake from runtime API for validator stake validation (dcb389c)
  • use u16 for NetUidStorageIndex in hash computation (c8a392e)
  • use u16 salt directly for reveal_mechanism_weights (72f3806)
  • validator uses Subtensor.set_mechanism_weights() for CRv4 (eda164e)
  • validator uses Subtensor.set_mechanism_weights() for CRv4 (3e0b1e5)
  • validator-node timeout and skip unhealthy challenges (26da2c8)
  • validator: add missing emission to burn to preserve weight proportions (4a41d76)
  • validator: auto-reconnect BlockSync after Bittensor connection loss (57a1d35)
  • validator: change default RPC port from 8545 to 8080 (c610dde)
  • validator: check sudo/owner FIRST before any stake validation (81524af)
  • validator: correct weight merging for hotkeys without UIDs (dcc363f)
  • validator: max-upscale weights to match Python SDK behavior (63af164)
  • validator: retry set_mechanism_weights up to 3 times on failure (10332c3)
  • validator: send 100% burn when challenge returns no/empty/unresolved weights (b180427)
  • validator: unresolved hotkey weights go to burn instead of being lost (969bf87)
  • validator: use correct container name with validator suffix for challenge endpoints (c6137eb)
  • warn when validator cannot join platform network (3c1bdde)
  • weight validation (d586a89)

Performance Improvements

  • ci: optimize caching for Rust builds and Docker images (52fb82b)
  • reuse HTTP client in bridge proxy to reduce CPU overhead (5077c75)

Code Refactoring

  • clean dead code in evaluator, increase proxy timeout (cbffb81)
  • complete decentralization - remove all centralized infrastructure (#6) (f892ea9)
  • consensus: address code review feedback (10a5394)
  • event-driven commit/reveal from Bittensor timing (4d3f0ff)
  • migrate from ed25519 to sr25519 for Substrate/Bittensor compatibility (dbf722e)
  • remove anti-cheat weight manipulation for pure pass-through (63ed510)
  • remove centralized infrastructure, require explicit configuration (#5) (63a6e38)
  • remove P2P consensus and networking code (7678293)
  • remove P2P networking, centralized architecture only (66477bd)
  • remove P2P networking, centralized architecture only (9ef71a6)
  • Remove redundant weights_v2.rs, use bittensor_rs::Subtensor directly (5317b8d)
  • remove term-challenge specific code from validator-node (a4713e9)
  • Replace WeightSubmitter with bittensor_rs::Subtensor (1b55113)
  • simplify WeightAssignment to hotkey + weight only (56ccd21)

Documentation

  • add badges and repobeats analytics to README (5c2a3bb)
  • add banner image to README (2a89445)
  • add docker network create step to validator guide (52d29f8)
  • add hardware requirements section (4 vCPU, 16GB RAM minimum) (e1ffadb)
  • add network requirements (port 9000/tcp) (a0fee78)
  • comprehensive README with incentive mechanism and validator guide (b85812f)
  • improve README formatting and clarify aggregation method (31ab5bc)
  • improve README formatting and clarify aggregation method (ccc90f0)
  • move description before badges (4c6c3fc)
  • move repobeats after badges, update rust to 1.90+ (491f255)
  • remove Validator Utility Maximization section from README (fef431a)
  • simplify README - remove weight capping, commit-reveal, and agent terminology (8897501)
  • update README to reflect centralized architecture (4bc8313)
  • update storage requirements (250GB min, 500GB recommended) (43b6805)
  • validator: simplify guide - no GPU, no third-party APIs needed (79a1e97)

Miscellaneous

  • add git hooks for format and CI checks (b42dfc8)
  • add MIT license file (7fd5106)
  • fix configuration table in the readme (9f3fa85)
  • fix configuration table in the readme (160541e)
  • main: release 0.2.0 (e662a48)
  • main: release 0.2.0 (3457f6c)
  • main: release 0.2.1 (b05421b)
  • main: release 0.2.1 (1d874cf)
  • nitpicks by coderabbitai (3e21331)
  • Remove unused crates and files (371bec7)
  • Remove unused crates and files (88b3468)
  • remove unused import (13b55b1)
  • remove unused method receive_write_proposal (2eabda6)
  • update bittensor-rs to 453ce56 (proper SCALE decoding) (56f99f9)
  • update doc string (8245dab)
  • update Rust to 1.92 (latest stable) (ca22249)
  • version up serial_test (926598c)

CI/CD

  • add automatic versioning with release-please (80070f7)
  • add code coverage badge with cargo-llvm-cov (7b22a73)
  • docker push only after build/clippy/test pass (616dfac)
  • optimize CI with nextest, better caching, and parallel jobs (6155af8)
  • optimize with fully parallel jobs (360c14c)
  • optimize workflow with disk cleanup and rust-cache (4bd7164)
  • restore parallel jobs with proper cache dependencies (11d25b0)
  • round coverage to whole number (35bc17e)
  • use platform-runner label (7080d56)
  • use self-hosted runners (63c1e86)

Tests

  • add comprehensive unit tests across Platform v2 modules (#3) (31ac6bd)
  • add comprehensive unit tests to platform-server (+289 tests) (cd15c6f)
  • add missing tests for command.rs (a7d5f44)
  • add missing tests for config.rs (7c94ac3)
  • auto-updater: add helper-backed coverage tests (f572dd8)
  • broaden platform-bittensor coverage (add3be8)
  • challenge-orchestrator: add env and helper coverage (a97b84e)
  • challenge-orchestrator: broaden orchestrator, lifecycle, evaluator, and health coverage (ed67e29)
  • challenge-orchestrator: expand config/health/evaluator coverage (3c30e6b)
  • challenge-sdk: Add comprehensive test coverage (168d03d)
  • challenge-sdk: Add comprehensive test coverage for challenge SDK modules (6dd0d55)
  • challenge-sdk: Add database persistence test across reopens (b7a7984)
  • challenge-sdk: enhance multi-agent testing in get_latest_results (ddf89c0)
  • consensus: add comprehensive test coverage for consensus module (fe39408)
  • consensus: comprehensive coverage improvements for platform-consensus (7d96ec8)
  • cover missing paths for health.rs (0f777ef)
  • distributed-db: Achieve 97% test coverage across all modules (982c67c)
  • distributed-db: Achieve 97% test coverage across all modules (1946fd6)
  • distributed-db: consolidate test helpers and fix code review issues (d2dade0)
  • docker: add local multi-validator test script (#8) (0adaab1)
  • docker: add multi-validator test infrastructure and fix healthchecks (#7) (6b67228)
  • epoch: add comprehensive unit tests achieving 95%+ coverage (ceb4984)
  • epoch: add comprehensive unit tests achieving 95%+ coverage (4e96e50)
  • expand bittensor helper coverage (e6c4950)
  • platform-core: Add comprehensive test coverage for core module (446af5a)
  • platform-server: add comprehensive unit tests (8ebc662)
  • platform-server: add comprehensive unit tests (551a4f4)
  • platform-server: improve test quality and reduce duplication (5726879)
  • platform-storage: add comprehensive test coverage for storage modules (90940ce)
  • rpc: add comprehensive test suite for platform-rpc module (7cb4a33)
  • rpc: add comprehensive test suite for platform-rpc module (55fc570)
  • secure-runtime: achieve comprehensive test coverage for container runtime (93459a8)
  • subnet-manager: add comprehensive units tests (59beb07)

This PR was generated with Release Please. See documentation.

@coderabbitai
Copy link

coderabbitai bot commented Feb 3, 2026

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

  • 🔍 Trigger a full review

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions github-actions bot force-pushed the release-please--branches--main--components--platform branch 5 times, most recently from d658234 to acd48f2 Compare February 5, 2026 00:59
@github-actions github-actions bot force-pushed the release-please--branches--main--components--platform branch from acd48f2 to 9db14b9 Compare February 5, 2026 10:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants