Skip to content

v0.18.0

Adds observer slots, unifies binding and pairing into links, reworks zenoh config, and spans stack list across daemons.

Released on July 23, 2026

Breaking changes

  • The peppy auth command group is renamed to peppy platform; update any commands or scripts that call peppy auth.
  • The --bind and --pair flags are replaced by a single --link flag; switch your commands to use --link.
  • Launch files now use unified links and defer_links fields in place of the previous separate binding and pairing entries; migrate your launch files to the new fields.
  • Zenoh settings in peppy_config.json5 are restructured into a zenoh section with tagged zenoh.managed and zenoh.external blocks, replacing the flat zenoh, zenohd, and peer fields, and unknown fields under zenoh are now rejected; move your settings into the new blocks. The new zenoh.external block lets peppy run against an operator-managed zenoh router.
  • peppy stack list no longer prints DOT graph output; it now always renders a report of per-core-node sections aggregated across every live daemon, including live instance counts and the answering daemon's identity, so update anything that parsed the old graph output.
  • Generated peppygen modules for slots are now nested at <category>/<link_id>/<member>; update the import paths for your generated code.
  • The PEPPY_DAEMON_STATE_FILE environment override is removed; the daemon state file now lives under $PEPPY_HOME, so stop setting PEPPY_DAEMON_STATE_FILE.
  • The "organization"/"org-id" concept is renamed to "workspace"/"namespace" across authentication and daemon output; update references and scripts that use the old terms.

Observers

  • Nodes can now declare observer slots to observe topics, with generated observer bindings (including an ObservedSource type) and delivery of observers to running nodes.
  • Guides and launch-file documentation now cover observer slots and the links/defer_links model.

Multi-daemon and federation

  • Daemons can participate in a federated peer topology across zenoh routers.
  • Federation-aware CLI commands now surface listener and serve errors instead of hanging.

Other changes

  • Removing a node with node remove --stop-instances now also dissolves that node's links.
  • A new PEPPY_CONFIG environment variable overrides the daemon config file path.
  • Only one peppy daemon can run per $PEPPY_HOME data root, enforced by an exclusive singleton lock.
  • Config drift now logs which peppy_config.json5 settings it adds when completing missing defaults.
  • Newly generated core-node default names use the compact cn-{adj}-{surname} format instead of the longer core-node-{adj}-{surname}-{4digits}-{10digits} form.
  • The bundled Cap'n Proto compiler is now installed under $PEPPY_HOME/bin, and its location is documented.

Documentation

  • External federation guidance adds a dedicated section on namespace handling outside the Peppy platform.

View all releases