---
{
  "n": 8,
  "title": "Everything the user does in the viewer reaches an idle agent through the channel",
  "abstract": "",
  "refs": [],
  "seen": [
    "user",
    "agent"
  ],
  "data": {
    "member": "owner"
  },
  "created": 1789745298.537008,
  "updated": 1789952694.967909,
  "deleted": 0.0,
  "completed": 1789745298.537005,
  "outcome": "",
  "type": "rule"
}
---
Asked for by the user (message 360 on web-interface): "starting a plan should notify the channel, and we need to make sure that there's a rule for this so you remember to do this in the future too... Maybe everything the user does should just go through the channel when you're idle."

The shape: serve.py calls commandlog.record_web once, for every write the viewer makes, and stamps each entry by: "You". channel._did reads that record and pushes each entry an idle session has not been told about. So adding a verb to the web API announces itself; nothing has to be remembered per verb. The five kinds that have handlers of their own — message, question, suggestion, comment, plan — are skipped there, because those say more than a log line can (the message's text, the answer, which to-do a suggestion became, which phase to start) and they mark themselves told.

What this rule forbids: adding a notify call to a controller, or a per-verb branch in channel.py, when the write already goes through record_web. If a new kind genuinely needs to say more than its Activity line, give it a handler beside the other five rather than a special case in the generic path.
