process_file now marks messages processed only after a real crawljob write, so DRY_RUN no longer poisons the state and link-less posts get re-checked after the host filter widens. State file reset alongside this so the arm cycle re-enqueues all threads.