Skip to content

0.79.0

Released 2026-11-13. A feature release on 0.78.1.

sb now ships the pi-herdr-agents roles its agents run as: worker, scout, planner, reviewer, visual-tester, and adversarial-reviewer, in roles/, registered by a new extension entry, src/rolepack.ts. Spec: 2026-11-09-agent-kinds.md §9, D11. See The role pack.

  • Uninstall pi-herdr-roles in the same install. Its roles have the same names, and pi-herdr-agents disables a name two packs both carry: with both installed, planner is gone wherever no global or project planner covers it (review R0790-F004). weihung-basic-agent retires pi-herdr-roles and adds a global planner in the commit that pins 0.79.0.
  • A global or project role of the same name still wins. The pack’s tools: lines take effect only where no such role exists (on a machine with the weihung-basic-agent overrides, once they are removed).
  • Each role’s tools. scout, planner, reviewer, and visual-tester now list their tools; worker and adversarial-reviewer keep every tool. The planner can edit a plan in place and open it with show_doc; the reviewers and the visual tester can open an HTML report with show_doc.
  • /boss roles-check [folder] checks each role’s tools: names against the session’s own tools and the names only a subagent has, and fails a name the session lacks or one only a parent has. It starts no process. Run it before a release that changes roles/.
  • /plan and the plan skill left with pi-herdr-roles: a main plans by its planning rules and dispatches planner directly.
  • NOTICE.md names where each role file comes from and carries the MIT notice of pi-herdr-roles’ lineage.

Agent kinds, phase 2: the net knows every kind

Section titled “Agent kinds, phase 2: the net knows every kind”

Spec, Phase 2 steps 1 to 4.

  • A subagent keeps its kind when it is resumed. Each pi-herdr-agents child now records its role in its own session file at its first turn (a straw-boss { agent } entry, written once). The net reads the kind from that entry (the first one in the first 64 KB), and the launch script stands in before the first turn. A resumed child gets a new id and a launch script with no role. The net now finds it by the script that carries its id, then by that script’s session file and the pane that runs it. A running resumed child therefore shows with its name, its live mark, and its kind. Before, it showed as done under a hex id. It keeps its kind when another session resumed it, too.
  • boss_open_main takes duty. duty: "standing" opens a main of kind standing; the default is coordinator. The new pi consumes the kind with its one-time claim. It writes the kind entry and keeps the kind in its role record, so a Herdr restore before its first message brings it back with its kind. An integrator is still opened only through role: "integrator", whose door now hands the new pi its kind directly instead of relying on the name integ <project>. A train takes no duty.
  • boss_status and tower_list show each main’s kind (kind beside the tab’s main; null for a tab with no main).
  • A standing main’s board line is never stale. It minds one system with no end, so board_read, the tower’s brief, and the page no longer mark its old line as stale.

Task 6 of the auto-mode spec. pi-robot-hand 0.8.0 takes a cancel for its robot_hand selector and says so in each dialog’s pending (cancellable: true). sb now sends it one, with the dialog’s digest, only for a dialog that said so: when auto mode turns on, an open robot_hand closes as cancelled and the agent’s turn goes on instead of being aborted, and the page’s Cancel shows on it. A robot_hand older than 0.8.0 says nothing and gets no cancel, as before. secret_drop takes none.

  • The subagent list stays fast for a parent with many launches (review R0790-F001). The net reads a launch script only for a child that a pane runs or that was active in the last ten minutes, finds a resume by the id its script carries (the resumes alone are read, once while the folder lists the same names), and keeps the scripts it read per parent, so one parent’s hundreds of launches no longer evict another’s.
  • A resumed child shows once when its first launch and its resume have the same activity time (review R0790-F002).