The watcher daemon is the bridge between external systems (GitHub, GitLab, Jira) and the agent fleet. Without a watcher, agents must be started manually or triggered via webhooks that require internet-accessible infrastructure. The watcher polls the external systems on a configurable interval, compares current state to previously observed state, and fires events when it detects changes.
Polling has predictable latency (equal to the poll interval) and does not require webhook registration or inbound network access, making it practical for developer machines and private network deployments. The tradeoff is that very short poll intervals increase API rate limit consumption; the polling frequency must be tuned to balance responsiveness against rate limits.
Daemon reliability is critical: a crashed watcher means agents stop responding to events. Production deployments should use process supervision (systemd, launchd, or a process manager) to restart the watcher automatically after crashes, and the daemon should be designed to handle polling failures gracefully without losing event state.