"A five-minute-old chat turn is a memory of a conversation. It is not proof that a machine is still awake."
Push vs pull, and why Watchfire pulls
Some Sidekicks push: a document editor sends the current document into the model every turn, because the doc is small and the whole point is to edit it. Watchfire is a durable engine watching a fleet that changes on its own, so it does the opposite — it pulls. Read-only host tools fetch source-of-truth state by a stable id, on demand, when a claim actually needs it.
Bound to the fleet, not the selected Mac
The Sidekick binds to a durable fleet host — host_kind=watchfire, a stable id — not to whichever Mac happens to be selected in the browser. The active surface rides along as a context cursor you can Follow or Pin, and at send time a frozen turn_context_ref locks it, so a running answer stays bound to the context it was asked in even if you navigate away. (The same stale-context guard you met with Cmd+K, now at conversation scale.)
Read fresh before any claim
The system rule is blunt: before asserting anything about current fleet, host, or terminal state, do a fresh status or read call. Prior chat turns are memory of the discussion — they are not evidence that a Mac is still reachable or that an observation is still current. The conversation remembers what was said; only a fresh read knows what's true now.
No pre-chewed snapshot per turn
And Watchfire never injects a whole fleet snapshot into every chat turn. That would be the paste-the-world trap from the Durable Operations track wearing a Sidekick costume: a snapshot goes stale the instant it lands, and now the conversation carries a rival, decaying copy of the truth. Pull by id, read live, and report the freshness alongside the value so the reader knows how old the fact is.