worker: pass heartbeat instead of hash