Set per-node setup budgets, spread copy parts across machines, control the stack over MCP, and build container images faster.
Released on October 12, 2026
Breaking changes
- Place a joined copy with
@CORE_NODEon its spec (peppy stack join openarm:alpha@jetson-1, or--join openarm:alpha@jetson-1at launch);--placenaming a--joincopy is now refused.
Node setup budgets
- Declare
execution.setup_timeout_secs(1 to 540 seconds) in a node's manifest to set how long the daemon waits forsetupto finish after the node is ready; without it the default is 15 seconds. - Read the applied setup budget at run time with
node_runner.setup_timeout()in Rust andsetup_timeout_secs()in Python. - A start the daemon gives up after the node answered ready now stops it cooperatively, so the node's shutdown hooks run before it is killed.
- An in-band stop now cancels an async
setupat its nextawaitinstead of waiting for setup to finish.
Copies on multiple machines
- Run the parts of a copy on different machines:
OPTION:NAME@CORE_NODEplaces the copy's base and--with axis=option@CORE_NODEplaces the instances a feature brings. peppy stack listreports each copy's machine and per-part placement, names a join or removal that holds the stack now, and adds acopy_changefield to--json.- A removal, or the undo of a failed join, stops a copy's instances one at a time across machines, naming each and what it leaves on an offline or reset machine.
peppy stack launchandpeppy stack buildprebuild on the coordinator every node a later join can bring; pass--no-prebuildto build on join instead.
Control the stack over MCP
- An MCP exposure can target the
stack_copies:v1daemon interface, letting a client list, add, and remove stack copies over MCP within the options a launcher'sdaemon_scopesallows.
Faster container image builds
- Peppy packs every container image with zstd level 3, roughly ten times faster than the previous gzip at the same size; override it with
apptainer_build_extra_args. - A container build can cache across builds in the per-node directory at
PEPPY_NODE_BUILD_CACHE, which no other node's build shares.
Other improvements
peppy node infonow shows each emitted topic's QoS and retention, or the contract or pairing slot a backed topic takes them from.