Release v1.18.63
Problem
S3 validation runs early in eval_miner, but update_s3_effective_size was at the very end of the method — after three early returns that fire on a failed/invalid GetDataEntityBucket (P2P) response. A miner can intentionally fail the bucket query to hit one of those returns, so the S3 update never runs. Their s3_boost and s3_credibility stay frozen at their last (inflated) values indefinitely, even though they no longer pass S3 validation — letting one miner keep the largest S3 boost while having less data than others.
Fix
Move the S3 boost/credibility update to immediately after _perform_s3_validation, before the P2P bucket query. S3 scoring no longer depends on the P2P outcome, so a failed bucket query can't skip it. No behavior change on the happy path; the same single update runs with the same arguments.