github F1bonacc1/process-compose v1.122.0

3 hours ago

[v1.122.0] - 2026-08-18

New Features

  • Added file watching: a per-process watch block restarts a process when its files change, with include/exclude globs, a configurable debounce, and cascade: true to restart the process's dependents transitively (in dependency order, so a rebuilt artifact is ready before its consumers restart). A process that has exited while its watch is still armed reports the new Watching state, and the TUI names the file that caused each restart. Watch-triggered restarts skip the restart backoff and reset the restart counter, since they are user intent rather than a crash loop. File watching can be turned off entirely with --no-watch / PC_NO_WATCH.
  • Added support for multiple namespaces per process: namespace now accepts either a single string or a list of strings (similar to docker-compose profiles), so a shared process (e.g. a database) can be selected and operated as part of any of its namespaces, addresses issue #519.

Bug Fixes

  • Fixed restarting a process shutting the whole project down when that process was configured with availability.exit_on_end or restart: exit_on_failure. Every exit routed through the same path, and a restarted process does not exit cleanly (a SIGTERMed process reports a non-zero code), so an intentional restart was indistinguishable from the process ending. This affected manual restarts from the TUI, the CLI and the API; it is also what would have made every watch-triggered restart end the project.
  • Fixed namespace operations skipping processes that were not started: process-compose namespace start <ns> now starts every configured member of the namespace, including processes excluded from an up <process>... selection or marked disabled: true, instead of failing with "namespace not found (no processes assigned)", addresses issue #528.
  • Fixed a project update or reload starting the processes that were excluded from a process-compose up <process>... selection: the selection is now re-applied to the reloaded configuration, the same way the --namespace admission policies already were.
  • Fixed a project or process update shutting the project down when it restarted the only running process: the momentary gap while the process is stopped is no longer mistaken for the project having completed.
  • Fixed stopping or restarting a process while it is still waiting on its dependencies: the process was left wedged in Terminating and its still-waiting instance later started an untracked copy, which stop, start and restart could not manage, which a subsequent start duplicated, and which survived down as an orphan. A pending process now stops immediately instead of waiting for its dependencies to resolve, and a superseded instance can no longer deregister its replacement, addresses issue #530.
  • Fixed the TUI Namespace Operations modal silently ignoring failures: a failed namespace start, stop or restart is now reported in an error dialog instead of only being written to the log file.
  • Fixed the HTTP API rejecting process names that contain slashes: routes are now matched against the raw percent-encoded path and the client encodes process names as path segments, addresses issue #523.
  • Client-mode commands (down, attach, list, process, project, namespace) now write their internal logs to a separate log file (/tmp/process-compose-$USER-client.log by default) instead of truncating the log file of a running server, documentation by @soy-chrislo.

Changelog

  • 4857b39 Merge branch 'main' of github.com:F1bonacc1/process-compose
  • c458fd2 chore: release v1.122.0 notes and update vendor hash
  • 644f0e8 chore: update project dependencies
  • 414372e docs(logging): clarify PC_LOG_FILE truncation between server and client commands (#516)
  • 54c2ef9 feat: implement filesystem watching to trigger process restarts with optional cascading dependents
  • f5a43e7 feat: implement multi-namespace support for processes with configuration and TUI updates Addresses: #519
  • e421750 fix: allow starting disabled namespace members and fix TUI error reporting and project shutdown race conditions Addresses #528
  • 54273f8 fix: handle process names with slashes by updating API routing and normalizing path segment encoding Addresses: #523
  • 673850d fix: prevent restart-in-flight from overriding stop requests by tracking stop epochs and retriggering completion checks.
  • 8528c8d fix: resolve process restart deadlock by aborting dependency wait on termination and properly initializing incarnation state Addresses #530
  • 8352b2f refactor: redirect client-mode command logs to separate files using cobra annotations

Don't miss a new process-compose release

NewReleases is sending notifications on new releases.