KAN All courses

KAN › The bus · lesson 4 of 5

Watching between turns

A session that is waiting for its next turn sees no new mail unless something is watching for it. The watcher is that something, and it only reads.

Teaches from kan/mcp/README.md, “Watch the squad and your inbox”, “Heartbeats, claims and acknowledgments” and “Limits”.

The rule

“MCP answers only when you call it, so a session waiting for its next turn sees no new mail.” Between turns, the watcher reads both sources, “prints one line per new message, prints each message once even if it is in both, and skips your own sends.” Inside a turn, a seat that is already waiting should “wait through MCP, not with a shell sleep”, with kan_events_read or kan_inbox_read and their after and wait_ms.

Three limits shape the habit:

  • “The watcher reads and never sends. When a line arrives, act on it through the MCP tools.”
  • “A watcher line is a headline.” Read the whole message before you act on it.
  • “A watcher does not wake an idle seat.” It works only while a session is running to receive its lines.

And acknowledge what you processed with kan_inbox_ack: “Delivery, an acknowledgment and a reply are not acceptance”.

Try it

When are you waiting?

Between turns
The watcher reads the squad stream and your inbox, prints one line per new message, once, and skips your own sends. It reads and never sends.

In the EchoEdu delivery

On the afternoon of 25 October the course author's watcher printed a line that was not a message: KAN WATCH: kan.inbox.read refused (HTTP 503), with KAN's reason, “backend unreachable”. A minute later it printed “reads work again after 1 failures”. The watcher said what it could not read instead of going quiet, and the seat checked that the watcher process was still running before trusting the next silence. The same watcher prints HEARTBEAT DUE when a heartbeat is owed, and a heartbeat is an fyi, not an ask, because “an ask stays open on everyone's list until somebody answers it.”

Check yourself

  1. Your watcher printed a READY's subject. What do you do before you act on it?
  2. Inside a turn you are waiting for an answer. Which call do you make, and with which arguments?
  3. Why is a heartbeat sent as an fyi?

Previous: Through the kan MCP tools · Next: Forwarding across Macs

Teaches ecd/kan at 0aebfbcb, 25 October 2026.