@@ -1656,7 +1656,12 @@ async fn run_validator() -> Result<()> {
16561656 } ;
16571657
16581658 if endpoints. is_empty ( ) {
1659- debug ! ( "P2P outbox poll: no challenge endpoints registered yet" ) ;
1659+ // Log at info level occasionally to confirm task is running
1660+ static EMPTY_COUNT : std:: sync:: atomic:: AtomicU32 = std:: sync:: atomic:: AtomicU32 :: new ( 0 ) ;
1661+ let count = EMPTY_COUNT . fetch_add ( 1 , std:: sync:: atomic:: Ordering :: Relaxed ) ;
1662+ if count % 12 == 0 { // Log every minute (12 * 5s = 60s)
1663+ info ! ( "P2P outbox poll: no challenge endpoints registered yet (poll #{count})" ) ;
1664+ }
16601665 continue ;
16611666 }
16621667
@@ -1666,13 +1671,12 @@ async fn run_validator() -> Result<()> {
16661671 state. challenge_configs . iter ( ) . map ( |( k, v) | ( k. to_string ( ) , v. clone ( ) ) ) . collect ( )
16671672 } ;
16681673
1669- for ( challenge_id, endpoint) in endpoints {
1674+ for ( challenge_id, endpoint) in & endpoints {
16701675 // Use the real endpoint (includes suffix like challenge-term-challenge-4133b3431b1c)
16711676 let outbox_url = format ! ( "{}/p2p/outbox" , endpoint) ;
1672- debug ! ( "Polling outbox: {} -> {}" , challenge_id, outbox_url) ;
16731677
16741678 // Get config for this challenge
1675- let config = match configs. get ( & challenge_id) {
1679+ let config = match configs. get ( challenge_id) {
16761680 Some ( c) => c. clone ( ) ,
16771681 None => {
16781682 debug ! ( "No config found for challenge {}, skipping" , challenge_id) ;
0 commit comments