Instances restart under a configurable policy after crashes or health failures, with per-process run logs.
Released on October 15, 2026
Breaking changes
- Failing or unresponsive instances now restart by default (
on_failure); declareframework.restart: "never"on a node, launcher, or run to keep the previous no-restart behavior. - Run logs are now one file per process named
<instance_id>_<timestamp>.log, replacing the single<instance_id>.log; update anything that reads the fixed path.
Other changes
- Set an instance's restart policy with
framework.restartin itspeppy.json5or a launcher entry, or with--restart/--max-restartsonpeppy node runandpeppy node add --run. - A restarting instance shows
restartingwhile the daemon backs off and starts a new process under the same id, which keeps its bindings, pairings, and any clock domain it published. peppy stack listadds aRESTARTScolumn,peppy node inforeports each instance's policy, restart count, last exit and next start, andpeppy stack resolveprints each instance's policy.peppy node stopnow clears arestarting,finished, orfailedinstance and cancels any pending restart.- The
stack.listcore node function returns each instance's restart status: policy, origin, restart count, attempt, last exit, and timestamps. peppy node remove --stop-instanceswaits for each instance to exit and force-kills any that do not, warning for each; run without the flag it asks for confirmation first.- Re-adding a node with
peppy node addnames each live or restarting instance and its state before overwriting, and is refused while one is starting.