Poll git for-each-ref refs/heads refs/tags refs/gitmsg every 2 s and push when the output changes. One push runs at a time; changes during a push cause exactly one more push after it. A failed push keeps the last build served, prints the error, and the watch continues. Design: .local/design/serve.md.