Release v1.18.1
Scraper sampling fix: read_random_row_group used .head(max_rows) which always picked rows from the top of each row group. Miners could place 5 real tweets at the top and fill the remaining rows with fabricated data. Changed to
.sample() with random seed so validation reaches any row in the group.
State v6 reset: Full S3 reward reset