Lease and halt robots with peppy fleet, call daemon interfaces from nodes, and call any contract with the codec API.
Released on October 26, 2026
Robot leases and the halt
- Run
peppy fleet list,peppy fleet halt, andpeppy fleet clear-haltto inspect the fleet, halt every client that moves a robot, and clear the halt. - A node with a scoped
fleetdaemon target holds aleasegoal to take, offer, and open robot leases, and follows the fleet's listing and changes. - MCP servers,
peppy node call, and lease holders check the daemon before calling a member markedmoves_robot, and refuse it during a halt or on a robot another client leases. - Mark a launcher axis with
role: "robot_commander"so the fleet listing names each robot's commander.
Daemon targets
- List daemon interfaces in a node's
manifest.depends_on.daemon; the generated client calls them on the daemon that runs the instance. - Scope each daemon target in a launcher's
daemon_scopes, or leave it unserved with{ vacant: "<why>" }. - A node reaches the daemon only through its daemon targets; the daemon refuses stack-changing raw calls from nodes of the stack.
The codec API and contract metadata
- Set
codec_api: truein a node'sexecutionblock to get the codec API, which parses any contract (comments included), converts its messages, and calls its members. - Give contract members a
markslist (peppy definesmoves_robot), string fields a closed$enumset, and fields a$markslist, all readable through the codec API.
MCP exposures
stack_copies:v1listnow reports each option'skind, whether each copy isrunning, and the stack'slauncher, andjoinandremovecan refuse withhaltedorleased.