A push to a mainline branch will be lost if they happen in time span that is shorter than the polling period.. That is because the first one will trigger a workspace update (and a build). Since the daemon uses the head commit id to detect pushes to mainline, the remaining pushes will no longer be detected.
An easy fix would be to only do the workspace update at the end of the poll loop