Skip to content

0.76.0

Released 2026-11-12. The sb server tells a workspace’s tower when a pi session looks frozen, and the work board’s refresh no longer walks the whole session on every tool call.

  • The stall watch. Once a minute the sb server looks at the pi in every Herdr pane and tells that workspace’s tower when one looks frozen. It never stops the session and sends it no signal and no key. Three signals:

    • cpu: the process averaged 75% of a core or more over 5 minutes while its session file was not written.
    • missing: the process is alive but pi-intercom has not listed it for 3 minutes, including a session that did not come back after a server restart.
    • silent: the pane says working, the session file was not written for 30 minutes, and no tool call is open.

    The tower gets one notice per incident with the pane, session, pid, and cpu minutes, and a runbook: read the pane, send Esc, and only with a handoff file or the boss’s approval stop the process and start a fresh session. A recovery, a further signal, and a reminder (after 60 minutes, then doubling up to 8 hours) are told too. Settings are stallWatch in config.json, read every minute. See the stall watch and the configuration reference.

  • Known gaps of the stall watch. A tool call that hangs while the process stays calm is not told. A session that froze with a calm process more than ten minutes before the watch first saw its pane is not told missing on this release’s first start. Windows has no stall watch.

  • The work board’s refresh reads its branch incrementally. Each refresh after a tool call walked the session’s whole history to find the todo snapshot and the board’s withdrawn entry. It now remembers what it read and walks only what was appended; a long session no longer pays for its history on every tool call. pi’s own getBranch() is still read in full.