Skip to content

v0.33.0

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_NODE on its spec (peppy stack join openarm:alpha@jetson-1, or --join openarm:alpha@jetson-1 at launch); --place naming a --join copy 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 for setup to 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 and setup_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 setup at its next await instead of waiting for setup to finish.

Copies on multiple machines

  • Run the parts of a copy on different machines: OPTION:NAME@CORE_NODE places the copy's base and --with axis=option@CORE_NODE places the instances a feature brings.
  • peppy stack list reports each copy's machine and per-part placement, names a join or removal that holds the stack now, and adds a copy_change field 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 launch and peppy stack build prebuild on the coordinator every node a later join can bring; pass --no-prebuild to build on join instead.

Control the stack over MCP

  • An MCP exposure can target the stack_copies:v1 daemon interface, letting a client list, add, and remove stack copies over MCP within the options a launcher's daemon_scopes allows.

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 info now shows each emitted topic's QoS and retention, or the contract or pairing slot a backed topic takes them from.

View all releases